From 64f046ed41c2ae607dc065c82b6d454f64e90584 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 19 六月 2025 21:52:33 +0800
Subject: [PATCH] 预警分析管理-电源告警

---
 src/main/java/com/whyc/service/WorkflowLinkService.java |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/whyc/service/WorkflowLinkService.java b/src/main/java/com/whyc/service/WorkflowLinkService.java
index 6f852f8..86b2328 100644
--- a/src/main/java/com/whyc/service/WorkflowLinkService.java
+++ b/src/main/java/com/whyc/service/WorkflowLinkService.java
@@ -6,6 +6,7 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.*;
 import com.whyc.pojo.db_user.User;
+import com.whyc.pojo.web_site.WorkflowDevice;
 import com.whyc.pojo.web_site.WorkflowLink;
 import com.whyc.pojo.web_site.WorkflowMain;
 import com.whyc.util.CommonUtil;
@@ -27,6 +28,9 @@
     @Autowired
     @Lazy
     private WorkflowMainService mainService;
+
+    @Autowired
+    private WorkflowDeviceService deviceService;
 
 
     public void addBatch(List<WorkflowLink> links) {
@@ -63,11 +67,52 @@
                     mainService.updateById(mainInDB);
                     link.setDealAndClose(1);
                 }
-            }
+            }break;
             //璁惧鍏ュ簱鐢宠
             case 2:
             //璁惧鎶ュ簾鐢宠
             case 3:{
+                if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
+                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_PASS.getValue());
+                    mainInDB.setEndTime(now);
+                    mainInDB.setEndReason(link.getDealReason());
+                    mainService.updateById(mainInDB);
+                }else if(link.getStatus() == WorkflowEnum.LINK_STATUS_REJECT.getValue().intValue()){
+                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
+                    mainInDB.setEndReason(link.getDealRejectReason());
+                    mainInDB.setEndTime(now);
+                    //妫�鏌ユ槸鍚︽湁鍏宠仈宸ュ崟.
+                    // 濡傛灉鏈夊叧鑱斿伐鍗�,鍏宠仈宸ュ崟鐘舵�侀噸缃负瀹岀粨寰呭鐞�,瀹屾垚鏃堕棿閲嶇疆涓虹┖
+                    if(mainInDB.getRelatedId() != null){
+                        Integer relatedId = mainInDB.getRelatedId();
+                        mainService.resetRepairStatus(relatedId);
+                        //鍏宠仈宸ュ崟鐨勮澶囬檮灞炶〃鏈鐞嗘暟閲忎篃瑕佸洖閫�,绛変簬涓昏〃璁惧鏁伴噺
+                        List<WorkflowDevice> deviceRelatedListInDB = deviceService.getByMainId(mainInDB.getRelatedId());
+                        List<WorkflowDevice> deviceListInDB = deviceService.getByMainId(mainInDB.getId());
+                        for (int i = 0; i < deviceListInDB.size(); i++) {
+                            WorkflowDevice deviceInDB = deviceListInDB.get(i);
+                            for (int j = 0; j < deviceRelatedListInDB.size(); j++) {
+                                WorkflowDevice deviceRelatedInDB = deviceRelatedListInDB.get(j);
+                                if (deviceInDB.getName().equals(deviceRelatedInDB.getName())
+                                        && deviceInDB.getModel().equals(deviceRelatedInDB.getModel())
+                                        && deviceInDB.getVersion().equals(deviceRelatedInDB.getVersion())
+                                        && deviceInDB.getBrand().equals(deviceRelatedInDB.getBrand())
+                                        && deviceInDB.getType().equals(deviceRelatedInDB.getType())
+                                        && deviceInDB.getSupplier().equals(deviceRelatedInDB.getSupplier())
+                                ) {
+                                    deviceRelatedInDB.setQuantityUnprocessed(deviceInDB.getQuantity());
+                                    //鍏宠仈宸ュ崟褰撳墠璁惧闄勫睘鐨勬湭澶勭悊鏁伴噺鍥為��瀹屾垚,涓嬩竴涓�
+                                    break;
+                                }
+                            }
+                        }
+                        deviceService.updateQuantityUnprocessedBatch(deviceRelatedListInDB);
+                    }
+                    mainService.updateById(mainInDB);
+                    link.setDealAndClose(1);
+                }
+            }break;
+            case 4:{ //TODO 鍑哄簱鐢宠
                 if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
                     mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
                     mainService.updateById(mainInDB);
@@ -78,12 +123,14 @@
                     //妫�鏌ユ槸鍚︽湁鍏宠仈宸ュ崟.濡傛灉鏈夊叧鑱斿伐鍗�,鍏宠仈宸ュ崟鐘舵�侀噸缃负瀹岀粨寰呭鐞�,瀹屾垚鏃堕棿閲嶇疆涓虹┖
                     if(mainInDB.getRelatedId() != null){
                         Integer relatedId = mainInDB.getRelatedId();
-                        mainService.resetRepairStatus(relatedId,mainInDB.getQuantity());
+                        //mainService.resetRepairStatus(relatedId,mainInDB.getQuantity());
                     }
                     mainService.updateById(mainInDB);
                     link.setDealAndClose(1);
                 }
-            }
+            }break;
+            default:
+                break;
 
         }
 

--
Gitblit v1.9.1