Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r33831 -r33872 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33831) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33872) @@ -8328,6 +8328,8 @@ boolean isFixedBarcode = false; JSONObject tousseInstanceOrgUnit = null;//器械包对应的科室,用来回收扫码标识牌或包实例时,自动填入科室。如果包的状态为已使用,则取该包所在的使用记录的录入科室;包的状态为已签收,则取签收科室;包的状态为已发货,则取发货到的科室。 Exception exception = null; + //扫码回收发货到了科室的包必须是已使用状态 + boolean scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState; out : if (StringUtils.isNotBlank(barcode)) { orgUnit = orgUnitManager.getOrgUnitJsonByBarcode(barcode); if (orgUnit != null) { @@ -8382,6 +8384,13 @@ if(tousseInstanceManager.equalsBarcode(barcode)){ isFixedBarcode = true; } + scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState = CssdUtils.getSystemSetConfigByNameBool("scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState", false); + if(!isFixedBarcode && scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState){ + errorMessage = getScanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedStateErrorMessage(tousseInstance, "包外标签条码"); + if(StringUtils.isNotBlank(errorMessage)){ + break out; + } + } TousseDefinition td = tousseInstance.getTousseDefinition(); if(td == null){ errorMessage = tousseInstance.getTousseName()+",包定义已不存在!"; @@ -8479,7 +8488,13 @@ errorMessage = String.format("标识牌%s不可使用,原因(%s) !", barcode,e.getMessage()); break out; } - + scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState = CssdUtils.getSystemSetConfigByNameBool("scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState", false); + if(scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState){ + errorMessage = getScanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedStateErrorMessage(tousseInstance, "标识牌条码"); + if(StringUtils.isNotBlank(errorMessage)){ + break out; + } + } Long idCardDefinitionId = idCardInstance.getIdCardDefinitionID(); IDCardDefinition idCardDefinition = idCardDefinitionManager.get(idCardDefinitionId); //判断标识牌对应的器械包定义id是否存在,如果不存在则提示 @@ -8705,6 +8720,19 @@ } } /** + * 获取scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState配置项开启后的验证信息 KSDQDYRMYY-11 + * @param tousseInstance 包实例 + * @param scavengingSource 扫码来源 包外标签条码 或 标识牌条码 + * @return + */ + public String getScanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedStateErrorMessage(TousseInstance tousseInstance, String scavengingSource){ + String errorMessage = null; + if(TousseInstance.STATUS_SHIPPED.equals(tousseInstance.getStatus()) || TousseInstance.STATUS_SHIPPED.equals(tousseInstance.getStatus())){ + errorMessage = "【"+ scavengingSource +"】为【"+ tousseInstance.getBarcode() +"】的【"+ tousseInstance.getTousseName() +"】的状态为【"+ tousseInstance.getStatus() +"】,未录入使用记录,请录入使用记录后再进行回收!"; + } + return errorMessage; + } + /** * SZSDSRMYY-75 包条码是否存在于其它未终止的申请单 如果回收时删除掉了 就不管 * @param ti 包实例 * @param invoicePlanId 申请单id