From aa710969e00e9d7e56a276066a239f74d5c49310 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 21:47:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WrkAnalysisServiceImpl.java |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WrkAnalysisServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkAnalysisServiceImpl.java
index 6bbaac2..da83645 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkAnalysisServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkAnalysisServiceImpl.java
@@ -46,6 +46,7 @@
     private final BasCrnpErrLogService basCrnpErrLogService;
     private final BasDualCrnpErrLogService basDualCrnpErrLogService;
     private final BasRgvErrLogService basRgvErrLogService;
+    private final BasStationErrLogService basStationErrLogService;
     private final BasStationService basStationService;
     private final BasWrkStatusService basWrkStatusService;
     private final WrkMastService wrkMastService;
@@ -54,6 +55,7 @@
                                   BasCrnpErrLogService basCrnpErrLogService,
                                   BasDualCrnpErrLogService basDualCrnpErrLogService,
                                   BasRgvErrLogService basRgvErrLogService,
+                                  BasStationErrLogService basStationErrLogService,
                                   BasStationService basStationService,
                                   BasWrkStatusService basWrkStatusService,
                                   WrkMastService wrkMastService) {
@@ -61,6 +63,7 @@
         this.basCrnpErrLogService = basCrnpErrLogService;
         this.basDualCrnpErrLogService = basDualCrnpErrLogService;
         this.basRgvErrLogService = basRgvErrLogService;
+        this.basStationErrLogService = basStationErrLogService;
         this.basStationService = basStationService;
         this.basWrkStatusService = basWrkStatusService;
         this.wrkMastService = wrkMastService;
@@ -89,6 +92,8 @@
         entity.setDualCrnFaultDurationMs(defaultLong(entity.getDualCrnFaultDurationMs()));
         entity.setRgvFaultCount(defaultInt(entity.getRgvFaultCount()));
         entity.setRgvFaultDurationMs(defaultLong(entity.getRgvFaultDurationMs()));
+        entity.setStationFaultCount(defaultInt(entity.getStationFaultCount()));
+        entity.setStationFaultDurationMs(defaultLong(entity.getStationFaultDurationMs()));
         entity.setMetricCompleteness(METRIC_PARTIAL);
         entity.setUpdateTime(now);
         this.saveOrUpdate(entity);
@@ -243,6 +248,8 @@
         entity.setDualCrnFaultDurationMs(faultSummary.dualDurationMs);
         entity.setRgvFaultCount(faultSummary.rgvCount);
         entity.setRgvFaultDurationMs(faultSummary.rgvDurationMs);
+        entity.setStationFaultCount(faultSummary.stationCount);
+        entity.setStationFaultDurationMs(faultSummary.stationDurationMs);
         entity.setMetricCompleteness(resolveMetricCompleteness(wrkMast, entity));
         entity.setUpdateTime(time);
         this.saveOrUpdate(entity);
@@ -610,6 +617,7 @@
             addDeviceFaultDuration(durationMap, "鍗曞爢鍨涙満", item.getCrnNo(), item.getCrnFaultDurationMs());
             addDeviceFaultDuration(durationMap, "鍙屽伐浣嶅爢鍨涙満", item.getDualCrnNo(), item.getDualCrnFaultDurationMs());
             addDeviceFaultDuration(durationMap, "RGV", item.getRgvNo(), item.getRgvFaultDurationMs());
+            addDeviceFaultDuration(durationMap, "杈撻�佺珯鐐�", null, item.getStationFaultDurationMs());
         }
         List<Map<String, Object>> result = new ArrayList<>();
         durationMap.forEach((name, durationMs) -> result.add(slice(name, durationMs)));
@@ -680,6 +688,7 @@
         target.put("crnFaultDurationMs", analysis == null ? 0L : defaultLong(analysis.getCrnFaultDurationMs()));
         target.put("dualCrnFaultDurationMs", analysis == null ? 0L : defaultLong(analysis.getDualCrnFaultDurationMs()));
         target.put("rgvFaultDurationMs", analysis == null ? 0L : defaultLong(analysis.getRgvFaultDurationMs()));
+        target.put("stationFaultDurationMs", analysis == null ? 0L : defaultLong(analysis.getStationFaultDurationMs()));
         target.put("metricCompleteness", analysis == null ? METRIC_PARTIAL : analysis.getMetricCompleteness());
     }
 
@@ -691,14 +700,17 @@
         List<BasCrnpErrLog> crnList = basCrnpErrLogService.list(new QueryWrapper<BasCrnpErrLog>().eq("wrk_no", wrkNo));
         List<BasDualCrnpErrLog> dualList = basDualCrnpErrLogService.list(new QueryWrapper<BasDualCrnpErrLog>().eq("wrk_no", wrkNo));
         List<BasRgvErrLog> rgvList = basRgvErrLogService.list(new QueryWrapper<BasRgvErrLog>().eq("task_no", wrkNo));
+        List<BasStationErrLog> stationList = basStationErrLogService.list(new QueryWrapper<BasStationErrLog>().eq("wrk_no", wrkNo));
         summary.crnCount = crnList.size();
         summary.crnDurationMs = durationMs(crnList, finishTime);
         summary.dualCount = dualList.size();
         summary.dualDurationMs = durationMs(dualList, finishTime);
         summary.rgvCount = rgvList.size();
         summary.rgvDurationMs = durationMs(rgvList, finishTime);
-        summary.totalCount = summary.crnCount + summary.dualCount + summary.rgvCount;
-        summary.totalDurationMs = summary.crnDurationMs + summary.dualDurationMs + summary.rgvDurationMs;
+        summary.stationCount = stationList.size();
+        summary.stationDurationMs = durationMs(stationList, finishTime);
+        summary.totalCount = summary.crnCount + summary.dualCount + summary.rgvCount + summary.stationCount;
+        summary.totalDurationMs = summary.crnDurationMs + summary.dualDurationMs + summary.rgvDurationMs + summary.stationDurationMs;
         summary.hasFault = summary.totalCount > 0 ? 1 : 0;
         return summary;
     }
@@ -717,6 +729,9 @@
             } else if (item instanceof BasRgvErrLog) {
                 startTime = ((BasRgvErrLog) item).getStartTime();
                 endTime = ((BasRgvErrLog) item).getEndTime();
+            } else if (item instanceof BasStationErrLog) {
+                startTime = ((BasStationErrLog) item).getStartTime();
+                endTime = ((BasStationErrLog) item).getEndTime();
             }
             if (startTime == null) {
                 continue;
@@ -977,6 +992,8 @@
         private long dualDurationMs;
         private int rgvCount;
         private long rgvDurationMs;
+        private int stationCount;
+        private long stationDurationMs;
     }
 
     private static class BucketAccumulator {

--
Gitblit v1.9.1