From 526721dd3acad281204e33d53b5168322ee31e56 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期五, 20 六月 2025 11:34:55 +0800
Subject: [PATCH] 维修调度-报废库

---
 src/main/java/com/whyc/pojo/web_site/WorkflowMain.java  |    5 -
 src/main/java/com/whyc/service/WorkflowLinkService.java |   31 +++++++--
 src/main/java/com/whyc/service/DeviceScrapService.java  |   19 ++++++
 src/main/java/com/whyc/service/DeviceSpareService.java  |   25 ++++++++
 src/main/java/com/whyc/pojo/web_site/DeviceScrap.java   |   41 +++++++++++++
 src/main/java/com/whyc/service/WorkflowMainService.java |    1 
 src/main/java/com/whyc/mapper/DeviceScrapMapper.java    |    6 ++
 7 files changed, 117 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/whyc/mapper/DeviceScrapMapper.java b/src/main/java/com/whyc/mapper/DeviceScrapMapper.java
new file mode 100644
index 0000000..9c8bf39
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/DeviceScrapMapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.web_site.DeviceScrap;
+
+public interface DeviceScrapMapper extends CustomMapper<DeviceScrap>{
+}
diff --git a/src/main/java/com/whyc/pojo/web_site/DeviceScrap.java b/src/main/java/com/whyc/pojo/web_site/DeviceScrap.java
new file mode 100644
index 0000000..4dac8f5
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/web_site/DeviceScrap.java
@@ -0,0 +1,41 @@
+package com.whyc.pojo.web_site;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+
+@ToString
+@Data
+@TableName(schema = "web_site",value ="tb_device_scrap")
+@ApiModel("璁惧鍣ㄤ欢鎶ュ簾搴�")
+public class DeviceScrap {
+
+    private Integer id;
+    @ApiModelProperty("鍣ㄤ欢鍚嶇О")
+    private String name;
+    @ApiModelProperty("鍣ㄤ欢鍨嬪彿")
+    private String model;
+    @ApiModelProperty("鍣ㄤ欢鐗堟湰")
+    private String version;
+    @ApiModelProperty("鏁伴噺")
+    private Integer quantity;
+    @ApiModelProperty("鍝佺墝")
+    private String brand;
+    @ApiModelProperty("绫诲瀷")
+    private String type;
+    @ApiModelProperty("渚涘簲鍟�")
+    private String supplier;
+    @ApiModelProperty("鎶ュ簾鐢宠浜篿d")
+    private Integer applyUserId;
+    @ApiModelProperty("鎶ュ簾鐢宠浜哄悕绉�")
+    private String applyUserName;
+    @ApiModelProperty("鎶ュ簾鏃堕棿")
+    private Date createTime;
+    @ApiModelProperty("鍏宠仈鎶ュ簾娴佺▼涓昏〃id,鐢ㄤ簬杩芥函")
+    private Integer mainId;
+
+}
diff --git a/src/main/java/com/whyc/pojo/web_site/WorkflowMain.java b/src/main/java/com/whyc/pojo/web_site/WorkflowMain.java
index 399d1be..f385245 100644
--- a/src/main/java/com/whyc/pojo/web_site/WorkflowMain.java
+++ b/src/main/java/com/whyc/pojo/web_site/WorkflowMain.java
@@ -38,6 +38,8 @@
     /**鍒涘缓浜篿d*/
     @ApiModelProperty("鍒涘缓浜篿d")
     private Integer createUserId;
+    @ApiModelProperty("鍒涘缓浜哄悕绉�")
+    private String createUserName;
     /**鍒涘缓鏃堕棿*/
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai")
     private Date createTime;
@@ -93,9 +95,6 @@
      */
     @ApiModelProperty("宸ュ崟娴佺被鍨�")
     private Integer type;
-
-    @TableField(exist = false)
-    private String createUserName;
 
     @TableField(exist = false)
     private List<WorkflowLink> linkList;
diff --git a/src/main/java/com/whyc/service/DeviceScrapService.java b/src/main/java/com/whyc/service/DeviceScrapService.java
new file mode 100644
index 0000000..f564c18
--- /dev/null
+++ b/src/main/java/com/whyc/service/DeviceScrapService.java
@@ -0,0 +1,19 @@
+package com.whyc.service;
+
+import com.whyc.mapper.DeviceScrapMapper;
+import com.whyc.pojo.web_site.DeviceScrap;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class DeviceScrapService {
+
+    @Resource
+    private DeviceScrapMapper mapper;
+
+    public void add(List<DeviceScrap> scrapList) {
+        mapper.insertBatchSomeColumn(scrapList);
+    }
+}
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index c924739..5dd1598 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -1,6 +1,7 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -162,4 +163,28 @@
     public void add(List<DeviceSpare> spareList) {
         mapper.insertBatchSomeColumn(spareList);
     }
+
+    public void addOrUpdate(List<DeviceSpare> spareList) {
+        //鏌ヨ搴撲腑鏄惁瀛樺湪璇ヨ澶�,瀛樺湪鍒欏鍔犳暟閲�.
+        for (DeviceSpare spare : spareList) {
+            QueryWrapper<DeviceSpare> query = Wrappers.query();
+            query.eq("name",spare.getName());
+            query.eq("model",spare.getModel());
+            query.eq("version",spare.getVersion());
+            query.eq("brand",spare.getBrand());
+            query.eq("type",spare.getType());
+            query.eq("supplier",spare.getSupplier());
+            query.last(" limit 1");
+            DeviceSpare spareInDB = mapper.selectOne(query);
+            if(spareInDB != null){
+                spareInDB.setQuantity(spareInDB.getQuantity()+spare.getQuantity());
+                mapper.updateById(spareInDB);
+
+            }else{
+                //涓嶅瓨鍦ㄥ垯鏂板
+                mapper.insert(spare);
+            }
+        }
+
+    }
 }
diff --git a/src/main/java/com/whyc/service/WorkflowLinkService.java b/src/main/java/com/whyc/service/WorkflowLinkService.java
index 61817af..f3acc30 100644
--- a/src/main/java/com/whyc/service/WorkflowLinkService.java
+++ b/src/main/java/com/whyc/service/WorkflowLinkService.java
@@ -6,11 +6,9 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.*;
 import com.whyc.pojo.db_user.User;
-import com.whyc.pojo.web_site.DeviceSpare;
-import com.whyc.pojo.web_site.WorkflowDevice;
-import com.whyc.pojo.web_site.WorkflowLink;
-import com.whyc.pojo.web_site.WorkflowMain;
+import com.whyc.pojo.web_site.*;
 import com.whyc.util.CommonUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -35,6 +33,8 @@
 
     @Autowired
     private DeviceSpareService deviceSpareService;
+    @Autowired
+    private DeviceScrapService deviceScrapService;
 
 
     public void addBatch(List<WorkflowLink> links) {
@@ -81,23 +81,38 @@
                     mainInDB.setEndTime(now);
                     mainInDB.setEndReason(link.getDealReason());
                     mainService.updateById(mainInDB);
+
+                    List<WorkflowDevice> deviceListInDB = deviceService.getByMainId(mainInDB.getId());
                     //鍏ュ簱
                     if(mainInDB.getType() == 2){
-                        List<WorkflowDevice> deviceListInDB = deviceService.getByMainId(mainInDB.getId());
                         List<DeviceSpare> spareList = new ArrayList<>();
                         deviceListInDB.forEach(device -> {
                             DeviceSpare spare = new DeviceSpare();
-                            spare.setName(device.getName());
+                            /*spare.setName(device.getName());
                             spare.setModel(device.getModel());
                             spare.setVersion(device.getVersion());
                             spare.setQuantity(device.getQuantity());
                             spare.setBrand(device.getBrand());
                             spare.setType(device.getType());
-                            spare.setSupplier(device.getSupplier());
+                            spare.setSupplier(device.getSupplier());*/
+                            BeanUtils.copyProperties(device,spare);
 
                             spareList.add(spare);
                         });
-                        deviceSpareService.add(spareList);
+                        deviceSpareService.addOrUpdate(spareList);
+                    }else{ //杩涘叆鎶ュ簾搴�
+                        List<DeviceScrap> scrapList = new ArrayList<>();
+                        deviceListInDB.forEach(device -> {
+                            DeviceScrap deviceScrap = new DeviceScrap();
+                            BeanUtils.copyProperties(device,deviceScrap);
+                            deviceScrap.setApplyUserId(mainInDB.getCreateUserId());
+                            deviceScrap.setApplyUserName(mainInDB.getCreateUserName());
+                            deviceScrap.setCreateTime(now);
+                            deviceScrap.setMainId(mainInDB.getId());
+                            scrapList.add(deviceScrap);
+                        });
+                        deviceScrapService.add(scrapList);
+
                     }
                 }else if(link.getStatus() == WorkflowEnum.LINK_STATUS_REJECT.getValue().intValue()){
                     mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
diff --git a/src/main/java/com/whyc/service/WorkflowMainService.java b/src/main/java/com/whyc/service/WorkflowMainService.java
index 8bce361..bed00c2 100644
--- a/src/main/java/com/whyc/service/WorkflowMainService.java
+++ b/src/main/java/com/whyc/service/WorkflowMainService.java
@@ -289,6 +289,7 @@
         main.setOrderId(orderId);
         main.setTitle(title);
         main.setCreateUserId(user.getId());
+        main.setCreateUserName(user.getName());
         main.setCreateTime(now);
         main.setBeginTime(now);
         main.setStatus(mainStatus);

--
Gitblit v1.9.1