Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r26368 -r26377 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 26368) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 26377) @@ -680,7 +680,10 @@ task = new PackingTask(); if (needAddAmount > 0) { task.setUrgentAmount(urgentAmount); - task.setUrgentLevelObj(tousseIdAndAmount.get(tousseId).getUrgentLevelObj()); + if(urgentAmount != null && urgentAmount > 0){ + task.setUrgentLevel(tousseIdAndAmount.get(tousseId).getUrgentLevel()); + task.setUrgentLevelObj(tousseIdAndAmount.get(tousseId).getUrgentLevelObj()); + } task.setAmount(needAddAmount); task.setUnPackAmount(needAddAmount); task.setTousseDefinition(td); Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r26368 -r26377 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 26368) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 26377) @@ -3235,6 +3235,10 @@ deviation -= urgentAmount; } packingTask.setUrgentAmount(newUrgentAmount); + if(newUrgentAmount <= 0){ + packingTask.setUrgentLevel(null); + packingTask.setUrgentLevelObj(null); + } objectDao.saveOrUpdate(packingTask); if (flag) {break;} } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r26368 -r26377 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 26368) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 26377) @@ -2698,6 +2698,7 @@ boolean mergeForeign = CssdUtils.getSystemSetConfigByNameBool("foreignTousseAndInsideTousseMergeToTheSameComboApplicationAfterUseRecordConvert"); //是否允许回收数量减小的部分超过待装配数量。如果允许,那装配任务就被删除 boolean allowModifyRecyclingAmountBelowUnPackingAmount = CssdUtils.getSystemSetConfigByNameBool("allowDecreaseRecyclingAmountGreatUnPackingAmount"); + Map recyclingItemAndAmountMap = new HashMap(); for (RecyclingBasketItemVo json : itemJsonList) { String tousseName = json.getTousseName(); @@ -2804,8 +2805,18 @@ task.setErrorRemark(ri == null?"":ri.getErrorRemark()); task.setDamageRemark(ri == null?"":ri.getDamageRemark()); task.setRecyclingItemRemark(ri==null?"":ri.getRemark()); - task.setUrgentLevel(ri == null?"":ri.getUrgentLevel()); - task.setUrgentLevelObj(ri == null && StringUtils.isBlank(ri.getUrgentLevel()) ?null:urgentLevelManager.getFirst(String.format(" name ='%s'", ri.getUrgentLevel()))); + Integer urgentAmountOfMap = null;//剩余加急装配任务数量 + if(recyclingItemAndAmountMap.containsKey(ri.getId())){ + urgentAmountOfMap = recyclingItemAndAmountMap.get(ri.getId()); + }else{ + recyclingItemAndAmountMap.put(ri.getId(), ri.getUrgentAmount()); + urgentAmountOfMap = ri.getUrgentAmount(); + } + if(urgentAmountOfMap != null && urgentAmountOfMap != 0){ + task.setUrgentLevel(ri == null?"":ri.getUrgentLevel()); + task.setUrgentLevelObj(ri == null && StringUtils.isBlank(ri.getUrgentLevel()) ?null:urgentLevelManager.getFirst(String.format(" name ='%s'", ri.getUrgentLevel()))); + recyclingItemAndAmountMap.put(ri.getId(), urgentAmountOfMap - 1); + } task.setUnPackAmount(unPackAmount); // 设置装配任务状态 task.setStatus(PackingTask.STATUS_AWAIT_PACKING); @@ -3023,6 +3034,10 @@ packingTask.setUrgentAmount(packingTask.getUnPackAmount()); urgentAmount -= packingTask.getUrgentAmount(); } + if(packingTask.getUrgentAmount() == null || packingTask.getUrgentAmount() == 0){ + packingTask.setUrgentLevel(null); + packingTask.setUrgentLevelObj(null); + } } if(urgentAmount > 0){ Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r26368 -r26377 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 26368) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 26377) @@ -4666,6 +4666,10 @@ ids += packingTask.getId(); if(packingTask.getUrgentAmount() != null && packingTask.getUrgentAmount() > 0){ packingTask.setUrgentAmount(packingTask.getUrgentAmount() - 1); + if(packingTask.getUrgentAmount() == null || packingTask.getUrgentAmount() == 0){ + packingTask.setUrgentLevel(null); + packingTask.setUrgentLevelObj(null); + } tousseInstance.setIsUrgentTousse(TousseDefinition.STR_YES); urgentAmountJson.put("currentUrgentAmount", currentUrgentAmount -1); findUrgentTask = true; @@ -4692,6 +4696,10 @@ PackingTask urgentPackingTask = getPackingTaskByIdForUpdate_internal(taskId); if(urgentPackingTask != null && (urgentPackingTask.getUrgentAmount() != null && urgentPackingTask.getUrgentAmount() > 0)){ urgentPackingTask.setUrgentAmount(urgentPackingTask.getUrgentAmount() - 1); + if(urgentPackingTask.getUrgentAmount() == null || urgentPackingTask.getUrgentAmount() == 0){ + urgentPackingTask.setUrgentLevel(null); + urgentPackingTask.setUrgentLevelObj(null); + } tousseInstance.setIsUrgentTousse(TousseDefinition.STR_YES); urgentAmountJson.put("currentUrgentAmount", currentUrgentAmount - 1); break;