Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r28327 -r28331 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 28327) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 28331) @@ -24,7 +24,7 @@ var tousseInstanceBarcode = item.tousseInstanceBarcode; var length = tousseArray.length; var sigle = true; - var deleteIndex = []; + var deleteIndex = []; for(var i = 0;i < length ; i++){ var t_basketBarcode = tousseArray[i].basketBarcode; var t_tousseName = tousseArray[i].tousseName; @@ -36,12 +36,12 @@ var t_basketGroupBarcodes = tousseArray[i].basketGroupBarcodes; var t_lastTousseInstanceId = tousseArray[i].lastTousseInstanceId; var t_tousseInstanceBarcode = tousseArray[i].tousseInstanceBarcode; - var t_itemType = tousseArray[i].itemType; + var t_itemType = tousseArray[i].itemType; if(t_basketBarcode == basketBarcode && itemType == t_itemType && t_tousseName == tousseName && t_tousseDefinitionID == item.tousseDefinitionID && t_idCardBarcode == idCardBarcode && t_tousseInstanceBarcode == tousseInstanceBarcode){ if(itemType == '材料' && (tousseNameForMaterial != t_tousseNameForMaterial || basketGroupBarcodes != t_basketGroupBarcodes)){ continue; } - tousseArray[i].amount = t_amount + amount; + tousseArray[i].amount = t_amount+amount; tousseArray[i].tousseAmountForMaterial = t_amountForMaterial + tousseAmountForMaterial; tousseArray[i].basketSequence = item.basketSequence; if(tousseArray[i].amount === 0){ @@ -60,7 +60,7 @@ var newTousse = { basketBarcode: basketBarcode, basketId: basketId, - classifiedItemId: '', + classifiedItemId: item.classifiedItemId || '', tousseDefinitionID: item.tousseDefinitionID, tousseInstanceBarcode:tousseInstanceBarcode, tousseName: tousseName, @@ -75,7 +75,7 @@ }; tousseArray.push(newTousse); } - } + } } @@ -389,16 +389,116 @@ }, buttons: { "是": function() { - if(actionFunction == 'deleteTousse'){//删器械包 - deleteTousseItem(row); - }else if(actionFunction == 'deleteBasketItem'){//删篮筐内物品 - deleteBasketItem(deleteButton); - }else if(actionFunction == 'deleteBasket'){//删篮筐 - deleteBasket(deleteButton,basketBarcode,basketId); - } - refreshSplitBasketView(); - refreshAllBasketTotalNum(); - $(this).dialog("close"); + var delInfo = []; + if(actionFunction == 'deleteTousse'){ + var tousseDefinitionID = parseInt($('#tousseDefinitionID'+row).val(),10); + var tdIds = tousseDefinitionID || ''; + tdIds = [tdIds]; + delInfo = [{ + classifyBasketId:'', + tdIds:tdIds + }]; + }else if(actionFunction == 'deleteBasketItem'){ + var hideElement = $(deleteButton).parent().prev().prev().prev().prev(); + + var basketElement = $(deleteButton).parent().parent(); + var basketJSON = basketElement.prev().prev().prev().prev().prev(); + var basket = basketJSON.val()?JSON.parse(basketJSON.val()):{}; + var item = hideElement.val()?JSON.parse(hideElement.val()):{}; + var classifiedItemId = item.classifiedItemId; + var classifyBasketId = basket.classifyBasketId || ''; + var tdIds = item.tousseDefinitionID || ''; + tdIds = [tdIds]; + if(classifiedItemId == ''){ + delInfo = []; + }else { + delInfo = [{ + classifyBasketId:classifyBasketId, + tdIds:tdIds + }]; + } + }else { + var tdIds = []; + var ids = []; + var key = 0; + var k = 0; + $(deleteButton).parent().parent().find('dl').find('input').each(function(){ + var item = $(this).val()?JSON.parse($(this).val()):{}; + if(item.classifiedItemId !== ''){ + ids[k] = item.classifiedItemId; + k++; + } + tdIds[key] = item.tousseDefinitionID; + key++ + }); + if(ids.length > 0){ + delInfo = [{ + classifyBasketId:basketId, + tdIds:tdIds + }]; + }else { + delInfo = []; + } + } + + var data = { + recyclingRecordId:params_id, + delInfo:JSON.stringify(delInfo) + } + var that = this; + + if(delInfo.length > 0){ + $.ajax({ + type : "post", + url : WWWROOT + '/disinfectSystem/recyclingRecordAction!verifyDeleteItemsInBasket.do', + data:data, + dataType:'json', + success:function(result){ + if(result.success){ + if(result.data.length > 0){ + if(actionFunction == 'deleteTousse'){//删器械包 + var tousseNames = result.data[0].tousseNames[0]; + alertDiv('【'+tousseNames+'】已经进行了装配或者发货,不能删除!'); + }else if(actionFunction == 'deleteBasketItem'){//删篮筐内物品 + var tousseNames = result.data[0].tousseNames[0]; + alertDiv('【'+tousseNames+'】已经进行了装配或者发货,不能删除!'); + }else if(actionFunction == 'deleteBasket'){//删篮筐 + var str = result.data[0].tousseNames.join(','); + var containerName = result.data[0].containerName; + alertDiv('该篮筐【'+containerName+'】里的【'+str+'】已经进行了装配或者发货,不能删除!'); + } + return; + } + + if(actionFunction == 'deleteTousse'){//删器械包 + deleteTousseItem(row); + }else if(actionFunction == 'deleteBasketItem'){//删篮筐内物品 + deleteBasketItem(deleteButton); + }else if(actionFunction == 'deleteBasket'){//删篮筐 + deleteBasket(deleteButton,basketBarcode,basketId); + } + refreshSplitBasketView(); + refreshAllBasketTotalNum(); + $(that).dialog("close"); + } + }, + error:function(result){ + console.log(result) + } + }); + }else { + if(actionFunction == 'deleteTousse'){//删器械包 + deleteTousseItem(row); + }else if(actionFunction == 'deleteBasketItem'){//删篮筐内物品 + deleteBasketItem(deleteButton); + }else if(actionFunction == 'deleteBasket'){//删篮筐 + deleteBasket(deleteButton,basketBarcode,basketId); + } + refreshSplitBasketView(); + refreshAllBasketTotalNum(); + $(that).dialog("close"); + } + },"否": function() { $(this).dialog("close"); } @@ -643,13 +743,13 @@ } //删除篮筐中的物品 -function deleteBasketItem(deleteButton){ +function deleteBasketItem(deleteButton,sum){ + var sumCount = sum || 0; var hideElement = $(deleteButton).parent().prev().prev().prev().prev(); var nameElement = $(deleteButton).parent().prev().prev().prev(); var barcodeElement = $(deleteButton).parent().prev().prev(); var amountElement = $(deleteButton).parent().prev(); var delElement = $(deleteButton).parent(); - var basketElement = $(deleteButton).parent().parent(); var basketJSON = basketElement.prev().prev().prev().prev().prev(); var basket = basketJSON.val()?JSON.parse(basketJSON.val()):{}; @@ -685,39 +785,58 @@ }); } var tousseAmountForMaterial = item.tousseAmount; - //alert(name+"--"+type+"--"+amount+"--"+tousseNameForMaterial+"--"+usebasketAmount+"--"+basketGroupNum); + if(type == '材料'){ unloadStaff(item.tousseDefinitionID,tousseAmountForMaterial,idCardBarcode); }else{ name = item.tousseName; var amount = item.amount; - unloadStaff(item.tousseDefinitionID,amount,idCardBarcode); - - var basketId = basket.classifyBasketId; - var containerBarcode = basket.barcode; - var tousse = { - basketBarcode: containerBarcode, - basketId: basketId, - classifiedItemId: '', - tousseName: name, - tousseDefinitionID: item.tousseDefinitionID, - amount: -parseInt(amount), - tousseAmountForMaterial: -parseInt(tousseAmountForMaterial), - itemType: type, - tousseNameForMaterial: tousseNameForMaterial, - idCardBarcode: idCardBarcode, - basketGroupBarcodes: basketGroupBarcodes, + + if(sumCount == 0){ + var basketId = basket.classifyBasketId; + var containerBarcode = basket.barcode; + var tousse = { + basketBarcode: containerBarcode, + basketId: basketId, + classifiedItemId: item.classifiedItemId || '', + tousseName: name, + tousseDefinitionID: item.tousseDefinitionID, + amount: -parseInt(amount), + tousseAmountForMaterial: -parseInt(tousseAmountForMaterial), + itemType: type, + tousseNameForMaterial: tousseNameForMaterial, + idCardBarcode: idCardBarcode, + basketGroupBarcodes: basketGroupBarcodes, lastTousseInstanceId:item.lastTousseInstanceId, tousseInstanceBarcode:item.tousseInstanceBarcode - } - addOrDelTousse(tousse); - - hideElement.remove(); - nameElement.remove(); - barcodeElement.remove(); - amountElement.remove(); - delElement.remove(); + } + addOrDelTousse(tousse); + hideElement.remove(); + nameElement.remove(); + barcodeElement.remove(); + amountElement.remove(); + delElement.remove(); + }else { + var basketId = basket.classifyBasketId; + var containerBarcode = basket.barcode; + var tousse = { + basketBarcode: containerBarcode, + basketId: basketId, + classifiedItemId: item.classifiedItemId || '', + tousseName: name, + tousseDefinitionID: item.tousseDefinitionID, + amount: parseInt(amount-sumCount), + tousseAmountForMaterial: -parseInt(tousseAmountForMaterial), + itemType: type, + tousseNameForMaterial: tousseNameForMaterial, + idCardBarcode: idCardBarcode, + basketGroupBarcodes: basketGroupBarcodes, + lastTousseInstanceId:item.lastTousseInstanceId, + tousseInstanceBarcode:item.tousseInstanceBarcode + } + addOrDelTousse(tousse); + } } checkLoadedAmount(); refreshSequence(delElement.parent().parent(),0); @@ -2339,15 +2458,139 @@ var loadedAmount = 0; var recyclingApplicationId = $('#recyclingApplicationId').val(); var materials = $('#materials'+row).val(); - DWREngine.setAsync(false); + DWREngine.setAsync(false); RecyclingRecordTableManager.getTousseIntoBasketAmount(materials,tousseDefinitionID,recycleAmount,idCardBarcode,JSON.stringify(params),JSON.stringify(getTousseIntoBasketInfo()),recyclingApplicationId,function(result){ - var jsonObj = JSON.parse(result); - + var jsonObj = JSON.parse(result); + console.log(jsonObj) if(!jsonObj.success){ alertDiv(jsonObj.message); }else{ - var data = jsonObj.data; - loadedAmount = data.amount; + var data = jsonObj.data; + var packAmount = data.packAmount; + var invoiceAmount = data.invoiceAmount; + var recycleAmountNew = parseInt($('#recycleAmount'+row).val()); + var loadedAmountNew = parseInt($('#loadedAmount'+row).val()); + var maxCount = Math.max.call(null,packAmount,invoiceAmount); + var putBasketMaxAmount = data.putBasketMaxAmount || 0; + + if(!sstsConfig.allowDecreaseRecyclingAmountGreatUnPackingAmount){ + if(recycleAmountNew < maxCount){ + alertDiv(tousseName+"已装配"+packAmount+"个,已发货"+invoiceAmount+"个,修改后回收的数量为"+recycleAmountNew+",不能小于已装配或者已发货的数量!"); + return 0; + } + } + + if(recycleAmount < 0){ + var loadedAmount = parseInt($('#loadedAmount'+row).val()); + var sum = 0; + var recycleCount1 = 0; + var len = 0; + $("#basketsUl li").each(function(){ + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var hideStr = $(this).val(); + var json = JSON.parse(hideStr); + var delButton = $(this).next().next().next().next().find('a'); + sum = parseInt(loadedAmount+recycleAmount); + + if(json.tousseName == tousseName){ + len ++; + if(json.classifiedItemId == ''){ + var count = parseInt($(this).next().next().next().text()); + var recycleCount = count+recycleAmount; + $(this).next().next().next().html(recycleCount); + json.amount = recycleCount; + $(this).val(JSON.stringify(json)); + if(recycleCount >= 0){ + deleteBasketItem(delButton,count); + return; + }else { + deleteBasketItem(delButton,0); + recycleCount1 = recycleCount; + } + } + } + } + }); + if(len == 1){ + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var hideStr = $(this).val(); + var json = JSON.parse(hideStr); + var delButton = $(this).next().next().next().next().find('a'); + + if(json.tousseName == tousseName){ + if(json.classifiedItemId !== ''){ + var count = parseInt($(this).next().next().next().text()); + var recycleCount = count+recycleAmount; + $(this).next().next().next().html(recycleCount); + json.amount = recycleCount; + $(this).val(JSON.stringify(json)); + if(recycleCount >= 0){ + deleteBasketItem(delButton,count); + return; + }else { + deleteBasketItem(delButton,0); + } + } + } + } + }); + } + if(recycleCount1 < 0){ + $(this).find('dl').children().each(function(i,element){ + if($(this).attr('type') == 'hidden'){ + var hideStr = $(this).val(); + var json = JSON.parse(hideStr); + var delButton = $(this).next().next().next().next().find('a'); + var recycleAmount2 = (recycleCount1 == 0)?recycleAmount:recycleCount1; + if(json.tousseName == tousseName){ + if(json.classifiedItemId !== '') { + var count = parseInt($(this).next().next().next().text()); + var recycleCount = count+recycleAmount2; + $(this).next().next().next().html(recycleCount); + json.amount = recycleCount; + $(this).val(JSON.stringify(json)); + if(recycleCount >= 0){ + deleteBasketItem(delButton,count); + return; + }else { + deleteBasketItem(delButton,0); + } + } + } + } + }); + } + }); + + $('#loadedAmount'+row).val(sum); + + if(sum == 0){ + $('#loadedAmount'+row).css('background','#fff'); + }else { + $('#loadedAmount'+row).css('background','rgb(183, 217, 165)'); + } + addAllBasketTotalNum(); + refreshSplitBasketView(); + return; + }else if(recycleAmount > 0){ + if(recycleAmountNew > putBasketMaxAmount && loadedAmountNew == putBasketMaxAmount && putBasketMaxAmount !== 0){ + alertDiv("【"+tousseName+"】的清洗装载数量上限为"+putBasketMaxAmount+",本次入筐数量为"+recycleAmount+",当前篮筐容量不够,请用其它篮筐装载。"); + return 0; + } + + loadedAmount = data.amount; + $('#loadedAmount'+row).val(recycleAmountNew); + + if(recycleAmountNew > putBasketMaxAmount && loadedAmountNew < putBasketMaxAmount){ + $('#loadedAmount'+row).val(putBasketMaxAmount); + loadedAmount = putBasketMaxAmount-loadedAmountNew; + } + }else { + return 0; + } + if(isCleanedEntirely == "否"){ var materials = data.materials; if(materials == null){ @@ -2420,27 +2663,18 @@ alertDiv("回收数量不能超过申请数量"); return false; } - var amount = recycleAmount - parseInt($('#loadedAmount'+row).val(),10); + var amount = recycleAmount - parseInt($('#loadedAmount'+row).val(),10); newAmount = amount; //回收数量扣减入筐操作 如果已经入筐就不能入筐,只能是手动从篮筐里面删除,因为程序不晓得从哪个篮筐里面扣减 var msg = ""; - if(amount < 0){ - $("#basketsUl li").each(function(){ - $(this).find('dl').children().each(function(i,element){ - if($(this).attr('type') == 'hidden'){ - var hideStr = $(this).val(); - var json = JSON.parse(hideStr); - if(json.tousseName == tousseName){ - msg = tousseName+"已入筐,请从篮筐内删除后再入筐!"; - return false; - } - } - }); - }); - } + if(amount > 9999){ msg = "入筐数量不能大于9999!"; - } + } + + if(recycleAmount == 0){ + msg = "入筐数量不能为0!"; + } if(!isUndefinedOrNullOrEmpty(msg)){ alertDiv(msg); @@ -3431,7 +3665,7 @@ recyclingUserDefault = false; } var submitUrl = WWWROOT + "/disinfectSystem/recyclingRecordAction!saveRecyclingRecord.do"; - + $.ajax({ url : submitUrl, type : "POST", @@ -3446,7 +3680,8 @@ recyclingUser : recyclingUser, departmentSender:departmentSender, operator : operator, - depart : depart, + depart : depart, + websocketSessionId : getWebsocketSessionId(), recyclingTime : recyclingTime, recyclingUserDefault : recyclingUserDefault, autoReturnTheBorrowingTousse : autoReturnTheBorrowingTousse, @@ -3487,7 +3722,7 @@ if(saveAndNew){ location.href = "recycleForTouchScreen.jsp?resolution=" + resolution + "&rememberRecycleUser=" + rememberRecycleUser; }else{ - location.href = "awaitForRecycleList.jsp?resolution=" + resolution + "&voluntarilyUrgentItems=" + voluntarilyUrgentItemsString; + location.href = encodeURI("awaitForRecycleList.jsp?resolution=" + resolution + "&voluntarilyUrgentItems=" + voluntarilyUrgentItemsString); } }else{ if(result.versionNotMatch){ @@ -3946,13 +4181,8 @@ // 判断是否被删除,为0代表没有被删除 if($('#deleted'+row).val() == '0'){ var amount = parseInt($('#recycleAmount'+row).val(),10) - parseInt($('#loadedAmount'+row).val(),10); - // 回收数量大于已装载(入筐)数量,则需要入筐 - if(amount > 0){ - var success = putTousseInTheBasket(row); - if(!success){ - return false; - } - } + // 回收数量大于已装载(入筐)数量,则需要入筐 + putTousseInTheBasket(row); } }); } @@ -5470,7 +5700,7 @@ function cleanIsRecyclingFun(){ if(window.opener){ window.opener.isRecyclingWindow = null; - } + } } function cleanIsRecycling(){ Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp =================================================================== diff -u -r28321 -r28331 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 28321) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 28331) @@ -9,7 +9,7 @@ <%@page import="com.forgon.disinfectsystem.common.*"%> <%@page import="com.forgon.directory.acegi.tools.AcegiHelper"%> <%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition"%> - +<%@page import="com.forgon.log.model.Log"%> <%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance,com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError,com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> @@ -716,4 +716,9 @@ + + + + +