Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp =================================================================== diff -u -r23279 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 23279) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 23447) @@ -34,7 +34,6 @@ else{ out.println(""); } - if(currentOrgUnitName != null && currentOrgUnitCode != null){ request.setAttribute("depart",currentOrgUnitName); request.setAttribute("departCoding",currentOrgUnitCode); @@ -224,7 +223,6 @@ var partRecycle = '<%=InvoicePlan.RECYCLINGSTATUS_PARTRECYCLE%>'; var awaitDeliver = '<%=InvoicePlan.DELIVERSTATUS_AWAITDELIVER%>'; - var end = '<%=InvoicePlan.STATUS_END%>'; var partEnd = '<%=InvoicePlan.STATUS_PART_END%>'; @@ -293,7 +291,7 @@ SSTS_RecycApplication_Update = false; if('${isBeApplication}'=='false'){ SSTS_RecycApplication_Update =true; - } + } var SSTS_RecycApplication_Delete = true; Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/customTousseForm.js =================================================================== diff -u -r22632 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/customTousseForm.js (.../customTousseForm.js) (revision 22632) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/customTousseForm.js (.../customTousseForm.js) (revision 23447) @@ -2,6 +2,7 @@ var tousseId; var tousseWin; + var customTousseDefinitionsStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getCustomTousseDefinitionsData.do', @@ -17,6 +18,7 @@ ) }); + var customMaterialDefinitionStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!getMaterialDefinitionData.do', @@ -52,6 +54,7 @@ {name : 'count'} ]); + var configStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getCustomTousseMaterials.do', @@ -68,6 +71,7 @@ }) }); + function addMaterial(id,name,type,isImplant){ if(name == ''){ showResult("请先选择材料。"); @@ -98,6 +102,7 @@ top.Ext.getCmp('existTousseDefinitionId').setValue(''); } + function removeCustomApplicationGridItem(id){ var rows = top.Ext.getCmp('configGrid').getSelectionModel().getSelections();// 返回值为 if (rows) { @@ -107,8 +112,8 @@ } } + /** - * * @param appId * @param tousseId * @param authority 输入控制 由两位二进制组成 第一位标识是否需要输入器械包名,第二位表示是否需要输入价格 0为允许输入,1为不许输入 @@ -672,6 +677,7 @@ configStore.load({ params: {tousseId : tousseId} }); } + //获取申请器械包的数据 function getCustomTousseGridData() { var tousseIds = null; @@ -692,7 +698,6 @@ var count = top.Ext.getCmp('configGrid').getStore().getAt(i).get('count'); var rs = {'name': name , 'tousseType' : type, 'count': count }; materialDefinitionConfigResult.push(rs); - } var isSupplyRoomUser = validateIsSupplyRoomUser(); if(!isSupplyRoomUser){ @@ -736,6 +741,7 @@ }); } + function updatePrice() { var price = top.Ext.getCmp('price').getValue(); Ext.Ajax.request({ @@ -751,6 +757,7 @@ }); } + function save() { this.disable(); if (!formAppObj.form.isValid()) { Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r23315 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 23315) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 23447) @@ -77,10 +77,8 @@ return; } } - //2、设置“提交并新建”按钮重新打开表单的参数对象 setOpenFormObj(form, tousseGroups, specifyDisposableTypes); - comboApplication(0,dirOrgCode,currentOrgUnitName,false,false,true,form, tousseGroups, specifyDisposableTypes, false, '', null); } } @@ -513,7 +511,6 @@ } }); - var tousseAndDiposableGoodsStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchInsideTousseData.do', @@ -1800,7 +1797,6 @@ } return "

" + v + "

"; } - /** * 渲染汇总状态的颜色 * @param v @@ -1859,7 +1855,6 @@ return "

" + status + "

"; } - function renderReturnStatusColor(v, p, record){ var color = ""; if(returnStatusArr[0] == v){//未归还 粉红色 @@ -1914,7 +1909,6 @@ } var config = printConfig.invoicePlan; var printParams = getPrintJsonParams("batchPrint", id , config); - function doBatchPrintService(repeat){ var mask; if (!isIE6OrIE7){ @@ -1976,7 +1970,6 @@ } } -/** * 根据传过来的值来重新加载grid的dwr数据 * @param fieldValue 传过来的值 * @param domId dom节点的id @@ -2083,7 +2076,6 @@ * 创建过滤的tbar(自适应各个分辨率). */ function createSearchTbar() { - //1、状态筛选(width=165) if (sstsConfig.quickQueryForApply && sstsConfig.quickQueryForApply.items.length > 0) { var quickQuerySearchTbarArr = []; quickQuerySearchTbarArr.push({text: '状态筛选:'}); @@ -2764,7 +2756,6 @@ // }); //} -/** * 创建下拉选项统一方法(xtype可以是combo或者multiSelect,如果要使用multiSelect则要引入multiSelect的js和css) * @param comboConfig 下拉选项的配置 * @returns Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/service/ExpensiveGoodsApplicationManagerImpl.java =================================================================== diff -u -r23167 -r23447 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/service/ExpensiveGoodsApplicationManagerImpl.java (.../ExpensiveGoodsApplicationManagerImpl.java) (revision 23167) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/service/ExpensiveGoodsApplicationManagerImpl.java (.../ExpensiveGoodsApplicationManagerImpl.java) (revision 23447) @@ -1,5 +1,7 @@ package com.forgon.disinfectsystem.expensivegoodsapplication.service; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -26,6 +28,8 @@ import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; import com.forgon.disinfectsystem.recyclingapplication.updateLog.ApplicationLogManager; import com.forgon.disinfectsystem.tousseitem.service.TousseItemManager; +import com.forgon.disinfectsystem.vo.ApplicationItemVO; +import com.forgon.disinfectsystem.vo.ExpensiveGoodsItemVo; import com.forgon.log.enums.ApplicationLogStatusEnum; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; @@ -497,4 +501,94 @@ throw new RuntimeException("高值耗材入库单绑定的申请单号不能为空!"); } } + + /**simon 2018-05-24 + * operating:update + * introduce:根据流水号查询 高值耗材申请单详情 + * positon:’高值耗材管理'栏-->'高值耗材申请单'页面-->列表内容鼠标悬停显示详情 + * content:申请单号、物品名称、单价、数量、入库数量、使用状态、结算状态 + */ + @Override + public List loadExpensiveGoodsListBySerialNumber(String serialNumber) { + List expensiveGoodsItemVoList=new ArrayList(); + if (StringUtils.isBlank(serialNumber)){ + return expensiveGoodsItemVoList; + } + System.out.println("执行loadExpensiveGoodsListBySerialNumber"); + + /* + String sql="select distinct ip.serialNumber,ti.tousseName,ti.amount,ti.price,egs.amount stockAmount,egi.settledStatus,egi.status " + +"from invoicePlan ip " + +"join ExpensiveGoodsApplication ega on ip.id=ega.id " + +"join TousseItem ti on ti.recyclingApplication_ID =ega.id " + +"join ExpensiveGoodsStock egs on egs.expensiveGoods_id=ti.expensiveGoodsId " + +"join ExpensiveGoodsInstance egi on egi.expensiveGoods_id =egs.expensiveGoods_id " + +"where ip.serialNumber="+serialNumber; + + String sql="select ip.serialNumber,ti.tousseName,ti.price,egi.settledStatus,egi.status,count(0) amount, " + +"(" + +"select count(0) from expensivegoodsGodownentry eg join expensivegoodsGodownentryitem egi " + +"on eg.id=egi.expensivegoodsGodownentry_id " + +"where eg.invoiceplanid=ip.id and egi.expensiveGoodsId=ti.expensiveGoodsId " + +") stockAmount " + +"from invoicePlan ip " + +"join ExpensiveGoodsApplication ega on ip.id=ega.id " + +"join TousseItem ti on ti.recyclingApplication_ID =ega.id " + +"join ExpensiveGoodsInstance egi on egi.invoiceplanid =ega.id and egi.expensiveGoods_id=ti.expensiveGoodsId " + +"where ip.serialNumber="+serialNumber + +" group by ip.id,ti.expensiveGoodsId ,ip.serialNumber,ti.tousseName,ti.price,egi.settledStatus,egi.status"; + */ + + String sql="select ip.serialNumber,ti.tousseName,ti.price " + +",amount, " + +" (select count(0) from expensivegoodsGodownentry eg join expensivegoodsGodownentryitem egi " + +"on eg.id=egi.expensivegoodsGodownentry_id " + +"where eg.invoiceplanid=ip.id and egi.expensiveGoodsId=ti.expensiveGoodsId " + +") stockAmount, " + +"( " + +"select count(0) from ExpensiveGoodsInstance egit where egit.invoiceplanid =ip.id and egit.expensiveGoods_id=ti.expensiveGoodsId and egit.userecordid is not null " + +") useAmount " + +", " + +"( " + +"select count(0) from ExpensiveGoodsInstance egit where egit.invoiceplanid =ip.id and egit.expensiveGoods_id=ti.expensiveGoodsId and egit.settledStatus='已结算' " + +") settleAmount " + +"from invoicePlan ip " + +"join ExpensiveGoodsApplication ega on ip.id=ega.id " + +"join TousseItem ti on ti.recyclingApplication_ID =ega.id " + +"left join ExpensiveGoodsInstance egi on egi.invoiceplanid =ega.id and egi.expensiveGoods_id=ti.expensiveGoodsId " + +"where ip.serialNumber="+serialNumber + +"group by ip.id,ti.expensiveGoodsId ,ip.serialNumber,ti.tousseName,ti.amount,ti.price "; + + + ResultSet rs = objectDao.executeSql(sql); + + try { + if (rs != null) { + while (rs.next()) { + ExpensiveGoodsItemVo vo = new ExpensiveGoodsItemVo(); + vo.setAmount(rs.getInt("amount")); + vo.setPrice(rs.getDouble("price")); + vo.setSerialNumber(serialNumber); + +// settledAmount stockAmount useAmount + vo.setSettleAmount(rs.getString("settleAmount")); + vo.setUseAmount(rs.getString("useAmount")); + vo.setStockAmount(rs.getInt("stockAmount")); + vo.setTousseName(rs.getString("tousseName")); + expensiveGoodsItemVoList.add(vo); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + + return expensiveGoodsItemVoList; + + + } + + + } Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js =================================================================== diff -u -r23404 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 23404) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 23447) @@ -1,6 +1,6 @@ var actionType; /** - * 添加申请单或者修改申请单(目前只有:“通用申请单”、“器械包申请单”、“敷料包申请单”、“消毒物品申请单”、“一次性物品申请单”、“专科器械申请单”这六种申请单会调用处方法). + * 添加申请单或者修改申请单(目前只有:“通用申请单”、“器械包申请单”、“敷料包申请单”、“消毒物品申请单”、“一次性物品申请单”、“专科器械申请单”这六种申请单会调用此方法). * @param id 申请单id * @param deptCoding 申请科室的科室编码(如果是添加则是登录用户的当前科室编码) * @param depart 申请科室的科室名称(如果是添加则是登录用户的当前科室名称) Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/expensiveGoodsApplication/expensiveGoodsApplicationView.js =================================================================== diff -u -r22371 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/expensiveGoodsApplication/expensiveGoodsApplicationView.js (.../expensiveGoodsApplicationView.js) (revision 22371) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/expensiveGoodsApplication/expensiveGoodsApplicationView.js (.../expensiveGoodsApplicationView.js) (revision 23447) @@ -242,8 +242,18 @@ Ext4.onReady(function() { + + Ext4.tip.QuickTipManager.init(); + Ext4.apply(Ext4.tip.QuickTipManager.getQuickTip(), { + maxWidth: 1200, + minWidth: 100, + dismissDelay: 0, + showDelay: 0 + }); + //top.Ext4.tip.QuickTipManager.init(); + var columns = [{ - header: '流水号', dataIndex: 'serialNumber', width: 100, filterable: true, filter: {type: 'string'}, + header: '申请单号', dataIndex: 'serialNumber', width: 100, filterable: true, filter: {type: 'string'}, renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { if (SSTS_ExpensiveGoodsApplication_Update) { return value; @@ -254,15 +264,38 @@ } },{ header: '申请科室', dataIndex: 'depart', width: 150, filterable: true, filter: {type: 'string'} - },{ + }, + /*simon----update:隐藏'结算科室','处理科室' 字段 2018-05-23 + { header: '结算科室', dataIndex: 'settleAccountsDepart', width: 150, filterable: true, filter: {type: 'string'} },{ header: '处理科室', dataIndex: 'handleDepart', width: 150, filterable: true, filter: {type: 'string'} - },{ + }, + */ + { header: '申请人', dataIndex: 'applicant', width: 70, filterable: true, filter: {type: 'string'} - },{ + }, + { header: '申请时间', dataIndex: 'applicationTime', width: 130, filterable: true, filter: {type: 'date'}, renderer: rendererTime + }, + /**simon------------------- + * update:增加病人姓名、住院号、医生、手术时间、审批状态、审批处理人 字段 2018-05-23 + */ + { + header: '病人姓名', dataIndex: 'patient', width: 80, filterable: true, filter: {type: 'string'} },{ + header: '住院号', dataIndex: 'hospitalNumber', width: 50, filterable: true, filter: {type: 'string'} + },{ + header: '医生', dataIndex: 'doctor', width: 50, filterable: true, filter: {type: 'string'} + },{ + header: '手术时间', dataIndex: 'operationTime', width: 90, filterable: true, filter: {type: 'date'}, renderer: rendererTime + },{ + header: '当前审批环节', dataIndex: 'taskName', width: 130, filterable: true, filter: {type: 'string'} + },{ + header: '审批处理人', dataIndex: 'handler', width: 80, filterable: true, filter: {type: 'string'} + }, + //update end--------------- + { header: '最后修改时间', dataIndex: 'submitTime', width: 130, filterable: true, filter: {type: 'date'}, renderer: rendererTime },{ header: '已提交', dataIndex: 'committedStatus', width: 50, renderer: function(value, metaData, record, rowIndex, colIndex, store, view) { @@ -275,9 +308,14 @@ } return "

" + status + "

"; } - },{ + }, + + /*simon----update:隐藏'发货状态'字段 2018-05-23 + { header: '发货状态', dataIndex: 'deliverStatus', width: 70, filterable: true, filter: {type: 'string'} - },{ + }, + */ + { header: '终止状态', dataIndex: 'endStatus', width: 70, filterable: true, filter: {type: 'string'}, renderer: rendereRendStatus },{ header: '备注', dataIndex: 'remark', width: 300, filterable: true, filter: {type: 'string'} @@ -293,7 +331,27 @@ name : 'handleDepart', mapping : 'handleDepart' },{ name : 'applicant', mapping : 'applicant' + }, + + { + name : 'patient', mapping : 'patient' + }, + { + name : 'hospitalNumber', mapping : 'hospitalNumber' },{ + name : 'doctor', mapping : 'doctor' + },{ + name : 'operationTime', mapping : 'operationTime' + },{ + name : 'taskName', mapping : 'taskName' + },{ + name : 'handler', mapping : 'handler' + }, + + /**simon + * update end + */ + { name : 'applicationTime', mapping : 'applicationTime' },{ name : 'submitTime', mapping : 'submitTime' @@ -338,12 +396,76 @@ tbar: tbar, sorters : {property : 'applicationTime', direction: 'DESC'}, extraParams : {}, //如果你要自定义参数,这里一定要先给一个空的对象,要不然会报空异常 - showRightClick : false + showRightClick : false, }); + var viewport = Ext4.create('Ext4.Viewport', { layout : 'fit', items : grid }); +/**simon + * update:鼠标悬停展示详细列表内容功能 2018-05-23 + */ + var tableContent; + grid.on('itemmouseenter',function(t,record,item,index,e,eOpts){ + + tableContent=record.data['htmlContent']; + if(!tableContent){ + tableContent="" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +""; + +// settledAmount stockAmount useAmount + //获取数据源 + var serialNumber=record.data['serialNumber']; + DWREngine.setAsync(false); + //DWR取后台值。 + Ext4.Ajax.request({ + url : WWWROOT + '/disinfectSystem/expensivegoodsapplication/expensiveGoodsApplicationAction!loadExpensiveGoodsListBySerialNumber.do', + params : {'serialNumber':serialNumber}, + timeout : 600000, + async: false, + success : function(response, options) { + var result = Ext4.JSON.decode(response.responseText); + //遍历result + for(var i=0;i" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +""; + } + tableContent=tableContent+"
申请单号物品名称单价申请数量已入库数量使用数量结算数量
"+result[i].serialNumber+""+result[i].tousseName+""+result[i].price+""+result[i].amount+""+result[i].stockAmount+""+result[i].useAmount+""+result[i].settleAmount+"
"; + }, + failure : function(response, opts) { + showResult(response.responseText); + } + }); + +//{"stockAmount":65,"amount":25,"serialNumber":"180526005","price":2800,"settledStatus":"已结算","tousseName":"外周球囊扩张导管(商品名:Admiral Xtreme)","status":"已入库"} + DWREngine.setAsync(true); + record.set("htmlContent",tableContent); + } + e.getTarget().setAttribute('data-qtip', tableContent); + e.getTarget().setAttribute('data-qtitle', ' 申请物品列表:'); + }); + + + + + + }); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r22984 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 22984) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 23447) @@ -750,6 +750,7 @@ //外来器械申请时是否显示原始包定义(如果为true显示原始,否则显示最近一次申请的) var isShowForeignTousseAncestorDefinitionForApply = getObjValueFromJs('sstsConfig.isShowForeignTousseAncestorDefinitionForApply',false); + //外来器械包的store var foreignTousseJsonStore = new Ext4.data.Store({ proxy : { @@ -788,7 +789,7 @@ } }); - + /** * 常用医生的store */ @@ -846,7 +847,7 @@ } }); - + //供应室的store var foldersCompanyJsonStore = new Ext4.data.Store({ proxy : { @@ -1458,6 +1459,7 @@ ] }); + //处理方式的store var processTypeJsonStore = new Ext4.data.Store({ fields : [ 'typeName' ], Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionForm.js =================================================================== diff -u -r22632 -r23447 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionForm.js (.../foreignProxyDisinfectionForm.js) (revision 22632) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/foreignProxyDisinfectionForm.js (.../foreignProxyDisinfectionForm.js) (revision 23447) @@ -210,15 +210,13 @@ fields : [ 'typeName' ], url : WWWROOT + '/disinfectSystem/baseData/expirationDateInfoAction!getPackageType.do' }); - foreignItemStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/foreignProxyDisinfectionAction!loadForeignItemsById.do', method : 'POST' }), reader : foreignProxyJsonReader }); - var departUsersStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/systemmanage/user/userAction!loadUsersBySearchString.do', Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/service/ExpensiveGoodsApplicationManager.java =================================================================== diff -u -r23167 -r23447 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/service/ExpensiveGoodsApplicationManager.java (.../ExpensiveGoodsApplicationManager.java) (revision 23167) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/service/ExpensiveGoodsApplicationManager.java (.../ExpensiveGoodsApplicationManager.java) (revision 23447) @@ -7,6 +7,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoodsGodownEntry; import com.forgon.disinfectsystem.entity.expensivegoodsapplication.ExpensiveGoodsApplication; +import com.forgon.disinfectsystem.vo.ExpensiveGoodsItemVo; import com.forgon.tools.hibernate.BasePoManager; import com.forgon.workflow.vo.WorkFlowApprovalTaskVO; /** @@ -90,4 +91,13 @@ */ public void changeExpensiveGoodsEntryType(ExpensiveGoodsGodownEntry egEntry); + + /**simon 2018-05-24 + * operating:update + * introduce:根据流水号查询 高值耗材申请单详情 + * positon:’高值耗材管理'栏-->'高值耗材申请单'页面-->列表内容鼠标悬停显示详情 + * content:申请单号、物品名称、单价、数量、入库数量、使用状态、结算状态 + */ + List loadExpensiveGoodsListBySerialNumber(String serialNumber); + } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/action/ExpensiveGoodsApplicationAction.java =================================================================== diff -u -r23306 -r23447 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/action/ExpensiveGoodsApplicationAction.java (.../ExpensiveGoodsApplicationAction.java) (revision 23306) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/expensivegoodsapplication/action/ExpensiveGoodsApplicationAction.java (.../ExpensiveGoodsApplicationAction.java) (revision 23447) @@ -17,10 +17,12 @@ import com.forgon.disinfectsystem.entity.expensivegoodsapplication.ExpensiveGoodsApplication; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.expensivegoodsapplication.service.ExpensiveGoodsApplicationManager; +import com.forgon.disinfectsystem.vo.ExpensiveGoodsItemVo; import com.forgon.entity.ExtJsEntity; import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.ExtJsUtil; @@ -44,6 +46,7 @@ private ExpensiveGoodsApplication expensiveGoodsApplication; private ExtGridUtils extGridUtils; private ExpensiveGoodsApplicationManager expensiveGoodsApplicationManager; + private InitDbConnection dbConnection; public void setExtGridUtils(ExtGridUtils extGridUtils) { this.extGridUtils = extGridUtils; @@ -58,7 +61,7 @@ public ExpensiveGoodsApplication getModel() { return expensiveGoodsApplication; } - + @Override public void prepare() throws Exception { Long id = StrutsParamUtils.getPraramLongValue("id", 0L); @@ -79,15 +82,34 @@ String userFullName = loginUserData.getUserFullName(); String loginUserSql = String.format(" and ((ip.handleDepartCoding = '%s' and ip.committedStatus = 1) or ip.departCoding = '%s' or ip.applicant='%s') ", currentOrgUnitCode, currentOrgUnitCode, userFullName); + String firstBarcodeSql = "select case when wt.status = '1' then wt.handler else (select fullname from ss_users where id=wt.userid) end " + +"from WorkFlowApprovalTask wt " + + "where wt.formid=ip.id and createtasktime=(select max(createtasktime) from WorkFlowApprovalTask wt where wt.formid=ip.id)"; + + String select = "select ("+ firstBarcodeSql+ ") handler, " + + "case when ip.processstatus = '已结束' then '已完成审批' else ip.currentNodeDefinitionName end taskName, " + + "ip.id,ip.patient,ip.hospitalNumber, " + + "ega.doctor,ega.operationTime, " + + "ip.processStatus,ip.serialNumber,ip.depart,ip.settleAccountsDepart,ip.handleDepart,ip.applicant,ip.applicationTime, " + + "ip.submitTime,ip.committedStatus,ip.deliverStatus,ip.endStatus,ip.remark "; - String select = "select ip.id,ip.serialNumber,ip.depart,ip.settleAccountsDepart,ip.handleDepart,ip.applicant,ip.applicationTime," - + "ip.submitTime,ip.committedStatus,ip.deliverStatus,ip.endStatus,ip.remark "; - String where = String.format("from ExpensiveGoodsApplication ega join InvoicePlan ip on ip.id=ega.id where 1=1 %s", loginUserSql); + String where = String.format("from invoiceplan ip join expensivegoodsapplication ega on ip.id=ega.id where 1=1 %s ", loginUserSql); ExtJsEntity entity = ExtJsUtil.buildSQLEntity(select, where, ""); JSONObject result = extGridUtils.getPagedResult(entity); StrutsResponseUtils.output(result); } + /**simon 2018-05-24 + * operating:update + * introduce:根据流水号查询 高值耗材申请单详情 + * positon:’高值耗材管理'栏-->'高值耗材申请单'页面-->列表内容鼠标悬停显示详情 + * content:申请单号、物品名称、单价、数量、入库数量、使用状态、结算状态 + */ + public void loadExpensiveGoodsListBySerialNumber() { + String serialNumber=StrutsParamUtils.getPraramValue("serialNumber", ""); + List expensiveGoodsItemVoList=expensiveGoodsApplicationManager.loadExpensiveGoodsListBySerialNumber(serialNumber); + StrutsResponseUtils.output(JSONArray.fromObject(expensiveGoodsItemVoList).toString()); + } /** * 保存或者修改高值耗材申请单. @@ -118,7 +140,6 @@ } else { StrutsResponseUtils.output(JSONUtil.buildJsonObject(false, "申请项不能为空!")); } - } @@ -265,5 +286,13 @@ } } } - + + public InitDbConnection getDbConnection() { + return dbConnection; + } + + public void setDbConnection(InitDbConnection dbConnection) { + this.dbConnection = dbConnection; + } + } Index: ssts-zd5y-misc/src/main/java/com/forgon/disinfectsystem/sso/cas/client/filter/UsernamePasswordAuthenticationForCasFilter.java =================================================================== diff -u -r16481 -r23447 --- ssts-zd5y-misc/src/main/java/com/forgon/disinfectsystem/sso/cas/client/filter/UsernamePasswordAuthenticationForCasFilter.java (.../UsernamePasswordAuthenticationForCasFilter.java) (revision 16481) +++ ssts-zd5y-misc/src/main/java/com/forgon/disinfectsystem/sso/cas/client/filter/UsernamePasswordAuthenticationForCasFilter.java (.../UsernamePasswordAuthenticationForCasFilter.java) (revision 23447) @@ -43,7 +43,6 @@ public UsernamePasswordAuthenticationForCasFilter() { super(DEFAULT_FILTER_PROCESSES_URL); } - @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException,