Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r13355 -r13356 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 13355) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 13356) @@ -598,6 +598,9 @@ if(TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseItem.getTousseType())){ TousseDefinition btd = tousseDefinitionManager .getTousseDefinitionByNameForDisplay(tousseItem.getTousseName()); + if(btd == null){ + throw new RuntimeException(String.format("消毒物品[%s]的包定义已不存在!", tousseItem.getTousseName())); + } // 是否装配 boolean isPacking = true; if (TousseDefinition.STR_NO.equals(btd.getIsPacking())) { @@ -685,6 +688,7 @@ } tousseDefinitionManager.saveTousseDefinition(td, null, vo.getDisinfectMaterilas()); + tousseItem.setTousseDefinitionId(td.getId()); // 消毒物品若不追溯则申请的时候产生包实例,不生成装配任务 if (isPacking) { addTaskMap.put(tousseName, vo.getAmount()); @@ -2831,16 +2835,21 @@ } if ("否".equals(newTousseItem.getDiposable())) { TousseDefinition td = tousseDefinitionManager - .getTousseDefinitionByNameAndTousseType( - newItemVo.getTousseName(), tousseTypeFilterStr); + .getTousseDefinitionByTousseItem(newTousseItem); String expressRecycling = td.getExpressRecycling(); if (td != null && StringUtils.isNotBlank(expressRecycling)) { newTousseItem.setExpressRecycling(expressRecycling); }else{ newTousseItem.setExpressRecycling(TousseDefinition.STR_NO); } if(td != null){ - newTousseItem.setTousseDefinitionId(td.getId()); + if(!DatabaseUtil.isPoIdValid(newTousseItem.getId())){ + // 新建项才需要设置包定义id + if(!newTousseItem.isDisinfection()){ + // 这里的包定义是包定义管理看到的包定义,不是实际消毒物品包实例对应的的包定义,所以这里不能设置包定义id + newTousseItem.setTousseDefinitionId(td.getId()); + } + } newTousseItem.setIsRecycling(td.getIsRecycling()); newTousseItem.setIsApplyEntireTousse(td.getIsApplyEntireTousse()); newTousseItem.setIsCleanedEntirely(td.getIsCleanedEntirely()); Index: build.gradle =================================================================== diff -u -r13284 -r13356 --- build.gradle (.../build.gradle) (revision 13284) +++ build.gradle (.../build.gradle) (revision 13356) @@ -138,7 +138,7 @@ } - version = '4.1.5' + version = '4.1.14' group = 'com.forgon' /*