Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r29394 -r29453 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 29394) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 29453) @@ -69,6 +69,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.expirationdateinfo.ExpirationDateInfo; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.operationRoom.OperationRoom; @@ -7621,7 +7622,7 @@ @SuppressWarnings("unchecked") @Override - public JSONArray loadTousseInstanceByBarcodesForPrint(String barcodes) { + public JSONArray loadTousseInstanceByBarcodesForPrint(String barcodes, Date startDate) { if(StringUtils.isBlank(barcodes)){ throw new RuntimeException("器械包实例条码为空"); } @@ -7639,6 +7640,16 @@ } if(CollectionUtils.isNotEmpty(tousseInstances)){ + Map edsMap = null; + if(startDate != null){ + List eds = objectDao.findAllObjects(ExpirationDateInfo.class.getSimpleName()); + if(CollectionUtils.isNotEmpty(eds)){ + edsMap = new HashMap(); + for (ExpirationDateInfo expirationDateInfo : eds) { + edsMap.put(expirationDateInfo.getPackageType(), expirationDateInfo); + } + } + } SupplyRoomConfig systemConfig = supplyRoomConfigManager.getSystemParamsObj(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); for (TousseInstance ti : tousseInstances) { @@ -7725,15 +7736,26 @@ idCardDefinitionIdNumber = idCardDefinition.getIdNumber(); idCardDefinitionDescription = idCardDefinition.getDescription(); } - + String validUntilStr = null; + if(MapUtils.isNotEmpty(edsMap)){//前台传的灭菌开始时间 如果有值 失效期会在此时间上计算返回 + ExpirationDateInfo ed = edsMap.get(ti.getPackageType()); + if(ed.getValidDate() != null && ed.getValidDate() > 0){ + Date validUntil = DateTools.addDate(startDate, ed.getValidDate()); + validUntilStr = ForgonDateUtils.safelyFormatDate(validUntil, format, ""); + }else{ + validUntilStr = ti.getValidUntilStr(format); + } + }else{ + validUntilStr = ti.getValidUntilStr(format); + } JSONObject result = CssdUtils.getTousseObjForPrint(td.getName(), getTousseDefinitionJson(td), ti, subBarcodeArray, virtualBasketSeqNumArray, td.getTousseType(), ti.getPackageType(), packageTypeAbbreviation, ti.getSterilingType(), ti.getSterilizerName(), ti.getSterileFrequency(), systemConfig.isPrintUserFullName(), ti.getOperator(), ti.getOperatorCode(), ti.getReviewer(), ti.getReviewerCode(), ti.getSterilizationUser(), ti.getSterilizationUserCode(), - ti.getValidUntilStr(format), StringUtils.isBlank(ti.getSterileStartTime()) ? "" : ti.getSterileStartTime().substring(0, 10), + validUntilStr, StringUtils.isBlank(ti.getSterileStartTime()) ? "" : ti.getSterileStartTime().substring(0, 10), isMarkTousse(ti.getSterileStartTime(), ti.getValidUntilStr()), ti.getOperationTime(), td.isDisinfection(), false, isPrint, isReview, isTraceable, td.getIsBigPackage(), fixedBarcode, disinfectItemArray, foreignTousseApp_id, supplierName, toolAndImplantAmount.optInt("toolAmount"), Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r28490 -r29453 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 28490) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 29453) @@ -1067,9 +1067,10 @@ /** * 根据器械包条码获取器械包实例 * @param barcodes 器械包实例条码(010000001;010000002) + * @param startDate 前台传的灭菌开始时间 如果有值 失效期会在此时间上计算返回 * @return */ - public JSONArray loadTousseInstanceByBarcodesForPrint(String barcodes); + public JSONArray loadTousseInstanceByBarcodesForPrint(String barcodes, Date startDate); /** * 根据篮筐id获取关联的包实例的名字 * @param classifyBasketId 篮筐id Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r29071 -r29453 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 29071) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 29453) @@ -382,7 +382,12 @@ if(StringUtils.isBlank(barcodes)){ throw new RuntimeException("器械包条码为空"); } - JSONArray jsonArr = tousseInstanceManager.loadTousseInstanceByBarcodesForPrint(barcodes); + String startDateStr = StrutsParamUtils.getPraramValue("startDateStr", ""); + Date startDate = null; + if(StringUtils.isNotBlank(startDateStr)){ + startDate = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.parse(startDateStr); + } + JSONArray jsonArr = tousseInstanceManager.loadTousseInstanceByBarcodesForPrint(barcodes,startDate); StrutsResponseUtils.output(true, jsonArr); } catch (Exception e) { e.printStackTrace();