Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r31333 -r31334 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 31333) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 31334) @@ -8134,6 +8134,14 @@ if(StringUtils.equals(oldPlan.getType(), InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION)){ sql = " where po.foreignTousseApp_id = " + oldPlan.getId() + " and (" + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.tousseDefinition.id", tousseDefinitionIdList) + " or " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.tousseDefinition.parentID", tousseDefinitionIdList) + ")"; + // 查询拆分小包的包定义 + String tdSql = " where " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.parentID", tousseDefinitionIdList); + List tdList = objectDao.findBySql(TousseDefinition.class.getSimpleName(), tdSql); + if(CollectionUtils.isNotEmpty(tdList)){ + for (TousseDefinition tousseDefinition : tdList) { + amountMap.put(tousseDefinition.getId(), amountMap.get(tousseDefinition.getParentID())); + } + } } List tousseList = objectDao.findBySql(TousseInstance.class.getSimpleName(), sql); if(CollectionUtils.isEmpty(tousseList)){ @@ -8143,9 +8151,6 @@ for (TousseInstance tousseInstance : tousseList) { TousseDefinition td = tousseInstance.getTousseDefinition(); Integer amount = amountMap.get(td.getId()); - if(amount == null){ - amount = amountMap.get(td.getParentID()); - } if(amount.intValue() > 0){ tousseInstance.setDepart(newPlan.getDepart()); tousseInstance.setDepartCoding(newPlan.getDepartCoding()); @@ -8154,9 +8159,6 @@ tousseInstance.setInvoicePlanSerialNum(newPlan.getSerialNumber()); tousseInstance.setRecyclingRecordId(newRecyclingRecord.getId()); RecyclingItem recyclingItem = itemMap.get(td.getId()); - if(recyclingItem == null){ - recyclingItem = itemMap.get(td.getParentID()); - } tousseInstance.setRecyclingItemId(recyclingItem.getId()); if(DatabaseUtil.isPoIdValid(tousseInstance.getForeignTousseApp_id())){ tousseInstance.setForeignTousseApp_id(newPlan.getId());