Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r23866 -r23999 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 23866) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 23999) @@ -3805,6 +3805,28 @@ } } } + /** + * 验证失效期,如果已经过了有效期,则抛出异常并提示,如果是处于预警期,并且预警期可以发货,那返回提示信息,不抛异常 + * @param tousseInstance + * @return + */ + public String validInvalidDate(TousseInstance tousseInstance){ + Date validUntil = tousseInstance.getValidUntil(); + if (DateTools.isExpire(validUntil, new Date())) { + throw new SystemException(String.format("%s已过期", StringUtils.defaultString(tousseInstance.getTousseName()))); + } + Date warningUntil = tousseInstance.getWarningUntil(); + if (DateTools.isDuringWarningPeriod(validUntil, warningUntil,new Date())) { + SupplyRoomConfig cofig = supplyRoomConfigManager.getSystemParamsObj(); + Boolean warningTousseWhetherDelivery = cofig.getWarningTousseWhetherDelivery(); + if (warningTousseWhetherDelivery) { + return String.format("%s即将失效", StringUtils.defaultString(tousseInstance.getTousseName())); + } else { + throw new SystemException(String.format("%s处于预警期不能发货", StringUtils.defaultString(tousseInstance.getTousseName()))); + } + } + return null; + } @Override public JSONObject loadTousseInstanceForChangePosition(String barcode, String operation) { @@ -3828,11 +3850,13 @@ if(!orgUnitCoding.contains(tousseInstance.getLocation())){ throw new RuntimeException(String.format("只能扫描发货到流转科室的器械包!")); } + String warnMessage = validInvalidDate(tousseInstance); JSONObject obj = JSONUtil.buildJsonObject(true); obj.put("id", tousseInstance.getId()); obj.put("name", tousseInstance.getTousseName()); obj.put("showTousseName", tousseInstance.getShowTousseName()); obj.put("barcode", tousseInstance.getBarcode()); + obj.put("warningMessage", warnMessage); return obj; }