Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r28640 -r28662 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 28640) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 28662) @@ -7284,9 +7284,31 @@ if (bd instanceof TousseInstance) { TousseInstance ti = (TousseInstance) bd; - // 获取器械包的祖先包 TousseDefinition ancestor = ti.getTousseDefinition(); + + //检测该器械包有没有被召回 + if (TousseInstance.STATUS_WAIT_FOR_RECALL.equals(ti.getStatus()) || TousseInstance.STATUS_RECALLED.equals(ti.getStatus())) { + obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包不能被使用,已被召回!"); + return obj; + } + //检测器械包状态是否为已发货、已签收 + if(!TousseInstance.STATUS_SHIPPED.equals(ti.getStatus()) && !TousseInstance.STATUS_SIGNED.equals(ti.getStatus())){ + obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包状态为" + ti.getStatus() + ",不能录入使用记录!"); + return obj; + } + //包定义设置了签收后才可以录使用记录时,如果状态不为已签收进行提示 + if(!TousseInstance.STATUS_SIGNED.equals(ti.getStatus()) && Constants.STR_YES.equals(ancestor.getRegistUseRecordAfterSigned())){ + obj.put(JSONUtil.JSON_KEY_MESSAGE, "【" + ti.getTousseName() + "】没有签收,必须签收后才允许使用!"); + return obj; + } + //是否开启配置项,验证添加使用记录时物品是否已位于手术间;(物品位于手术间,或者流转位置类型为手术间) + if(CssdUtils.getSystemSetConfigByNameBool("checkTousseLocatedInOperatingRoomWhenAddUseRecord", false) + && StringUtils.isBlank(ti.getOperationRoomName()) && !"手术间".equals(ti.getLocation2Type())){ + obj.put(JSONUtil.JSON_KEY_MESSAGE, "该物品未发货到手术间,无法录入使用记录"); + return obj; + } + if(TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(ancestor.getTousseType()) || TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(ancestor.getTousseType())){ // 消毒物品、外来器械包需要根据祖先包进行判断 @@ -7381,22 +7403,7 @@ } } - // 3.检测该器械包有没有被召回 - if (TousseInstance.STATUS_WAIT_FOR_RECALL.equals(ti.getStatus()) || TousseInstance.STATUS_RECALLED.equals(ti.getStatus())) { - obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包不能被使用,已被召回!"); - return obj; - } else if(!TousseInstance.STATUS_SHIPPED.equals(ti.getStatus()) && !TousseInstance.STATUS_SIGNED.equals(ti.getStatus())){ - obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包状态为" + ti.getStatus() + ",不能录入使用记录!"); - return obj; - } else if(!TousseInstance.STATUS_SIGNED.equals(ti.getStatus()) && Constants.STR_YES.equals(ancestor.getRegistUseRecordAfterSigned())){ - obj.put(JSONUtil.JSON_KEY_MESSAGE, "【" + ti.getTousseName() + "】没有签收,必须签收后才允许使用!"); - return obj; - //是否开启配置项,验证添加使用记录时物品是否已位于手术间;(物品位于手术间,或者流转位置类型为手术间) - } else if(CssdUtils.getSystemSetConfigByNameBool("checkTousseLocatedInOperatingRoomWhenAddUseRecord", false) - && StringUtils.isBlank(ti.getOperationRoomName()) && !"手术间".equals(ti.getLocation2Type())){ - obj.put(JSONUtil.JSON_KEY_MESSAGE, "该物品未发货到手术间,无法录入使用记录"); - return obj; - }else { + { List acceptStatus = new ArrayList<>(); //已发货未签收的包是否可以录使用记录 //boolean notSignedItemsCanRegistUseRecord = CssdUtils.getSystemSetConfigByNameBool("notSignedItemsCanRegistUseRecord");