From a0a525d59f1cb3167a54af9309c8dab162e89005 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 12 六月 2025 19:23:32 +0800
Subject: [PATCH] 优化巡检和维修器件的图片路径

---
 src/main/java/com/whyc/service/DeviceSpareService.java       |   39 +++++++++++++++++++
 src/main/java/com/whyc/service/AlarmInspectionService.java   |   15 ++++++-
 src/main/java/com/whyc/controller/DeviceSpareController.java |    8 +++-
 src/main/java/com/whyc/util/ThreadLocalUtil.java             |    1 
 4 files changed, 57 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/whyc/controller/DeviceSpareController.java b/src/main/java/com/whyc/controller/DeviceSpareController.java
index 70892c6..11c6ebe 100644
--- a/src/main/java/com/whyc/controller/DeviceSpareController.java
+++ b/src/main/java/com/whyc/controller/DeviceSpareController.java
@@ -4,11 +4,14 @@
 import com.whyc.dto.Response;
 import com.whyc.pojo.web_site.DeviceSpare;
 import com.whyc.service.DeviceSpareService;
+import com.whyc.util.JsonUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.List;
 
 @RestController
@@ -34,8 +37,9 @@
 
     @PostMapping("add")
     @ApiOperation("娣诲姞")
-    public Response add(@RequestBody DeviceSpare spare) {
-        return service.add(spare);
+    public Response add(@RequestPart(value = "file",required = false) List<MultipartFile> file,@RequestParam String  deviceSpareJsonStr) throws IOException {
+        DeviceSpare spare = JsonUtil.getGson().fromJson(deviceSpareJsonStr, DeviceSpare.class);
+        return service.add(spare,file);
     }
 
     @PostMapping("update")
diff --git a/src/main/java/com/whyc/service/AlarmInspectionService.java b/src/main/java/com/whyc/service/AlarmInspectionService.java
index decc0bb..1f90efa 100644
--- a/src/main/java/com/whyc/service/AlarmInspectionService.java
+++ b/src/main/java/com/whyc/service/AlarmInspectionService.java
@@ -48,7 +48,9 @@
         String stationName = result.getStationName();
         Date now = new Date();
         String timeFormat = ThreadLocalUtil.format(ThreadLocalUtil.TIME_YYYY_MM_DD_HH_MM_SS_UNION, now);
-        String fileDirPath = CommonUtil.getRootFile() + "alarmInspection" + File.separator + stationName + "_" + timeFormat;
+        String dirMonth = ThreadLocalUtil.format(ThreadLocalUtil.TIME_YYYY_MM, now);
+
+        String fileDirPath = CommonUtil.getRootFile() + "alarmInspection" + File.separator + dirMonth + File.separator + stationName + "_" + timeFormat;
         File fileDir = new File(fileDirPath);
         //濡傛灉鏂囦欢澶逛笉瀛樺湪鍒欏垱寤�
         if (!fileDir.exists()) {
@@ -56,7 +58,8 @@
         }
         StringBuilder pictureUrlSb = new StringBuilder();
         if (file != null && file.size() > 0) {
-            for (MultipartFile multipartFile : file) {
+            for (int j = 0; j < file.size(); j++) {
+                MultipartFile multipartFile = file.get(j);
                 String fileName = multipartFile.getOriginalFilename();
                 //灏唂ileName涓彲鑳藉瓨鍦ㄧ殑,鍘绘帀
                 fileName = fileName.replace(",","");
@@ -64,7 +67,13 @@
 
                 multipartFile.transferTo(new File(filePath));
                 String split = "pis_file"+File.separator+"alarmInspection";
-                pictureUrlSb.append(File.separator + filePath.substring(filePath.indexOf(split))).append(",");
+                String picUrl = File.separator + filePath.substring(filePath.indexOf(split));
+                //鏈�鍚庝竴涓厓绱�
+                if (j == file.size() - 1) {
+                    pictureUrlSb.append(picUrl);
+                }else {
+                    pictureUrlSb.append(picUrl).append(",");
+                }
             }
         }
         result.setPictureUrl(pictureUrlSb.toString());
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index 2b54345..9fbf916 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -7,10 +7,16 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.DeviceSpareMapper;
 import com.whyc.pojo.web_site.DeviceSpare;
+import com.whyc.util.CommonUtil;
+import com.whyc.util.ThreadLocalUtil;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -34,7 +40,38 @@
         return new Response<List<DeviceSpare>>().set(1, mapper.selectList(query));
     }
 
-    public Response add(DeviceSpare spare) {
+    public Response add(DeviceSpare spare, List<MultipartFile> file) throws IOException {
+        //瀵筬ile杩涜澶勭悊,淇濆瓨鍒版枃浠跺す涓�
+        //瀵瑰瓨鍌ㄨ矾寰勮繘琛屽畾涔�
+        Date now = new Date();
+        String timeFormat = ThreadLocalUtil.format(ThreadLocalUtil.TIME_YYYY_MM_DD_HH_MM_SS_UNION, now);
+        String dirMonth = ThreadLocalUtil.format(ThreadLocalUtil.TIME_YYYY_MM, now);
+        String fileDirPath = CommonUtil.getRootFile() + "deviceSpare" + File.separator + dirMonth;
+        File fileDir = new File(fileDirPath);
+        //濡傛灉鏂囦欢澶逛笉瀛樺湪鍒欏垱寤�
+        if (!fileDir.exists()) {
+            fileDir.mkdirs();
+        }
+        StringBuilder pictureUrlSb = new StringBuilder();
+        if (file != null && file.size() > 0) {
+            for (int i = 0; i < file.size(); i++) {
+                MultipartFile multipartFile = file.get(i);
+                String fileName = multipartFile.getOriginalFilename();
+                //灏唂ileName涓彲鑳藉瓨鍦ㄧ殑,鍘绘帀
+                fileName = fileName.replace(",","");
+                String filePath = fileDirPath + File.separator + timeFormat+"_"+fileName;
+
+                multipartFile.transferTo(new File(filePath));
+                String split = "pis_file"+File.separator+"deviceSpare";
+                String picUrl = File.separator + filePath.substring(filePath.indexOf(split));
+                if(i == file.size()-1) {
+                    pictureUrlSb.append(picUrl);
+                }else {
+                    pictureUrlSb.append(picUrl).append(",");
+                }
+            }
+        }
+        spare.setPictureUrl(pictureUrlSb.toString());
         mapper.insert(spare);
         return new Response().setII(1,"澧炲姞瀹屾垚");
     }
diff --git a/src/main/java/com/whyc/util/ThreadLocalUtil.java b/src/main/java/com/whyc/util/ThreadLocalUtil.java
index bcc0576..c41c568 100644
--- a/src/main/java/com/whyc/util/ThreadLocalUtil.java
+++ b/src/main/java/com/whyc/util/ThreadLocalUtil.java
@@ -8,6 +8,7 @@
 
     public static String TIME_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
     public static String TIME_YYYY_MM_DD = "yyyy-MM-dd";
+    public static String TIME_YYYY_MM = "yyyy-MM";
     public static String TIME_YYYY_MM_DD_HH_MM_SS_UNION = "yyyyMMddHHmmss";
     public static String TIME_YYYY_MM_DD_HH_MM_SS_UNION2 = "yyyy-MM-dd_HH_mm_ss";
 

--
Gitblit v1.9.1