Index: ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js =================================================================== diff -u -r16089 -r16196 --- ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js (.../directPacking.js) (revision 16089) +++ ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js (.../directPacking.js) (revision 16196) @@ -155,8 +155,7 @@ barcodeField.setValue(); } - function printBarcode(barcodeStr,disinfectionDate,isTraceable,fixedBarcode,idCardDefinitionUseAmount){ - + function printBarcode(barcodeStr,virtualSeqNums,disinfectionDate,isTraceable,fixedBarcode,idCardDefinitionUseAmount){ var names = getPrintNames(isPrintUserFullName, Ext.getCmp('operator').getValue(), Ext.getCmp('reviewer').getValue(), Ext.getCmp('sterileUser').getValue(), Ext.getCmp('operatorCode').getValue(), Ext.getCmp('reviewerCode').getValue(),Ext.getCmp('sterileCode').getValue()); var printNum = Ext.getCmp('tempPrintNum').getValue();//打印张数 @@ -186,11 +185,13 @@ closable:false }); var barcodeArray = barcodeStr.split(";"); + var virtualSeqNumsArray = virtualSeqNums.split(";"); for ( var i = 0; i < barcodeArray.length; i++) { var barcodeItem = barcodeArray[i].split(":"); var toussName = barcodeItem[0]; var barcode = barcodeItem[1]; var barocdeArray = barcode.split(","); + var virtualSeqNumArray = virtualSeqNumsArray[i].split(","); for ( var j = 0; j < barocdeArray.length; j++) { top.Ext.MessageBox.updateProgress((j + 1)/barocdeArray.length,'正在打印第' + (j + 1) + '个,共' + barocdeArray.length + '个'); var tempPrintNum = printNum; @@ -221,6 +222,7 @@ 'idCardDefinitionUseAmount':idCardDefinitionUseAmount,'packageTypeAbbreviation':packageTypeAbbreviation}; obj.sterilizerName = sterilizer; obj.sterileFrequency = frequency; + obj.virtualBasketSeqNum = virtualSeqNumArray[i]; obj.department = department; //自定义装配时,如果所选科室有值,则默认为要打印科室,无论包定义设置是否打印科室 if(obj.department){ @@ -625,6 +627,11 @@ name : 'departCoding', value : wrapperCode },{ + xtype : 'hidden', + id : 'continueOnVirtualBasketInsufficient', + name : 'continueOnVirtualBasketInsufficient', + value : '' + },{ columnWidth : .33, layout : 'form', cls:'edit-5char-labelwidth', @@ -1085,112 +1092,140 @@ buttons : [{ text : '装配并打印标签', handler : function() { - if (!formObj.form.isValid()) { - showResult('请正确填写表单各值'); - this.enable(); - return false; - } - - if(Ext.getCmp('isThereIdentificationCard').getValue() == '是' && Ext.getCmp('idCardBarcode').getValue() == ''){ - showResult('该器械包需要扫描标识牌条码'); - this.enable(); - return false; - } - - var packageType = Ext.getCmp("packageType").getValue(); - //灭菌程序 - var sterilingType = Ext.getCmp("sterilingType").getValue(); - //器械包 - var tousseName = Ext.getCmp("tousseName").getValue(); - //灭菌炉 -// var sterilizer = Ext.getCmp("sterilizer").getValue(); - //灭菌日期 - var disinfectionDate = Ext.getCmp("disinfectionDate").getValue(); - - - DWREngine.setAsync(false); - var bool = true; - var expirationDate = null; - ExpirationDateInfoTableManager.getExpirationDate(disinfectionDate,packageType,function(result){ - var json = JSON.parse(result); - if(!json.isDefined){ - showResult("此包装类型没有对应的物品失效期设置,请先为该包装类型增加失效期定义!"); - bool = false; - }else{ - expirationDate = json.expirationDate; - } - }); - - DWREngine.setAsync(true); - if(!bool){ - return bool; - } - - /*if('消毒物品' != Ext.getCmp('tempTousseType').getValue()){ - DWREngine.setAsync(false); - //检测灭菌炉里是否有该灭菌程序 - SterilizationRecordTableManager.testSterilizerHasSterilisationName("", sterilingType,function(isExist){ - if(!isExist){ - showResult('在灭菌炉【'+sterilizer+'】里找不到名为“'+sterilingType+'”的灭菌程序!'); - bool = false; - } - }); - DWREngine.setAsync(true); - if(!bool){ - return bool; - } - }*/ - - formObj.form.submit({ - url : WWWROOT + '/disinfectSystem/packingAction!packingWithoutTask.do', - method : 'POST', - timeout : 1800000, // 单位为毫秒,设定超时时间为30分钟 - waitMsg : '正在后台进行处理,请稍候', - waitTitle : '提交表单', - success : function(form, action) { - if(!action.result.success){ - showResult(action.result.message); - return; - } - showResult('保存成功'); - var isPrint = action.result.isPrint; - var isTraceable = action.result.isTraceable; - var fixedBarcode = action.result.fixedBarcode; - var idCardDefinitionUseAmount = action.result.idCardDefinitionUseAmount; - - //此处改为不管器械包定义是否打印,都打印标签 - /*if(isPrint){*/ - if(action.result.isDisinfection){//是否为消毒物品 - printBarcodeOfDisinfection(action.result.barcode, action.result.disinfectionItem,isTraceable,fixedBarcode,expirationDate,action.result.packageTypeAbbreviation); - }else{ - printBarcode(action.result.barcode,disinfectionDate,isTraceable,fixedBarcode,idCardDefinitionUseAmount); - } - /*}else{ - showResult("此器械包不打印标签!"); - }*/ - Ext.getCmp('tousseName').setValue(); - Ext.getCmp('tempTousseType').setValue(); - Ext.getCmp('packAmount').setValue(); - Ext.getCmp('packAmount').enable(); -// Ext.getCmp('frequency').setValue(); -// Ext.getCmp('sterilizer').setValue(); - Ext.getCmp('idCardBarcode').setValue(); - Ext.getCmp('idCardName').setValue(); - Ext.getCmp('disinfectionDate').setValue(); - recordGrid.store.reload(); - }, - failure : function(form, action) { - if(!isUndefinedOrNullOrEmpty(action.result.message)){ - showResult(action.result.message); - }else{ - MsgTip.msg('错误信息', action.failureType,true,3); - } - } - }); + submitPacking(''); } }] }); +function submitPacking(continueOnVirtualBasketInsufficient){ + + if (!formObj.form.isValid()) { + showResult('请正确填写表单各值'); + this.enable(); + return false; + } + + if(Ext.getCmp('isThereIdentificationCard').getValue() == '是' && Ext.getCmp('idCardBarcode').getValue() == ''){ + showResult('该器械包需要扫描标识牌条码'); + this.enable(); + return false; + } + + Ext.getCmp("continueOnVirtualBasketInsufficient").setValue(continueOnVirtualBasketInsufficient); + + var packageType = Ext.getCmp("packageType").getValue(); + //灭菌程序 + var sterilingType = Ext.getCmp("sterilingType").getValue(); + //器械包 + var tousseName = Ext.getCmp("tousseName").getValue(); + //灭菌炉 +// var sterilizer = Ext.getCmp("sterilizer").getValue(); + //灭菌日期 + var disinfectionDate = Ext.getCmp("disinfectionDate").getValue(); + + + DWREngine.setAsync(false); + var bool = true; + var expirationDate = null; + ExpirationDateInfoTableManager.getExpirationDate(disinfectionDate,packageType,function(result){ + var json = JSON.parse(result); + if(!json.isDefined){ + showResult("此包装类型没有对应的物品失效期设置,请先为该包装类型增加失效期定义!"); + bool = false; + }else{ + expirationDate = json.expirationDate; + } + }); + + DWREngine.setAsync(true); + if(!bool){ + return bool; + } + + /*if('消毒物品' != Ext.getCmp('tempTousseType').getValue()){ + DWREngine.setAsync(false); + //检测灭菌炉里是否有该灭菌程序 + SterilizationRecordTableManager.testSterilizerHasSterilisationName("", sterilingType,function(isExist){ + if(!isExist){ + showResult('在灭菌炉【'+sterilizer+'】里找不到名为“'+sterilingType+'”的灭菌程序!'); + bool = false; + } + }); + DWREngine.setAsync(true); + if(!bool){ + return bool; + } + }*/ + + formObj.form.submit({ + url : WWWROOT + '/disinfectSystem/packingAction!packingWithoutTask.do', + method : 'POST', + timeout : 1800000, // 单位为毫秒,设定超时时间为30分钟 + waitMsg : '正在后台进行处理,请稍候', + waitTitle : '提交表单', + success : function(form, action) { + var result = action.result; + if(!action.result.success){ + if(result.errType == '虚拟篮筐数量不足'){ + Ext4.MessageBox.confirm("请确认", result.message, + function(btn) { + if (btn == 'yes') { + submitPacking('true'); + } + }); + }else{ + showResult(action.result.message); + } + return; + } + showResult('保存成功'); + var isPrint = action.result.isPrint; + var isTraceable = action.result.isTraceable; + var fixedBarcode = action.result.fixedBarcode; + var idCardDefinitionUseAmount = action.result.idCardDefinitionUseAmount; + + //此处改为不管器械包定义是否打印,都打印标签 + /*if(isPrint){*/ + if(action.result.isDisinfection){//是否为消毒物品 + printBarcodeOfDisinfection(action.result.barcode, action.result.disinfectionItem,isTraceable,fixedBarcode,expirationDate,action.result.packageTypeAbbreviation); + }else{ + printBarcode(action.result.barcode,action.result.virtualSeqNums,disinfectionDate,isTraceable,fixedBarcode,idCardDefinitionUseAmount); + } + /*}else{ + showResult("此器械包不打印标签!"); + }*/ + Ext.getCmp('tousseName').setValue(); + Ext.getCmp('tempTousseType').setValue(); + Ext.getCmp('packAmount').setValue(); + Ext.getCmp('packAmount').enable(); +// Ext.getCmp('frequency').setValue(); +// Ext.getCmp('sterilizer').setValue(); + Ext.getCmp('idCardBarcode').setValue(); + Ext.getCmp('idCardName').setValue(); + Ext.getCmp('disinfectionDate').setValue(); + recordGrid.store.reload(); + }, + failure : function(form, action) { + var result = action.result; + if(!isUndefinedOrNullOrEmpty(result)){ + if(result.errType == '虚拟篮筐数量不足'){ + Ext4.MessageBox.confirm("请确认", result.message, + function(btn) { + if (btn == 'yes') { + submitPacking('true'); + } + }); + return; + } + } + if(!isUndefinedOrNullOrEmpty(action.result.message)){ + showResult(action.result.message); + }else{ + MsgTip.msg('错误信息', action.failureType,true,3); + } + } + }); +} var viewport = new Ext.Viewport({ id : 'viewportID', layout : 'border',