Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r29995 -r30033 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 29995) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 30033) @@ -1063,52 +1063,64 @@ if(tousseInstanceManager.equalsBarcode(barcode)){ isFixedBarcode = true; } - if(!isFixedBarcode && !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)); + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(td == null){ + errorMessage = tousseInstance.getTousseName()+",包定义已不存在!"; + }else if(!isFixedBarcode && Constants.STR_YES.equals(td.getIsDisable())){ + errorMessage = td.getName() + "已经停用,不能进行回收,请用新的包名称进行回收!"; }else{ - 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 = "不能回收聚合包!"; + TousseDefinition ancestorTd = null; + if(!isFixedBarcode && td.getId().longValue() != td.getAncestorID().longValue()){ + ancestorTd = tousseDefinitionManager.get(td.getAncestorID()); + } + if(ancestorTd != null && Constants.STR_YES.equals(ancestorTd.getIsDisable())){ + errorMessage = td.getName() + "的祖先包已经停用,不能进行回收,请用新的包名称进行回收!"; }else{ - - 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(!isFixedBarcode && !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(Constants.STR_NO.equals(td.getIsDisableIDCard())){ + errorMessage = "【"+tousseInstance.getTousseName() + "】是有标识牌的物品,只能扫描标识牌条码进行回收!"; + }else if(td.isComboTousse()){ + errorMessage = "不能回收聚合包!"; + }else{ + + 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)); + } + } + } + } } } } else if (barcodeDevice instanceof User) { Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r30004 -r30033 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 30004) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 30033) @@ -4010,15 +4010,8 @@ String tousseName = recyclingBasketItem.getTousseName(); Long tousseDefinitionID = recyclingBasketItem.getTousseDefinitionID(); Integer amount = recyclingBasketItem.getAmount(); - - // 允许的最小的回收数量。如果是进行清点确认,允许输入的最小数量为0;如果是回收,则允许的最小数量为1 - int baseNumber = 1; - if (recyclingContext.isTally()){ - baseNumber = 0; - } - // 清点确认时,如果物品的申请数量不为0,则允许清点确认数量为 0 - if(amount != null && amount >= baseNumber){ + if(amount != null){ // 从已存在的申请项里面查找TousseItem TousseItem appItem = appTousseItemMap.get(tousseDefinitionID); if(appItem == null){ @@ -5318,7 +5311,14 @@ if(td == null){ return JSONUtil.buildJsonObject(false,"ID=" + tousseDefinitionId + "的器械包定义不存在!"); } - + if(Constants.STR_YES.equals(td.getIsDisable())){ + return JSONUtil.buildJsonObject(false,td.getName() + "已经停用,不能进行回收,请删除该包,用新的包名称进行回收!"); + }else if(td.getId().longValue() != td.getAncestorID().longValue()){ + TousseDefinition ancestorID = tousseDefinitionManager.get(td.getAncestorID()); + if(ancestorID != null && Constants.STR_YES.equals(ancestorID.getIsDisable())){ + return JSONUtil.buildJsonObject(false,td.getName() + "的祖先包已经停用,不能进行回收,请删除该包,用新的包名称进行回收!"); + } + } JSONArray basketArray = JSONArray.fromObject(params); if(basketArray.size() == 0){ return JSONUtil.buildJsonObject(false,"请扫描篮筐条码!");