From 77d58298d00c11ade8862ca8acb0fdef5a45322e Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期五, 21 三月 2025 17:39:38 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java |  121 ++++++++++++++++++++++++++++++++++------
 1 files changed, 102 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java
index d4bbe69..fe05030 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java
@@ -4,6 +4,8 @@
 import com.example.client.service.BaseService;
 import com.example.server.cabin.service.CabinService;
 import com.example.server.progressTrack.Dto.NetworkNodeStatusDto;
+import com.example.server.progressTrack.Dto.StatistProductDto;
+import com.example.server.progressTrack.Dto.TableNodeDto;
 import com.example.server.progressTrack.dao.DjJdgzNetworkLevel3Dao;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List;
@@ -23,6 +25,8 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -46,6 +50,15 @@
 
     @Value("${zt.oss.local-path}")
     private String path;
+
+    public List<StatistProductDto> getStatist(Long level1Id) {
+        return baseDao.getStatist(level1Id);
+    }
+
+    enum StatusEnum {zy, jxz, lq, yq, zcwc, cqwc}
+
+    String[] fillColorArr = {"#e5e5e5", "#3498DB", "#F1C40F", "#E74C3C", "#2ECC71", "#006400"};
+    String[] fontColorArr = {"#e5e5e5", "#3498DB", "#F1C40F", "#E74C3C", "#2ECC71", "#006400"};
 
     public List<DjJdgzNetworkLevel3> getList(Long shipId, Long deptId, Long teamId, Long cabinId, String type, String name) {
         List<DjJdgzNetworkLevel3> list = baseDao.getList(shipId, deptId, teamId, cabinId, type, name);
@@ -148,7 +161,7 @@
                 teamMap.put(item.getName(), item.getId());
             }
 
-            for (int j = 1; j <= num; j++) {
+            for (int j = 2; j <= num; j++) {
                 int sort = 0;
                 DjJdgzNetworkLevel3 data = new DjJdgzNetworkLevel3();
                 DjJdgzNetworkLevel3List node = new DjJdgzNetworkLevel3List();
@@ -254,18 +267,18 @@
                         time1 = time1.replace("/", "-");
                         node.setRequiredCompletionTime(time1);
                         node.setProcessName(mapProcessName.get(1));
-                        node.setSort(sort + 1);
+                        node.setSort(1);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time1.matches("[0-9.]+")) {
                         time1 = time1.replace(".", "-");
                         node.setRequiredCompletionTime(time1);
                         node.setProcessName(mapProcessName.get(1));
-                        node.setSort(sort + 1);
+                        node.setSort(1);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time1.matches("[0-9-]+")) {
                         node.setRequiredCompletionTime(time1);
                         node.setProcessName(mapProcessName.get(1));
-                        node.setSort(sort + 1);
+                        node.setSort(1);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else {
                         result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
@@ -280,18 +293,18 @@
                     if (time2.matches("[0-9/]+")) {
                         node.setRequiredCompletionTime(time2);
                         node.setProcessName(mapProcessName.get(2));
-                        node.setSort(sort + 1);
+                        node.setSort(2);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time2.matches("[0-9.]+")) {
                         time2 = time2.replace(".", "-");
                         node.setRequiredCompletionTime(time2);
                         node.setProcessName(mapProcessName.get(2));
-                        node.setSort(sort + 1);
+                        node.setSort(2);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time2.matches("[0-9-]+")) {
                         node.setRequiredCompletionTime(time2);
                         node.setProcessName(mapProcessName.get(2));
-                        node.setSort(sort + 1);
+                        node.setSort(2);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else {
                         result = "绗�" + j + "琛�" + "绗�" + 2 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
@@ -307,18 +320,18 @@
                         time3 = time3.replace("/", "-");
                         node.setRequiredCompletionTime(time3);
                         node.setProcessName(mapProcessName.get(3));
-                        node.setSort(sort + 1);
+                        node.setSort(3);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time3.matches("[0-9.]+")) {
                         time3 = time3.replace(".", "-");
                         node.setRequiredCompletionTime(time3);
                         node.setProcessName(mapProcessName.get(3));
-                        node.setSort(sort + 1);
+                        node.setSort(3);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time3.matches("[0-9-]+")) {
                         node.setRequiredCompletionTime(time3);
                         node.setProcessName(mapProcessName.get(3));
-                        node.setSort(sort + 1);
+                        node.setSort(3);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else {
                         result = "绗�" + j + "琛�" + "绗�" + 3 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
@@ -334,18 +347,18 @@
                         time4 = time4.replace("/", "-");
                         node.setRequiredCompletionTime(time4);
                         node.setProcessName(mapProcessName.get(4));
-                        node.setSort(sort + 1);
+                        node.setSort(4);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time4.matches("[0-9.]+")) {
                         time4 = time4.replace(".", "-");
                         node.setRequiredCompletionTime(time4);
                         node.setProcessName(mapProcessName.get(4));
-                        node.setSort(sort + 1);
+                        node.setSort(4);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time4.matches("[0-9-]+")) {
                         node.setRequiredCompletionTime(time4);
                         node.setProcessName(mapProcessName.get(4));
-                        node.setSort(sort + 1);
+                        node.setSort(4);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else {
                         result = "绗�" + j + "琛�" + "绗�" + 4 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
@@ -361,18 +374,18 @@
                         time5 = time5.replace("/", "-");
                         node.setRequiredCompletionTime(time5);
                         node.setProcessName(mapProcessName.get(5));
-                        node.setSort(sort + 1);
+                        node.setSort(5);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time5.matches("[0-9.]+")) {
                         time5 = time5.replace(".", "-");
                         node.setRequiredCompletionTime(time5);
                         node.setProcessName(mapProcessName.get(5));
-                        node.setSort(sort + 1);
+                        node.setSort(5);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else if (time5.matches("[0-9-]+")) {
                         node.setRequiredCompletionTime(time5);
                         node.setProcessName(mapProcessName.get(5));
-                        node.setSort(sort + 1);
+                        node.setSort(5);
                         DjJdgzNetworkLevel3ListService.insert(node);
                     } else {
                         result = "绗�" + j + "琛�" + "绗�" + 5 + "涓�" + "瑕佹眰瀹屾垚鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
@@ -393,13 +406,13 @@
                 if (StringUtils.isNotBlank(generalRepairUnitDirector)) {
                     data.setGeneralRepairUnitDirector(generalRepairUnitDirector);
                 }
-                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                if (StringUtils.isNotBlank(repairUnit)) {
                     data.setRepairUnit(repairUnit);
                 }
-                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                if (StringUtils.isNotBlank(repairUnitContact)) {
                     data.setRepairUnitContact(repairUnitContact);
                 }
-                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                if (StringUtils.isNotBlank(repairUnitDirector)) {
                     data.setRepairUnitDirector(repairUnitDirector);
                 }
 
@@ -428,6 +441,76 @@
         JComboBoxItem[] list = baseDao.getListByExport(projectId, deptId, teamId);
         return list;
     }
+
+    public List<TableNodeDto> getNodeList(Long shipId, Long deptId, Long teamId, Long cabinId, String type, String name) {
+        List<TableNodeDto> list = baseDao.getNodeList(shipId, deptId, teamId, cabinId, type, name);
+
+        Map<Long, StatusEnum> statusMap = new HashMap<>();
+        Date today = new Date();
+        for (TableNodeDto node : list) {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date requiredCompletionDate = null;
+            Date actualCompletionDate = null;
+            try {
+                if (StringUtils.isNotBlank(node.getRequiredCompletionTime())) {
+                    requiredCompletionDate = sdf.parse(node.getRequiredCompletionTime());
+                }
+                if (StringUtils.isNotBlank(node.getActualCompletion())) {
+                    actualCompletionDate = sdf.parse(node.getActualCompletion());
+                }
+
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+            if (node.getCurrentStatus() == null || node.getCurrentStatus() == 0) {
+                if (today.after(requiredCompletionDate)) {
+                    statusMap.put(node.getId(), StatusEnum.yq);
+                } else if ((requiredCompletionDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24) < 7) {
+                    statusMap.put(node.getId(), StatusEnum.lq);
+                } else {
+                    statusMap.put(node.getId(), StatusEnum.jxz);
+                }
+            } else if (node.getCurrentStatus() == 1) {
+                // 宸插畬鎴�
+                if (node.getActualCompletion() != null && actualCompletionDate.after(requiredCompletionDate)) {
+                    statusMap.put(node.getId(), StatusEnum.cqwc);
+                } else {
+                    statusMap.put(node.getId(), StatusEnum.zcwc);
+                }
+            }
+        }
+        StatusEnum status = StatusEnum.jxz;
+        List<TableNodeDto> dataList = new ArrayList<>();
+        Long oldId = 0L;
+        TableNodeDto data = null;
+        for (TableNodeDto node : list) {
+            if (oldId.equals(node.getNetworkId())){
+
+            }else{
+                data = new TableNodeDto();
+                data.setName(node.getName());
+                data.setNetworkId(node.getNetworkId());
+                dataList.add(data);
+                oldId = node.getNetworkId();
+            }
+
+            status = statusMap.get(node.getId());
+            if (node.getProcessName().equals("璁惧鎷嗗嵏鍑鸿埍")) {
+                data.setTime1Color(fillColorArr[status.ordinal()]);
+            } else if (node.getProcessName().equals("璁惧鍒嗕氦")) {
+                data.setTime2Color(fillColorArr[status.ordinal()]);
+            } else if (node.getProcessName().equals("鎷嗘閴村畾")) {
+                data.setTime3Color(fillColorArr[status.ordinal()]);
+            } else if (node.getProcessName().equals("璁惧杩斿巶")) {
+                data.setTime4Color(fillColorArr[status.ordinal()]);
+            } else if (node.getProcessName().equals("鍥炶")) {
+                data.setTime5Color(fillColorArr[status.ordinal()]);
+            }
+        }
+
+
+        return dataList;
+    }
   /*  public void exportExcelTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {
         String excelName="涓夌骇缃戠粶鍥炬壒閲忔ā鐗�";
         String excelPath = path + "template/jx-model/" + excelName + ".xlsx"; //妯℃澘璺緞

--
Gitblit v1.9.1