Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r28406 -r28468 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 28406) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 28468) @@ -1,4 +1,7 @@ var tousseArray = new Array(); +var splitTousseArray = new Array(); +var splitTousseArray2 = new Array(); +var newSplitTousseArray = new Array(); var deleteTousseItemArray = new Array(); // 科室绑定的篮筐的条码数组 var departBindingBasketBarcodes = []; @@ -9,6 +12,109 @@ * 不回收的器械包的集合。这个是由绑定带出来的器械包,并且不回收,在回收这里本来是不做处理的。现在要能修改原来的申请数量,相关的还有装配任务 */ var unrecycleTousseItemArray = new Array(); + +//弹出不同申请科室或者不同资产归属的器械包 +function loadApplicationTousseSplitByOrgUnit(){ + $.ajax({ + type : "post", + url : WWWROOT + '/disinfectSystem/recyclingRecordAction!loadApplicationTousseSplitByOrgUnit.do', + data:{ + recyclingRecordId:params_appId + }, + dataType:'json', + success:function(result){ + if(result.success){ + if(result.data.length > 0){ + var data = result.data; + splitTousseArray2 = data; + var table = ''; + var name = (sstsConfig.methodOfSplitRecyclingApplication == 2)?'资产归属':'所属科室'; + table += ''; + table += ''; + table += ''; + table += ''; + table += ''; + for(var i=0;i'; + table += ''; + } + table += ''; + table += '
物品名称数量'+name+'
'+data[i].amount+''+data[i].depart+'
'; + layer.open({ + type: 1, + skin: 'layui-layer-rim', //加上边框 + area: ['500px', '400px'], //宽高 + shade:0, + title:'该申请单中以下物品不属于当前回收科室:', + content: table + }); + } + } + } + }) +} +//打开不同申请科室或者不同资产归属的器械包 +function openApplicationTousseSplitByOrgUnit(newTousseArray,tousseArray){ + var table = '
该申请单中以下物品不属于当前回收科室(回收科室名称),请确认是否拆单回收:
'; + var name = (sstsConfig.methodOfSplitRecyclingApplication == 2)?'资产归属':'所属科室'; + table += ''; + table += ''; + table += ''; + table += ''; + table += ''; + for(var i=0;i'; + table += ''; + } + table += ''; + table += '
物品名称数量'+name+'是否拆单
'+newTousseArray[i].amount+''+newTousseArray[i].depart+'
'; + table += '
'; + layer.open({ + type: 1, + skin: 'layui-layer-rim', //加上边框 + area: ['500px', '400px'], //宽高 + title:'拆单回收', + content: table, + success:function(){ + //保存不同申请科室或者不同资产归属的器械包 + document.getElementById('saveApplicationTousseSplitByOrgUnit').addEventListener('click',function(){ + var k=0; + var splitTousseArray = []; + $('.saveTousseTable').find('.isSplit').each(function(item){ + var isSplit = $(this).find('input:checked').val(); + var tousseName = $(this).parent().find('td').eq(0).text(); + var amount = parseInt($(this).parent().find('td').eq(1).text()); + var depart = $(this).parent().find('td').eq(2).text(); + if(isSplit == 'true'){ + splitTousseArray[k] = { + isSplit:isSplit, + tousseName:tousseName, + amount:amount, + depart:depart + } + for(var j=0;j= 0){ + if(json.barcode == basketBarcode){ basketElement = $(this).find("dl"); basketHidenValue = hideStr; @@ -1189,7 +1284,7 @@ }); } -function createBasketUiElement(basketBarcode,classifyBasketId,basketName,washClassifyType,sequence){ +function createBasketUiElement(basketBarcode,classifyBasketId,basketName,washClassifyType,sequence,isIdCard){ var basketElement = '
  • '; basketElement += ''; basketElement += ''; @@ -1209,7 +1304,7 @@ basketElement += '
  • '; var obj = $(basketElement); $("#basketsUl").prepend(obj); - var json = getBasketJSON(classifyBasketId,basketBarcode,washClassifyType,sequence,basketName); + var json = getBasketJSON(classifyBasketId,basketBarcode,washClassifyType,sequence,basketName,isIdCard); $("#basketsUl li:first").find('input').val(json); toggleItems(obj.find('span')[0]); } @@ -1226,7 +1321,8 @@ } } } -function addBasketElement(basketItem){ +function addBasketElement(basketItem,isIdCard){ + isIdCard = isIdCard || false; var currentNode; var isBasketLoaded = false; $("#basketsUl li").each(function(){ @@ -1244,7 +1340,7 @@ $("#basketsUl").prepend(currentNode); // toggleItems(currentNode.find('span')[1]); }else{ - createBasketUiElement(basketItem.containerBarcode,basketItem.id,basketItem.containerName,basketItem.washClassifyType); + createBasketUiElement(basketItem.containerBarcode,basketItem.id,basketItem.containerName,basketItem.washClassifyType,undefined,isIdCard); } $("#scanContainerBarcodeTipUl").hide(); } @@ -1627,7 +1723,7 @@ alertDiv("【"+idCardClassifyBasket.containerName + "】当前状态为【" + idCardClassifyBasket.containerStatus + "】,还有物品未装配"); return false; }else{ - addBasketElement(idCardClassifyBasket); + addBasketElement(idCardClassifyBasket,true); } } var basketHideStr = $("#basketsUl li:first").find('input').val(); @@ -2361,13 +2457,14 @@ } } -function getBasketJSON(itemId,barcode,washClassifyType,sequence,basketName){ +function getBasketJSON(itemId,barcode,washClassifyType,sequence,basketName,isIdCard){ var json = {}; json.classifyBasketId = itemId; json.barcode = barcode; json.washClassifyType = washClassifyType; json.sequence = sequence; json.basketName = basketName; + json.isIdCard = isIdCard; return JSON.stringify(json); } @@ -2473,7 +2570,7 @@ * @param idCardBarcode * @returns {Number} */ -function tousseIntoBasketFunction(tousseInstanceId,tousseDefinitionID,tousseName,recycleAmount,isCleanedEntirely,orgUnitName,idCardBarcode,tousseInstanceBarcode,tousseType,row){ +function tousseIntoBasketFunction(tousseInstanceId,tousseDefinitionID,tousseName,recycleAmount,isCleanedEntirely,orgUnitName,idCardBarcode,tousseInstanceBarcode,tousseType,row,isIDCard){ var params = getScanedGoods(isCleanedEntirely); newAmount = 0; if(params.length <=0){ @@ -2528,7 +2625,7 @@ var amountSum = 0; if(isCleanedEntirely == '否'){ var tousseAmount = 0; - $('dl[class="sed clearfix"]').each(function(){ + $('dl[class="sed clearfix"]').eq(0).each(function(){ var basketEle = $(this).prev().prev().prev().prev().prev().val(); var basketJSON = JSON.parse(basketEle); $(this).children().each(function(){ @@ -2537,38 +2634,21 @@ if(!isUndefinedOrNullOrEmpty(hideValue)){ var obj = JSON.parse(hideValue); if(obj.tousseName == tousseName){ - var amount = obj.amount/obj.tousseAmount; var delButton = $(this).next().next().next().next().find('a'); - obj.tousseAmount = obj.tousseAmount + recycleAmount; - obj.amount = obj.tousseAmount*amount; - tousseAmount = obj.tousseAmount; - $(this).val(JSON.stringify(obj)); - $(this).next().next().next().html(obj.amount); - var hideElement = $(delButton).parent().prev().prev().prev().prev(); - var item = JSON.parse(hideElement.val()); - var tousse = { - basketBarcode: basketJSON.barcode, - basketId: basketJSON.classifyBasketId, - classifiedItemId:'', - tousseName: item.materialName, - tousseDefinitionID: item.tousseDefinitionID, - amount: parseInt(recycleAmount*amount), - tousseAmountForMaterial: parseInt(recycleAmount), - itemType: item.type, - tousseNameForMaterial: item.tousseName, - idCardBarcode: item.idCardBarcode, - basketGroupBarcodes:item.basketGroupBarcodes, - lastTousseInstanceId:item.lastTousseInstanceId, - tousseInstanceBarcode:item.tousseInstanceBarcode + tousseAmount = obj.tousseAmount + recycleAmount; + if(tousseAmount < 0){ + alertDiv('【'+tousseName+'】减少的数量不能大于篮筐现有的【'+tousseName+'】数量'+obj.amount); + return; } - addOrDelTousse(tousse); + deleteBasketItem(delButton); } } } }); }); - - loadedAmountSum = tousseAmount; + if(tousseAmount > 0){ + putTousseInTheBasket(row,tousseAmount); + } }else { $("#basketsUl li").eq(0).find('dl').children().each(function(i,element){ if($(this).attr('type') == 'hidden'){ @@ -2654,9 +2734,9 @@ } }); } + $('#loadedAmount'+row).val(loadedAmountSum); } - $('#loadedAmount'+row).val(loadedAmountSum); setTousseItemLoadedAmountCss(row); addAllBasketTotalNum(); refreshSplitBasketView(); @@ -2668,7 +2748,14 @@ alertDiv("【"+tousseName+"】的清洗装载数量上限为"+putBasketMaxAmount+",本次入筐数量为"+recycleAmount+",当前篮筐容量不够,请用其它篮筐装载。"); return 0; } - $('#loadedAmount'+row).val(recycleAmountNew); + //丢失报损器械 + if(isIDCard == '是'){ + setIdCardErrorIntoBasketAmount(row,loadedAmount); + $('#loadedAmount'+row).val(parseInt(loadedAmount,10)+parseInt($('#loadedAmount'+row).val(),10)); + }else { + $('#loadedAmount'+row).val(recycleAmountNew); + } + if(recycleAmountNew > putBasketMaxAmount && loadedAmountNew < putBasketMaxAmount){ $('#loadedAmount'+row).val(putBasketMaxAmount); loadedAmount = putBasketMaxAmount-loadedAmountNew; @@ -2759,14 +2846,24 @@ var inputSuccess = false; newAmount = 0; if($('#basketsUl').children().length > 0){ + var basketsObj = $('#basketsUl').children().eq(0).find('input[type=hidden]').val(); + basketsObj = JSON.parse(basketsObj); + var isIdCard = basketsObj.isIdCard; + var basketName = basketsObj.basketName; var tousseName = $('#tousseName'+row).val(); var tousseDefinitionID = $('#tousseDefinitionID'+row).val(); var showTousseName = $('#showTousseName'+row).val(); var tousseType = $('#tousseType'+row).val(); var isCleanedEntirely = $('#isCleanedEntirely'+row).val(); var recycleAmount = parseInt($('#recycleAmount'+row).val(),10); var loadedAmount = parseInt($('#loadedAmount'+row).val(),10); - var applicationAmount = parseInt($('#applicationAmount'+row).val(),10); + var applicationAmount = parseInt($('#applicationAmount'+row).val(),10); + var msg = ""; + if(isIdCard == true){ + if(basketName.indexOf(tousseName+'(标识牌') == -1){ + msg = '不允许将包放入标识牌的篮筐中,请扫描其它的清洗篮筐!'; + } + } //是否开启限制使用记录转换的申请单不能添加别的物品 if(sstsConfig.restrictAddOtherGoodsToApplicationFromUseRecord && $('#useRecordId').val() !='' && recycleAmount > applicationAmount){ alertDiv("回收数量不能超过申请数量"); @@ -2775,7 +2872,6 @@ var amount = recycleAmountNew || recycleAmount - parseInt($('#loadedAmount'+row).val(),10); newAmount = amount; //回收数量扣减入筐操作 如果已经入筐就不能入筐,只能是手动从篮筐里面删除,因为程序不晓得从哪个篮筐里面扣减 - var msg = ""; if(amount > 9999){ msg = "入筐数量不能大于9999!"; @@ -2793,27 +2889,27 @@ var isIDCard = $('#isThereIdentificationCard'+row).val(); if(isIDCard == '是'){ var showMsg = null; - var recyclingErrorJsonArrayStr = $('#recyclingError'+row).val(); + var recyclingErrorJsonArrayStr = $('#recyclingError'+row).val(); if(!isUndefinedOrNullOrEmpty(recyclingErrorJsonArrayStr)){ - var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); - var isIdCardLost = false; + var recyclingErrorJsonArray = JSON.parse(recyclingErrorJsonArrayStr); for(var j = 0;j < recyclingErrorJsonArray.length;j++) { if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ isIdCardLost = true; var errorAmount = parseInt(recyclingErrorJsonArray[j].amount); - var intoBasketAmount = parseInt(recyclingErrorJsonArray[j].intoBasketAmount); - if(errorAmount == 0 || errorAmount == intoBasketAmount){ + var intoBasketAmount = recyclingErrorJsonArray[j].intoBasketAmount; + if(errorAmount == 0 || errorAmount == intoBasketAmount){ showMsg = $('#tousseName'+row).val()+"扫描的标识牌数量不等于回收数量,如果标识牌丢失,请在回收误差中登记丢失记录!"; }else{ - amount = errorAmount; - } + if(errorAmount - intoBasketAmount >0){ + amount = errorAmount - intoBasketAmount; + } + } break; } } - if(isIdCardLost && recycleAmount > amount){ + if(!isIdCardLost && amount > 0){ showMsg = $('#tousseName'+row).val()+"扫描的标识牌数量不等于回收数量,如果标识牌丢失,请在回收误差中登记丢失记录!"; } - amount = recycleAmount - loadedAmount; }else{ var tousseAmount = parseInt($('#recycleAmount'+row).val(),10); var scannedAmount = parseInt($('#loadedAmount'+row).val(),10); @@ -2832,17 +2928,8 @@ 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,isIDCard); newAmount = 0; - if(loadedAmount > 0){ - $('#loadedAmount'+row).val(parseInt(loadedAmount,10)+parseInt($('#loadedAmount'+row).val(),10)); - //丢失报损器械 - if(isIDCard == '是'){ - setIdCardErrorIntoBasketAmount(row,loadedAmount); - } - - inputSuccess = true; - } refreshAllBasketTotalNum(); } @@ -3451,7 +3538,7 @@ if(recyclingErrorJsonArray[j].materialName == '器械包标识牌'){ var errorType = recyclingErrorJsonArray[j].errorType; var errorAmount = recyclingErrorJsonArray[j].amount; - var intoBasketAmount = recyclingErrorJsonArray[j].intoBasketAmount; + var intoBasketAmount = recyclingErrorJsonArray[j].intoBasketAmount; if(errorType == '缺失' && errorAmount != intoBasketAmount){ isAllTousseInTheBasket = false; } @@ -3493,9 +3580,34 @@ * @param confirmation * @returns */ -function getJsonParams(confirmation){ +function getJsonParams(confirmation,isConfirm){ + var newTousseArray = []; + var length = splitTousseArray2.length; + if(length > 0){ + var k=0; + for(var j=0;j 0 && isConfirm == false){ + openApplicationTousseSplitByOrgUnit(newTousseArray,tousseArray); + return ''; + } var paramJson = {}; - paramJson.tousseJson = tousseArray; + paramJson.tousseJson = tousseArray; + paramJson.splitTousseJson = newSplitTousseArray; paramJson.delToussItems = deleteTousseItemArray; paramJson.unrecycleTousseItemArray = unrecycleTousseItemArray; paramJson.tousseIntoBasketInfo = getTousseIntoBasketInfo(); @@ -3751,11 +3863,13 @@ * @param print 保存并打印回收记录操作 * Annie 如果tally为true是清点确认 否则就是false */ -function submitFormFunction(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm){ +function submitFormFunction(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm,isConfirm){ var websocketSessionId = getWebsocketSessionId(); + isConfirm = isConfirm || false; + var jsonStr = getJsonParams(confirmation,isConfirm); + if(jsonStr == '') {return;} + var jSONe = JSON.parse(jsonStr); alertDiv("保存中,请稍候......", true); - var jsonStr = getJsonParams(confirmation); - var jSONe = JSON.parse(jsonStr); if(IntheBoxState == true){ jSONe.tally = true; }else{ @@ -3929,10 +4043,11 @@ * @param print 保存并打印回收记录操作 * Annie 如果tally为true是清点确认 否则就是false */ -function submitFormFunctionForInventoryConfirm(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm){ - +function submitFormFunctionForInventoryConfirm(confirmation,saveAndNew,autoReturnTheBorrowingTousse,print,recyclingAmountConfirm,isConfirm){ + isConfirm = isConfirm || false; + var jsonStr = getJsonParams(confirmation,isConfirm); + if(jsonStr == '') {return;} alertDiv("保存中,请稍候......", true); - var jsonStr = getJsonParams(confirmation); var jSONe = JSON.parse(jsonStr) if(IntheBoxState == true){ jSONe.tally = true; Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp =================================================================== diff -u -r28339 -r28468 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 28339) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 28468) @@ -110,6 +110,17 @@ .autoCloseTitle{font-size:18px;font-weight: bold;font-family: "微软雅黑";margin-bottom:0;} .autoCloseText{color:red;font-size:22px;margin-left: 29px;font-weight: bold;} .autoCloseBtn{font-size:14px;color:#b5a614;display: block;cursor: pointer;} + +.tousseTable { + width: 480px; +} + +.tousseTable th,.tousseTable td { + height: 30px; + border: 1px solid #ddd; + text-align: center; + line-height: 30px; +}