src/main/java/com/whyc/config/StaticResourceConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/AlarmInspectionController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/AlarmInspectionResultMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/web_site/AlarmInspection.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/web_site/AlarmInspectionResult.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/AlarmInspectionResultService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/AlarmInspectionService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/AlarmInspectionMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); 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填json字符串,字段包含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); } } src/main/java/com/whyc/mapper/AlarmInspectionResultMapper.java
New file @@ -0,0 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.web_site.AlarmInspectionResult; public interface AlarmInspectionResultMapper extends CustomMapper<AlarmInspectionResult>{ } 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; src/main/java/com/whyc/pojo/web_site/AlarmInspectionResult.java
New file @@ -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; } src/main/java/com/whyc/service/AlarmInspectionResultService.java
New file @@ -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); } } 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 { //对file进行处理,保存到文件夹中 //对存储路径进行定义 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(); //将fileName中可能存在的,去掉 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()); //根据提交的站点id和inspectionType查询出对应的工单 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,"提交完成"); } } 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,