Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r32257 -r32406 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 32257) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 32406) @@ -5034,6 +5034,8 @@ //使用记录转换申请单后对器械包实例更新tousseItemId字段值 updateTousseItemIdForTousseInstanceOfUseRecordAfterConvert(useRecordList , recyclingApplicationListAfterConvert); + //需要回收的物品合并到不需要回收的申请单时(单上都是敷料包),需要更新申请单的回收状态 + setApplicationRecyclingStatus(recyclingApplicationListAfterConvert); //如有要转换的消毒物品时,转换申请单 if(MapUtils.isNotEmpty(ancestorIdToDisinfectTiListMap)){ @@ -5613,6 +5615,8 @@ } //使用记录转换申请单后对器械包实例更新tousseItemId字段值 updateTousseItemIdForTousseInstanceOfUseRecordAfterConvert(sterilizationModeToBelongToUseRecordList , recyclingApplicationListAfterConvert); + //需要回收的物品合并到不需要回收的申请单时(单上都是敷料包),需要更新申请单的回收状态 + setApplicationRecyclingStatus(recyclingApplicationListAfterConvert); } /** @@ -5735,6 +5739,41 @@ } /** + * 需要回收的器械包合并到不需要回收的申请单上时,需要重新设置申请单的回收状态 + * @param recyclingApplicationList + */ + private void setApplicationRecyclingStatus(List recyclingApplicationList) { + if(CollectionUtils.isEmpty(recyclingApplicationList)){ + return; + } + for (RecyclingApplication recyclingApplication : recyclingApplicationList) { + if(StringUtils.equals(recyclingApplication.getRecyclingStatus(), RecyclingApplication.RECYCLINGSTATUS_AWAITRECYCLE)){ + continue; + } + Integer includeRecyclingItems = 0; + for (TousseItem tousseItem : recyclingApplication.getApplicationItems()) { + if (tousseItem.disposable()) { + continue; + } + TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByTousseItem(tousseItem); + //是否有回收物品(改为以申请项的是否回收为准,而不再以器械包定义的是否回收) + if (!TousseDefinition.PACKAGE_TYPE_DRESSING + .equals(td.getTousseType()) + && TousseDefinition.STR_YES + .equals(tousseItem.getIsRecycling())) { + includeRecyclingItems = InvoicePlan.SIGNED_TRUE; + break; + } + } + recyclingApplication.setIncludeRecyclingItems(includeRecyclingItems); + if (InvoicePlan.SIGNED_TRUE.equals(includeRecyclingItems)){ + recyclingApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE); + } + objectDao.saveOrUpdate(recyclingApplication); + } + } + + /** * 根据转换后的申请单与项目配置得出对应备注 * 之前是按项目计算出不同的备注需求,现改为按使用记录及原申请单及config.js配置等计算出不同备注 * 旧的需求如下([和]代表变量,不是实际字符文本):