Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseInstanceUtils.java =================================================================== diff -u -r31872 -r33913 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseInstanceUtils.java (.../TousseInstanceUtils.java) (revision 31872) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseInstanceUtils.java (.../TousseInstanceUtils.java) (revision 33913) @@ -107,15 +107,34 @@ public static String getStatusAndTimeByTousseInstanceAndInvoicePlan( TousseInstance tousseInstance, String format, SimpleDateFormat dateFormat, InvoicePlan invoicePlan) { + return getStatusAndTimeByTousseInstanceAndInvoicePlan(tousseInstance, format, dateFormat, invoicePlan, null); + } + /** + * 根据包实例和申请单获取包实例状态和对应状态的时间 + * @param tousseInstance 包实例 + * @param format 字符串拼接格式 + * @param dateFormat 指定的日期格式 默认yyyy-MM-dd HH:mm:ss + * @param invoicePlan 申请单 + * @param specifiedDate 指定的日期 如果有值,则不会根据包实例状态去获取对应的日期,而是直接使用这个日期 + * @return + */ + public static String getStatusAndTimeByTousseInstanceAndInvoicePlan( + TousseInstance tousseInstance, String format, + SimpleDateFormat dateFormat, InvoicePlan invoicePlan, Date specifiedDate) { String statusAndTime = ""; if (format == null) { format = "%s %s"; } if (dateFormat == null) { dateFormat = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS; } - String dateString = getDateStringByTousseInstanceStatusAndInvoicePlan(tousseInstance, - dateFormat, invoicePlan); + String dateString = null; + if(specifiedDate == null){ + dateString = getDateStringByTousseInstanceStatusAndInvoicePlan(tousseInstance, + dateFormat, invoicePlan); + }else{ + dateString = dateFormat.format(specifiedDate); + } String status = tousseInstance.getStatus(); statusAndTime = String.format(format, status, dateString); return statusAndTime; Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r33883 -r33913 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33883) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33913) @@ -8586,6 +8586,17 @@ details = build(materialErrorDamageDetailManager.get(tousseInstance)); } } else { + Date specifiedDate = null;//如果是已回收,要判断是否有二次回收,如果有,回收时间取二次回收的时间 + if(TousseInstance.STATUS_RECYCLED.equals(tousseInstance.getStatus())){ + RecyclingRecord recyclingRecord2 = getlastTousseRecyclingRecordByBarcode(tousseInstance.getBarcode()); + // 器械包装配前,根据RecyclingItem查找二次回收记录 + if(recyclingRecord2 == null && tousseInstance.getRecyclingItemId() != null){ + recyclingRecord2 = getRecyclingRecordByRecyclingItemId(tousseInstance.getRecyclingItemId()); + } + if(recyclingRecord2 != null){ + specifiedDate = recyclingRecord2.getRecyclingTime(); + } + } errorMessage = String.format("器械包必须是%s、%s、%s、%s、%s、%s、%s的状态,该包当前状态为:%s", TousseInstance.STATUS_SHIPPED, TousseInstance.STATUS_USED, @@ -8594,7 +8605,7 @@ TousseInstance.STATUS_WAIT_FOR_RECALL, TousseInstance.STATUS_RECALLED, TousseInstance.STATUS_DISCARD, - TousseInstanceUtils.getStatusAndTimeByTousseInstanceAndInvoicePlan(tousseInstance, null, null, invoicePlanManager.get(tousseInstance.getInvoicePlanID()))); + TousseInstanceUtils.getStatusAndTimeByTousseInstanceAndInvoicePlan(tousseInstance, null, null, invoicePlanManager.get(tousseInstance.getInvoicePlanID()),specifiedDate)); // tousseInstance = null; errorType = "idCard_statusIllegal"; }