Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r27355 -r27361 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 27355) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 27361) @@ -19,7 +19,8 @@ var tousseNameForMaterial = item.tousseNameForMaterial; var idCardBarcode = item.idCardBarcode; var basketGroupBarcodes = item.basketGroupBarcodes; - + var lastTousseInsatnceId = item.lastTousseInsatnceId; + var tousseInstanceBarcode = item.tousseInstanceBarcode; var length = tousseArray.length; var sigle = true; var deleteIndex = []; @@ -32,6 +33,7 @@ var t_idCardBarcode = tousseArray[i].idCardBarcode; var t_amountForMaterial = tousseArray[i].tousseAmountForMaterial; var t_basketGroupBarcodes = tousseArray[i].basketGroupBarcodes; + var t_lastTousseInsatnceId = tousseArray[i].lastTousseInsatnceId; var t_itemType = tousseArray[i].itemType; if(t_basketBarcode == basketBarcode && itemType == t_itemType && t_tousseName == tousseName && t_tousseDefinitionID == item.tousseDefinitionID && t_idCardBarcode == idCardBarcode){ if(itemType == '材料' && (tousseNameForMaterial != t_tousseNameForMaterial || basketGroupBarcodes != t_basketGroupBarcodes)){ @@ -58,14 +60,16 @@ basketId: basketId, classifiedItemId: '', tousseDefinitionID: item.tousseDefinitionID, + tousseInstanceBarcode:tousseInstanceBarcode, tousseName: tousseName, amount: amount, tousseAmountForMaterial: tousseAmountForMaterial, itemType: itemType, tousseNameForMaterial: tousseNameForMaterial, idCardBarcode: idCardBarcode, basketGroupBarcodes: basketGroupBarcodes, - basketSequence: item.basketSequence + basketSequence: item.basketSequence, + lastTousseInsatnceId:lastTousseInsatnceId }; tousseArray.push(newTousse); } @@ -803,6 +807,31 @@ } /** + * 判断此包实例条码是否已经入筐. + * @param barcode + * @return {Boolean} + */ +function tousseInstanceBarcodeIsExist(barcode){ + var exist = false; + $('dl[class="sed clearfix"]').each(function(){ + $(this).children().each(function(){ + if($(this).attr('type') == 'hidden'){ + var hideValue = $(this).val(); + if(!isUndefinedOrNullOrEmpty(hideValue)){ + var hiddenjson = JSON.parse(hideValue); + if(hiddenjson.tousseInstanceBarcode == barcode){ + exist = true; + return false; + } + } + } + }); + }); + return exist; +} + + +/** * 创建物品入筐 * @param basketItem */ @@ -822,6 +851,8 @@ var basketGroupBarcodes = basketItem.basketGroupBarcodes; var putBasketMaxAmount = basketItem.putBasketMaxAmount; var isExist = false; + var lastTousseInsatnceId = basketItem.lastTousseInsatnceId; + var tousseInstanceBarcode = basketItem.tousseInstanceBarcode; var basketElement = $('dl[class="sed clearfix"]:eq(0)'); var basketHidenValue = $("#basketsUl li:first").find('input').val(); if(type == '材料'){ @@ -874,8 +905,11 @@ }); } if(!isExist){ - var showBarcode = idCardBarcode; + if(sstsConfig.defaultRecycleAmountOfTousseFormIsZero || sstsConfig.defaultRecycleAmountOfComboFormIsZero){ + showBarcode = tousseInstanceBarcode; + } + if(type == '材料' && idCardBarcode == ""){ showBarcode = tousseName; } @@ -885,7 +919,7 @@ element += '
' + amount + '
'; element += '
删除
'; - var json = getBasketItemJSON(ci_id,type,orgUnitName,tousseName,materialName,amount,tousseAmount,idCardBarcode,tousseDefinitionID,basketGroupBarcodes,putBasketMaxAmount,tousseType); + var json = getBasketItemJSON(ci_id,type,orgUnitName,tousseName,materialName,amount,tousseAmount,idCardBarcode,tousseDefinitionID,basketGroupBarcodes,putBasketMaxAmount,tousseType,lastTousseInsatnceId,tousseInstanceBarcode); basketElement.prepend($(element)); basketElement.find("input:first").val(json); } @@ -911,8 +945,10 @@ tousseNameForMaterial: tousseNameForMaterial, idCardBarcode: idCardBarcode, tousseDefinitionID: tousseDefinitionID, + tousseInstanceBarcode:tousseInstanceBarcode, basketGroupBarcodes: basketGroupBarcodes, - basketSequence:basketJson.sequence + basketSequence:basketJson.sequence, + lastTousseInsatnceId:lastTousseInsatnceId } addOrDelTousse(tousse); } @@ -1227,7 +1263,11 @@ alertDiv(msg.errorMessage); } }else{ - alertDiv(msg.errorMessage); + if(sstsConfig.defaultRecycleAmountOfComboFormIsZero || sstsConfig.defaultRecycleAmountOfTousseFormIsZero){ + newAlert(msg.errorMessage); + }else{ + alertDiv(msg.errorMessage); + } } } }else if(msg.orgUnit!= null){ @@ -1250,55 +1290,115 @@ if(!checkSelectDepartBeforeAddTousse()){ return false; } - - if(!msg.isIDCardInstance){ //扫描器械包实例的条码 - var ti = msg.tousseInstance; - var td = ti.tousseDefinition; - - var isExist = false; - $('#tousseItemTable').children().first().children().each(function(i,element){ - if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ - $('#recycleAmount'+i).val(parseInt($('#recycleAmount'+i).val()) + 1); - $('#tousseOrIDCardInstanceBarcodes'+i).val(appendBarcodes($('#tousseOrIDCardInstanceBarcodes'+i).val(), ti.barcode)); - addErrorDamageRemark(ti,i); - loadUnSupplementMaterial(msg,i,ti.barcode); - isExist = true; - } - }); - - if(!isExist){ - 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 - }; - addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle); - addBindGoods(toussItem,sstsConfig.addTousseAtLastForRecycle); - //清除已删除的包 - cleanDeleteTousseItem(td.id); - addErrorDamageRemark(ti,tmpRow); - //未补充的丢失报损 - loadUnSupplementMaterial(msg,tmpRow,ti.barcode); - } + if(!msg.isIDCardInstance){//扫描器械包实例的条码 + var ti = msg.tousseInstance; + var td = ti.tousseDefinition; + + if(sstsConfig.defaultRecycleAmountOfComboFormIsZero || sstsConfig.defaultRecycleAmountOfTousseFormIsZero){ + var basketHideStr = $("#basketsUl li:first").find('input').val(); + if(basketHideStr == null || basketHideStr == ""){ + newAlert("请扫描篮筐条码!"); + return false; + } + var exist = tousseInstanceBarcodeIsExist(ti.barcode); + if(exist){ + alertDiv(barcode+",已入筐!"); + }else{ + var orgUnitName = $('#depart').val(); + var loadedAmount = tousseIntoBasketFunction(ti.id,td.id,td.name,1,td.isCleanedEntirely,orgUnitName,"",ti.barcode,td.tousseType); + + if(loadedAmount > 0){ + var tousseIsExist = false; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ + tousseIsExist = true; + $('#loadedAmount'+i).val(1 + parseInt($('#loadedAmount'+i).val(),10)); + $('#tousseOrIDCardInstanceBarcodes'+i).val(appendBarcodes($('#tousseOrIDCardInstanceBarcodes'+i).val(), ti.barcode)); + if(parseInt($('#loadedAmount'+i).val()) > parseInt($('#recycleAmount'+i).val())){ + $('#recycleAmount'+i).val(parseInt($('#loadedAmount'+i).val())); + } + addErrorDamageRemark(ti,i); + loadUnSupplementMaterial(msg,i,ti.barcode); + } + }); + if(!tousseIsExist){ + 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: 1, + isCleanedEntirely: td.isCleanedEntirely, + tousseType: td.type, + isThereIdentificationCard: '是', + isApplyEntireTousse: td.isApplyEntireTousse, + urgentAmount : 0, + tousseRemark:'', + errorDamageQmKey : errorDamageQmKey, + barcode : ti.barcode + }; + addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle); + addBindGoods(toussItem,sstsConfig.addTousseAtLastForRecycle); + //清除已删除的包 + cleanDeleteTousseItem(td.id); + addErrorDamageRemark(ti,tmpRow); + //未补充的丢失报损 + loadUnSupplementMaterial(msg,tmpRow,ti.barcode); + } + refreshAllBasketTotalNum(); + } + } + }else{ + var isExist = false; + $('#tousseItemTable').children().first().children().each(function(i,element){ + if($('#tousseName'+i).val() == td.name && $('#deleted'+i).val() == '0'){ + $('#recycleAmount'+i).val(parseInt($('#recycleAmount'+i).val()) + 1); + $('#tousseOrIDCardInstanceBarcodes'+i).val(appendBarcodes($('#tousseOrIDCardInstanceBarcodes'+i).val(), ti.barcode)); + addErrorDamageRemark(ti,i); + loadUnSupplementMaterial(msg,i,ti.barcode); + isExist = true; + } + }); + + if(!isExist){ + 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 + }; + addToussItem(toussItem,sstsConfig.addTousseAtLastForRecycle); + addBindGoods(toussItem,sstsConfig.addTousseAtLastForRecycle); + //清除已删除的包 + cleanDeleteTousseItem(td.id); + addErrorDamageRemark(ti,tmpRow); + //未补充的丢失报损 + loadUnSupplementMaterial(msg,tmpRow,ti.barcode); + } + } }else{ //扫描标识牌实例条码 barcode = msg.idCardInstance.barcode; if($('#depart').attr('value') == ''){ @@ -1344,7 +1444,7 @@ return false; } - var loadedAmount = tousseIntoBasketFunction(td.id,td.name,1,td.isCleanedEntirely,orgUnitName,barcode,td.tousseType); + var loadedAmount = tousseIntoBasketFunction("",td.id,td.name,1,td.isCleanedEntirely,orgUnitName,barcode,"",td.tousseType); if(loadedAmount > 0){ var tousseIsExist = false; @@ -2017,7 +2117,7 @@ } function getBasketItemJSON(ci_id,type,orgUnitName,tousseName,materialName,amount,tousseAmount,idCardBarcode, - tousseDefinitionID,basketGroupBarcodes,putBasketMaxAmount,tousseType){ + tousseDefinitionID,basketGroupBarcodes,putBasketMaxAmount,tousseType,lastTousseInsatnceId,tousseInstanceBarcode){ var json = {}; json.classifiedItemId = ci_id; json.type = type; @@ -2032,6 +2132,8 @@ json.putBasketMaxAmount = putBasketMaxAmount; json.useBasketBarcodes = new Array(); json.basketGroupBarcodes = basketGroupBarcodes; + json.lastTousseInsatnceId = lastTousseInsatnceId; + json.tousseInstanceBarcode = tousseInstanceBarcode; return JSON.stringify(json); } @@ -2107,14 +2209,15 @@ /** * 判断此次能入筐的数量. * @param tousseDefinitionID + * @param tousseInstanceId 包实例id * @param tousseName * @param recycleAmount * @param isCleanedEntirely * @param orgUnitName * @param idCardBarcode * @returns {Number} */ -function tousseIntoBasketFunction(tousseDefinitionID,tousseName,recycleAmount,isCleanedEntirely,orgUnitName,idCardBarcode,tousseType,row){ +function tousseIntoBasketFunction(tousseInstanceId,tousseDefinitionID,tousseName,recycleAmount,isCleanedEntirely,orgUnitName,idCardBarcode,tousseInstanceBarcode,tousseType,row){ var params = getScanedGoods(isCleanedEntirely); if(params.length <=0){ if(isCleanedEntirely == "是" && sstsConfig.cleanedEntirelyTousseIntoWashClassifyEmptyBasket){ @@ -2149,6 +2252,8 @@ orgUnitName: orgUnitName, tousseName: tousseName, tousseDefinitionID: tousseDefinitionID, + lastTousseInsatnceId:tousseInstanceId, //包实例id + tousseInstanceBarcode:tousseInstanceBarcode, tousseType:tousseType, materialName: item.materialName, showName: item.materialName, @@ -2168,6 +2273,8 @@ orgUnitName: orgUnitName, tousseName: tousseName, tousseDefinitionID: tousseDefinitionID, + lastTousseInsatnceId:tousseInstanceId, //包实例id, + tousseInstanceBarcode:tousseInstanceBarcode,//包实例条码,为了显示 tousseType:tousseType, materialName: "", showName: tousseName, @@ -2272,7 +2379,7 @@ if(amount == 0){ alertDiv('没有可以放入篮筐的器械包。'); }else{ - var loadedAmount = tousseIntoBasketFunction(tousseDefinitionID,tousseName,amount,isCleanedEntirely,orgUnitName,"",tousseType,row); + var loadedAmount = tousseIntoBasketFunction("",tousseDefinitionID,tousseName,amount,isCleanedEntirely,orgUnitName,"","",tousseType,row); if(loadedAmount > 0){ $('#loadedAmount'+row).val(parseInt(loadedAmount,10)+parseInt($('#loadedAmount'+row).val(),10)); @@ -2432,6 +2539,7 @@ }, 300 ) } } + /** * 添加回收记录明细,tousseName为器械包名称,applicationAmount为申请数量,recycleAmount为回收数量,loadedAmount为装载数量 * @param toussItem 物品明细 @@ -3785,7 +3893,6 @@ height = size.height; offsetTop = offsetTop*zoomRatio; - layerIndex=layer.open({ type : 2, title : ['添加器械包',true], @@ -3932,6 +4039,8 @@ orgUnitName: orgUnitName, tousseName: tousseName, tousseDefinitionID: tousseDefinitionID, + lastTousseInsatnceId:"", //包实例id + tousseInstanceBarcode:"", tousseType: tousseType, materialName: item.materialName, showName: item.materialName, @@ -4347,6 +4456,13 @@ if(recycleAmount == null){ recycleAmount = item.amount; } + var appType = $("#appType").val(); + if(appType == "通用申请单" && sstsConfig.defaultRecycleAmountOfComboFormIsZero){//通用申请单并且配置为true,回收数量默认为0 + recycleAmount = 0; + }else if(appType == "器械包申请单" && sstsConfig.defaultRecycleAmountOfTousseFormIsZero){//器械包申请单并且配置为true,回收数量默认为0 + recycleAmount = 0; + } + var errorDamageQmKey = item.errorDamageQmKey; if(isUndefinedOrNullOrEmpty(errorDamageQmKey)){ var timeStr = new Date().getTime(); @@ -4801,7 +4917,7 @@ element += '
删除
'; $('dl[class="sed clearfix"]:eq(0)').prepend(element); - var json = getBasketItemJSON(ci.id,'材料',ci.orgUnitName,tousseNameForMaterial,materialName,ci.amount,ci.tousseAmountForMaterial,ci.idCardBarcode,ci.tousseDefinitionID,ci.basketGroupBarcodes,putBasketMaxAmount,tousseType); + var json = getBasketItemJSON(ci.id,'材料',ci.orgUnitName,tousseNameForMaterial,materialName,ci.amount,ci.tousseAmountForMaterial,ci.idCardBarcode,ci.tousseDefinitionID,ci.basketGroupBarcodes,putBasketMaxAmount,tousseType,"",""); $('dl[class="sed clearfix"]:eq(0)').find("input:first").val(json); $('td[axis="materialName"]').each(function(){ @@ -4815,14 +4931,19 @@ if(putBasketMaxAmount == null){ putBasketMaxAmount = 0; } + + var barcode = ci.idCardBarcode; + if((sstsConfig.defaultRecycleAmountOfComboFormIsZero || sstsConfig.defaultRecycleAmountOfTousseFormIsZero) && ci.tousseInstanceBarcode != undefined){ + barcode = ci.tousseInstanceBarcode; + } var element = ''; element += '
'+ci.tousseDefinition.name+'
'; - element += '
 '+ci.idCardBarcode+'
'; + element += '
 '+barcode+'
'; element += '
'+ci.amount+'
'; element += '
删除
'; $('dl[class="sed clearfix"]:eq(0)').prepend(element); - var json = getBasketItemJSON(ci.id,"器械包",ci.orgUnitName,ci.tousseDefinition.name,"",ci.amount,ci.tousseAmountForMaterial,ci.idCardBarcode,ci.tousseDefinitionID,ci.basketGroupBarcodes,putBasketMaxAmount,tousseType); + var json = getBasketItemJSON(ci.id,"器械包",ci.orgUnitName,ci.tousseDefinition.name,"",ci.amount,ci.tousseAmountForMaterial,ci.idCardBarcode,ci.tousseDefinitionID,ci.basketGroupBarcodes,putBasketMaxAmount,tousseType,"",""); $('dl[class="sed clearfix"]:eq(0)').find("input:first").val(json); } } Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp =================================================================== diff -u -r27353 -r27361 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 27353) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 27361) @@ -115,7 +115,7 @@ .autoCloseText,.autoCloseBtn{margin:0px;padding:0px;} .autoCloseAlert{border: 1px solid #dcdcdc;background:#eeeeee;padding: 12px 10px; width:300px;position:absolute;z-index:222220000;top:8px;margin-left: -150px;left:50%;border-radius:5px;display: none;} .autoCloseTitle{font-size:18px;font-weight: bold;font-family: "微软雅黑";margin-bottom:0;} -.autoCloseText{color:red;font-size:22px;margin-left: 29px;} +.autoCloseText{color:red;font-size:22px;margin-left: 29px;font-weight: bold;} .autoCloseBtn{font-size:14px;color:#b5a614;display: block;cursor: pointer;}