From 105c22b40dc5376175eb15f4fabb04e1471fad48 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 12 六月 2025 15:03:23 +0800
Subject: [PATCH] 故障工单和巡检备忘录

---
 src/main/java/com/whyc/service/AlarmInspectionResultService.java |   19 ++++
 src/main/java/com/whyc/pojo/web_site/AlarmInspectionResult.java  |   55 +++++++++++++
 src/main/java/com/whyc/pojo/web_site/AlarmInspection.java        |    3 
 src/main/java/com/whyc/service/AlarmInspectionService.java       |  102 +++++++++++++++++++++++++
 src/main/java/com/whyc/controller/AlarmInspectionController.java |   24 ++++-
 src/main/java/com/whyc/config/StaticResourceConfig.java          |    6 
 src/main/java/com/whyc/mapper/AlarmInspectionResultMapper.java   |    6 +
 src/main/resources/mapper/AlarmInspectionMapper.xml              |    2 
 8 files changed, 208 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/whyc/config/StaticResourceConfig.java b/src/main/java/com/whyc/config/StaticResourceConfig.java
index e868567..c526d71 100644
--- a/src/main/java/com/whyc/config/StaticResourceConfig.java
+++ b/src/main/java/com/whyc/config/StaticResourceConfig.java
@@ -40,12 +40,12 @@
 
         if(YamlProperties.runModel == 1) {
             //寮�鍙戣矾寰�
-            baseDirPath = jarFile.getParentFile().toString()+File.separator+"battery_gwm_file"+File.separator;
+            baseDirPath = jarFile.getParentFile().toString()+File.separator+"pis_file"+File.separator;
         }else {
             //鎵撳寘璺緞
-            baseDirPath = jarFile.toString()+File.separator+"battery_gwm_file"+File.separator;
+            baseDirPath = jarFile.toString()+File.separator+"pis_file"+File.separator;
         }
-        registry.addResourceHandler("/battery_gwm_file/**").addResourceLocations("file:/"+baseDirPath);
+        registry.addResourceHandler("/pis_file/**").addResourceLocations("file:/"+baseDirPath);
 
         super.addResourceHandlers(registry);
 
diff --git a/src/main/java/com/whyc/controller/AlarmInspectionController.java b/src/main/java/com/whyc/controller/AlarmInspectionController.java
index 3467b3e..450687d 100644
--- a/src/main/java/com/whyc/controller/AlarmInspectionController.java
+++ b/src/main/java/com/whyc/controller/AlarmInspectionController.java
@@ -1,14 +1,19 @@
 package com.whyc.controller;
 
 import com.whyc.dto.Response;
+import com.whyc.pojo.web_site.AlarmInspectionResult;
 import com.whyc.service.AlarmInspectionService;
+import com.whyc.util.CommonUtil;
+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.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
 
 /**
  * 瑕佸疄鐜板憡璀﹀贰妫�鍗�,鍒涘缓宸℃宸ュ崟琛�.
@@ -26,11 +31,18 @@
     @Autowired
     private AlarmInspectionService service;
 
-    @ApiOperation(value = "鏌ヨ绔欑偣瀵瑰簲鐨勫贰妫�鍗�",notes = "inspectionType=1琛ㄧず鍛婅绾у埆涓�1鐨勬晠闅滃伐鍗�,inspectionType=2琛ㄧず鍛婅绾у埆涓�2鐨勫贰妫�澶囧繕褰�")
+    @ApiOperation(value = "鏌ヨ绔欑偣瀵瑰簲鐨勫贰妫�鍗�",notes = "inspectionType=1琛ㄧず鍛婅绾у埆涓�1鐨勬晠闅滃伐鍗�,inspectionType=2琛ㄧず鍛婅绾у埆涓嶄负1鐨勫贰妫�澶囧繕褰�")
     @GetMapping("getList")
-    public Response getList(@RequestParam Integer stationId,@RequestParam Integer inspectionType){
+    public Response getList(@RequestParam int stationId,@RequestParam int inspectionType){
         return service.getList(stationId,inspectionType);
     }
 
+    @PostMapping("submitInspection")
+    @ApiOperation(value = "鎻愪氦宸℃缁撴灉",notes = "alarmInspectionResultJsonStr濉玧son瀛楃涓�,瀛楁鍖呭惈stationId,stationName,inspectionType,inspectionResult,finishSuggestion")
+    public Response submitInspection(@RequestPart(value = "file",required = false) List<MultipartFile>  file, @RequestParam String alarmInspectionResultJsonStr) throws IOException {
+        AlarmInspectionResult result = JsonUtil.getGson().fromJson(alarmInspectionResultJsonStr,AlarmInspectionResult.class);
+        return service.submitInspection(result,file);
+    }
+
 
 }
diff --git a/src/main/java/com/whyc/mapper/AlarmInspectionResultMapper.java b/src/main/java/com/whyc/mapper/AlarmInspectionResultMapper.java
new file mode 100644
index 0000000..db2cb5b
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/AlarmInspectionResultMapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.web_site.AlarmInspectionResult;
+
+public interface AlarmInspectionResultMapper extends CustomMapper<AlarmInspectionResult>{
+}
diff --git a/src/main/java/com/whyc/pojo/web_site/AlarmInspection.java b/src/main/java/com/whyc/pojo/web_site/AlarmInspection.java
index f9edee0..23fb1a8 100644
--- a/src/main/java/com/whyc/pojo/web_site/AlarmInspection.java
+++ b/src/main/java/com/whyc/pojo/web_site/AlarmInspection.java
@@ -33,6 +33,9 @@
     private Integer battGroupId;
 
     private String battGroupName;
+
+    @ApiModelProperty("鍗曚綋缂栧彿")
+    private Integer monNum;
     @ApiModelProperty("鍛婅灞炰簬鍝璁惧.1-鐢垫簮,2-璁惧,3-鐢垫睜")
     private Integer type;
 
diff --git a/src/main/java/com/whyc/pojo/web_site/AlarmInspectionResult.java b/src/main/java/com/whyc/pojo/web_site/AlarmInspectionResult.java
new file mode 100644
index 0000000..187cad4
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/web_site/AlarmInspectionResult.java
@@ -0,0 +1,55 @@
+package com.whyc.pojo.web_site;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+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_alarm_inspection")
+@ApiModel("鍛婅宸℃瀹炴椂琛�")
+public class AlarmInspectionResult {
+
+    private Long id;
+
+    private Integer stationId;
+
+    private String stationName;
+
+    @ApiModelProperty("1琛ㄧず鍛婅绾у埆涓�1鐨勬晠闅滃伐鍗�,2琛ㄧず鍛婅绾у埆涓嶄负1鐨勫贰妫�澶囧繕褰�")
+    private Integer inspectionType;
+
+    /**
+     * A鐢垫簮鍦�2025-06-12 9:00:00鍙戠敓鏌愭煇鍛婅
+     * B璁惧鍦�2025-06-12 9:00:00鍙戠敓鏌愭煇鍛婅
+     * C鐢垫睜鍦�2025-06-12 9:00:00鍙戠敓鏌愭煇鍛婅
+     * D鐢垫睜2鍙峰崟浣撳湪2025-06-12 9:00:00鍙戠敓鏌愭煇鍛婅
+     */
+    @ApiModelProperty("鍛婅鎻忚堪,缁煎悎浜嗘墍鏈夊憡璀︾粏鑺傜殑鍛婅鎻忚堪")
+    private String alarmDescription;
+
+    @ApiModelProperty("宸℃缁撴灉")
+    private String inspectionResult;
+
+    @ApiModelProperty("鍥剧墖鍦板潃,澶氫釜鍦板潃鐢�,闅斿紑")
+    private String pictureUrl;
+
+    @ApiModelProperty("瀹屾垚寤鸿")
+    private String finishSuggestion;
+
+    private Integer submitUserId;
+
+    private String submitUserName;
+
+    private Integer baoJiGroupId;
+
+    private String baoJiGroupName;
+
+    private Date createTime;
+
+}
diff --git a/src/main/java/com/whyc/service/AlarmInspectionResultService.java b/src/main/java/com/whyc/service/AlarmInspectionResultService.java
new file mode 100644
index 0000000..d17dd32
--- /dev/null
+++ b/src/main/java/com/whyc/service/AlarmInspectionResultService.java
@@ -0,0 +1,19 @@
+package com.whyc.service;
+
+import com.whyc.mapper.AlarmInspectionResultMapper;
+import com.whyc.pojo.web_site.AlarmInspectionResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class AlarmInspectionResultService {
+
+    @Resource
+    private AlarmInspectionResultMapper mapper;
+
+    public void add(AlarmInspectionResult result) {
+        mapper.insert(result);
+    }
+}
diff --git a/src/main/java/com/whyc/service/AlarmInspectionService.java b/src/main/java/com/whyc/service/AlarmInspectionService.java
index ae05a78..c5a8307 100644
--- a/src/main/java/com/whyc/service/AlarmInspectionService.java
+++ b/src/main/java/com/whyc/service/AlarmInspectionService.java
@@ -1,12 +1,28 @@
 package com.whyc.service;
 
+import com.whyc.constant.BattSingalIdEnum;
+import com.whyc.constant.DevAlarmEnum;
+import com.whyc.constant.PowerAlarmEnum;
 import com.whyc.dto.Response;
 import com.whyc.mapper.AlarmInspectionMapper;
+import com.whyc.pojo.db_user.Baojigroup;
+import com.whyc.pojo.db_user.User;
 import com.whyc.pojo.web_site.AlarmInspection;
+import com.whyc.pojo.web_site.AlarmInspectionResult;
+import com.whyc.util.CommonUtil;
+import com.whyc.util.DateUtil;
+import com.whyc.util.ThreadLocalUtil;
+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;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class AlarmInspectionService {
@@ -14,9 +30,95 @@
     @Resource
     private AlarmInspectionMapper mapper;
 
+    @Autowired
+    private AlarmInspectionResultService resultService;
+
     public Response getList(Integer stationId, Integer inspectionType) {
         //闇�瑕侀檮鍔犲~鍏� 璐熻矗鐝粍淇℃伅 鍙� 鍛婅璇婃柇淇℃伅
         List<AlarmInspection> list = mapper.getList(stationId,inspectionType);
         return new Response().set(1,list);
     }
+
+    @Transactional
+    public Response submitInspection(AlarmInspectionResult result, List<MultipartFile> file) throws IOException {
+        //瀵筬ile杩涜澶勭悊,淇濆瓨鍒版枃浠跺す涓�
+        //瀵瑰瓨鍌ㄨ矾寰勮繘琛屽畾涔�
+        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;
+        File fileDir = new File(fileDirPath);
+        //濡傛灉鏂囦欢澶逛笉瀛樺湪鍒欏垱寤�
+        if (!fileDir.exists()) {
+            fileDir.mkdirs();
+        }
+        StringBuilder pictureUrlSb = new StringBuilder();
+        if (file != null && file.size() > 0) {
+            for (MultipartFile multipartFile : file) {
+                String fileName = multipartFile.getOriginalFilename();
+                //灏唂ileName涓彲鑳藉瓨鍦ㄧ殑,鍘绘帀
+                fileName = fileName.replace(",","");
+                String filePath = fileDirPath + File.separator + fileName;
+
+                multipartFile.transferTo(new File(filePath));
+                String split = "pis_file"+File.separator+"alarmInspection";
+                pictureUrlSb.append(File.separator + filePath.substring(filePath.indexOf(split))).append(",");
+            }
+        }
+        result.setPictureUrl(pictureUrlSb.toString());
+
+        //鏍规嵁鎻愪氦鐨勭珯鐐筰d鍜宨nspectionType鏌ヨ鍑哄搴旂殑宸ュ崟
+        List<AlarmInspection> list = mapper.getList(result.getStationId(),result.getInspectionType());
+        //鏍¢獙鍛婅鏄惁鍏ㄩ儴娑堝け,鏄垯閫氳繃
+        for (int i = 0; i < list.size(); i++) {
+            if (list.get(i).getIsExist() == 1) {
+                return new Response().set(1,false,"褰撳墠宸℃鍗曞唴鍛婅鏈叏閮ㄦ秷澶�");
+            }
+        }
+        //妫�楠岄�氳繃,杩涜宸℃缁撴灉鎻愪氦,褰㈡垚宸℃鍘嗗彶
+        //鍒ゆ柇stationName,powerName,devName,battGroupName鏄惁瀛樺湪,閫愪釜瀛樺湪鍒欐嫾鎺ユ垚涓�涓瓧绗︿覆
+        StringBuilder alarmDescriptionSb = new StringBuilder();
+        for (int i = 0; i < list.size(); i++) {
+            AlarmInspection temp = list.get(i);
+            if (temp.getStationName() != null) {
+                alarmDescriptionSb.append(temp.getStationName()).append("-");
+            }
+            if (temp.getPowerName() != null) {
+                alarmDescriptionSb.append(temp.getPowerName()).append("-");
+            }
+            if (temp.getDevName() != null) {
+                alarmDescriptionSb.append(temp.getDevName()).append("-");
+            }
+            if (temp.getBattGroupName() != null) {
+                alarmDescriptionSb.append(temp.getBattGroupName());
+            }
+            if(temp.getMonNum() != null){
+                alarmDescriptionSb.append("鍗曚綋缂栧彿:").append(temp.getMonNum());
+            }
+            if(temp.getType() == 1) { //鐢垫簮鍛婅
+                alarmDescriptionSb.append("鍦�" + DateUtil.YYYY_MM_DD_HH_MM_SS.format(temp.getAlmStartTime()) + "鍙戠敓" + PowerAlarmEnum.getValue(temp.getAlmId()) + "鍛婅,鍛婅绾у埆涓�" + temp.getAlmLevel() + ".\n");
+            }
+            else if(temp.getType() == 2) { //璁惧鍛婅
+                alarmDescriptionSb.append("鍦�" + DateUtil.YYYY_MM_DD_HH_MM_SS.format(temp.getAlmStartTime()) + "鍙戠敓" + DevAlarmEnum.getValue(temp.getAlmId()) + "鍛婅,鍛婅绾у埆涓�" + temp.getAlmLevel() + ".\n");
+            }else{ //鐢垫睜鍛婅
+                alarmDescriptionSb.append("鍦�" + DateUtil.YYYY_MM_DD_HH_MM_SS.format(temp.getAlmStartTime()) + "鍙戠敓" + BattSingalIdEnum.getValue(temp.getAlmId()) +"鍛婅,鍛婅绾у埆涓�" + temp.getAlmLevel() + ".\n");
+            }
+        }
+        result.setAlarmDescription(alarmDescriptionSb.toString());
+        User user = CommonUtil.getUser();
+        result.setSubmitUserId(user.getId());
+        result.setSubmitUserName(user.getName());
+        result.setCreateTime(new Date());
+        //鎵�灞炵彮缁�
+        Baojigroup baoJiGroup = list.get(0).getBaoJiGroup();
+        result.setBaoJiGroupId(baoJiGroup.getBaojiGroupId());
+        result.setBaoJiGroupName(baoJiGroup.getBaojiGroupName());
+        resultService.add(result);
+
+        //鍒犻櫎褰撳墠宸℃鍗曡褰�
+        List<Long> ids = list.stream().map(AlarmInspection::getId).collect(Collectors.toList());
+        mapper.deleteBatchIds(ids);
+
+        return new Response().set(1,true,"鎻愪氦瀹屾垚");
+    }
 }
diff --git a/src/main/resources/mapper/AlarmInspectionMapper.xml b/src/main/resources/mapper/AlarmInspectionMapper.xml
index dbba3f1..9536904 100644
--- a/src/main/resources/mapper/AlarmInspectionMapper.xml
+++ b/src/main/resources/mapper/AlarmInspectionMapper.xml
@@ -12,6 +12,7 @@
         <result column="dev_name" property="devName" />
         <result column="batt_group_id" property="battGroupId" />
         <result column="batt_group_name" property="battGroupName" />
+        <result column="mon_num" property="monNum"/>
         <result column="type" property="type" />
         <result column="alm_num" property="almNum" />
         <result column="alm_id" property="almId" />
@@ -45,6 +46,7 @@
         ai.dev_name,
         ai.batt_group_id,
         ai.batt_group_name,
+        ai.mon_num,
         ai.type,
         ai.alm_num,
         ai.alm_id,

--
Gitblit v1.9.1