lxw
2023-08-15 160e150009b51a39fa95d9462c3798ba28d51a09
src/main/java/com/whyc/service/BattalarmDataService.java
@@ -19,6 +19,7 @@
import com.whyc.mapper.PwrdevAlarmMapper;
import com.whyc.pojo.*;
import com.whyc.util.ActionUtil;
import com.whyc.util.MessageUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -75,58 +76,60 @@
    }
    //电池告警实时查询
    public Response serchByCondition(AlarmPar par) {
        String lang = ActionUtil.getLang();
        //分页信息
        PageHelper.startPage(par.getPage().getPageCurr(), par.getPage().getPageSize());
        UserInf uinf= ActionUtil.getUser();
        UserInf uinf = ActionUtil.getUser();
        par.setUId(uinf.getUId().intValue());
        List<AlarmRes> list=mapper.serchByCondition(par);
        for (AlarmRes a:list) {
            List<BattalarmData> l=a.getAdatas();
            for (BattalarmData adata:l) {
                adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()));
                adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()));
        List<AlarmRes> list = mapper.serchByCondition(par);
        for (AlarmRes a : list) {
            List<BattalarmData> l = a.getAdatas();
            for (BattalarmData adata : l) {
                adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang));
                adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang));
            }
        }
        PageInfo<AlarmRes> pinfo=new PageInfo<AlarmRes>(list);
        return new Response().set(1,pinfo);
        PageInfo<AlarmRes> pinfo = new PageInfo<AlarmRes>(list);
        return new Response().set(1, pinfo);
    }
    //电池告警实时查询-websocket使用
    @Transactional
    public Response serchByConditionOfWebSocket(AlarmPar par) {
    public Response serchByConditionOfWebSocket(AlarmPar par, String lang) {
        //分页信息
        PageHelper.startPage(par.getPage().getPageCurr(), par.getPage().getPageSize());
        List<AlarmRes> list=mapper.serchByCondition(par);
        for (AlarmRes a:list) {
            List<BattalarmData> l=a.getAdatas();
            for (BattalarmData adata:l) {
                adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()));
                adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()));
        List<AlarmRes> list = mapper.serchByCondition(par);
        for (AlarmRes a : list) {
            List<BattalarmData> l = a.getAdatas();
            for (BattalarmData adata : l) {
                adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang));
                adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang));
            }
        }
        PageInfo<AlarmRes> pinfo=new PageInfo<AlarmRes>(list);
        return new Response().set(1,pinfo);
        PageInfo<AlarmRes> pinfo = new PageInfo<AlarmRes>(list);
        return new Response().set(1, pinfo);
    }
    //电池告警实时查询-websocket使用
    @Transactional
    public Response getSendBattAlarmOfWebSocket(Integer uId) {
        List<BattalarmData> list=mapper.getSendBattAlarm(uId);
    public Response getSendBattAlarmOfWebSocket(Integer uId, String lang) {
        List<BattalarmData> list = mapper.getSendBattAlarm(uId);
        Date now = new Date();
        ListIterator<BattalarmData> it = list.listIterator();
        while (it.hasNext()){
        while (it.hasNext()) {
            BattalarmData adata = it.next();
            if(adata.getAlmLevel()==1 && adata.getRecordTime()!=null && now.getTime()-adata.getRecordTime().getTime()<24*3600000){
            if (adata.getAlmLevel() == 1 && adata.getRecordTime() != null && now.getTime() - adata.getRecordTime().getTime() < 24 * 3600000) {
                it.remove();
            }
            if(adata.getAlmLevel()==2 && adata.getRecordTime()!=null && now.getTime()-adata.getRecordTime().getTime()<7*24*3600000){
            if (adata.getAlmLevel() == 2 && adata.getRecordTime() != null && now.getTime() - adata.getRecordTime().getTime() < 7 * 24 * 3600000) {
                it.remove();
            }
            if(adata.getAlmLevel()==3 && adata.getRecordTime()!=null && now.getTime()-adata.getRecordTime().getTime()<30*7*24*3600000){
            if (adata.getAlmLevel() == 3 && adata.getRecordTime() != null && now.getTime() - adata.getRecordTime().getTime() < 30 * 7 * 24 * 3600000) {
                it.remove();
            }
            adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()));
            adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()));
            adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang));
            adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang));
        }
        return new Response().set(1,list);
    }
@@ -254,6 +257,12 @@
        return  new Response().set(number);
    }
    //实时1级告警记录总数查询
    public Response getRealTimeWithLevel1(int uId) {
        int number=mapper.getRealTimeWithLevel1(uId);
        return  new Response().set(number);
    }
    //电池告警实时查询(确认告警)
    public Response update(int num) {
        UpdateWrapper wrapper = new UpdateWrapper<>();
@@ -329,19 +338,19 @@
    //项目下方的滚动,查询30天的电池告警和设备告警和电源告警
    @Transactional
    public Response getRealAlarm(int uId){
    public Response getRealAlarm(int uId, String lang) {
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.MONTH,-1);
        instance.add(Calendar.MONTH, -1);
        Date yesterday = instance.getTime();
        int[] alarmParams = {AlarmDaoFactory.Alarm_CapAlarm,AlarmDaoFactory.Alarm_CapChange,AlarmDaoFactory.Alarm_res_Conn,AlarmDaoFactory.ALM_TYPE_DisChargeMonVol_ID};
        List<BattalarmData> lista=mapper.getRealAlarm(yesterday,uId,alarmParams);
        for (BattalarmData battAlarm:lista) {
            battAlarm.setAlarmName(AlarmDaoFactory.getAlarmName(battAlarm.getAlmSignalId()));
        int[] alarmParams = {AlarmDaoFactory.Alarm_CapAlarm, AlarmDaoFactory.Alarm_CapChange, AlarmDaoFactory.Alarm_res_Conn, AlarmDaoFactory.ALM_TYPE_DisChargeMonVol_ID};
        List<BattalarmData> lista = mapper.getRealAlarm(yesterday, uId, alarmParams);
        for (BattalarmData battAlarm : lista) {
            battAlarm.setAlarmName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(battAlarm.getAlmSignalId()), lang));
        }
        List<DevalarmData> listd=devalarmDataMapper.getRealAlarm(yesterday,uId);
        if(listd!=null&&listd.size()>0){
        List<DevalarmData> listd = devalarmDataMapper.getRealAlarm(yesterday, uId);
        if (listd != null && listd.size() > 0) {
            for (DevalarmData ddata : listd) {
                BattalarmData data=new BattalarmData();
                BattalarmData data = new BattalarmData();
                data.setBattGroupId(ddata.getDevId());
                data.setAlarmType("1");//1表示设备告警
                data.setAlmId(ddata.getAlmType());
@@ -352,7 +361,8 @@
                data.setNum(ddata.getNum());
                data.setAlmStartTime(ddata.getAlmStartTime());
                //data.setAlm_signal_id(ddata.getAlm_type());
                data.setAlarmName(AlarmDaoFactory.getdevName(ddata.getAlmType()));
                data.setAlarmName(MessageUtils.getMessageSocket(AlarmDaoFactory.getdevName(ddata.getAlmType()), lang));
                data.setAlmSeverity(ddata.getAlmSeverity());
                lista.add(data);
            }
        }
@@ -370,6 +380,7 @@
                data.setNum(pAlarm.getNum());
                data.setAlmStartTime(pAlarm.getAlmStartTime());
                data.setAlarmName(AlarmDaoFactory.getAllAlarmName(pAlarm.getAlmType()));
                data.setAlmSeverity(pAlarm.getAlmSeverity());
                lista.add(data);
            }
        }
@@ -548,17 +559,23 @@
            Map<String, Object> map = new HashMap<>();
            int btatolNum = 0;
            Map<String, Integer> bAlmClearMap = new HashMap<>();
            bAlmClearMap.put("clear0", 0);
            bAlmClearMap.put("clear1", 0);
            List<BattalarmData> bAlmList = mapper.getBalmToday(userId);
            Map<Integer, List<BattalarmData>> bclearedMap = bAlmList.stream().collect(Collectors.groupingBy(BattalarmData::getAlmClearedType));
            for (Integer cleared : bclearedMap.keySet()) {
                bAlmClearMap.put(String.valueOf(cleared), bclearedMap.get(cleared).size());
                bAlmClearMap.put("clear" + String.valueOf(cleared), bclearedMap.get(cleared).size());
                btatolNum += bclearedMap.get(cleared).size();
            }
            Map<String, Integer> bAlmLevelMap = new HashMap<>();
            bAlmLevelMap.put("level1", 0);
            bAlmLevelMap.put("level2", 0);
            bAlmLevelMap.put("level3", 0);
            bAlmLevelMap.put("level4", 0);
            Map<Integer, List<BattalarmData>> blevelMap = bAlmList.stream().collect(Collectors.groupingBy(BattalarmData::getAlmLevel));
            for (Integer level : blevelMap.keySet()) {
                bAlmLevelMap.put(String.valueOf(level), blevelMap.get(level).size());
                btatolNum += blevelMap.get(level).size();
                bAlmLevelMap.put("level" + String.valueOf(level), blevelMap.get(level).size());
                //btatolNum += blevelMap.get(level).size();
            }
            map.put("bAlmClearMap", bAlmClearMap);
            map.put("bAlmLevelMap", bAlmLevelMap);
@@ -568,4 +585,20 @@
            return new Response().set(1, false, "出现异常" + e.getMessage());
        }
    }
    public List<Integer> getStationList(int userId) {
        return mapper.getStationList(userId);
    }
    public int getCapAlarmNum(int userId) {
        return mapper.getCapAlarmNum(userId);
    }
    public int getCountByStationIds(List<String> stationIdList, Integer level) {
        return mapper.getCountByStationIds(stationIdList,level);
    }
    public List<BattalarmData> getListByStationIds(List<String> stationIdList) {
        return mapper.getListByStationIds(stationIdList);
    }
}