Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r30578 -r30732 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 30578) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 30732) @@ -1767,6 +1767,179 @@ } } +// 扫描包实例条码 +function scanTousseInstance(msg){ + if(!msg.isIDCardInstance){//扫描器械包实例的条码 + var ti = msg.tousseInstance; + var td = ti.tousseDefinition; + if(sstsConfig.enableAutoIntoWashBasketWhenScanTousseBarcode){ + var basketHideStr = $("#basketsUl li:first").find('input').val(); + if(basketHideStr == null || basketHideStr == ""){ + newAlert("请扫描篮筐条码!"); + return false; + } + + if(!sstsConfig.disableIdCard && td.isDisableIDCard == "否"){//配置项开启和包定义中启用标识牌功能后,必须扫描标识牌回收 + newAlert(td.name+"启用了标识牌功能,不能扫描包实例条码,请扫描标识牌条码!"); + return false; + } + + var exist = tousseInstanceBarcodeIsExist(ti.barcode); + if(exist){ + alertDiv(barcode+",已入筐!"); + }else{ + var orgUnitName = $('#depart').text(); + var loadedAmount2 = tousseIntoBasketFunction(ti.id,td.id,td.name,1,td.isCleanedEntirely,orgUnitName,"",ti.barcode,td.tousseType,-1,'否',2,msg); + } + }else{ + var isThereIdentificationCard = '否'; + if(td.isDisableIDCard == "否"){ + isThereIdentificationCard = '是'; + } + var tmpRow = $("#tousseItemTable > tbody > tr").length; //获取子元素,不包含孙子及以下的元素 + var timeStr = new Date().getTime(); + var errorDamageQmKey = td.id + "_" + timeStr; + var toussItem = { + row: tmpRow, + tousseItemId: '', + tousseName: td.name, + tousseDefinitionID: td.id, + applicationAmount: 0, + recycleAmount: 1, + loadedAmount: 0, + isCleanedEntirely: td.isCleanedEntirely, + tousseType: td.tousseType, + isThereIdentificationCard: isThereIdentificationCard, + isApplyEntireTousse: td.isApplyEntireTousse, + urgentAmount : 0, + tousseRemark:'', + errorDamageQmKey : errorDamageQmKey, + barcode : ti.barcode + }; + addBindGoods(toussItem,sstsConfig.addTousseAtLastForRecycle); + addErrorDamageRemark(ti,tmpRow); + var orgUnitName = $('#depart').text(); + addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle,true,ti.id,msg.isFixedBarcode); + //未补充的丢失报损 + loadUnSupplementMaterial(msg,tmpRow,ti.barcode); + } + }else{ //扫描标识牌实例条码 + barcode = msg.idCardInstance.barcode; + var departValue = $('#depart').text(); + var tousseDepart = ''; + var tousseDepartCode = ''; + if(msg.tousseInstanceOrgUnit){ + tousseDepart = msg.tousseInstanceOrgUnit.depart; + tousseDepartCode = msg.tousseInstanceOrgUnit.orgUnitCoding; + } + if(departValue == ''){ + $('#depart').text(tousseDepart) + $('#departCode').val(tousseDepartCode) + } + // 对于已废弃的包,不检查其位置和所属科室的信息 + var ti = msg.tousseInstance; + var td = ti.tousseDefinition; + if(sstsConfig.restrictAddOtherGoodsToApplicationFromUseRecord && $('#useRecordId').val() != ''){ + var existRow = tousseItemExists(td.id, td.name, td.tousseType); + if(existRow == -1){ + alertDiv("不能添加申请单以外的物品 "); + return false; + }else if(parseInt($('#applicationAmount'+existRow).val()) - parseInt($('#loadedAmount'+existRow).val()) < 1 ){ + alertDiv("回收数量不能超过申请数量"); + return false; + } + } + var exist = idCardIsExist(barcode); + if(exist){ + alertDiv(barcode+",已入筐!"); + scanned = true; + }else{ + if(msg.shareDeparts){ + if(msg.shareDeparts.length > 0){ + if(msg.shareDeparts.indexOf(departValue) == -1 && departValue !== ''){ + alertDiv('该器械包不属于该科室。'); + return; + } + shareDepartsMap.set(msg.idCardInstance.tousseName,msg.shareDeparts); + }else { + if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').text() != tousseDepart && msg.tousseInstance.status != '已废弃'){ + alertDiv('该器械包不属于该科室。'); + return; + } + shareDepartsArr.push({ + tousseName:msg.idCardInstance.tousseName, + tousseDepart:tousseDepart + }) + } + }else { + if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').text() != tousseDepart && msg.tousseInstance.status != '已废弃'){ + alertDiv('该器械包不属��该科室。'); + return; + } + shareDepartsArr.push({ + tousseName:msg.idCardInstance.tousseName, + tousseDepart:tousseDepart + }) + } + var orgUnitName = $('#depart').text(); + var addSuccess = false; + var idCardClassifyBasket = msg.idCardClassifyBasket; + if(idCardClassifyBasket){ + if(idCardClassifyBasket.containerStatus == "清洗完成" || idCardClassifyBasket.containerStatus == "清洗中"){ + alertDiv("【"+idCardClassifyBasket.containerName + "】当前状态为【" + idCardClassifyBasket.containerStatus + "】,还有物品未装配"); + return false; + }else{ + addBasketElement(idCardClassifyBasket,true); + } + } + var basketHideStr = $("#basketsUl li:first").find('input').val(); + if(sstsConfig.enableAutoIntoWashBasketWhenScanTousseBarcode){ + if(basketHideStr == null || basketHideStr == ""){ + alertDiv("请扫描篮筐条码!"); + return false; + } + } + + var loadedAmount = tousseIntoBasketFunction("",td.id,td.name,1,td.isCleanedEntirely,orgUnitName,barcode,"",td.tousseType,-1,'否',3,msg); + + //记住扫描的标志牌 + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ + var barcodesStr = $('#barcodes'+i).val(); + setTousseItemLoadedAmountCss(i) + if(barcodesStr == ""){ + var idCardBarcodeArray = new Array(); + idCardBarcodeArray[0] = {}; + idCardBarcodeArray[0].barcode = barcode; + idCardBarcodeArray[0].addSuccess = addSuccess; + idCardBarcodeArray[0].containerBarcode = (idCardClassifyBasket)?idCardClassifyBasket.containerBarcode:''; + $('#barcodes'+i).val(JSON.stringify(idCardBarcodeArray)); + + }else{ + var idCardBarcodeArray = JSON.parse(barcodesStr); + var idCardIsExist = false; + var idCardLen = idCardBarcodeArray.length; + for(var n = 0;n < idCardLen;n++){ + if(idCardBarcodeArray[n].barcode == barcode){ + idCardIsExist = true; + break; + } + } + if(!idCardIsExist){ + idCardBarcodeArray[idCardLen] = {}; + idCardBarcodeArray[idCardLen].barcode = barcode; + idCardBarcodeArray[idCardLen].containerBarcode = (idCardClassifyBasket)?idCardClassifyBasket.containerBarcode:''; + idCardBarcodeArray[idCardLen].addSuccess = addSuccess; + $('#barcodes'+i).val(JSON.stringify(idCardBarcodeArray)); + } + } + } + }); + } + } + checkLoadedAmount(); +} + // 根据扫描的条码加载对应的对象. function loadBarcodeDevice(barcodeTemp,isSave){ barcodeGloble = ''; @@ -1859,176 +2032,44 @@ }else if(msg.tousseInstance != null){ if(!checkSelectDepartBeforeAddTousse()){ return false; - } - if(!msg.isIDCardInstance){//扫描器械包实例的条码 - var ti = msg.tousseInstance; - var td = ti.tousseDefinition; - if(sstsConfig.enableAutoIntoWashBasketWhenScanTousseBarcode){ - var basketHideStr = $("#basketsUl li:first").find('input').val(); - if(basketHideStr == null || basketHideStr == ""){ - newAlert("请扫描篮筐条码!"); - return false; - } - - if(!sstsConfig.disableIdCard && td.isDisableIDCard == "否"){//配置项开启和包定义中启用标识牌功能后,必须扫描标识牌回收 - newAlert(td.name+"启用了标识牌功能,不能扫描包实例条码,请扫描标识牌条码!"); - return false; - } - - var exist = tousseInstanceBarcodeIsExist(ti.barcode); - if(exist){ - alertDiv(barcode+",已入筐!"); - }else{ - var orgUnitName = $('#depart').text(); - var loadedAmount2 = tousseIntoBasketFunction(ti.id,td.id,td.name,1,td.isCleanedEntirely,orgUnitName,"",ti.barcode,td.tousseType,-1,'否',2,msg); - } - }else{ - var isThereIdentificationCard = '否'; - if(td.isDisableIDCard == "否"){ - isThereIdentificationCard = '是'; - } - var tmpRow = $("#tousseItemTable > tbody > tr").length; //获取子元素,不包含孙子及以下的元素 - var timeStr = new Date().getTime(); - var errorDamageQmKey = td.id + "_" + timeStr; - var toussItem = { - row: tmpRow, - tousseItemId: '', - tousseName: td.name, - tousseDefinitionID: td.id, - applicationAmount: 0, - recycleAmount: 1, - loadedAmount: 0, - isCleanedEntirely: td.isCleanedEntirely, - tousseType: td.tousseType, - isThereIdentificationCard: isThereIdentificationCard, - isApplyEntireTousse: td.isApplyEntireTousse, - urgentAmount : 0, - tousseRemark:'', - errorDamageQmKey : errorDamageQmKey, - barcode : ti.barcode - }; - addBindGoods(toussItem,sstsConfig.addTousseAtLastForRecycle); - addErrorDamageRemark(ti,tmpRow); - var orgUnitName = $('#depart').text(); - addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle,true,ti.id,msg.isFixedBarcode); - //未补充的丢失报损 - loadUnSupplementMaterial(msg,tmpRow,ti.barcode); - } - }else{ //扫描标识牌实例条码 - barcode = msg.idCardInstance.barcode; - var departValue = $('#depart').text(); - var tousseDepart = ''; - var tousseDepartCode = ''; - if(msg.tousseInstanceOrgUnit){ - tousseDepart = msg.tousseInstanceOrgUnit.depart; - tousseDepartCode = msg.tousseInstanceOrgUnit.orgUnitCoding; - } - if(departValue == ''){ - $('#depart').text(tousseDepart) - $('#departCode').val(tousseDepartCode) - } - // 对于已废弃的包,不检查其位置和所属科室的信息 - var ti = msg.tousseInstance; - var td = ti.tousseDefinition; - if(sstsConfig.restrictAddOtherGoodsToApplicationFromUseRecord && $('#useRecordId').val() != ''){ - var existRow = tousseItemExists(td.id, td.name, td.tousseType); - if(existRow == -1){ - alertDiv("不能添加申请单以外的物品 "); - return false; - }else if(parseInt($('#applicationAmount'+existRow).val()) - parseInt($('#loadedAmount'+existRow).val()) < 1 ){ - alertDiv("回收数量不能超过申请数量"); - return false; - } - } - var exist = idCardIsExist(barcode); - if(exist){ - alertDiv(barcode+",已入筐!"); - scanned = true; - }else{ - if(msg.shareDeparts){ - if(msg.shareDeparts.length > 0){ - if(msg.shareDeparts.indexOf(departValue) == -1 && departValue !== ''){ - alertDiv('该器械包不属于该科室。'); - return; - } - shareDepartsMap.set(msg.idCardInstance.tousseName,msg.shareDeparts); - }else { - if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').text() != tousseDepart && msg.tousseInstance.status != '已废弃'){ - alertDiv('该器械包不属于该科室。'); - return; - } - shareDepartsArr.push({ - tousseName:msg.idCardInstance.tousseName, - tousseDepart:tousseDepart - }) + } + + var alertMsg = ''; + + if(msg.tousseInstance.status == '已灭菌'){ + alertMsg = '该包当前状态为:已灭菌,请确认是否回收?'; + }else if(msg.tousseInstance.status == '已审核'){ + alertMsg = '该包当前状态为:已审核,请确认是否回收?'; + }else if(msg.tousseInstance.status == '已装配'){ + alertMsg = '该包当前状态为:已装配,请确认是否回收?'; + } + + if(alertMsg !== ''){ + $("#dialogConfirm").dialog({ + resizable: false, + height:310, + width:600, + modal: true, + open: function() { + $("#confirmMsg").text(alertMsg); + }, + close: function() { + $("#confirmMsg").text(""); + }, + buttons: { + "是": function() { + $( this ).dialog( "close" ); + scanTousseInstance(msg); + }, + "否": function() { + $( this ).dialog( "close" ); } - }else { - if(!isUndefinedOrNullOrEmpty(tousseDepart) && $('#depart').text() != tousseDepart && msg.tousseInstance.status != '已废弃'){ - alertDiv('该器械包不属��该科室。'); - return; - } - shareDepartsArr.push({ - tousseName:msg.idCardInstance.tousseName, - tousseDepart:tousseDepart - }) - } - var orgUnitName = $('#depart').text(); - var addSuccess = false; - var idCardClassifyBasket = msg.idCardClassifyBasket; - if(idCardClassifyBasket){ - if(idCardClassifyBasket.containerStatus == "清洗完成" || idCardClassifyBasket.containerStatus == "清洗中"){ - alertDiv("【"+idCardClassifyBasket.containerName + "】当前状态为【" + idCardClassifyBasket.containerStatus + "】,还有物品未装配"); - return false; - }else{ - addBasketElement(idCardClassifyBasket,true); - } - } - var basketHideStr = $("#basketsUl li:first").find('input').val(); - if(sstsConfig.enableAutoIntoWashBasketWhenScanTousseBarcode){ - if(basketHideStr == null || basketHideStr == ""){ - alertDiv("请扫描篮筐条码!"); - return false; - } - } - - var loadedAmount = tousseIntoBasketFunction("",td.id,td.name,1,td.isCleanedEntirely,orgUnitName,barcode,"",td.tousseType,-1,'否',3,msg); - - //记住扫描的标志牌 - $('#tousseItemTable').children().first().children().each(function(i,element){ - if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ - var barcodesStr = $('#barcodes'+i).val(); - setTousseItemLoadedAmountCss(i) - if(barcodesStr == ""){ - var idCardBarcodeArray = new Array(); - idCardBarcodeArray[0] = {}; - idCardBarcodeArray[0].barcode = barcode; - idCardBarcodeArray[0].addSuccess = addSuccess; - idCardBarcodeArray[0].containerBarcode = (idCardClassifyBasket)?idCardClassifyBasket.containerBarcode:''; - $('#barcodes'+i).val(JSON.stringify(idCardBarcodeArray)); - - }else{ - var idCardBarcodeArray = JSON.parse(barcodesStr); - var idCardIsExist = false; - var idCardLen = idCardBarcodeArray.length; - for(var n = 0;n < idCardLen;n++){ - if(idCardBarcodeArray[n].barcode == barcode){ - idCardIsExist = true; - break; - } - } - if(!idCardIsExist){ - idCardBarcodeArray[idCardLen] = {}; - idCardBarcodeArray[idCardLen].barcode = barcode; - idCardBarcodeArray[idCardLen].containerBarcode = (idCardClassifyBasket)?idCardClassifyBasket.containerBarcode:''; - idCardBarcodeArray[idCardLen].addSuccess = addSuccess; - $('#barcodes'+i).val(JSON.stringify(idCardBarcodeArray)); - } - } - } - }); - } + } + }); + }else { + scanTousseInstance(msg); } - checkLoadedAmount(); + }else if(msg.user != null){ userNameByBarcode = msg.user.fullName; var departCode = $('#departCode').val();