Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r29453 -r29570 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 29453) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 29570) @@ -1077,5 +1077,11 @@ * @return 包实例的名字 */ public Set getTousseNameByClassifyBasketIdsField(Long classifyBasketId); + /** + * 根据包的状态获取状态对应的时间 比如已回收获取回收时间 + * @param ti + * @return + */ + public String getDateStrByTousseInstanceStatus(TousseInstance ti); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r29469 -r29570 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 29469) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 29570) @@ -8227,4 +8227,49 @@ } return tousseNames; } + @Override + public String getDateStrByTousseInstanceStatus(TousseInstance ti) { + if(ti == null || ti.getStatus() == null){ + return ""; + } + String dateStr = null; + switch (ti.getStatus()) { + case TousseInstance.STATUS_PACKED: + dateStr = ti.getUseTimeStr(); + break; + case TousseInstance.STATUS_REVIEWED: + case TousseInstance.STATUS_DISINFECTED: + dateStr = ti.getReviewTimeStr(); + break; + case TousseInstance.STATUS_DELAY_CONFIRM: + case TousseInstance.STATUS_STERILING: + dateStr = ti.getSterileStartDate(); + break; + case TousseInstance.STATUS_STERILED: + dateStr = ti.getSterileEndDate(); + break; + case TousseInstance.STATUS_SHIPPED: + dateStr = ti.getInvoiceSendTimeStr(); + break; + case TousseInstance.STATUS_SIGNED: + dateStr = ti.getSignedDateStr(); + break; + case TousseInstance.STATUS_USED: + dateStr = ti.getUseTimeStr(); + break; + case TousseInstance.STATUS_PRERECYCLED: + case TousseInstance.STATUS_RECYCLED: + dateStr = ti.getRecyclingTime(); + break; + case TousseInstance.STATUS_DISCARD: + dateStr = ti.getWasteDateStr(); + break; + case TousseInstance.STATUS_RECALLED: + dateStr = ti.getRecallTimeStr(); + break; + default: + dateStr = ""; + } + return StringUtils.isBlank(dateStr)?"":dateStr; + } } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r29410 -r29570 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 29410) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 29570) @@ -1060,43 +1060,54 @@ } else if (barcodeDevice instanceof TousseInstance) { tousseInstance = (TousseInstance) barcodeDevice; - TousseDefinition td = tousseInstance.getTousseDefinition(); - if(td == null){ - errorMessage = tousseInstance.getTousseName()+",包定义已不存在!"; - }else if(Constants.STR_NO.equals(td.getIsDisableIDCard())){ - errorMessage = "【"+tousseInstance.getTousseName() + "】是有标识牌的物品,只能扫描标识牌条码进行回收!"; - }else if(td.isComboTousse()){ - errorMessage = "不能回收聚合包!"; + if(!TousseInstance.STATUS_SHIPPED.equals(tousseInstance.getStatus()) && + !TousseInstance.STATUS_USED.equals(tousseInstance.getStatus()) && + !TousseInstance.STATUS_SIGNED.equals(tousseInstance.getStatus()) && + !TousseInstance.STATUS_PRERECYCLED.equals(tousseInstance.getStatus())){//包状态检查 2020-07-08 11:32:00 + errorMessage = String.format("【必须是%s、%s、%s或%s的状态的包,该包当前状态为:%s,%s】", + TousseInstance.STATUS_SHIPPED, + TousseInstance.STATUS_USED, + TousseInstance.STATUS_SIGNED, + TousseInstance.STATUS_PRERECYCLED, + tousseInstance.getStatus(), + tousseInstanceManager.getDateStrByTousseInstanceStatus(tousseInstance)); }else{ - if(tousseInstanceManager.equalsBarcode(barcode)){ - isFixedBarcode = true; - } - // 北京大学肿瘤医院BJDXZLYY-5 回收时扫描包实例条码进行回收 状态为“已回收”的器械包不能回收 - boolean defaultRecycleAmountOfComboFormIsZero = CssdUtils.getSystemSetConfigByNameBool("defaultRecycleAmountOfComboFormIsZero"); - if (!isFixedBarcode && defaultRecycleAmountOfComboFormIsZero && - StringUtils.equals(TousseInstance.STATUS_RECYCLED, tousseInstance.getStatus())) { - errorMessage = "器械包已回收!"; - } else { - //验证器械包是否属于当前科室处理 - LoginUserData loginUserData = AcegiHelper.getLoginUser(); - String cssdOrgUnitCode = loginUserData.getOrgUnitCodingFromSupplyRoomConfig(); - String cssdOrgUnitName = loginUserData.getOrgUnitNameCodingFromSupplyRoomConfig(); - map.put("isDisableIDCard", td.getIsDisableIDCard()); - try { - tousseDefinitionManager.validateCssdHandleTousses( - cssdOrgUnitCode, cssdOrgUnitName, - td.getTousseType(), td.getName()); - } catch (Exception e) { - errorMessage = e.getMessage(); + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(td == null){ + errorMessage = tousseInstance.getTousseName()+",包定义已不存在!"; + }else if(Constants.STR_NO.equals(td.getIsDisableIDCard())){ + errorMessage = "【"+tousseInstance.getTousseName() + "】是有标识牌的物品,只能扫描标识牌条码进行回收!"; + }else if(td.isComboTousse()){ + errorMessage = "不能回收聚合包!"; + }else{ + if(tousseInstanceManager.equalsBarcode(barcode)){ + isFixedBarcode = true; } - - if(StringUtils.isBlank(errorMessage)){ - errorMessage = validateTousseType(formType,td); + if (!isFixedBarcode && + StringUtils.equals(TousseInstance.STATUS_RECYCLED, tousseInstance.getStatus())) { + errorMessage = "器械包已回收!"; + } else { + //验证器械包是否属于当前科室处理 + LoginUserData loginUserData = AcegiHelper.getLoginUser(); + String cssdOrgUnitCode = loginUserData.getOrgUnitCodingFromSupplyRoomConfig(); + String cssdOrgUnitName = loginUserData.getOrgUnitNameCodingFromSupplyRoomConfig(); + map.put("isDisableIDCard", td.getIsDisableIDCard()); + try { + tousseDefinitionManager.validateCssdHandleTousses( + cssdOrgUnitCode, cssdOrgUnitName, + td.getTousseType(), td.getName()); + } catch (Exception e) { + errorMessage = e.getMessage(); + } + + if(StringUtils.isBlank(errorMessage)){ + errorMessage = validateTousseType(formType,td); + } + + if(!tousseInstance.isRecycled()){ + details = build(materialErrorDamageDetailManager.get(tousseInstance)); + } } - - if(!tousseInstance.isRecycled()){ - details = build(materialErrorDamageDetailManager.get(tousseInstance)); - } } } } else if (barcodeDevice instanceof User) {