Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r29933 -r29939 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 29933) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 29939) @@ -37,12 +37,11 @@ var sterilizerNameTemp = ''; //全局包实例条码 var myBarcodes = []; -//载入,一键入炉和扫描条码时缓存包实例的所有条码 -var leftFixedBarcodeMap = new Map();//灭菌列表 -var rightFixedBarcodeMap = new Map();//待灭菌列表 -var scanAmountMap = new Map(); -var tousseInstanMap = new Map(); -var leftFixedBarcodeMapBySterilization = new Map(); +var leftFixedBarcodeMap = new newMap();//灭菌列表 +var rightFixedBarcodeMap = new newMap();//待灭菌列表 +var scanAmountMap = new newMap(); +var tousseInstanMap = new newMap(); +var leftFixedBarcodeMapBySterilization = new newMap(); var SHELF = "灭菌架"; var BASKET = "灭菌筐"; @@ -809,25 +808,30 @@ if (pNode.attributes.barcode == fixedBarcode && i < 1) { leftHasBarcode = true; i++; - if(rightFixedLenght > scanAmount){ - finalAmount = scanAmount; + if(rightFixedLenght > scanAmount && scanAmount !== 0){ + finalAmount = isLoadAll?rightFixedLenght:scanAmount; }else { finalAmount = rightFixedLenght; } - if(leftFixedLenght+finalAmount > 2000){ + if(leftFixedLenght+finalAmount >= 2000){ if(leftFixedLenght == 2000){ showResult('已超过'+pNode.attributes.name+'的最大待灭菌物品总数2000!'); isLast = true; return }else if(leftFixedLenght > 2000){ finalAmount = 2000 - pNode.attributes.amount; + showResult('已超过'+pNode.attributes.name+'的最大待灭菌物品总数2000!'); + leftFixedBarcodeMap.set(fixedBarcode,2000); rightFixedBarcodeMap.set(fixedBarcode,0); return }else { finalAmount -= (leftFixedLenght+finalAmount)-2000; } } + if(rightFixedLenght == 0){ + showResult('已超过'+pNode.attributes.name+'的最大待灭菌物品总数'+leftFixedLenght+'!'); + } var newAmount = rightFixedLenght-finalAmount; leftFixedLenght = leftFixedLenght+parseInt(finalAmount); leftFixedBarcodeMap.set(fixedBarcode,leftFixedLenght); @@ -837,45 +841,47 @@ }); if(!leftHasBarcode){ var tousseInstan = tousseInstanMap.get(fixedBarcode); - var scanAmount = parseInt(tousseInstan.scanAmount) || 0; - var objAmount = parseInt(tousseInstan.objAmount) || 0; - if(!scanAmountMap.has(fixedBarcode)){ - scanAmountMap.set(fixedBarcode,scanAmount) + if(tousseInstan){ + var scanAmount = parseInt(tousseInstan.scanAmount) || 0; + var objAmount = parseInt(tousseInstan.objAmount) || 0; + if(!scanAmountMap.has(fixedBarcode)){ + scanAmountMap.set(fixedBarcode,scanAmount) + } + var tousseName = tousseInstan.objName; //器械包名称 + var amount = (scanAmount>objAmount || scanAmount == 0)?objAmount:scanAmount; //每次扫描数量 + amount = isLoadAll?objAmount:amount; + leftFixedBarcodeMap.set(fixedBarcode,amount) + rightFixedBarcodeMap.set(fixedBarcode,objAmount-amount); + var sterilingTypeTemp = top.Ext.getCmp('sterilizationType').getValue(); + var diffTousseNames = ""; + var typeForSterilizationStatistics = tousseInstan.typeForSterilizationStatistics; //器械包类型(用于分类统计) + var tousseBarcode = tousseInstan.objBarcode; //器械包条码 + var sterilingType = tousseInstan.SterilingType || ''; //灭菌程序 + var reviewTime = tousseInstan.reviewTime; //审核时间 + var sterilingMode = tousseInstan.sterilingMode || '';//灭菌方式 + var isTraceable = tousseInstan.isTraceable || ''; + //多个灭菌程序和所选的灭菌程序不同的器械包提示一起提示。同名包只出现一次 + if (sterilingTypeTemp != sterilingType && diffTousseNames.indexOf(tousseName) == -1) { + diffTousseNames += '[' + tousseName + ']'; + } + //添加到灭菌物品视图列表的第一行 + var rootNode = sterilizationColumnTree.getRootNode(); + var position = top.Ext.getCmp('position').getValue(); + var parentNode = createNode(true, tousseBarcode, tousseName, typeForSterilizationStatistics, "", '器械包', position, amount, reviewTime, 0, sterilingMode,scanAmount,isTraceable); + var firstChildNode = rootNode.item(0); + if (firstChildNode == null || firstChildNode == undefined) {//第一行数据为空 + rootNode.appendChild(parentNode); + } else { + rootNode.insertBefore(parentNode, firstChildNode); + } + updateRigthFixedBarcodeAmount(tousseBarcode, amount)//修改右边节点的数量 + var speakBasket = new SpeakBasket(); + speakBasket.addGoods('', tousseName, 1); + + if (diffTousseNames != '') { + showResultWithoutSpeak("器械包" + diffTousseNames + "的灭菌程序和所选的灭菌程序不同!", null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); + } } - var tousseName = tousseInstan.objName; //器械包名称 - var amount = (scanAmount>objAmount)?objAmount:scanAmount; //每次扫描数量 - amount = isLoadAll?objAmount:amount; - leftFixedBarcodeMap.set(fixedBarcode,amount) - rightFixedBarcodeMap.set(fixedBarcode,objAmount-amount); - var sterilingTypeTemp = top.Ext.getCmp('sterilizationType').getValue(); - var diffTousseNames = ""; - var typeForSterilizationStatistics = tousseInstan.typeForSterilizationStatistics; //器械包类型(用于分类统计) - var tousseBarcode = tousseInstan.objBarcode; //器械包条码 - var sterilingType = tousseInstan.SterilingType || ''; //灭菌程序 - var reviewTime = tousseInstan.reviewTime; //审核时间 - var sterilingMode = tousseInstan.sterilingMode || '';//灭菌方式 - var isTraceable = tousseInstan.isTraceable || ''; - //多个灭菌程序和所选的灭菌程序不同的器械包提示一起提示。同名包只出现一次 - if (sterilingTypeTemp != sterilingType && diffTousseNames.indexOf(tousseName) == -1) { - diffTousseNames += '[' + tousseName + ']'; - } - //添加到灭菌物品视图列表的第一行 - var rootNode = sterilizationColumnTree.getRootNode(); - var position = top.Ext.getCmp('position').getValue(); - var parentNode = createNode(true, tousseBarcode, tousseName, typeForSterilizationStatistics, "", '器械包', position, amount, reviewTime, 0, sterilingMode,scanAmount,isTraceable); - var firstChildNode = rootNode.item(0); - if (firstChildNode == null || firstChildNode == undefined) {//第一行数据为空 - rootNode.appendChild(parentNode); - } else { - rootNode.insertBefore(parentNode, firstChildNode); - } - updateRigthFixedBarcodeAmount(tousseBarcode, amount)//修改右边节点的数量 - var speakBasket = new SpeakBasket(); - speakBasket.addGoods('', tousseName, 1); - - if (diffTousseNames != '') { - showResultWithoutSpeak("器械包" + diffTousseNames + "的灭菌程序和所选的灭菌程序不同!", null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); - } }else { if(!isLast){ updateRigthFixedBarcodeAmount(fixedBarcode, finalAmount)//修改右边的数量 @@ -1010,6 +1016,7 @@ var typeForSterilizationStatistics = pNode.attributes.typeForSterilizationStatistics; var myNode = createNodeForPendingStarilizationGoods(true, barcode, name, "TOUSSE", "", "", scanAmount, sterilingMode,isTraceable,scanAmount,typeForSterilizationStatistics) pendingSterilizationColumnTree.getRootNode().appendChild(myNode); + rightFixedBarcodeMap.set(fixedBarcode,scanAmount) } } }); @@ -2550,9 +2557,9 @@ return false; } if (newAmount > 2000) { - showResult('已超过'+attr.name+'的最大待灭菌物品总数2000!'); newAmount = parseInt(rigthAmount) + parseInt(oldAmount); newAmount = newAmount>2000?2000:newAmount; + showResult('已超过'+attr.name+'的最大待灭菌物品总数'+newAmount+'!'); } updateLeftAndRightMap(thiz,newAmount,oldAmount,'add'); } else if (newAmount < oldAmount) { @@ -2707,19 +2714,10 @@ Ext.each(rootNode.childNodes, function (cNode) { if (cNode != null && cNode.attributes && cNode.attributes.objBarcode) { var objBarcode = cNode.attributes.objBarcode; - if(cNode.attributes["isTraceable"] == '是'){ - waitSterilingBarcodeArray.push(objBarcode); - }else { - if(leftFixedBarcodeMap.get(objBarcode)){ - var len = leftFixedBarcodeMap.get(objBarcode); - var sum = parseInt(len)+parseInt(rightFixedBarcodeMap.get(objBarcode)); - leftFixedBarcodeMap.set(objBarcode,sum); - }else { - var len = leftFixedBarcodeMap.get(objBarcode); - leftFixedBarcodeMap.set(objBarcode,len); - } - rightFixedBarcodeMap.delete(objBarcode); + if(cNode.attributes["isTraceable"] == '否'){ fixedBarcodeArr.push(objBarcode); + }else { + waitSterilingBarcodeArray.push(objBarcode); } } }); @@ -2815,7 +2813,8 @@ objAmount:result[i].objAmount, reviewTime:result[i].reviewTime, scanAmount:result[i].scanAmount, - typeForSterilizationStatistics:result[i].typeForSterilizationStatistics + typeForSterilizationStatistics:result[i].typeForSterilizationStatistics, + sterilingMode:result[i].sterilingMode } tousseInstanMap.set(result[i].objBarcode,tousseInstan); scanAmountMap.set(result[i].objBarcode,result[i].scanAmount); @@ -4340,7 +4339,7 @@ } var dialog = new top.Ext.ux.UploadDialog.Dialog({ title: "上传" + imageType, - url: url, //这里我用struts2做后台处理 + url: url, //这里我用struts2做后台处理 post_var_name: 'uploadFiles',//这里是自己定义的,默认的名字叫file width: 450, height: 300, @@ -4373,11 +4372,11 @@ items: [formObj] }); sterilizationRecordWin.show(); - leftFixedBarcodeMap = new Map();//灭菌列表 - rightFixedBarcodeMap = new Map();//待灭菌列表 - tousseInstanMap = new Map(); - scanAmountMap = new Map(); - leftFixedBarcodeMapBySterilization = new Map(); + leftFixedBarcodeMap = new newMap();//灭菌列表 + rightFixedBarcodeMap = new newMap();//待灭菌列表 + tousseInstanMap = new newMap(); + scanAmountMap = new newMap(); + leftFixedBarcodeMapBySterilization = new newMap(); //灭菌记录 Ext.Ajax.timeout = 180000; formObj.form.load({ @@ -4414,12 +4413,6 @@ top.Ext.getCmp('biologicalMonitoring').setValue("已扫描"); top.Ext.getCmp('monitorPackageBarcode').setValue(monitorPackageBarcode); } - - //加载条码放至全局数组中 - var fixedBarcodes = action.result.fixedBarcodes - var barcodes = action.result.barcodes - myFixedBarcodes = fixedBarcodes.split(",") - myBarcodes = barcodes.split(",") } if (reSterilization) { //重新灭菌