Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r31967 -r32018 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 31967) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 32018) @@ -3776,16 +3776,11 @@ if(urgentAmount < 0){ throw new RuntimeException("加急数量必须大于0!"); } - if(urgentAmount.intValue() == 0){ - //不加急 - continue; - } - TousseDefinition td = getTousseDefinition(tousseDefinitions, tousseDefinitionID); if(td.needPacking()){ List packingTasks = packingManager.getPackingTask(recyclingRecord.getId(), tousseDefinitionID, PackingTask.TASK_RECYCLINGRECORD); - if(CollectionUtils.isEmpty(packingTasks)){ + if(CollectionUtils.isEmpty(packingTasks) && urgentAmount.intValue() > 0){ //看是否已经回收,可能未回收(部分回收的情况) RecyclingItem ri = findRecyclingItem(recyclingRecord, tousseDefinitionID); if(ri != null){ @@ -3805,21 +3800,24 @@ } } } - }else{ + }else if(!CollectionUtils.isEmpty(packingTasks)){ //单个装配任务 或 一个包分多个篮筐装时多个装配任务 for (PackingTask packingTask : packingTasks) { + if(urgentAmount.intValue() == 0){ + packingTask.setUrgentAmount(0); + updateUrgentOfPackingTask(packingTask, urgentTousseItem.getUrgentLevel()); + continue; + } if(packingTask.getUnPackAmount() >= urgentAmount){ packingTask.setUrgentAmount(urgentAmount); urgentAmount = 0; + updateUrgentOfPackingTask(packingTask, urgentTousseItem.getUrgentLevel()); break; }else{ packingTask.setUrgentAmount(packingTask.getUnPackAmount()); urgentAmount -= packingTask.getUrgentAmount(); } - if(packingTask.getUrgentAmount() == null || packingTask.getUrgentAmount() == 0){ - packingTask.setUrgentLevel(null); - packingTask.setUrgentLevelObj(null); - } + updateUrgentOfPackingTask(packingTask, urgentTousseItem.getUrgentLevel()); } if(urgentAmount > 0){ throw new RuntimeException(tousseName + "已装配,不能修改加急数量!"); @@ -3828,8 +3826,21 @@ } } } - /** + * 修改装配任务加急信息 + * @param packingTask + * @param urgentLevel + */ + private void updateUrgentOfPackingTask(PackingTask packingTask, String urgentLevel){ + if(packingTask.getUrgentAmount() == null || packingTask.getUrgentAmount() == 0){ + packingTask.setUrgentLevel(null); + packingTask.setUrgentLevelObj(null); + }else{ + packingTask.setUrgentLevel(urgentLevel); + packingTask.setUrgentLevelObj(StringUtils.isBlank(urgentLevel) ?null:urgentLevelManager.getFirst(String.format(" name ='%s'", urgentLevel))); + } + } + /** * 设置标识牌的最近一个包实例的回收状态与回收项id * @param lastOperatedTousseInstance * @param idCardBarcode