Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerImpl.java =================================================================== diff -u -r41286 -r41363 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerImpl.java (.../UseRecordRecyclingDelayHandlerImpl.java) (revision 41286) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerImpl.java (.../UseRecordRecyclingDelayHandlerImpl.java) (revision 41363) @@ -4,6 +4,7 @@ import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingItem; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; import com.forgon.disinfectsystem.entity.useRecord.UseRecord; @@ -45,7 +46,7 @@ Map reportVoMap = new HashMap<>(); tousseInstanceInfoList.forEach(item -> { int delayType = item.getRecyclingDelayType(); - String date = ForgonDateUtils.safelyFormatDate(item.getEnteringDate(), ForgonDateUtils.DATE_FORMAT_YYYYMMDD, ""); + String date = ForgonDateUtils.safelyFormatDate(item.getApplicationTime(), ForgonDateUtils.DATE_FORMAT_YYYYMMDD, ""); UseRecordRecyclingDelayReportVo vo = reportVoMap.get(date); if(vo == null){ vo = new UseRecordRecyclingDelayReportVo(); @@ -83,14 +84,14 @@ String cur30MinAgoStr = dateQueryAdapter.dateConverAdapter2(ForgonDateUtils.safelyFormatDate(current30MinutesAgo, ForgonDateUtils.DATE_FORMAT_YYYYMMDDHHMMSS, ""), fmt); - String sql = "select ur.depart, ti.tousseName, ti.status, ti.useRecord_id useRecordId, bd.barcode, ur.operationRoom, ur.operation, ur.patientName, ur.circuitNurse, ur.enteringDate, rr.recyclingTime from " + String sql = "select ur.depart, ti.tousseName, ti.status, ti.useRecord_id useRecordId, bd.barcode, ur.operationRoom, ur.operation, ur.patientName, ur.circuitNurse, ip.applicationTime, rr.recyclingTime from " + TousseInstance.class.getSimpleName()+" ti join "+TousseDefinition.class.getSimpleName()+" td on td.id = ti.tousseDefinition_id join " + BarcodeDevice.class.getSimpleName()+" bd on bd.id = ti.id left join "+ RecyclingItem.class.getSimpleName()+" ri on ri.id = ti.recyclingItemId left join " - + RecyclingRecord.class.getSimpleName()+" rr on rr.id = ri.recyclingRecord_id join " + + RecyclingRecord.class.getSimpleName()+" rr on rr.id = ri.recyclingRecord_id left join "+ InvoicePlan.class.getSimpleName() +" ip on ip.id=rr.recyclingApplication_id join " + UseRecord.class.getSimpleName()+" ur on ur.id=ti.useRecord_id where td.tousseType <> '敷料包' and td.isRecycling='是' " - + "and ur.enteringDate between " + startStr + " and " + endStr - + " and ur.enteringDate <= " + cur30MinAgoStr - + " and (" + dateQueryAdapter.datetimeDiffGreaterOrEqual("ur.enteringDate", "rr.recyclingTime", 30) + " or rr.recyclingTime is null) "; + + "and ip.applicationTime between " + startStr + " and " + endStr + + " and ip.applicationTime <= " + cur30MinAgoStr + + " and (" + dateQueryAdapter.datetimeDiffGreaterOrEqual("ip.applicationTime", "rr.recyclingTime", 30) + " or rr.recyclingTime is null) "; if(StringUtils.hasText(operation)) { sql += " and ur.operation = '" + operation.trim() + "'"; } Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordRecyclingDelayView.js =================================================================== diff -u -r41294 -r41363 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordRecyclingDelayView.js (.../useRecordRecyclingDelayView.js) (revision 41294) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordRecyclingDelayView.js (.../useRecordRecyclingDelayView.js) (revision 41363) @@ -284,14 +284,15 @@ '', '', '', - '', - '', + '', + '', '', '', '', - '', - '', + '', + '', '', + '', '', '', '', @@ -305,6 +306,7 @@ '', '', '', + '', '', '', '', Index: ssts-reports/src/test/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerLoadUseRecordRecyclingDelayListTest.java =================================================================== diff -u -r41245 -r41363 --- ssts-reports/src/test/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerLoadUseRecordRecyclingDelayListTest.java (.../UseRecordRecyclingDelayHandlerLoadUseRecordRecyclingDelayListTest.java) (revision 41245) +++ ssts-reports/src/test/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerLoadUseRecordRecyclingDelayListTest.java (.../UseRecordRecyclingDelayHandlerLoadUseRecordRecyclingDelayListTest.java) (revision 41363) @@ -73,12 +73,12 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TousseInstanceInfo info1 = new TousseInstanceInfo(); - info1.setEnteringDate(sdf.parse("2023-01-01 10:00:00")); + info1.setApplicationTime(sdf.parse("2023-01-01 10:00:00")); info1.setStatus("已回收"); info1.setRecyclingTime(sdf.parse("2023-01-01 10:25:00")); // delayType = 0 TousseInstanceInfo info2 = new TousseInstanceInfo(); - info2.setEnteringDate(sdf.parse("2023-01-02 11:00:00")); + info2.setApplicationTime(sdf.parse("2023-01-02 11:00:00")); info2.setStatus("已回收"); info2.setRecyclingTime(sdf.parse("2023-01-02 11:45:00")); // delayType = 1 Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/model/TousseInstanceInfo.java =================================================================== diff -u -r41286 -r41363 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/model/TousseInstanceInfo.java (.../TousseInstanceInfo.java) (revision 41286) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/model/TousseInstanceInfo.java (.../TousseInstanceInfo.java) (revision 41363) @@ -42,15 +42,15 @@ */ private Date recyclingTime; /** - * 录入使用记录的时间 + * 申请单的申请时间 */ - private Date enteringDate; + private Date applicationTime; public TousseInstanceInfo() { } public TousseInstanceInfo(String depart, Long useRecordId, String operationRoom, String operation, String patientName, - String circuitNurse, String tousseName, String barcode, String status, Date recyclingTime, Date enteringDate) { + String circuitNurse, String tousseName, String barcode, String status, Date recyclingTime, Date applicationTime) { this.depart = depart; this.useRecordId = useRecordId; this.operationRoom = operationRoom; @@ -61,7 +61,7 @@ this.barcode = barcode; this.status = status; this.recyclingTime = recyclingTime; - this.enteringDate = enteringDate; + this.applicationTime = applicationTime; } public String getDepart() { @@ -144,20 +144,20 @@ this.recyclingTime = recyclingTime; } - public Date getEnteringDate() { - return enteringDate; + public Date getApplicationTime() { + return applicationTime; } - public void setEnteringDate(Date enteringDate) { - this.enteringDate = enteringDate; + public void setApplicationTime(Date applicationTime) { + this.applicationTime = applicationTime; } public int getRecyclingDelayType() { - if(enteringDate == null){ + if(applicationTime == null){ return -1; // 出错了 } Date end = recyclingTime == null ? new Date() : recyclingTime; - long diff = end.getTime() - enteringDate.getTime(); + long diff = end.getTime() - applicationTime.getTime(); if(diff < 30*60*1000){ //半小时内回收,是正常的,没有延时 return 0; @@ -173,6 +173,21 @@ } } + public String getDelayTypeStr() { + switch (getRecyclingDelayType()) { + case 0: + return ""; + case 1: + return "30分钟-1小时"; + case 2: + return "1-2小时"; + case 3: + return "2小时以上"; + default: + return "错误"; + } + } + @Override public boolean equals(Object object) { if (this == object) return true; @@ -182,13 +197,13 @@ && Objects.equals(operation, that.operation) && Objects.equals(patientName, that.patientName) && Objects.equals(circuitNurse, that.circuitNurse) && Objects.equals(tousseName, that.tousseName) && Objects.equals(barcode, that.barcode) && Objects.equals(status, that.status) - && Objects.equals(recyclingTime, that.recyclingTime) && Objects.equals(enteringDate, that.enteringDate); + && Objects.equals(recyclingTime, that.recyclingTime) && Objects.equals(applicationTime, that.applicationTime); } @Override public int hashCode() { return Objects.hash(useRecordId, operationRoom, operation, patientName, circuitNurse, tousseName, barcode, - status, recyclingTime, enteringDate); + status, recyclingTime, applicationTime); } @Override @@ -203,7 +218,7 @@ ", barcode='" + barcode + '\'' + ", status='" + status + '\'' + ", recyclingTime=" + recyclingTime + - ", enteringDate=" + enteringDate + + ", applicationTime=" + applicationTime + '}'; } } Index: ssts-reports/src/test/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerClassifyTest.java =================================================================== diff -u -r41245 -r41363 --- ssts-reports/src/test/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerClassifyTest.java (.../UseRecordRecyclingDelayHandlerClassifyTest.java) (revision 41245) +++ ssts-reports/src/test/java/com/forgon/disinfectsystem/reportforms/modules/recyclingdelay/handler/UseRecordRecyclingDelayHandlerClassifyTest.java (.../UseRecordRecyclingDelayHandlerClassifyTest.java) (revision 41363) @@ -57,27 +57,27 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TousseInstanceInfo info1 = new TousseInstanceInfo(); - info1.setEnteringDate(sdf.parse("2023-01-01 10:00:00")); + info1.setApplicationTime(sdf.parse("2023-01-01 10:00:00")); info1.setStatus("已回收"); info1.setRecyclingTime(sdf.parse("2023-01-01 10:25:00")); // delayType = 0 TousseInstanceInfo info2 = new TousseInstanceInfo(); - info2.setEnteringDate(sdf.parse("2023-01-01 11:00:00")); + info2.setApplicationTime(sdf.parse("2023-01-01 11:00:00")); info2.setStatus("已回收"); info2.setRecyclingTime(sdf.parse("2023-01-01 11:45:00")); // delayType = 1 TousseInstanceInfo info3 = new TousseInstanceInfo(); - info3.setEnteringDate(sdf.parse("2023-01-01 12:02:00")); + info3.setApplicationTime(sdf.parse("2023-01-01 12:02:00")); info3.setStatus("已回收"); info3.setRecyclingTime(sdf.parse("2023-01-01 13:02:00")); // delayType = 2 TousseInstanceInfo info4 = new TousseInstanceInfo(); - info4.setEnteringDate(sdf.parse("2023-01-01 11:05:00")); + info4.setApplicationTime(sdf.parse("2023-01-01 11:05:00")); info4.setStatus("已发货"); info4.setRecyclingTime(null); // delayType = 3 TousseInstanceInfo info5 = new TousseInstanceInfo(); - info5.setEnteringDate(sdf.parse("2023-01-01 11:05:00")); + info5.setApplicationTime(sdf.parse("2023-01-01 11:05:00")); info5.setStatus("已回收"); info5.setRecyclingTime(sdf.parse("2023-01-01 13:05:00")); // delayType = 3 @@ -105,12 +105,12 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TousseInstanceInfo info1 = new TousseInstanceInfo(); - info1.setEnteringDate(sdf.parse("2023-01-01 10:00:00")); + info1.setApplicationTime(sdf.parse("2023-01-01 10:00:00")); info1.setStatus("已回收"); info1.setRecyclingTime(sdf.parse("2023-01-01 10:35:00")); // delayType = 1 TousseInstanceInfo info2 = new TousseInstanceInfo(); - info2.setEnteringDate(sdf.parse("2023-01-02 11:00:00")); + info2.setApplicationTime(sdf.parse("2023-01-02 11:00:00")); info2.setStatus("已回收"); info2.setRecyclingTime(sdf.parse("2023-01-02 12:45:00")); // delayType = 2
科室器械包名称科室器械包名称器械包条码手术名称手术间病人姓名巡回护士病人姓名巡回护士状态回收时长
{patientName}{circuitNurse}{status}{delayTypeStr}