From 57d3881d7c7f88a294824432a482fe206f719eda Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期五, 13 六月 2025 13:29:24 +0800
Subject: [PATCH] 维修备件变更日志

---
 src/main/java/com/whyc/mapper/DeviceSpareLogMapper.java         |    6 ++
 src/main/java/com/whyc/service/DeviceSpareService.java          |   68 ++++++++++++++++++++++
 src/main/java/com/whyc/controller/DeviceSpareLogController.java |   31 ++++++++++
 src/main/java/com/whyc/pojo/web_site/DeviceSpareLog.java        |   28 +++++++++
 src/main/java/com/whyc/service/DeviceSpareLogService.java       |   32 ++++++++++
 5 files changed, 164 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/controller/DeviceSpareLogController.java b/src/main/java/com/whyc/controller/DeviceSpareLogController.java
new file mode 100644
index 0000000..3554933
--- /dev/null
+++ b/src/main/java/com/whyc/controller/DeviceSpareLogController.java
@@ -0,0 +1,31 @@
+package com.whyc.controller;
+
+import com.whyc.dto.Response;
+import com.whyc.pojo.web_site.DeviceSpareLog;
+import com.whyc.service.DeviceSpareLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("deviceSpareLog")
+@Api(tags = "璁惧鍣ㄤ欢澶囦欢鍙樻洿鏃ュ織")
+public class DeviceSpareLogController {
+
+    @Autowired
+    private DeviceSpareLogService service;
+
+
+    @GetMapping("getList")
+    @ApiOperation(value = "鏌ヨ鍙樻洿鏃ュ織")
+    public Response<List<DeviceSpareLog>> getList(@RequestParam int deviceSpareId){
+        return service.getList(deviceSpareId);
+    }
+
+}
diff --git a/src/main/java/com/whyc/mapper/DeviceSpareLogMapper.java b/src/main/java/com/whyc/mapper/DeviceSpareLogMapper.java
new file mode 100644
index 0000000..c9224bf
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/DeviceSpareLogMapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.web_site.DeviceSpareLog;
+
+public interface DeviceSpareLogMapper extends CustomMapper<DeviceSpareLog>{
+}
diff --git a/src/main/java/com/whyc/pojo/web_site/DeviceSpareLog.java b/src/main/java/com/whyc/pojo/web_site/DeviceSpareLog.java
new file mode 100644
index 0000000..259823c
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/web_site/DeviceSpareLog.java
@@ -0,0 +1,28 @@
+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_spare_log")
+@ApiModel("璁惧鍣ㄤ欢澶囦欢搴撴搷浣滄棩蹇�")
+public class DeviceSpareLog {
+
+    private Integer id;
+
+    private Integer deviceSpareId;
+
+    @ApiModelProperty("鎿嶄綔绫诲瀷.1-鏂板鐗╂枡,2-淇敼")
+    private Integer operationType;
+
+    private String operationDetail;
+
+    private Date createTime;
+
+}
diff --git a/src/main/java/com/whyc/service/DeviceSpareLogService.java b/src/main/java/com/whyc/service/DeviceSpareLogService.java
new file mode 100644
index 0000000..9e7ecca
--- /dev/null
+++ b/src/main/java/com/whyc/service/DeviceSpareLogService.java
@@ -0,0 +1,32 @@
+package com.whyc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.whyc.dto.Response;
+import com.whyc.mapper.DeviceSpareLogMapper;
+import com.whyc.pojo.web_site.DeviceSpareLog;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class DeviceSpareLogService {
+
+    @Resource
+    private DeviceSpareLogMapper mapper;
+
+
+    public void add(DeviceSpareLog deviceSpareLog) {
+        mapper.insert(deviceSpareLog);
+    }
+
+    public Response<List<DeviceSpareLog>> getList(int deviceSpareId) {
+        QueryWrapper<DeviceSpareLog> query = Wrappers.query();
+        query.eq("device_spare_id",deviceSpareId);
+        query.orderByDesc("id");
+        List<DeviceSpareLog> deviceSpareLogs = mapper.selectList(query);
+        return new Response<List<DeviceSpareLog>>().set(1, deviceSpareLogs);
+
+    }
+}
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index 9fbf916..fc58ee0 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -7,10 +7,13 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.DeviceSpareMapper;
 import com.whyc.pojo.web_site.DeviceSpare;
+import com.whyc.pojo.web_site.DeviceSpareLog;
 import com.whyc.util.CommonUtil;
 import com.whyc.util.ThreadLocalUtil;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -24,6 +27,9 @@
 
     @Resource
     private DeviceSpareMapper mapper;
+
+    @Autowired
+    private DeviceSpareLogService deviceSpareLogService;
 
     public Response<PageInfo<DeviceSpare>> getPage(Integer pageNum, Integer pageSize, String type, String name) {
         PageHelper.startPage(pageNum, pageSize);
@@ -40,6 +46,7 @@
         return new Response<List<DeviceSpare>>().set(1, mapper.selectList(query));
     }
 
+    @Transactional
     public Response add(DeviceSpare spare, List<MultipartFile> file) throws IOException {
         //瀵筬ile杩涜澶勭悊,淇濆瓨鍒版枃浠跺す涓�
         //瀵瑰瓨鍌ㄨ矾寰勮繘琛屽畾涔�
@@ -73,10 +80,69 @@
         }
         spare.setPictureUrl(pictureUrlSb.toString());
         mapper.insert(spare);
-        return new Response().setII(1,"澧炲姞瀹屾垚");
+
+        //鍙樻洿鏃ュ織
+        DeviceSpareLog deviceSpareLog = new DeviceSpareLog();
+        deviceSpareLog.setDeviceSpareId(spare.getId());
+        deviceSpareLog.setCreateTime(now);
+        deviceSpareLog.setOperationType(1);
+
+        StringBuilder detailSb = new StringBuilder();
+        detailSb.append("鏂板鐗╂枡绫诲瀷,");
+        detailSb.append("鐗╂枡鍚嶇О:").append(spare.getName()).append(",");
+        detailSb.append("鐗╂枡鍨嬪彿:").append(spare.getModel()).append(",");
+        detailSb.append("鐗╂枡鐗堟湰:").append(spare.getVersion()).append(",");
+        detailSb.append("鐗╂枡鍝佺墝:").append(spare.getBrand()).append(",");
+        detailSb.append("鐗╂枡鏁伴噺:").append(spare.getQuantity()).append(",");
+        detailSb.append("鐗╂枡绫诲瀷:").append(spare.getType()).append(",");
+        detailSb.append("鐗╂枡渚涘簲鍟�:").append(spare.getSupplier());
+        deviceSpareLog.setOperationDetail(detailSb.toString());
+
+        deviceSpareLogService.add(deviceSpareLog);
+
+
+
+        return new Response().setII(1,"鏂板瀹屾垚");
     }
 
+    @Transactional
     public Response update(DeviceSpare spare) {
+        //鏍规嵁id鏌ヨ鏁版嵁搴撲腑鐨勭墿鏂�
+        DeviceSpare spareInDB = mapper.selectById(spare.getId());
+        //瀵规瘮姣忎釜瀛楁鏄惁涓�鏍�,涓嶄竴鏍风殑璁板綍涓嬫潵
+        DeviceSpareLog deviceSpareLog = new DeviceSpareLog();
+        deviceSpareLog.setDeviceSpareId(spare.getId());
+        deviceSpareLog.setCreateTime(new Date());
+        deviceSpareLog.setOperationType(2);
+
+        StringBuilder detailSb = new StringBuilder();
+        detailSb.append("淇敼鐗╂枡,");
+        if (!spareInDB.getName().equals(spare.getName())) {
+            detailSb.append("鐗╂枡鍚嶇О:").append(spareInDB.getName()).append("->").append(spare.getName()).append(",");
+        }
+        if (!spareInDB.getModel().equals(spare.getModel())) {
+            detailSb.append("鐗╂枡鍨嬪彿:").append(spareInDB.getModel()).append("->").append(spare.getModel()).append(",");
+        }
+        if (!spareInDB.getVersion().equals(spare.getVersion())) {
+            detailSb.append("鐗╂枡鐗堟湰:").append(spareInDB.getVersion()).append("->").append(spare.getVersion()).append(",");
+        }
+        if (!spareInDB.getBrand().equals(spare.getBrand())) {
+            detailSb.append("鐗╂枡鍝佺墝:").append(spareInDB.getBrand()).append("->").append(spare.getBrand()).append(",");
+        }
+        if (!spareInDB.getQuantity().equals(spare.getQuantity())) {
+            detailSb.append("鐗╂枡鏁伴噺:").append(spareInDB.getQuantity()).append("->").append(spare.getQuantity()).append(",");
+        }
+        if (!spareInDB.getType().equals(spare.getType())) {
+            detailSb.append("鐗╂枡绫诲瀷:").append(spareInDB.getType()).append("->").append(spare.getType()).append(",");
+        }
+        if (!spareInDB.getSupplier().equals(spare.getSupplier())) {
+            detailSb.append("鐗╂枡渚涘簲鍟�:").append(spareInDB.getSupplier()).append("->").append(spare.getSupplier()).append(",");
+        }
+        //detailSb鍘婚櫎鏈�鍚庝竴涓�楀彿
+        detailSb.deleteCharAt(detailSb.length()-1);
+        deviceSpareLog.setOperationDetail(detailSb.toString());
+        deviceSpareLogService.add(deviceSpareLog);
+
         mapper.updateById(spare);
         return new Response().setII(1,"淇敼瀹屾垚");
     }

--
Gitblit v1.9.1