From 98d543674b46dcd169dcfbc1c856e9641a44bb64 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 19 六月 2025 16:08:53 +0800
Subject: [PATCH] 维修调度-维修-入库-报废

---
 src/main/java/com/whyc/service/WorkflowLinkService.java |   44 ++++++++++++++++++++++++++++++++------------
 src/main/java/com/whyc/service/WorkflowMainService.java |   14 ++++++++++++--
 2 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/whyc/service/WorkflowLinkService.java b/src/main/java/com/whyc/service/WorkflowLinkService.java
index 6fb525a..6f852f8 100644
--- a/src/main/java/com/whyc/service/WorkflowLinkService.java
+++ b/src/main/java/com/whyc/service/WorkflowLinkService.java
@@ -46,22 +46,42 @@
         User user = CommonUtil.getUser();
         Date now = new Date();
         //鏍规嵁id.鏌ヨ鍏宠仈鐨勪富琛�
-        WorkflowMain main = mainService.getById(linkInDB.getMainId());
+        WorkflowMain mainInDB = mainService.getById(linkInDB.getMainId());
         //鏌ョ湅鐢宠娴佺▼绫诲瀷
-        switch (main.getType()) {
+        switch (mainInDB.getType()) {
             case 1: { //璁惧缁翠慨鐢宠
                 //鏌ョ湅涓昏〃鐨勭姸鎬�
-                if(main.getStatus() == WorkflowEnum.MAIN_STATUS_DEALING.getValue().intValue()){ //寰呭鐞�,涓嬩竴姝ユ槸瀹℃壒閫氳繃,寰呭鐞� 鎴栬�呴┏鍥�
-                    if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
-                        main.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
-                        mainService.updateStatus(main);
-                    }else if(link.getStatus() == WorkflowEnum.LINK_STATUS_REJECT.getValue().intValue()){
-                        main.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
-                        main.setEndReason(link.getDealRejectReason());
-                        main.setEndTime(now);
-                        mainService.updateStatus(main);
-                        link.setDealAndClose(1);
+                //鍥犱负鏄崟涓摼璺妭鐐�,鎵�浠ヤ笉闇�瑕佸垽鏂槸涓嶆槸寰呭鐞�,鑲畾鍙湁1涓妭鐐�. 瀹℃壒閫氳繃鎴栬�呴┏鍥�
+                //if(main.getStatus() == WorkflowEnum.MAIN_STATUS_DEALING.getValue().intValue()){ //寰呭鐞�,涓嬩竴姝ユ槸瀹℃壒閫氳繃,寰呭鐞� 鎴栬�呴┏鍥�
+                if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
+                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
+                    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);
+                    mainService.updateById(mainInDB);
+                    link.setDealAndClose(1);
+                }
+            }
+            //璁惧鍏ュ簱鐢宠
+            case 2:
+            //璁惧鎶ュ簾鐢宠
+            case 3:{
+                if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
+                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
+                    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,mainInDB.getQuantity());
                     }
+                    mainService.updateById(mainInDB);
+                    link.setDealAndClose(1);
                 }
             }
 
diff --git a/src/main/java/com/whyc/service/WorkflowMainService.java b/src/main/java/com/whyc/service/WorkflowMainService.java
index 4958f8e..179a95a 100644
--- a/src/main/java/com/whyc/service/WorkflowMainService.java
+++ b/src/main/java/com/whyc/service/WorkflowMainService.java
@@ -107,7 +107,7 @@
         return null;
     }
 
-    public void updateStatus(WorkflowMain main) {
+    public void updateById(WorkflowMain main) {
         mapper.updateById(main);
     }
 
@@ -356,7 +356,7 @@
                 relatedMain.setEndReason("鐢ㄦ埛鎻愪氦缁翠慨鐢宠鍚庣殑鎶ュ簾鐢宠,缁翠慨娴佺▼缁撴潫");
             }
             relatedMain.setQuantityUnprocessed(0);
-            updateStatus(relatedMain);
+            updateById(relatedMain);
         }
     }
 
@@ -406,4 +406,14 @@
         update.set("process_level",processLevel).eq("id",mainId);
         mapper.update((WorkflowMain) ActionUtil.objeNull,update);
     }
+
+    public void resetRepairStatus(Integer relatedId, Integer quantity) {
+        UpdateWrapper<WorkflowMain> update = Wrappers.update();
+        update.set("status",WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue())
+                .set("end_time",null)
+                .set("end_reason",null)
+                .set("quantity_unprocessed",quantity)
+                .eq("id",relatedId);
+        mapper.update((WorkflowMain) ActionUtil.objeNull,update);
+    }
 }

--
Gitblit v1.9.1