Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r29454 -r29512 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 29454) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 29512) @@ -144,19 +144,29 @@ function checkedAllNode(checked){ var rootNode = Ext4.getCmp('basketTreeGrid').getRootNode(); if(rootNode != null){ - rootNode.eachChild(function(node){ -// node.set('checked',checked); - node.data.checked = checked; - }); + Ext4.each(rootNode.childNodes, function(pNode){ + pNode.set('checked',checked); + if(pNode.childNodes && pNode.childNodes.length > 0){ + Ext4.each(pNode.childNodes, function(lastNode){ + lastNode.set('checked',checked) + }); + } + }); } + Ext4.getCmp('basketTreeGrid').getView().refresh(); } function checkAllWaitPackingTaskNode(checked){ var rootNode = Ext4.getCmp('waitPackingTreeGrid').getRootNode(); if(rootNode != null){ - rootNode.eachChild(function(node){ - node.data.checked = checked; - }); + Ext4.each(rootNode.childNodes, function(pNode){ + pNode.set('checked',checked); + if(pNode.childNodes && pNode.childNodes.length > 0){ + Ext4.each(pNode.childNodes, function(lastNode){ + lastNode.set('checked',checked) + }); + } + }); } Ext4.getCmp('waitPackingTreeGrid').getView().refresh(); } @@ -828,7 +838,7 @@ renderer: function(v,p,record,rowIndex, columnIndex, store,view){ p.style='word-wrap: break-word !important;'; var tousseName = record.get('tousseName'); - var showName = tousseName; + var showName = '' + tousseName + ''; if(record.get('taskType') == taskType_application || record.get('taskType') == taskType_returnGoods || record.get('taskType') == taskType_qualityMonitor){ showName = '' + showName; @@ -847,7 +857,7 @@ }else if(record.get("packageSize") == "小包"){ showName = '' + showName + ''; } - } + } return showName; } },{ @@ -1074,18 +1084,29 @@ clicksToEdit: 1, listeners: { beforeedit: function(editor, context, eOpts){ - var record = context.record; - var isLeaf = record.get('leaf'); - if(isLeaf){ + var record = context.record; + if(record.data.errors.length > 0 || record.data.damages.length > 0){ return false; } }, afteredit:function(editor, context, eOpts){ var record = context.record; - var unPackingAmount = record.get('unPackingAmount'); - if(unPackingAmount < context.value){ - showResult(record.get('tousseName') + ",装配数量不能大于"+unPackingAmount , null , sstsConfig.messagePauseTimeOnPackingPage); - record.set('amount',unPackingAmount); + if(record.get('leaf')){ + var unPackingAmount = record.parentNode.get('unPackingAmount'); + var sum = 0; + Ext4.each(record.parentNode.childNodes, function(pNode) { + sum += parseInt(pNode.get('amount')); + }); + if(sum > unPackingAmount){ + showResult(record.get('tousseName') + ",装配数量不能大于"+unPackingAmount , null , sstsConfig.messagePauseTimeOnPackingPage); + record.set('amount',context.originalValue); + } + }else { + var unPackingAmount = record.get('unPackingAmount'); + if(unPackingAmount < context.value){ + showResult(record.get('tousseName') + ",装配数量不能大于"+unPackingAmount , null , sstsConfig.messagePauseTimeOnPackingPage); + record.set('amount',unPackingAmount); + } } } } @@ -3128,9 +3149,14 @@ var damages = taskNode.get("damages"); var errors = taskNode.get("errors"); var department = taskNode.get("department"); - var urgentAmount = taskNode.get("urgentAmount"); + var urgentAmount = taskNode.get("urgentAmount"); + var taskIdToAmountMapInfo = [{ + taskId:taskId, + amount:amount, + errorDamageAmount:0 + }] // 装配 - packed = packingTousse(false,basketBarcode,basketBarcode,taskId,tousseName,tousseType,1,packageType,sterilingType,supplierName,department,urgentAmount); + packed = packingTousse(false,basketBarcode,basketBarcode,taskId,tousseName,tousseType,1,packageType,sterilingType,supplierName,department,urgentAmount,JSON.stringify(taskIdToAmountMapInfo)); if(packed){ addTaskItemsToDelete(tousseItemsToDelete,tousseName,taskId,1); Ext4.getCmp('remark').setValue(); @@ -3432,11 +3458,20 @@ 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 delBasketItems = new Array(); + var map = {},dest = []; + Ext4.each(selNodes, function(pNode){ + if(pNode.childNodes.length == 0){ + var ai = pNode; + if(!map[ai.get('tousseID')]){ + dest.push(ai.parentNode); + map[ai.get('tousseID')] = ai; + } + } + }); + for(var i=0;i packingAmount){ - amount = packingAmount; - } - packageType = cNode.get("packageType"); - sterilingType = cNode.get("sterilingMethod"); - if(selLength == 1){ - sterilingType = Ext4.getCmp('sterilingType').getValue(); - packageType = Ext4.getCmp('packageType').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+",有器械丢失,请确认!" , null , sstsConfig.messagePauseTimeOnPackingPage); - return; - } - - if(!allowPackingWhenUnSupplementMaterial){ - if(errors != null && errors.length > 0){ - showResult("材料缺失,不够组成器械包,请补充缺失器械!" , null , sstsConfig.messagePauseTimeOnPackingPage); - return; - } - if(damages != null && damages.length > 0){ - showResult("材料已报损,不够组成器械包,请补充报损器械!" , null , sstsConfig.messagePauseTimeOnPackingPage); - return; - } - } - - if(packingAmount > 0){ - taskIdArray.push(taskId); - scannedBasketBarcodes.push(basketBarcode); - packingAmount -= amount; - basketItem.amount += amount; - basketItem.packed = true; - var ti = taskItemArray.length; - taskItemArray[ti] = {}; - taskItemArray[ti].taskId = taskId; - taskItemArray[ti].amount = amount; - } + Ext4.each(selNodes,function(cNode){ + if(cNode.get("tousseName") == pTousseName && cNode.childNodes.length == 0){ + tousseName = cNode.get("tousseName"); + status = cNode.get("status"); + basketBarcode = cNode.get("basketBarcode"); + var taskId = cNode.get("taskId"); + var amount = cNode.get("amount"); + packageType = cNode.get("packageType"); + sterilingType = cNode.get("sterilingMethod"); + if(selLength == 1){ + sterilingType = Ext4.getCmp('sterilingType').getValue(); + packageType = Ext4.getCmp('packageType').getValue(); + } + tousseType = cNode.get("tousseType"); + supplierName = cNode.get("supplierName"); + damages = cNode.get("damages"); + errors = cNode.get("errors"); + department = cNode.get("department"); + if(status == '待确认'){ + showResult(tousseName+",有器械丢失,请确认!" , null , sstsConfig.messagePauseTimeOnPackingPage); + return; + } + var errorDamageAmount = 0; + var errorOrDamageAmount = 0; + if(!allowPackingWhenUnSupplementMaterial){ + if(errors != null && errors.length > 0){ + showResult("材料缺失,不够组成器械包,请补充缺失器械!" , null , sstsConfig.messagePauseTimeOnPackingPage); + return; + } + if(damages != null && damages.length > 0){ + showResult("材料已报损,不够组成器械包,请补充报损器械!" , null , sstsConfig.messagePauseTimeOnPackingPage); + return; + } + }else { + for(var i=0;i 0){ + errorOrDamageAmount = amount; + } + if(taskIdArray.indexOf(taskId) == -1){ + departmentArray.push(department); + taskIdArray.push(taskId); + scannedBasketBarcodes.push(basketBarcode); + basketItem.amount += amount; + basketItem.packed = true; + var ti = taskItemArray.length; + taskItemArray[ti] = {}; + taskItemArray[ti].taskId = taskId; + taskItemArray[ti].amount = amount; + } + + taskIdToAmountMapInfo.push({ + taskId:taskId, + amount:amount, + errorDamageAmount:errorDamageAmount + }) + + parentAmout += parseInt(amount); + } }); - if(packingAmount > 0){ - showResult(tousseName + "需装配数量已超过该器械包所有装配任务数量之和." , null , sstsConfig.messagePauseTimeOnPackingPage); - delBasketItems.splice(dl,1);//删除 - return; + var taskIdMap = {}; + var taskIdDest = []; + for(var i=0;i 0){ + scanBasketBarcodes(basketBarcodeArr2[basketBarcodeArr2.length-1]); + } //打印后去掉选中的钩 if(selLength > 0){ Ext4.each(selNodes, function(pNode){ @@ -3552,12 +3622,25 @@ //选择统计的敷料包选项全打印 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 map = {},dest = []; + var parentAmout = 0; + Ext4.each(selNodes, function(pNode){ + if(pNode.childNodes.length == 0){ + var ai = pNode; + if(!map[ai.get('tousseID')]){ + dest.push(ai.parentNode); + map[ai.get('tousseID')] = ai; + } + } + }); + for(var i=0;i 0){ + taskIdArray.push(taskId); + packingAmount -= amount; + } + + taskIdToAmountMapInfo.push({ + taskId:taskId, + amount:amount, + errorDamageAmount:0 + }) + parentAmout += amount; } - var status = cNode.get("status"); - if(status == '待确认'){ - showResult("【"+tousseName+"】有器械丢失,请先确认!" , null , sstsConfig.messagePauseTimeOnPackingPage); - return false; - } - var taskId = cNode.get("taskId"); - var amount = cNode.get("amount"); - if(amount > packingAmount){ - amount = packingAmount; - } - packageType = cNode.get("packageType"); - if(useManualSelectPackageType()){ - packageType = Ext4.getCmp('packageType').getValue(); - } -// alert('useManualSelectPackageType='+useManualSelectPackageType()); - sterilingType = cNode.get("sterilingMethod"); - if(isUndefinedOrNullOrEmpty(sterilingType) || useManualSelectPackageType()){ - 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); - - }); + }) + packingTousse(false,'','',taskIdArray.join(";"),tousseName,tousseType,pNode.get('amount'),packageType,sterilingType,supplierName,departmentArray.join(";"),urgentAmount,JSON.stringify(taskIdToAmountMapInfo)); + } // 一次打印 printLabelsAfterPacking(); waitPackingTreeGrid.getStore().reload(); @@ -3639,7 +3723,7 @@ onPackingTousseBtnClickComplete(); } // 装配器械包 -function packingTousse(printImmediately,basketBarcode,scannedBasketBarcodes,taskIds,tousseName,tousseType,packAmount,packageType,sterilingType,supplierName,department,urgentAmount){ +function packingTousse(printImmediately,basketBarcode,scannedBasketBarcodes,taskIds,tousseName,tousseType,packAmount,packageType,sterilingType,supplierName,department,urgentAmount,taskIdToAmountMapInfo){ if(!validateFormParamsForPack()){ return false; } @@ -3737,12 +3821,12 @@ tousseWeight: tousseWeight, remark: remark, errorDamageRemarkInfo:errorDamageRemarkInfo, + taskIdToAmountMapInfo:taskIdToAmountMapInfo, websocketSessionId : getWebsocketSessionId() } if(errorDamageRemarkId !== '' && errorDamageRemarkId !== 0){ params.errorDamageRemarkId = errorDamageRemarkId; } - // DWREngine.setAsync(false); // // 调用服务端的装配器械包的代码 // PackingTableManager.packingTousse2(JSON.stringify(params),function(rs){ @@ -4095,6 +4179,238 @@ } } +//扫描篮筐条码 +function scanBasketBarcodes(basketBarcode){ + var myMask = new Ext4.LoadMask({msg:"正在加载,请稍候...",target:Ext4.getCmp('basketTreeGrid')}); + myMask.show(); + Ext4.Ajax.request({ + url : WWWROOT + '/disinfectSystem/packingAction!loadPackingTaskByBasketBarCode.do', + params : { + basketBarcode : basketBarcode, + taskGroup:taskGroup + }, + success : function(result){ + myMask.destroy(); + Ext4.getCmp('basketBarcodeInput').setValue(''); + var jsonObj = Ext4.JSON.decode(result.responseText); + if(!jsonObj.success){ + showResult(jsonObj.message , null , sstsConfig.messagePauseTimeOnPackingPage); + return; + } + var taskList = jsonObj.data; + var nLength = taskList?taskList.length:0; + + if(jsonObj.notWashedInfo !== ''){ + showResult(jsonObj.notWashedInfo); + }else { + if(nLength == 0){ + showResult('该篮筐在'+taskGroup+'内无装配任务!' , null , sstsConfig.messagePauseTimeOnPackingPage); + } + } + + var speakBasket = new SpeakBasket(); + + for(var n = 0;n < nLength; n++){ + var taskVO = taskList[n]; + var td_id = taskVO.tousseID; + var videoNames = taskVO.uuid_vedioNames; + var tousseName = taskVO.tousseName; + var amount = taskVO.amount; + var urgentAmount = taskVO.urgentAmount; + var tousseType = taskVO.tousseType; + var packageType = taskVO.packageType; + //var packageSize = taskVO.packageSize; + + var sterilingMethod = taskVO.sterilingMethod; + var isTraceable = taskVO.isTraceable; + var isPrint = taskVO.isPrint; + var isReview = taskVO.isReview; + var rMaterils = taskVO.replenishMaterils; + var rootNode = basketStore.getRootNode(); + var haveIDCard = taskVO.haveIDCard; + var errorRemark = taskVO.errorRemark; + var damageRemark = taskVO.damageRemark; + + var parentNode = null; + rootNode.cascade(function(n) { + if(!n.get('leaf') && n.get('tousseName') == tousseName){ + parentNode = n; + } + }); + var newParentNode = false; + var checked = false; + if(parentNode == null){ + if(n == 0){ + checked = true; + } + var params = { + taskId:'', + td_id:td_id, + invoicePlanId:'', + videoNames:videoNames, + tousseName:tousseName, + amount:0, + washTime:'', + basketBarcode:'', + basketName:'', + taskStatus:'', + department:'', + tousseType1:tousseType, + packageType:packageType, + packageSize:'', + sterilingMethod:sterilingMethod, + dateTime:'', + isTraceable:isTraceable, + isPrint:isPrint, + isReview:isReview, + errors:'', + damages:'', + replenishMaterils:rMaterils, + taskType:'', + supplierName:'', + haveIDCard:haveIDCard, + childUrgentAmount:urgentAmount, + idCardBarcode:taskVO.idCardBarcode, + allowModifyPackageType:taskVO.allowModifyPackageType, + errorRemark:taskVO.errorRemark, + damageRemark:taskVO.damageRemark, + urgentLevel:taskVO.urgentLevel, + serialNumber:'', + recyclingItemRemark:'', + cleaned:taskVO.cleaned, + note:taskVO.note, + urgentLevelObj:taskVO.urgentLevelObj, + colorCode:taskVO.colorCode, + errorDamageRemarkId:'', + errorDamageRemarkInfo:'' + } + parentNode = addTaskNode(params); + newParentNode = true; + }else{ + var uamountStr = parentNode.get('urgentAmount'); + if(isNumeric(urgentAmount)){ + if(isNumeric(uamountStr)){ + parentNode.set('urgentAmount',parseInt(uamountStr) + parseInt(urgentAmount)); + }else{ + parentNode.set('urgentAmount',urgentAmount); + } + } + var errorRemark = parentNode.get('errorRemark'); + var damageRemark = parentNode.get('damageRemark'); + errorRemark = errorRemark ? errorRemark + ";" + taskVO.errorRemark:taskVO.errorRemark; + damageRemark = damageRemark ? damageRemark + ";" + taskVO.damageRemark:taskVO.damageRemark; + parentNode.set('errorRemark',errorRemark); + parentNode.set('damageRemark',damageRemark); + } + var cLength = taskVO.children.length; + + var haveForeignTousseNode = false; + + var childNodes = parentNode.childNodes; + var childNodeLength = childNodes.length; + for (var j = 0; j < cLength; j++) { + var task = taskVO.children[j]; + var taskId = task.taskId; + var invoicePlanId = task.invoicePlanId; + var tousseName = task.tousseName; + var amount = task.amount; + var childUrgentAmount = task.urgentAmount; + var washTime = task.washTime; + var basketBarcode = task.basketBarcode; + var basketName = task.basketName; + var taskStatus = task.status; + var dateTime = task.dateTime; + var department = task.department; + var isTraceable = task.isTraceable; + var isPrint = task.isPrint; + var isReview = task.isReview; + var errors = task.errors; + var damages = task.damages; + var replenishMaterils = task.replenishMaterils; + var taskType = task.taskType; + var supplierName = task.supplierName; + var packageSize = task.packageSize; + if(task.tousseType == '外来器械包'){ + haveForeignTousseNode = true; + } + + var sigle = true; + speakBasket.addGoods(basketName, tousseName, amount); + for (var m = 0; m < childNodeLength; m++) { + var cNode = childNodes[m]; + if(cNode.get('taskId') == taskId){ + sigle = false; + if(haveForeignTousseNode && allowForeignToussePartiallyPacking){ + var cNodeBasketName = cNode.get('basketName'); + var cNodeBasketBarcode = cNode.get('basketBarcode'); + var basketBarcodeArr = cNodeBasketBarcode.split(';'); + if(!Ext4.Array.contains(basketBarcodeArr,basketBarcode)){ + cNode.set('basketName',cNodeBasketName+';'+basketName); + cNode.set('basketBarcode',cNodeBasketBarcode+';'+basketBarcode); + } + } + break; + } + } + if(sigle){ + task.td_id = td_id; + task.videoNames = videoNames; + task.tousseType1 = tousseType; + task.packageType = packageType; + task.sterilingMethod = sterilingMethod; + var childNode = addTaskNode(task); + parentNode.appendChild(childNode); + var pNewAmount = parentNode.get('amount') + amount; + parentNode.set('amount',pNewAmount); + parentNode.set('unPackingAmount',pNewAmount); + } + } + if(newParentNode){ + rootNode.appendChild(parentNode); + //外来器械默认展开节点 + if(haveForeignTousseNode){ + parentNode.expand(); + } + } + if(sstsConfig.packingView_autoSelectTousseWhenScanBasket && checked){ + basketColumnTreeGrid.getView().fireEvent('itemClick','',parentNode,'',''); + Ext4.getCmp('basketBarcodeInput').focus('', 10); + } + } + var root = basketStore.getRootNode(); + var tousseNameMaxLenArray = []; + var basketNameMaxLenArray = []; + var k = 0; + for(var i=0;i 0){ + var tousseNameMaxLenght = Math.max.apply(null,tousseNameMaxLenArray); + basketColumnTreeGrid.headerCt.getGridColumns()[0].setWidth(tousseNameMaxLenght+90); + } + if(basketNameMaxLenArray.length > 0){ + var basketNameMaxLenght = Math.max.apply(null,basketNameMaxLenArray); + if(basketNameMaxLenght !== 0){ + basketColumnTreeGrid.headerCt.getGridColumns()[4].setWidth(basketNameMaxLenght+30); + } + } + speakBasket.speakContent(); + }, + failure : function(){myMask.hide();} + }); +} + basketColumnTreeGrid = Ext4.create('columnTreeGrid', { id : 'basketTreeGrid', height: (document.body.clientHeight - 30)/2, @@ -4113,7 +4429,7 @@ var isReview = record.get('isReview'); var vedioName = record.get('uuid_vedioNames'); var td_id = (record.get('tousseID') == '')?record.raw.td_id:record.get('tousseID'); - updateNoteWindow(record); + updateNoteWindow(td_id); loadTousseInfo(tousseName,imageType_tousse,vedioName,td_id,isTraceable); lastSelectTousseName = tousseName; lastSelectimageTypeTousse = imageType_tousse; @@ -4157,18 +4473,15 @@ var root = basketStore.getRootNode(); var tousseNameMaxLenArray = []; var basketNameMaxLenArray = []; - var k = 0; - for(var i=0;i 0){ var tousseNameMaxLenght = Math.max.apply(null,tousseNameMaxLenArray); this.headerCt.getGridColumns()[0].setWidth(tousseNameMaxLenght+90); @@ -4182,15 +4495,30 @@ } }, checkchange:function( node, checked, eOpts ){ - showNoteWindow(node, checked); - resetScanIDCardBarcodeVisibility(node); - // 显示丢失报损按钮 - showOrHideErrorAndDamageBtn(); - setPackageTypeReadOnlyByCondition(); - clearRemarkByCondition(); - if(!checked){ - deselectCheckAll(); - } + if(!node.get('leaf')){ + Ext4.each(node.childNodes, function(pNode){ + pNode.set("checked", checked); + }); + }else { + var checkedArray = []; + Ext4.each(node.parentNode.childNodes, function(pNode){ + checkedArray.push(pNode.get("checked")); + }); + if(checkedArray.indexOf(false) == -1){ + node.parentNode.set('checked',true); + }else { + node.parentNode.set('checked',false); + } + } + showNoteWindow(node, checked); + resetScanIDCardBarcodeVisibility(node); + // 显示丢失报损按钮 + showOrHideErrorAndDamageBtn(); + setPackageTypeReadOnlyByCondition(); + clearRemarkByCondition(); + if(!checked){ + deselectCheckAll(); + } }, itemcontextmenu : taskItemMenu }, @@ -4215,231 +4543,7 @@ return; } basketBarcodeArr2.push(basketBarcode); - var myMask = new Ext4.LoadMask({msg:"正在加载,请稍候...",target:Ext4.getCmp('basketTreeGrid')}); - myMask.show(); - Ext4.Ajax.request({ - url : WWWROOT + '/disinfectSystem/packingAction!loadPackingTaskByBasketBarCode.do', - params : { - basketBarcode : basketBarcode, - taskGroup:taskGroup - }, - success : function(result){ - myMask.destroy(); - Ext4.getCmp('basketBarcodeInput').setValue(''); - var jsonObj = Ext4.JSON.decode(result.responseText); - if(!jsonObj.success){ - showResult(jsonObj.message , null , sstsConfig.messagePauseTimeOnPackingPage); - return; - } - var taskList = jsonObj.data; - var nLength = taskList?taskList.length:0; - - if(jsonObj.notWashedInfo !== ''){ - showResult(jsonObj.notWashedInfo); - }else { - if(nLength == 0){ - showResult('该篮筐在'+taskGroup+'内无装配任务!' , null , sstsConfig.messagePauseTimeOnPackingPage); - } - } - - var speakBasket = new SpeakBasket(); - - for(var n = 0;n < nLength; n++){ - var taskVO = taskList[n]; - var td_id = taskVO.tousseID; - var videoNames = taskVO.uuid_vedioNames; - var tousseName = taskVO.tousseName; - var amount = taskVO.amount; - var urgentAmount = taskVO.urgentAmount; - var tousseType = taskVO.tousseType; - var packageType = taskVO.packageType; - //var packageSize = taskVO.packageSize; - - var sterilingMethod = taskVO.sterilingMethod; - var isTraceable = taskVO.isTraceable; - var isPrint = taskVO.isPrint; - var isReview = taskVO.isReview; - var rMaterils = taskVO.replenishMaterils; - var rootNode = basketStore.getRootNode(); - var haveIDCard = taskVO.haveIDCard; - var errorRemark = taskVO.errorRemark; - var damageRemark = taskVO.damageRemark; - - var parentNode = null; - rootNode.cascade(function(n) { - if(!n.get('leaf') && n.get('tousseName') == tousseName){ - parentNode = n; - } - }); - var newParentNode = false; - var checked = false; - if(parentNode == null){ - if(n == 0){ - checked = true; - } - var params = { - taskId:'', - td_id:td_id, - invoicePlanId:'', - videoNames:videoNames, - tousseName:tousseName, - amount:0, - washTime:'', - basketBarcode:'', - basketName:'', - taskStatus:'', - department:'', - tousseType1:tousseType, - packageType:packageType, - packageSize:'', - sterilingMethod:sterilingMethod, - dateTime:'', - isTraceable:isTraceable, - isPrint:isPrint, - isReview:isReview, - errors:'', - damages:'', - replenishMaterils:rMaterils, - taskType:'', - supplierName:'', - haveIDCard:haveIDCard, - childUrgentAmount:urgentAmount, - idCardBarcode:taskVO.idCardBarcode, - allowModifyPackageType:taskVO.allowModifyPackageType, - errorRemark:taskVO.errorRemark, - damageRemark:taskVO.damageRemark, - urgentLevel:taskVO.urgentLevel, - serialNumber:'', - recyclingItemRemark:'', - cleaned:taskVO.cleaned, - note:taskVO.note, - urgentLevelObj:taskVO.urgentLevelObj, - colorCode:taskVO.colorCode, - errorDamageRemarkId:'', - errorDamageRemarkInfo:'' - } - parentNode = addTaskNode(params); - newParentNode = true; - }else{ - var uamountStr = parentNode.get('urgentAmount'); - if(isNumeric(urgentAmount)){ - if(isNumeric(uamountStr)){ - parentNode.set('urgentAmount',parseInt(uamountStr) + parseInt(urgentAmount)); - }else{ - parentNode.set('urgentAmount',urgentAmount); - } - } - var errorRemark = parentNode.get('errorRemark'); - var damageRemark = parentNode.get('damageRemark'); - errorRemark = errorRemark ? errorRemark + ";" + taskVO.errorRemark:taskVO.errorRemark; - damageRemark = damageRemark ? damageRemark + ";" + taskVO.damageRemark:taskVO.damageRemark; - parentNode.set('errorRemark',errorRemark); - parentNode.set('damageRemark',damageRemark); - } - var cLength = taskVO.children.length; - - var haveForeignTousseNode = false; - - var childNodes = parentNode.childNodes; - var childNodeLength = childNodes.length; - for (var j = 0; j < cLength; j++) { - var task = taskVO.children[j]; - var taskId = task.taskId; - var invoicePlanId = task.invoicePlanId; - var tousseName = task.tousseName; - var amount = task.amount; - var childUrgentAmount = task.urgentAmount; - var washTime = task.washTime; - var basketBarcode = task.basketBarcode; - var basketName = task.basketName; - var taskStatus = task.status; - var dateTime = task.dateTime; - var department = task.department; - var isTraceable = task.isTraceable; - var isPrint = task.isPrint; - var isReview = task.isReview; - var errors = task.errors; - var damages = task.damages; - var replenishMaterils = task.replenishMaterils; - var taskType = task.taskType; - var supplierName = task.supplierName; - var packageSize = task.packageSize; - if(task.tousseType == '外来器械包'){ - haveForeignTousseNode = true; - } - - var sigle = true; - speakBasket.addGoods(basketName, tousseName, amount); - for (var m = 0; m < childNodeLength; m++) { - var cNode = childNodes[m]; - if(cNode.get('taskId') == taskId){ - sigle = false; - if(haveForeignTousseNode && allowForeignToussePartiallyPacking){ - var cNodeBasketName = cNode.get('basketName'); - var cNodeBasketBarcode = cNode.get('basketBarcode'); - var basketBarcodeArr = cNodeBasketBarcode.split(';'); - if(!Ext4.Array.contains(basketBarcodeArr,basketBarcode)){ - cNode.set('basketName',cNodeBasketName+';'+basketName); - cNode.set('basketBarcode',cNodeBasketBarcode+';'+basketBarcode); - } - } - break; - } - } - if(sigle){ - task.td_id = td_id; - task.videoNames = videoNames; - task.tousseType1 = tousseType; - task.packageType = packageType; - task.sterilingMethod = sterilingMethod; - var childNode = addTaskNode(task); - parentNode.appendChild(childNode); - var pNewAmount = parentNode.get('amount') + amount; - parentNode.set('amount',pNewAmount); - parentNode.set('unPackingAmount',pNewAmount); - } - } - if(newParentNode){ - rootNode.appendChild(parentNode); - //外来器械默认展开节点 - if(haveForeignTousseNode){ - parentNode.expand(); - } - } - if(sstsConfig.packingView_autoSelectTousseWhenScanBasket && checked){ - basketColumnTreeGrid.getView().fireEvent('itemClick','',parentNode,'',''); - Ext4.getCmp('basketBarcodeInput').focus('', 10); - } - } - var root = basketStore.getRootNode(); - var tousseNameMaxLenArray = []; - var basketNameMaxLenArray = []; - var k = 0; - for(var i=0;i 0){ - var tousseNameMaxLenght = Math.max.apply(null,tousseNameMaxLenArray); - basketColumnTreeGrid.headerCt.getGridColumns()[0].setWidth(tousseNameMaxLenght+90); - } - if(basketNameMaxLenArray.length > 0){ - var basketNameMaxLenght = Math.max.apply(null,basketNameMaxLenArray); - if(basketNameMaxLenght !== 0){ - basketColumnTreeGrid.headerCt.getGridColumns()[4].setWidth(basketNameMaxLenght+30); - } - } - speakBasket.speakContent(); - }, - failure : function(){myMask.hide();} - }); + scanBasketBarcodes(basketBarcode); } }); } @@ -4572,7 +4676,7 @@ var isPrint = record.get('isPrint'); var isReview = record.get('isReview'); var vedioName = record.get('uuid_vedioNames'); - var td_id = (record.get('tousseID') == '')?record.raw.td_id:record.get('tousseID'); + var td_id = record.get('tousseID'); var taskId = record.get('taskId'); updateNoteWindow(record); loadTousseInfo(tousseName,imageType_tousse,vedioName,td_id,isTraceable); @@ -4615,33 +4719,30 @@ refreshErrorAndDamageRemark(record); refreshRemarks(record); refreshRecyclingItemRemark(record); - var isLeaf = record.get('leaf'); + var isLeaf = record.get('leaf'); if(!isLeaf){ if(record.get('checked') == false){ record.set('checked', true); waitPackColumnTreeGrid.getView().fireEvent('checkchange',record,record.get('checked')); - } - }else{ - return false; - } + } + }else{ + return false; + } }, load: { fn: function(store){ var root = waitPackingTaskStore.getRootNode(); var tousseNameMaxLenArray = []; var basketNameMaxLenArray = []; - var k = 0; - for(var i=0;i 0){ var tousseNameMaxLenght = Math.max.apply(null,tousseNameMaxLenArray); @@ -4656,6 +4757,21 @@ } }, checkchange:function( node, checked, eOpts ){ + if(!node.get('leaf')){ + Ext4.each(node.childNodes, function(pNode){ + pNode.set("checked", checked); + }); + }else { + var checkedArray = []; + Ext4.each(node.parentNode.childNodes, function(pNode){ + checkedArray.push(pNode.get("checked")); + }); + if(checkedArray.indexOf(false) == -1){ + node.parentNode.set('checked',true); + }else { + node.parentNode.set('checked',false); + } + } showNoteWindow(node, checked); resetScanIDCardBarcodeVisibilityWaitPacking(node); // 显示丢失报损按钮 @@ -4779,7 +4895,8 @@ fieldLabel : '开始时间', altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', readOnly : false, - labelWidth : 65, + labelWidth : 90, + labelAlign:'right', width : 75, format : 'H:i', value : '00:00' @@ -4795,7 +4912,8 @@ fieldLabel : '结束时间', altFormats:'H:i|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', readOnly : false, - labelWidth : 65, + labelWidth : 90, + labelAlign:'right', width : 75, value : '23:59', format : 'H:i' @@ -4810,7 +4928,8 @@ name : 'tousseName', fieldLabel : '器械包名称', queryParam : 'spell', - labelWidth : 80, + labelWidth : 90, + labelAlign:'right', minChars : 0, valueField : 'name', displayField : 'displayName', @@ -4855,7 +4974,8 @@ id : 'orgUnit', name : 'orgUnit', fieldLabel : '科室', - labelWidth : 50, + labelWidth : 90, + labelAlign:'right', queryParam : 'spell', minChars : 0, valueField : 'name', @@ -4879,7 +4999,8 @@ allowBlank : true, name : "scanTousseBarcode", id : "scanTousseBarcode", - labelWidth : 75, + labelWidth : 90, + labelAlign:'right', // anchor : '100%', listeners : { render : function(p) { @@ -4907,7 +5028,8 @@ allowBlank : true, name : "q_packer", id : "q_packer", - labelWidth : 50, + labelWidth : 90, + labelAlign:'right', // anchor : '100%', listeners : { render : function(p) {