From 4262e1fb86b1bd9f3e38430cdf02696c10d5a801 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期五, 20 六月 2025 17:30:43 +0800
Subject: [PATCH] 维修调度-出库

---
 src/main/java/com/whyc/service/WorkflowLinkService.java |   23 +++++++++++++++--------
 src/main/java/com/whyc/mapper/DeviceSpareMapper.java    |    3 +++
 src/main/java/com/whyc/service/DeviceSpareService.java  |    4 ++++
 src/main/resources/mapper/DeviceSpareMapper.xml         |   16 ++++++++++++++++
 4 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/whyc/mapper/DeviceSpareMapper.java b/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
index 50a605e..ddd3748 100644
--- a/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
+++ b/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
@@ -2,7 +2,10 @@
 
 import com.whyc.pojo.web_site.DeviceSpare;
 
+import java.util.List;
+
 public interface DeviceSpareMapper extends CustomMapper<DeviceSpare>{
 
+    void outBound(List<DeviceSpare> spareList);
 
 }
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index 5dd1598..b0d0ed2 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -187,4 +187,8 @@
         }
 
     }
+
+    public void outBound(List<DeviceSpare> spareList) {
+        mapper.outBound(spareList);
+    }
 }
diff --git a/src/main/java/com/whyc/service/WorkflowLinkService.java b/src/main/java/com/whyc/service/WorkflowLinkService.java
index f3acc30..d7b1737 100644
--- a/src/main/java/com/whyc/service/WorkflowLinkService.java
+++ b/src/main/java/com/whyc/service/WorkflowLinkService.java
@@ -72,7 +72,7 @@
                     link.setDealAndClose(1);
                 }
             }break;
-            //璁惧鍏ュ簱鐢宠 TODO 鍏ュ簱褰卞搷搴撳瓨
+            //璁惧鍏ュ簱鐢宠
             case 2:
             //璁惧鎶ュ簾鐢宠
             case 3:{
@@ -149,19 +149,26 @@
                     link.setDealAndClose(1);
                 }
             }break;
-            case 4:{ //TODO 鍑哄簱鐢宠
+            case 4:{ // 鍑哄簱鐢宠
                 if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
-                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
+                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_PASS.getValue());
+                    mainInDB.setEndTime(now);
+                    mainInDB.setEndReason(link.getDealReason());
                     mainService.updateById(mainInDB);
+                    //鑾峰彇鍑哄簱鐢宠鍗曡澶�
+                    List<WorkflowDevice> deviceListInDB = deviceService.getByMainId(mainInDB.getId());
+                    List<DeviceSpare> spareList = new ArrayList<>();
+                    deviceListInDB.forEach(device -> {
+                        DeviceSpare spare = new DeviceSpare();
+                        BeanUtils.copyProperties(device,spare);
+                        spareList.add(spare);
+                    });
+                    //鏇存柊搴撳瓨
+                    deviceSpareService.outBound(spareList);
                 }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/resources/mapper/DeviceSpareMapper.xml b/src/main/resources/mapper/DeviceSpareMapper.xml
new file mode 100644
index 0000000..36a7fe5
--- /dev/null
+++ b/src/main/resources/mapper/DeviceSpareMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.whyc.mapper.DeviceSpareMapper" >
+
+    <update id="outBound">
+        <foreach collection="list" item="item" separator=";">
+            update web_site.tb_device_spare set quantity = quantity - #{item.quantity}
+            where name = #{item.name}
+            and model = #{item.model}
+            and version = #{item.version}
+            and brand = #{item.brand}
+            and type = #{item.type}
+            and supplier = #{item.supplier}
+        </foreach>
+    </update>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1