From c37ef20af259294a26ae960c363ff1a8b68a506d Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 9 Jun 2025 09:42:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(ems):=20=E5=A2=9E=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E8=8C=83=E5=9B=B4=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在多个页面中添加日期范围选择器,支持开始日期和结束日期的选择- 后端 mapper 文件中增加对日期范围查询的支持 -优化查询逻辑,优先使用日期范围进行筛选 - 调整表格样式,增加行hover效果 --- .../os/ems/info/domain/DailyFaultRecord.java | 38 ++++++++++++++++++- .../impl/DailyFaultRecordServiceImpl.java | 22 ++++++++++- .../ems/info/DailyFaultRecordMapper.xml | 18 +++++++-- .../ems/info/FaultHandlingRecordMapper.xml | 2 +- ...owerEnergySparePartsRegistrationMapper.xml | 2 +- .../PowerEnergySupervisionChecklistMapper.xml | 2 +- .../ems/info/SparePartsUsageRecordMapper.xml | 2 +- 7 files changed, 75 insertions(+), 11 deletions(-) diff --git a/os-ems/src/main/java/com/os/ems/info/domain/DailyFaultRecord.java b/os-ems/src/main/java/com/os/ems/info/domain/DailyFaultRecord.java index 2f14a73..3c1f709 100644 --- a/os-ems/src/main/java/com/os/ems/info/domain/DailyFaultRecord.java +++ b/os-ems/src/main/java/com/os/ems/info/domain/DailyFaultRecord.java @@ -54,10 +54,13 @@ public class DailyFaultRecord extends BaseEntity @Excel(name = "处置完毕时间" , dateFormat = "HH:mm:ss") private String handlingCompletionTime; - /** 处置时长 */ - @Excel(name = "处置时长" , cellType = Excel.ColumnType.NUMERIC) + /** 处置时长 */ private Long handlingDuration; + /** 处置时长格式化显示 (HH:mm:ss) */ + @Excel(name = "处置时长", cellType = Excel.ColumnType.STRING,type = Excel.Type.EXPORT) + private String handlingDurationFormatted; + /** 备注 */ @Excel(name = "备注", cellType = Excel.ColumnType.STRING) private String remarks; @@ -155,12 +158,42 @@ public class DailyFaultRecord extends BaseEntity public void setHandlingDuration(Long handlingDuration) { this.handlingDuration = handlingDuration; + // 自动格式化处置时长 + this.handlingDurationFormatted = formatDuration(handlingDuration); } public Long getHandlingDuration() { return handlingDuration; } + + public void setHandlingDurationFormatted(String handlingDurationFormatted) + { + this.handlingDurationFormatted = handlingDurationFormatted; + } + + public String getHandlingDurationFormatted() + { + return handlingDurationFormatted; + } + + /** + * 格式化处置时长为HH:mm:ss格式 + * @param seconds 秒数 + * @return 格式化后的时间字符串 + */ + private String formatDuration(Long seconds) { + if (seconds == null || seconds <= 0) { + return "00:00:00"; + } + + long hours = seconds / 3600; + long minutes = (seconds % 3600) / 60; + long secs = seconds % 60; + + return String.format("%02d:%02d:%02d", hours, minutes, secs); + } + public void setRemarks(String remarks) { this.remarks = remarks; @@ -185,6 +218,7 @@ public class DailyFaultRecord extends BaseEntity .append("faultOccurrenceTime", getFaultOccurrenceTime()) .append("handlingCompletionTime", getHandlingCompletionTime()) .append("handlingDuration", getHandlingDuration()) + .append("handlingDurationFormatted", getHandlingDurationFormatted()) .append("remarks", getRemarks()) .toString(); } diff --git a/os-ems/src/main/java/com/os/ems/info/service/impl/DailyFaultRecordServiceImpl.java b/os-ems/src/main/java/com/os/ems/info/service/impl/DailyFaultRecordServiceImpl.java index d38c919..4b6ae04 100644 --- a/os-ems/src/main/java/com/os/ems/info/service/impl/DailyFaultRecordServiceImpl.java +++ b/os-ems/src/main/java/com/os/ems/info/service/impl/DailyFaultRecordServiceImpl.java @@ -42,7 +42,14 @@ public class DailyFaultRecordServiceImpl implements IDailyFaultRecordService @Override public List selectDailyFaultRecordList(DailyFaultRecord dailyFaultRecord) { - return dailyFaultRecordMapper.selectDailyFaultRecordList(dailyFaultRecord); + List list = dailyFaultRecordMapper.selectDailyFaultRecordList(dailyFaultRecord); + // 确保格式化字段正确设置(防止数据库查询未正确设置的情况) + for (DailyFaultRecord record : list) { + if (record.getHandlingDurationFormatted() == null && record.getHandlingDuration() != null) { + record.setHandlingDuration(record.getHandlingDuration()); // 触发格式化 + } + } + return list; } /** @@ -54,6 +61,10 @@ public class DailyFaultRecordServiceImpl implements IDailyFaultRecordService @Override public int insertDailyFaultRecord(DailyFaultRecord dailyFaultRecord) { + // 确保格式化字段正确设置 + if (dailyFaultRecord.getHandlingDuration() != null) { + dailyFaultRecord.setHandlingDuration(dailyFaultRecord.getHandlingDuration()); + } return dailyFaultRecordMapper.insertDailyFaultRecord(dailyFaultRecord); } @@ -66,6 +77,10 @@ public class DailyFaultRecordServiceImpl implements IDailyFaultRecordService @Override public int updateDailyFaultRecord(DailyFaultRecord dailyFaultRecord) { + // 确保格式化字段正确设置 + if (dailyFaultRecord.getHandlingDuration() != null) { + dailyFaultRecord.setHandlingDuration(dailyFaultRecord.getHandlingDuration()); + } return dailyFaultRecordMapper.updateDailyFaultRecord(dailyFaultRecord); } @@ -120,6 +135,11 @@ public class DailyFaultRecordServiceImpl implements IDailyFaultRecordService // 设置操作人 record.setCreateBy(operName); + // 确保格式化字段正确设置 + if (record.getHandlingDuration() != null) { + record.setHandlingDuration(record.getHandlingDuration()); + } + // 验证是否存在这个记录 DailyFaultRecord existRecord = null; if (StringUtils.isNotEmpty(record.getDate()) && StringUtils.isNotEmpty(record.getLocation())) diff --git a/os-ems/src/main/resources/mapper/ems/info/DailyFaultRecordMapper.xml b/os-ems/src/main/resources/mapper/ems/info/DailyFaultRecordMapper.xml index 7360347..1fe33bb 100644 --- a/os-ems/src/main/resources/mapper/ems/info/DailyFaultRecordMapper.xml +++ b/os-ems/src/main/resources/mapper/ems/info/DailyFaultRecordMapper.xml @@ -16,11 +16,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, date, location, daily_duty_supervisor, tenda_daily_duty_supervisor, fault_situation, handling_measures, fault_type, fault_occurrence_time, handling_completion_time, handling_duration, remarks from daily_fault_record + select id, date, location, daily_duty_supervisor, tenda_daily_duty_supervisor, fault_situation, handling_measures, fault_type, fault_occurrence_time, handling_completion_time, handling_duration, + CASE + WHEN handling_duration IS NULL OR handling_duration <= 0 THEN '00:00:00' + ELSE CONCAT( + LPAD(FLOOR(handling_duration / 3600), 2, '0'), ':', + LPAD(FLOOR((handling_duration % 3600) / 60), 2, '0'), ':', + LPAD(handling_duration % 60, 2, '0') + ) + END as handling_duration_formatted, + remarks from daily_fault_record