From 88e10f5656a0ad5530a9e37892fb327153d9dc8a Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 27 六月 2025 13:25:35 +0800
Subject: [PATCH] feat(eims): 优化保养报表状态展示

---
 eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue                                   |   21 ++++++++++++++++++---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java |   21 ++++++++++++++++-----
 2 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue b/eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue
index ee92d5e..7a5092e 100644
--- a/eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/maint-report/index.vue
@@ -139,11 +139,19 @@
         let className = '';
 
         switch (value) {
+          case '淇濆吇涓�': {
+            className = 'dot-blue';
+            break;
+          }
           case '宸插畬鎴�': {
             className = 'dot-green';
             break;
           }
-          case '鏈畬鎴�': {
+          case '寰呬繚鍏�': {
+            className = 'dot-gray';
+            break;
+          }
+          case '寰呴獙璇�': {
             className = 'dot-orange';
             break;
           }
@@ -168,10 +176,10 @@
 <template>
   <Page :auto-content-height="true">
     <div class="flex h-full gap-[8px]">
-      <BasicTable class="flex-1 overflow-hidden" table-title="璇曚骇鍒楄〃">
+      <BasicTable class="flex-1 overflow-hidden" table-title="淇濆吇鎶ヨ〃">
         <template #toolbar-tools>
           <Space>
-            <span class="ml-4 mr-2">-</span>鏈敓鎴愯鍒� <span class="dot-orange ml-4"></span>鏈畬鎴� <span class="dot-green ml-4"></span>宸插畬鎴�
+            <span class="ml-4 mr-2">-</span>鏈敓鎴愯鍒� <span class="dot-gray ml-4"></span>寰呬繚鍏� <span class="dot-blue ml-4"></span>淇濆吇涓� <span class="dot-orange ml-4"></span>寰呴獙璇� <span class="dot-green ml-4"></span>宸插畬鎴�
           </Space>
         </template>
       </BasicTable>
@@ -210,4 +218,11 @@
   border-radius: 50%;
   background-color: #8a2ad8;
 }
+:deep(.dot-gray) {
+  display: inline-block;
+  width: 10px;
+  height: 10px;
+  border-radius: 50%;
+  background-color: #d9d9d9;
+}
 </style>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java
index ce7d9a2..2a5c4a6 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/ReportServiceImpl.java
@@ -274,12 +274,23 @@
                 order -> String.valueOf(order.getPlanTime().toInstant()
                     .atZone(ZoneId.systemDefault())
                     .toLocalDate().getMonthValue()),
-                // 鎸夋湀浠藉垎缁勫悗锛屽垽鏂鏈堟槸鍚﹀叏閮╯tatus=3
                 Collectors.collectingAndThen(
                     Collectors.toList(),
-                    orders -> orders.stream().allMatch(o -> o.getStatus().equals("3"))
-                        ? "宸插畬鎴�"
-                        : "鏈畬鎴�"
+                    orders -> {
+                        boolean allZero = orders.stream().allMatch(o -> o.getStatus().equals("0"));
+                        if (allZero) {
+                            return MAINT_0; // 寰呬繚鍏�
+                        }
+                        boolean allGtOne = orders.stream().allMatch(o -> Integer.parseInt(o.getStatus()) > 1);
+                        if (allGtOne) {
+                            return MAINT_2; // 寰呴獙璇�
+                        }
+                        boolean allGtTwo = orders.stream().allMatch(o -> Integer.parseInt(o.getStatus()) > 2);
+                        if (allGtTwo) {
+                            return MAINT_3; // 宸插畬鎴�
+                        }
+                        return "淇濆吇涓�";
+                    }
                 )
             ));
         Map<String, EimsMaintPlan> planMap = equMaintPlanList.stream()
@@ -295,7 +306,7 @@
         for (int month = 1; month <= monthInYear; month++) {
             String monthKey = "month_" + month;
             if (planMap.containsKey(String.valueOf(month))) {
-                item.put(monthKey, UNCHECKED);
+                item.put(monthKey, MAINT_0);
             } else if (orderMap.containsKey(String.valueOf(month))) {
                 String result  = orderMap.get(String.valueOf(month));
                 item.put(monthKey, result);

--
Gitblit v1.9.3