From 3ca5acd1cdd2abc3db64dcbe396d0d19fedd0819 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 18 八月 2025 10:27:26 +0800
Subject: [PATCH] 维修时长 故障时长修改

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
index 1ef4f8e..21de29a 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -208,21 +208,44 @@
         BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder);
         eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
         eamRepairOrder.setActualEndTime(new Date());
-        //璁$畻缁翠慨鏃堕棿涓庢晠闅滄椂闂�
+        // 璁$畻缁翠慨鏃堕棿涓庢晠闅滄椂闂�
         Date startTime;
         Date endTime;
-        //缁翠慨缁撴潫鏃堕棿-缁翠慨寮�濮嬫椂闂�=缁翠慨鏃堕暱
-        startTime=eamRepairOrder.getActualStartTime();
-        endTime=eamRepairOrder.getActualEndTime();
-        eamRepairOrder.setRepairDuration(TimeUtil.howLong(startTime,endTime,2));
-        //缁翠慨缁撴潫鏃堕棿-鏁呴殰鎶ヤ慨鏃堕棿=鏁呴殰鏃堕暱
-        EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId());
-        if (eamReportRepair==null){
-            return false;
+        // 1. 璁$畻缁翠慨鏃堕暱锛堢淮淇粨鏉熸椂闂�-缁翠慨寮�濮嬫椂闂达級
+        if (eamRepairOrder.getActualStartTime() != null &&
+                eamRepairOrder.getActualEndTime() != null) {
+            startTime = eamRepairOrder.getActualStartTime();
+            endTime = eamRepairOrder.getActualEndTime();
+            // 纭繚缁撴潫鏃堕棿鍦ㄥ紑濮嬫椂闂翠箣鍚�
+            if (endTime.after(startTime)) {
+                long time = endTime.getTime() - startTime.getTime();
+                double hours = (double) time / (1000 * 60 * 60);
+                eamRepairOrder.setRepairDuration(String.format("%.2f", hours));
+            } else {
+                // 鏃堕棿椤哄簭閿欒澶勭悊
+                eamRepairOrder.setRepairDuration("0.00");
+            }
+        } else {
+            // 澶勭悊缂哄け鏃堕棿鐨勬儏鍐�
+            eamRepairOrder.setRepairDuration("0.00");
         }
-        startTime=eamReportRepair.getFaultStartTime();
-        endTime=eamRepairOrder.getActualEndTime();
-        eamRepairOrder.setFaultDuration(TimeUtil.howLong(startTime,endTime,2));
+        // 2. 璁$畻鏁呴殰鏃堕暱锛堢淮淇粨鏉熸椂闂�-鏁呴殰寮�濮嬫椂闂达級
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        if (eamReportRepair != null &&
+                eamReportRepair.getFaultStartTime() != null &&
+                eamRepairOrder.getActualEndTime() != null) {
+            startTime = eamReportRepair.getFaultStartTime();
+            endTime = eamRepairOrder.getActualEndTime();
+            if (endTime.after(startTime)) {
+                long time = endTime.getTime() - startTime.getTime();
+                double hours = (double) time / (1000 * 60 * 60);
+                eamRepairOrder.setFaultDuration(String.format("%.2f", hours));
+            } else {
+                eamRepairOrder.setFaultDuration("0.00");
+            }
+        } else {
+            eamRepairOrder.setFaultDuration("0.00");
+        }
         eamRepairOrder.setFaultStartTime(new Date());
         this.updateById(eamRepairOrder);
         eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());

--
Gitblit v1.9.3