src/main/java/com/whyc/controller/AlmParamController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/Param/AlmAnalyseDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BattalarmDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattRealdataIdService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattalarmDataService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BattalarmDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/AlmParamController.java
@@ -2,6 +2,7 @@ import com.whyc.constant.*; import com.whyc.dto.AlarmParam; import com.whyc.dto.Param.AlmAnalyseDto; import com.whyc.dto.Param.ParamAlmDto; import com.whyc.dto.Real.AlmDto; import com.whyc.dto.Response; @@ -9,16 +10,16 @@ import com.whyc.pojo.db_param.BattAlmparam; import com.whyc.pojo.db_param.DevAlmparam; import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmParam; import com.whyc.service.BattAlmparamService; import com.whyc.service.DevAlmparamService; import com.whyc.service.PwrdevAlarmParamService; import com.whyc.service.*; import com.whyc.util.ActionUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController @@ -33,6 +34,12 @@ @Autowired private PwrdevAlarmParamService pwrAlmparamService; @Autowired private BattalarmDataService battalarmDataService; @Autowired private BattRealdataIdService battRealdataIdService; /*@PostMapping("getBattAlmParam") @@ -111,4 +118,18 @@ return new Response<List<AlarmParam>>().set(1,list); } @PostMapping("getBattAlmAnalyse") @ApiOperation("预警分析管理-电池告警") public Response getBattAlmAnalyse(@RequestBody AlmAnalyseDto dto){ Integer uid=ActionUtil.getUser().getId(); dto.setUid(uid); return battalarmDataService.getBattAlmAnalyse(dto); } @GetMapping("getBattHisRealInAlm") @ApiOperation("电池告警点击具体告警信息查看从告警开始时间到现在的历史实时数据") public Response getBattHisRealInAlm(@RequestParam Integer battgroupId,@RequestParam String startTime,@RequestParam(required = false) Integer monNum) throws ParseException, InterruptedException { return battRealdataIdService.getBattHisRealInAlm(battgroupId,startTime,monNum); } } src/main/java/com/whyc/dto/Param/AlmAnalyseDto.java
New file @@ -0,0 +1,20 @@ package com.whyc.dto.Param; import lombok.Data; import java.util.List; @Data public class AlmAnalyseDto { private String provice; private String city; private String country; private Integer stationId; private Integer powerId; private Integer battgroupId; private List<Integer> almIdList; private Integer uid; private Integer pageNum; private Integer pageSize; private Integer almLevel; } src/main/java/com/whyc/mapper/BattalarmDataMapper.java
@@ -1,6 +1,7 @@ package com.whyc.mapper; import com.whyc.dto.AlarmDto; import com.whyc.dto.Param.AlmAnalyseDto; import com.whyc.dto.Real.AlmDto; import com.whyc.pojo.db_alarm.BattalarmData; import com.whyc.pojo.web_site.AlarmInspection; @@ -14,5 +15,6 @@ List<AlarmInspection> getListGreatThan(Long battAlarmId); List<AlarmDto> getListByUserId(Integer userId); //预警分析管理 List<BattalarmData> getBattAlmAnalyse(AlmAnalyseDto dto); } src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -217,6 +217,44 @@ latch.await(10, TimeUnit.MINUTES); List dataListSorted = dataList.stream().sorted(Comparator.comparing(RealDateDTO::getRecordTime)).collect(Collectors.toList()); return new Response().set(1, dataListSorted); } //电池告警点击具体告警信息查看从告警开始时间到现在的历史实时数据 public Response getBattHisRealInAlm(Integer battgroupId, String startTime, Integer monNum) throws ParseException, InterruptedException { List<RealDateDTO> dataList = new LinkedList<>(); List<List<Date>> monthTimeList = DateUtil.getMonthTime(ThreadLocalUtil.parse(startTime,1),new Date()); ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor(); CountDownLatch latch = new CountDownLatch(monthTimeList.size()); for (int i = 0; i < monthTimeList.size(); i++) { int finalI = i; pool.execute(() -> { int finalII = finalI; BattRealdataId realdata = new BattRealdataId(); realdata.setRecordTime(monthTimeList.get(finalII).get(0)); realdata.setRecordTime1(monthTimeList.get(finalII).get(1)); String table = battgroupId + "_" + ThreadLocalUtil.format(realdata.getRecordTime(),2); realdata.setTableName(table);//表名时间格式部分 //判断表是否存在 int tableNum = subTablePageInfoService.judgeTable_realdata(table); List<RealDateDTO> list = new ArrayList(); if (tableNum > 0) { //获取指定时间段内最大最小recordNum确保数据的完整 List recordNums= subTablePageInfoService.getMaxAndMinRecordNum(realdata); Integer maxRecordNum= 0; Integer minRecordNum= 0; if(recordNums.size()>0){ maxRecordNum=(Integer)recordNums.get(0); minRecordNum=(Integer)recordNums.get(1); } list = subTablePageInfoService.getBattRealDataHis(realdata,1,maxRecordNum,minRecordNum); } dataList.addAll(list); latch.countDown(); }); sleep(200); } latch.await(10, TimeUnit.MINUTES); List dataListSorted = dataList.stream().sorted(Comparator.comparing(RealDateDTO::getRecordTime)).collect(Collectors.toList()); return new Response().set(1, dataListSorted); } } src/main/java/com/whyc/service/BattalarmDataService.java
@@ -9,6 +9,7 @@ import com.whyc.constant.BattSingalIdEnum; import com.whyc.constant.DevAlarmEnum; import com.whyc.dto.AlarmDto; import com.whyc.dto.Param.AlmAnalyseDto; import com.whyc.dto.Real.AlmDto; import com.whyc.dto.Response; import com.whyc.mapper.BattalarmDataMapper; @@ -84,4 +85,14 @@ query.in("num",battAlarmNumList); return mapper.selectList(query).stream().map(BattalarmData::getNum).collect(Collectors.toList()); } //预警分析管理 public Response getBattAlmAnalyse(AlmAnalyseDto dto) { PageHelper .startPage(dto.getPageNum(),dto.getPageSize()); List<BattalarmData> list=mapper.getBattAlmAnalyse(dto); list.forEach(data->{ data.setAlmName(BattSingalIdEnum.getValue(data.getAlmSignalId())); }); PageInfo pageInfo=new PageInfo(list); return new Response().setII(1,list!=null,pageInfo,"电池告警分析"); } } src/main/resources/mapper/BattalarmDataMapper.xml
@@ -63,4 +63,49 @@ and bu.uid = #{userId} ) </select> <select id="getBattAlmAnalyse" resultType="com.whyc.pojo.db_alarm.BattalarmData"> select tb_battalarm_data.*,tb_batt_inf.battgroup_name,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name from db_alarm.tb_battalarm_data,db_station.tb_batt_inf,db_station.tb_station_inf <where> tb_battalarm_data.battgroup_id=tb_batt_inf.battgroup_id and tb_batt_inf.station_id=tb_station_inf.station_id <if test="provice!=null"> and tb_station_inf.provice=#{provice} </if> <if test="city!=null"> and tb_station_inf.city=#{city} </if> <if test="country!=null"> and tb_station_inf.country=#{country} </if> <if test="stationId!=null"> and tb_station_inf.station_id=#{stationId} </if> <if test="stationId!=null"> and tb_station_inf.station_id=#{stationId} </if> <if test="battgroupId!=null"> and tb_battalarm_data.battgroup_id=#{battgroupId} </if> <!--<if test="almIds!=null"> <if test="almIds.size==0"> and tb_battalarm_data.alm_id =0 </if> <if test="almIds.size>0"> and tb_battalarm_data.alm_id in <foreach collection="almIds" item="almId" open="(" separator="," close=")"> #{almId} </foreach> </if> </if>--> <if test="uid>100"> and tb_batt_inf.station_id in( select distinct station_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr where tb_baojigroup_power.baoji_group_id=tb_baojigroup_usr.baoji_group_id and tb_baojigroup_usr.uid=#{uid} ) </if> </where> </select> </mapper>