Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r37707 -r37812 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 37707) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 37812) @@ -101,6 +101,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseMaterialErrorDamage; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.StorageRecord; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.departmentstock.DepartmentStock; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; @@ -125,6 +126,7 @@ import com.forgon.disinfectsystem.entity.useRecord.UseRecordConvertConfig; import com.forgon.disinfectsystem.entity.useRecord.UseRecordConvertDepartConfig; import com.forgon.disinfectsystem.entity.useRecord.UseRecordToRecycleApplication; +import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.expensiveGoods.service.ExpensiveGoodsInstanceManager; import com.forgon.disinfectsystem.expensiveGoods.service.ExpensiveGoodsStockManager; import com.forgon.disinfectsystem.foreigntousseapplication.service.ForeignTousseApplicationManager; @@ -9261,6 +9263,14 @@ return obj; } } + RecyclingRecord secondRecyclingRecord = null; + if(ancestor.isForeignOrSplitTousse() && CssdUtils.getSystemSetConfigByNameBool("enableSecondRecyclingAfterInvoiceFunction", false)){ + secondRecyclingRecord = ti.getForeignTousseSecondRecyclingRecord(objectDao); + if(secondRecyclingRecord != null){ + obj.put(JSONUtil.JSON_KEY_MESSAGE, ti.getTousseDefinitionName() + ti.getBarcode() + "已经被二次回收,不能录入使用记录!"); + return obj; + } + } //包定义设置了签收后才可以录使用记录时,如果状态不为已签收进行提示 if(!TousseInstance.STATUS_SIGNED.equals(ti.getStatus()) && Constants.STR_YES.equals(ancestor.getRegistUseRecordAfterSigned())){ obj.put(JSONUtil.JSON_KEY_MESSAGE, "【" + ti.getTousseDefinitionName() + ti.getBarcode() + "】没有签收,必须签收后才允许使用!"); @@ -12057,9 +12067,9 @@ } //包定义设置了签收后才可以录使用记录时,如果状态不为已签收进行提示 + TousseDefinition ancestor = ti.getTousseDefinition(); if(!TousseInstance.STATUS_SIGNED.equals(ti.getStatus())){ // 获取器械包的祖先包 - TousseDefinition ancestor = ti.getTousseDefinition(); if(TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(ancestor.getTousseType()) || TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(ancestor.getTousseType())){ // 消毒物品、外来器械包需要根据祖先包进行判断 @@ -12077,6 +12087,13 @@ throw new RuntimeException("【" + ti.getTousseDefinitionName() + ti.getBarcode() + "】没有签收,必须签收后才允许使用!"); } } + RecyclingRecord secondRecyclingRecord = null; + if(ancestor.isForeignOrSplitTousse() && CssdUtils.getSystemSetConfigByNameBool("enableSecondRecyclingAfterInvoiceFunction", false)){ + secondRecyclingRecord = ti.getForeignTousseSecondRecyclingRecord(objectDao); + if(secondRecyclingRecord != null){ + throw new RuntimeException(ti.getTousseDefinitionName() + ti.getBarcode() + "已经被二次回收,不能录入使用记录!"); + } + } SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); //是否开启配置项,验证添加使用记录时物品是否已位于手术间;(物品位于手术间,或者流转位置类型为手术间)