Index: ssts-web/src/main/webapp/disinfectsystem/config/hbsxkyy/config.js =================================================================== diff -u -r28516 -r28520 --- ssts-web/src/main/webapp/disinfectsystem/config/hbsxkyy/config.js (.../config.js) (revision 28516) +++ ssts-web/src/main/webapp/disinfectsystem/config/hbsxkyy/config.js (.../config.js) (revision 28520) @@ -147,5 +147,7 @@ //保存并新建回收单时自动加载上次的清洗篮筐 loadWashBasketsAfterSaveAndCreateNewRecyclingRecord:true, //启用回收物品列表按入筐状态排序优化 - enableSortWaitRecyclingListByIntoBasketStatus:true + enableSortWaitRecyclingListByIntoBasketStatus:true, + //装配人与审核人是否相同的检查方式,值为1:相同时只进行提示,让用户选择是否继续操作。用户选择【是】,则进行下一步操作;选择【否】,则取消本次操作, 值为2:相同时进行提示,并且不允许进行下一步操作。值为其它或者没有配置:不进行检查和提示。 + operatorAndReviewerIsSameCheckMode:2 } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js =================================================================== diff -u -r28391 -r28520 --- ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js (.../reviewView.js) (revision 28391) +++ ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js (.../reviewView.js) (revision 28520) @@ -794,7 +794,9 @@ var sterileStartDate = records[i].data['sterileStartDate']; var packageType = records[i].data['packageType']; var isUrgentTousse = records[i].data['isUrgentTousse']; - var urgentLevel = records[i].data['urgentLevel']; + var urgentLevel = records[i].data['urgentLevel']; + var operator = records[i].data['operator']; + var reviewer = records[i].data['reviewer']; var store = Ext.getCmp('forReviewGrid').getStore(); if(isExistRecord(store,'id',tousseId)){ continue; @@ -813,7 +815,9 @@ packageType: packageType, virtualBasketSeqNum:virtualBasketSeqNum, isUrgentTousse: isUrgentTousse, - urgentLevel: urgentLevel + urgentLevel: urgentLevel, + operator: operator, + reviewer:reviewer }); Ext.getCmp('forReviewGrid').getStore().insert(0,tousseInstance); speakBasket.addGoods('',tousseName,1); @@ -890,6 +894,63 @@ }); DWREngine.setAsync(true); +function confirmReview(tousseIds,basketBarcode,basketName,reviewer,reviewerCode,sterileDate,confirmation){ + var waitingBox = Ext.Msg.wait("正在处理,请稍候..."); + Ext.Ajax.request({ + timeout :60000,//超时时间1min + url : WWWROOT + '/disinfectSystem/tousseInstanceAction!reviewTousseInstance.do', + params : {ids : tousseIds,'basketBarcode' : basketBarcode,'basketName' : basketName,'taskGroup' : $Id('parm_s_taskGroup').value, + 'reviewer':reviewer,'reviewerCode':reviewerCode,'sterileDate':sterileDate.getTime(),websocketSessionId : getWebsocketSessionId(), + 'confirmation':confirmation + }, + success : function(response, options) { + if(waitingBox.isVisible()){ + waitingBox.hide(); + } + + var result = Ext.decode(response.responseText); + showResult(result.message , null , sstsConfig.messagePauseTimeOnReviewPage); + if (result.success){ + // 审核时打印标签,printLabelWhenReviewing为true并且没有配置printLabelWhenSterilizing为true + if (sstsConfig.printLabelWhenReviewing == true && !sstsConfig.printLabelWhenSterilizing){ + var tousses = result.tousses; + var printGroupType = Ext.getCmp('printGroupType').getValue(); + var cfg = createPrintLabelsConfig(printGroupType); + doPrintLabels(tousses,cfg); + } + store.loadData(myData); + //待审核列表刷新 + grid.dwrReload(); + //审核统计刷新 + reviewedChartPanelStore.reload(); + //已审核列表清空 + forReviewGrid.getStore().removeAll(); + clearBarcodeAndBasketName(); + clearReviewInfoByConfig(); + onScannedTousseAmountChanged();// 待审核包数量数量变化处理 + Ext.getCmp('barcode').focus(); + } + }, + failure : function(response, options) { + if(waitingBox.isVisible()){ + waitingBox.hide(); + } + var result = Ext.decode(response.responseText); + if(result && result.message){ + showResult(result.message , null , sstsConfig.messagePauseTimeOnReviewPage); + }else{ + showResult("连接失败" , null , sstsConfig.messagePauseTimeOnReviewPage); + } + } + }); +} +function getSameTousseNames(sameTousseNames,reviewer,operator,data){ + if(reviewer == operator){ + sameTousseNames.push(data); + } + return sameTousseNames; +} + function reviewTousse(basketName,basketBarcode){ // var basketName = Ext.getCmp('basketName').getValue(); // 如果是一级供应室用户,并且需要入筐;或者是二级供应室用户,并且需要入筐 @@ -955,60 +1016,66 @@ } Ext.MessageBox.confirm("请确认",confirmMessage,function(btn) { if(btn=='yes') { - var waitingBox = Ext.Msg.wait("正在处理,请稍候..."); var reviewer = Ext.getCmp('reviewer').getValue(); var reviewerCode = Ext.getCmp('reviewerCode').getValue(); var sterileDate = Ext.getCmp('sterileDate').getValue(); if(isUndefinedOrNullOrEmpty(sterileDate)){ sterileDate = new Date(); } - Ext.Ajax.request({ - timeout :60000,//超时时间1min - url : WWWROOT + '/disinfectSystem/tousseInstanceAction!reviewTousseInstance.do', - params : {ids : tousseIds,'basketBarcode' : basketBarcode,'basketName' : basketName,'taskGroup' : $Id('parm_s_taskGroup').value, - 'reviewer':reviewer,'reviewerCode':reviewerCode,'sterileDate':sterileDate.getTime(),websocketSessionId : getWebsocketSessionId()}, - success : function(response, options) { - if(waitingBox.isVisible()){ - waitingBox.hide(); - } - - var result = Ext.decode(response.responseText); - showResult(result.message , null , sstsConfig.messagePauseTimeOnReviewPage); - if (result.success){ - // 审核时打印标签,printLabelWhenReviewing为true并且没有配置printLabelWhenSterilizing为true - if (sstsConfig.printLabelWhenReviewing == true && !sstsConfig.printLabelWhenSterilizing){ - var tousses = result.tousses; - var printGroupType = Ext.getCmp('printGroupType').getValue(); - var cfg = createPrintLabelsConfig(printGroupType); - doPrintLabels(tousses,cfg); + + //HBSXKYY-9 增加装配人与审核人是否相同的检查 + if(sstsConfig.operatorAndReviewerIsSameCheckMode){ + var store = Ext.getCmp('forReviewGrid').getStore(); + var tousseCount = store.getCount(); + var sameTousseNames = [];//装配人和审核人相同的包名 + for(var i = 0;i < tousseCount;i++){ + var reviewerRow = store.getAt(i).data.reviewer; + var operator = store.getAt(i).data.operator; + + if(reviewer == ""){//审核模块扫的审核人为空 + if(reviewerRow != ""){//当前包上有审核人,取当前包上的审核人比较 + sameTousseNames = getSameTousseNames(sameTousseNames,reviewerRow,operator,store.getAt(i).data.tousseDefinitionName); + }else{//取登录用户作为审核人 + sameTousseNames = getSameTousseNames(sameTousseNames,userName,operator,store.getAt(i).data.tousseDefinitionName); } - store.loadData(myData); - //待审核列表刷新 - grid.dwrReload(); - //审核统计刷新 - reviewedChartPanelStore.reload(); - //已审核列表清空 - forReviewGrid.getStore().removeAll(); - clearBarcodeAndBasketName(); - clearReviewInfoByConfig(); - onScannedTousseAmountChanged();// 待审核包数量数量变化处理 - Ext.getCmp('barcode').focus(); + }else{//否则不为空,去审核模块的审核人比较 + sameTousseNames = getSameTousseNames(sameTousseNames,reviewer,operator,store.getAt(i).data.tousseDefinitionName); } - }, - failure : function(response, options) { - if(waitingBox.isVisible()){ - waitingBox.hide(); + + } + if(sameTousseNames.length > 0){ + var tipsTousseNames = sameTousseNames.join("、"); + if(sameTousseNames.length > 5){ + var sameTousseNamesSplice = sameTousseNames.slice(0,5); + tipsTousseNames = sameTousseNamesSplice.join("、")+"......"; } - var result = Ext.decode(response.responseText); - if(result && result.message){ - showResult(result.message , null , sstsConfig.messagePauseTimeOnReviewPage); - }else{ - showResult("连接失败" , null , sstsConfig.messagePauseTimeOnReviewPage); - } + //值为1:相同时让用户选择是否继续操作并且提示信息,用户选择【是】,则进行下一步操作;选择【否】,则取消本次操作。 + if(sstsConfig.operatorAndReviewerIsSameCheckMode == 1){ + var tipsMsg = "所审核的如下物品的装配人和审核人相同,是否继续操作?
"+tipsTousseNames; + Ext.MessageBox.confirm("请确认",tipsMsg,function(btn) { + if(btn=='yes') { + confirmReview(tousseIds,basketBarcode,basketName,reviewer,reviewerCode,sterileDate,true); + } + }) + }else if(sstsConfig.operatorAndReviewerIsSameCheckMode == 2){//值为2:相同时进行提示,并且不允许进行下一步操作再提示信息 + var tipsMsg = "所审核的如下物品的装配人和审核人相同,请更换人员!
"+tipsTousseNames; + Ext.Msg.show({ + title: '提示', + msg: tipsMsg, + buttons: Ext.Msg.OK,// 指 确认按钮 + icon: Ext.Msg.ERROR // 错误标识 + }); + return; + } + }else{ + confirmReview(tousseIds,basketBarcode,basketName,reviewer,reviewerCode,sterileDate,""); } - }); + + }else{ + confirmReview(tousseIds,basketBarcode,basketName,reviewer,reviewerCode,sterileDate,""); } + } }); } @@ -1202,6 +1269,7 @@ {header : "装配时间",width : 105,dataIndex : 'operationTime', renderer : myDateFormatByMinute,sortable:false}, {header : "灭菌程序",width : 60,dataIndex : 'sterilingType',sortable:false}, {header : "灭菌方式",width : 60,dataIndex : 'sterilingMode',sortable:false}, + {header : "审核人",width : 10,dataIndex : 'reviewer',hidden : true}, {id:'operationRemark',header : "有效期至",width : 105,dataIndex : 'validUntil', renderer : myDateFormat,sortable:false} ]; @@ -1227,7 +1295,8 @@ {name : 'patientName'}, {name : 'treatmentNum'}, {name : 'hospitalNum'}, - {name : 'urgentLevel'} + {name : 'urgentLevel'}, + {name : 'reviewer'} ]; @@ -1611,6 +1680,8 @@ var obj = Ext.util.JSON.decode(jsonStr); var returnType = obj.returnType; var containerType = obj.containerType; + var operator = obj.operator; + var reviewer = obj.reviewer; if(returnType=="User"){ if(obj.success){ Ext.getCmp('reviewer').setValue(obj.fullName); @@ -1663,7 +1734,9 @@ sterilingMode:obj.sterilingMode, virtualBasketSeqNum:obj.virtualBasketSeqNum, urgentLevel:obj.urgentLevel, - isUrgentTousse:obj.isUrgentTousse + isUrgentTousse:obj.isUrgentTousse, + operator:operator, + reviewer:reviewer }); Ext.getCmp('forReviewGrid').getStore().insert(0,tousseInstance); clearScanText(); @@ -1697,7 +1770,9 @@ sterilingMode:tousseInstanceArray[i].sterilingMode, virtualBasketSeqNum:tousseInstanceArray[i].virtualBasketSeqNum, urgentLevel:tousseInstanceArray[i].urgentLevel, - isUrgentTousse:tousseInstanceArray[i].isUrgentTousse + isUrgentTousse:tousseInstanceArray[i].isUrgentTousse, + operator:tousseInstanceArray[i].operator, + reviewer:tousseInstanceArray[i].reviewer }); Ext.getCmp('forReviewGrid').getStore().insert(0,tousseInstance); @@ -1843,7 +1918,9 @@ packageType: tousseInstanceArray[i].packageType, sterileStartDate: tousseInstanceArray[i].sterileStartDate, sterilingMethod:tousseInstanceArray[i].sterilingMethod, - virtualBasketSeqNum:tousseInstanceArray[i].virtualBasketSeqNum + virtualBasketSeqNum:tousseInstanceArray[i].virtualBasketSeqNum, + operator:tousseInstanceArray[i].operator, + reviewer:tousseInstanceArray[i].reviewer }); speakBasket.addGoods('',tousseInstanceArray[i].tousseName,1); Ext.getCmp('forReviewGrid').getStore().insert(0,tousseInstance);