whyclxw
9 天以前 6fcddb84e44167d16554ebe68cc84512f9a36c44
预警分析管理-电池告警部分
5个文件已修改
1个文件已添加
145 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/AlmParamController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Param/AlmAnalyseDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattalarmDataMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattRealdataIdService.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattalarmDataService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattalarmDataMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | 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>