Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r40782 -r41004 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 40782) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 41004) @@ -6268,7 +6268,7 @@ if(needPackingAmount <= 0){ break; } - List currentPackingTaskAsList = new ArrayList(); + List currentPackingTaskAsList = new ArrayList();//旧代码 不会有2个元素 int packingAmountForThisTask = taskIdToAmountMap.containsKey(currentPackingTask.getId())?taskIdToAmountMap.get(currentPackingTask.getId()):needPackingAmount;//本任务装配数量 if(packingAmountForThisTask > needPackingAmount){ packingAmountForThisTask = needPackingAmount; @@ -8125,7 +8125,8 @@ if(allowPackingWhenUnSupplementMaterial){ unPackingAmount = 0; }else{ - List errorDamages = packingTask.findErrorDamages(objectDao); + List errorDamages = objectDao.findBySql(MaterialErrorDamageDetail.class.getSimpleName(), + "where po.packingTaskId = " + packingTask.getId() + " and (po.status is null or po.status<>"+ MaterialErrorDamageDetail.STATUS_ONE +")"); unPackingAmount = getWaitSupplementTousseAmount(errorDamages,packingTask.getStatus(),packingTask.getTousseDefinition()); } } @@ -8137,6 +8138,9 @@ break; } } + if(prePackingTask == null){ + throw new RuntimeException("请检查是否有丢失报损是否未补充或者联系管理员"); + } //每切换一个装配任务node查询一次 if(prePackingTask != null){ boolean isChangeTask = false;