Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r16276 -r16285 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 16276) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 16285) @@ -1228,222 +1228,20 @@ id :"save_print", text:'' + packingBtnText + '', handler : function() { - - packingToussesArray = []; // 清除所装配的器械包数组 - packedToussesArray = []; - tousseesToPrint = []; - - // 首先处理标识牌的打印 - var scanScanIDCardBarcode = Ext4.getCmp('scanIdCardBarcode'); - if(scanScanIDCardBarcode.isVisible(true)){ - printIDCardTousse(); - return; - } - - if(!validateFormParamsForPack()){ - return; - } - - var basketTree = Ext4.getCmp('basketTreeGrid'); - var waitPackingTreeGrid = Ext4.getCmp('waitPackingTreeGrid'); - var selNodes = basketTree.getView().getChecked(); - var selLength = selNodes.length; - if(selLength > 0){ - //格式[{tousseName:"",amount:1,packed:true,taskItems:[{taskId:11,amount:20},{taskId:12,amount:30}]},{tousseName:"",amount:1,packed:true,taskItems:[{taskId:11,amount:20},{taskId:12,amount:30}]}] - var delBasketItems = new Array(); - //遍历器械包节点 - Ext4.each(selNodes, function(pNode){ - var pTousseName = pNode.get('tousseName'); - var haveIDCard = pNode.get('haveIDCard'); - // 跳过有标识牌的器械包 - if(haveIDCard){ - return; - } - //器械包装配数量 - var packingAmount = pNode.get('amount'); - if(packingAmount <= 0){ - return; - } - - //{tousseName:"",amount:1,packed:true,taskItems:[{taskId:11,amount:20},{taskId:12,amount:30}]} - var basketItem = {}; - basketItem.tousseName = pTousseName; - basketItem.amount = 0; - basketItem.packed = false; - var dl = delBasketItems.length; - delBasketItems[dl] = basketItem; - - var taskItemArray = new Array(); - basketItem.taskItems = taskItemArray; - - var taskIdArray = []; - var basketBarcode; - var tousseName; - var tousseType; - var packageType; - var sterilingType; - var supplierName; - var damages; - var errors; - var department; - var departmentArray = []; - var status; - //遍历器械包下的每条装配任务数据 - Ext4.each(pNode.childNodes,function(cNode){ - tousseName = cNode.get("tousseName"); - status = cNode.get("status"); - basketBarcode = cNode.get("basketBarcode"); - var taskId = cNode.get("taskId"); - - var amount = cNode.get("amount"); - if(amount > packingAmount){ - amount = packingAmount; - } - packageType = cNode.get("packageType"); - if(packageType == "" || selLength == 1){ - packageType = Ext4.getCmp('packageType').getValue(); - } - sterilingType = cNode.get("sterilingMethod"); - if(sterilingType == "" || selLength == 1){ - sterilingType = Ext4.getCmp('sterilingType').getValue(); - } - tousseType = cNode.get("tousseType"); - supplierName = cNode.get("supplierName"); - damages = cNode.get("damages"); - errors = cNode.get("errors"); - department = cNode.get("department"); - departmentArray.push(department); - - if(status == '待确认'){ - showResult(tousseName+",有器械丢失,请确认!"); - return; - } - - if(errors != null && errors.length > 0){ - showResult("材料缺失,不够组成器械包,请补充缺失器械!"); - return; - } - if(damages != null && damages.length > 0){ - showResult("材料已报损,不够组成器械包,请补充报损器械!"); - return; - } - - if(packingAmount > 0){ - taskIdArray.push(taskId); - packingAmount -= amount; - basketItem.amount += amount; - basketItem.packed = true; - var ti = taskItemArray.length; - taskItemArray[ti] = {}; - taskItemArray[ti].taskId = taskId; - taskItemArray[ti].amount = amount; - } - }); - if(packingAmount > 0){ - showResult(tousseName + "需装配数量已超过该器械包所有装配任务数量之和."); - delBasketItems.splice(dl,1);//删除 - return; - } - //请求后台装配方法 - packingTousse(false,basketBarcode,taskIdArray.join(";"),tousseName,tousseType,pNode.get('amount'),packageType,sterilingType,supplierName,departmentArray.join(";"),pNode.get('urgentAmount')); - }); - // 一次打印 - printLabelsAfterPacking(); - //删除篮筐内物品 - deleteBasketItems(delBasketItems); - //打印后去掉选中的钩 - if(selLength > 0){ - Ext4.each(selNodes, function(pNode){ - pNode.set("checked", false); - }); - } - //刷新待装配列表 - waitPackingTreeGrid.getStore().reload(); - }else{ - //不回收的物品 - var isShow = Ext4.getCmp('save_print').isVisible(); - if(isShow){ - //选择统计的敷料包选项全打印 - var selNodes = waitPackingTreeGrid.getView().getChecked(); - var selLength = selNodes.length; - Ext4.each(selNodes, function(pNode) { - if(pNode.get('taskType') == taskType_recyclingRecord){ - return true;//在each(jquery、ext都如此)循环中,return true表示continue,return false表示break - } - var packingAmount = pNode.get('amount'); - var urgentAmount = pNode.get("urgentAmount"); - - var taskIdArray = []; - var tousseName; - var tousseType; - var packageType; - var sterilingType; - var supplierName; - var department; - var departmentArray = []; - var status; - - Ext4.each(pNode.childNodes, function(cNode) { - if(packingAmount <= 0){ - return; - } - tousseName = cNode.get("tousseName"); - var haveIDCard = pNode.get('haveIDCard'); - // 跳过有标识牌的器械包 - if(haveIDCard){ - showResult("【"+tousseName+"】启用了标识牌,需扫描标识牌装配。或者禁用该器械包的标识牌后装配!"); - return; - } - var status = cNode.get("status"); - if(status == '待确认'){ - showResult("【"+tousseName+"】有器械丢失,请先确认!"); - return false; - } - var taskId = cNode.get("taskId"); - var amount = cNode.get("amount"); - if(amount > packingAmount){ - amount = packingAmount; - } - packageType = cNode.get("packageType"); - if(selLength == 1){ - packageType = Ext4.getCmp('packageType').getValue(); - } - sterilingType = cNode.get("sterilingMethod"); - if(selLength == 1){ - sterilingType = Ext4.getCmp('sterilingType').getValue(); - } - tousseType = cNode.get("tousseType"); - supplierName = cNode.get("supplierName"); - department = cNode.get("department"); - departmentArray.push(department); - - if(packingAmount > 0){ - taskIdArray.push(taskId); - packingAmount -= amount; - } - }); - - packingTousse(false,'',taskIdArray.join(";"),tousseName,tousseType,pNode.get('amount'),packageType,sterilingType,supplierName,departmentArray.join(";"),urgentAmount); - - }); - // 一次打印 - printLabelsAfterPacking(); - waitPackingTreeGrid.getStore().reload(); - }else{ - showResult('请选择要打印的行!'); - } - } - Ext4.getCmp('sterilingType').setValue(null); - Ext4.getCmp('packageType').setValue(null); - - //如果装配界面的配包/审核人是否默认为上一次装配的配包/审核人配置为false,则装配完后需要重新清空 - if(packingPageOperatorDefaultLastOperator == false){ - Ext4.getCmp('operator').setValue(''); - } - if(packingPageReviewerDefaultLastReviewer == false){ - Ext4.getCmp('reviewer').setValue(''); - } + packing = true; + packingTousseBtnClick(); } + }, + { + xtype:'button', + id :"packingLableBtn", +// hidden: !sstsConfig.showPackingGoodsBtn || sstsConfig.printLabelWhenReviewing, + hidden: !sstsConfig.showPackingGoodsBtn, + text:'' + '装配物品' + '', + handler : function() { + packing = false; + packingTousseBtnClick(); + } } ] }); @@ -1779,6 +1577,8 @@ function showPackButton(isPrint,isReview,tousseType){ var packButton = Ext4.getCmp('save_print'); packButton.show(); + var packingLableBtn = Ext4.getCmp('packingLableBtn'); + packingLableBtn.show(); if (isPrint == '是'){ packButton.setText('' + packingBtnText + ''); } @@ -2021,7 +1821,229 @@ return true; } +var packing = false; +// 装配按钮调用 +function packingTousseBtnClick(){ + if(packing){ + packingToussesArray = []; // 清除所装配的器械包数组 + packedToussesArray = []; + tousseesToPrint = []; + } + + + // 首先处理标识牌的打印 + var scanScanIDCardBarcode = Ext4.getCmp('scanIdCardBarcode'); + if(scanScanIDCardBarcode.isVisible(true)){ + printIDCardTousse(); + return; + } + + if(!validateFormParamsForPack()){ + return; + } + + var basketTree = Ext4.getCmp('basketTreeGrid'); + var waitPackingTreeGrid = Ext4.getCmp('waitPackingTreeGrid'); + var selNodes = basketTree.getView().getChecked(); + var selLength = selNodes.length; + if(selLength > 0){ + //格式[{tousseName:"",amount:1,packed:true,taskItems:[{taskId:11,amount:20},{taskId:12,amount:30}]},{tousseName:"",amount:1,packed:true,taskItems:[{taskId:11,amount:20},{taskId:12,amount:30}]}] + var delBasketItems = new Array(); + //遍历器械包节点 + Ext4.each(selNodes, function(pNode){ + var pTousseName = pNode.get('tousseName'); + var haveIDCard = pNode.get('haveIDCard'); + // 跳过有标识牌的器械包 + if(haveIDCard){ + return; + } + //器械包装配数量 + var packingAmount = pNode.get('amount'); + if(packingAmount <= 0){ + return; + } + + //{tousseName:"",amount:1,packed:true,taskItems:[{taskId:11,amount:20},{taskId:12,amount:30}]} + var basketItem = {}; + basketItem.tousseName = pTousseName; + basketItem.amount = 0; + basketItem.packed = false; + var dl = delBasketItems.length; + delBasketItems[dl] = basketItem; + + var taskItemArray = new Array(); + basketItem.taskItems = taskItemArray; + + var taskIdArray = []; + var basketBarcode; + var tousseName; + var tousseType; + var packageType; + var sterilingType; + var supplierName; + var damages; + var errors; + var department; + var departmentArray = []; + var status; + //遍历器械包下的每条装配任务数据 + Ext4.each(pNode.childNodes,function(cNode){ + tousseName = cNode.get("tousseName"); + status = cNode.get("status"); + basketBarcode = cNode.get("basketBarcode"); + var taskId = cNode.get("taskId"); + + var amount = cNode.get("amount"); + if(amount > packingAmount){ + amount = packingAmount; + } + packageType = cNode.get("packageType"); + if(packageType == "" || selLength == 1){ + packageType = Ext4.getCmp('packageType').getValue(); + } + sterilingType = cNode.get("sterilingMethod"); + if(sterilingType == "" || selLength == 1){ + sterilingType = Ext4.getCmp('sterilingType').getValue(); + } + tousseType = cNode.get("tousseType"); + supplierName = cNode.get("supplierName"); + damages = cNode.get("damages"); + errors = cNode.get("errors"); + department = cNode.get("department"); + departmentArray.push(department); + + if(status == '待确认'){ + showResult(tousseName+",有器械丢失,请确认!"); + return; + } + + if(errors != null && errors.length > 0){ + showResult("材料缺失,不够组成器械包,请补充缺失器械!"); + return; + } + if(damages != null && damages.length > 0){ + showResult("材料已报损,不够组成器械包,请补充报损器械!"); + return; + } + + if(packingAmount > 0){ + taskIdArray.push(taskId); + packingAmount -= amount; + basketItem.amount += amount; + basketItem.packed = true; + var ti = taskItemArray.length; + taskItemArray[ti] = {}; + taskItemArray[ti].taskId = taskId; + taskItemArray[ti].amount = amount; + } + }); + if(packingAmount > 0){ + showResult(tousseName + "需装配数量已超过该器械包所有装配任务数量之和."); + delBasketItems.splice(dl,1);//删除 + return; + } + //请求后台装配方法 + packingTousse(false,basketBarcode,taskIdArray.join(";"),tousseName,tousseType,pNode.get('amount'),packageType,sterilingType,supplierName,departmentArray.join(";"),pNode.get('urgentAmount')); + }); + // 一次打印 + printLabelsAfterPacking(); + //删除篮筐内物品 + deleteBasketItems(delBasketItems); + //打印后去掉选中的钩 + if(selLength > 0){ + Ext4.each(selNodes, function(pNode){ + pNode.set("checked", false); + }); + } + //刷新待装配列表 + waitPackingTreeGrid.getStore().reload(); + }else{ + //不回收的物品 + var isShow = Ext4.getCmp('save_print').isVisible(); + if(isShow){ + //选择统计的敷料包选项全打印 + var selNodes = waitPackingTreeGrid.getView().getChecked(); + var selLength = selNodes.length; + Ext4.each(selNodes, function(pNode) { + if(pNode.get('taskType') == taskType_recyclingRecord){ + return true;//在each(jquery、ext都如此)循环中,return true表示continue,return false表示break + } + var packingAmount = pNode.get('amount'); + var urgentAmount = pNode.get("urgentAmount"); + + var taskIdArray = []; + var tousseName; + var tousseType; + var packageType; + var sterilingType; + var supplierName; + var department; + var departmentArray = []; + var status; + + Ext4.each(pNode.childNodes, function(cNode) { + if(packingAmount <= 0){ + return; + } + tousseName = cNode.get("tousseName"); + var haveIDCard = pNode.get('haveIDCard'); + // 跳过有标识牌的器械包 + if(haveIDCard){ + showResult("【"+tousseName+"】启用了标识牌,需扫描标识牌装配。或者禁用该器械包的标识牌后装配!"); + return; + } + var status = cNode.get("status"); + if(status == '待确认'){ + showResult("【"+tousseName+"】有器械丢失,请先确认!"); + return false; + } + var taskId = cNode.get("taskId"); + var amount = cNode.get("amount"); + if(amount > packingAmount){ + amount = packingAmount; + } + packageType = cNode.get("packageType"); + if(selLength == 1){ + packageType = Ext4.getCmp('packageType').getValue(); + } + sterilingType = cNode.get("sterilingMethod"); + if(selLength == 1){ + sterilingType = Ext4.getCmp('sterilingType').getValue(); + } + tousseType = cNode.get("tousseType"); + supplierName = cNode.get("supplierName"); + department = cNode.get("department"); + departmentArray.push(department); + + if(packingAmount > 0){ + taskIdArray.push(taskId); + packingAmount -= amount; + } + }); + + packingTousse(false,'',taskIdArray.join(";"),tousseName,tousseType,pNode.get('amount'),packageType,sterilingType,supplierName,departmentArray.join(";"),urgentAmount); + + }); + // 一次打印 + printLabelsAfterPacking(); + waitPackingTreeGrid.getStore().reload(); + }else{ + showResult('请选择要打印的行!'); + } + } + Ext4.getCmp('sterilingType').setValue(null); + Ext4.getCmp('packageType').setValue(null); + + //如果装配界面的配包/审核人是否默认为上一次装配的配包/审核人配置为false,则装配完后需要重新清空 + if(packingPageOperatorDefaultLastOperator == false){ + Ext4.getCmp('operator').setValue(''); + } + if(packingPageReviewerDefaultLastReviewer == false){ + Ext4.getCmp('reviewer').setValue(''); + } + +} // 装配器械包 function packingTousse(printImmediately,basketBarcode,taskIds,tousseName,tousseType,packAmount,packageType,sterilingType,supplierName,department,urgentAmount){ if(!validateFormParamsForPack()){ @@ -2177,7 +2199,7 @@ // tousseesToPrint.push(tousses[i]); // } // 现在不打印标签 - if (isPrintLabelNow == false ){ + if (isPrintLabelNow == false || !packing){ showResult(packAmount + "个" + showName + "装配完成"); } // 现在打印标签 @@ -2197,6 +2219,9 @@ Ext4.getCmp("idCardBarcode").setValue(''); } function printLabelsAfterPacking(){ + if(!packing){ + return; + } var packAmount = packedToussesArray.length; // showResult(packAmount + "个" + showName + "装配完成"); var printGroupType = Ext4.getCmp('printGroupType').getValue(); @@ -2511,6 +2536,7 @@ }else{ Ext4.getCmp('save_print').hide(); + Ext4.getCmp('packingLableBtn').hide(); } var isLeaf = record.get('leaf'); if(!isLeaf){