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