whycxzp
2023-02-25 ade751704a36681e5eb0e55c3db8458896a0135c
src/main/java/com/whyc/service/BattalarmDataService.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.constant.AlarmConstant;
import com.whyc.dto.AlarmDaoFactory;
import com.whyc.dto.BattMaintDealarm;
import com.whyc.dto.Response;
@@ -387,4 +388,155 @@
        }
        return new Response().setII(1, list.size() > 0, list, "分级告警数");
    }
    /**
     * 单体容量 monCapStd
     * alm_id
     * Alarm_CapAlarm =119010
     * @param userId
     * @return
     */
    public Response<Map> getMonCapacityLowAnalysis(int userId) {
        Response<Map> response = new Response();
        Map<String, Object> resultMap = new HashMap<>();
        try {
            //单体容量低告警数和对应的告警机房数
            //BatteryAlarmDto batteryAlarmDto = mapper.getLowCapacityAlarms(userId,AlarmConstant.Alarm_IGNAL_ID_CapAlarmLow);
            //int alarmNum = batteryAlarmDto.getNum();
            Integer alarmLow = mapper.getAlarmHighLow(userId, AlarmConstant.Alarm_IGNAL_ID_CapAlarmLow);
            Integer alarmHigh = mapper.getAlarmHighLow(userId, AlarmConstant.Alarm_IGNAL_ID_CapAlarmHigh);
            //int stationNum = batteryAlarmDto.getStationNum();
            //总告警数
            //Integer totalAlarmNum = mapper.getTotalAlarms(userId);
            //总机房数
            //int totalStationNum = infoMapper.getStationCount(userId);
            //容量低告警占比
            //String capLowRateStr = (String) MathUtil.divide(alarmNum,totalAlarmNum,3);
            //容量低告警机房占比
            //String capLowStationRateStr = (String) MathUtil.divide(stationNum,totalStationNum,3);
            resultMap.put("单体容量低告警",alarmLow);
            resultMap.put("单体容量高告警",alarmHigh);
            //resultMap.put("告警总数",totalAlarmNum);
            //resultMap.put("告警占比",capLowRateStr);
            //resultMap.put("告警机房数",alarmNum);
            //resultMap.put("告警机房占比",capLowStationRateStr);
            response.set(1, resultMap);
        } catch (Exception e) {
            e.printStackTrace();
            return response.set(0);
        }
        return response;
    }
    /**
     * 单体电压、内阻和温度
     * alm_id 电池告警参数
     * 三个告警总数不同,带条件?电压、内阻、温度
     * @param userId
     * @return
     */
    public Response<Map> getMonVRTAnalysis(int userId) {
        Response<Map> response = new Response();
        HashMap<String, Object> resultMap = new HashMap<>();
        Map<String, Object> monVolMap = new HashMap<>();//单体电压  Alarm_vol_Monomer =119005;
        Map<String, Object> monResMap = new HashMap<>();//单体内阻  Alarm_res_Monomer =119007
        Map<String, Object> monTemMap = new HashMap<>();//单体温度  Alarm_tmp_Monomer =119006
        /*======单体电压======*/
        //高告警数量
        Integer volHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolHigh);
        //低告警数量
        Integer volLowAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolLow);
        //单体电压总告警数
        //Integer volTotalAlarmNum = volHighAlarmsNum+volLowAlarmsNum;
        //告警总数
        //Integer totalStationAlarmNum =mapper.getTotalAlarms(userId);
        //电压告警机房数
        //int volTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.Alarm_vol_Monomer);
        //总机房数
        //int totalStationNum = infoMapper.getStationCount(userId);
        //电压告警占比
        //String volRateStr = (String) MathUtil.divide(volTotalAlarmNum,totalStationAlarmNum,3);
        //电压告警机房占比
        //String volStationRateStr = (String) MathUtil.divide(volTotalAlarmStations,totalStationNum,3);
        monVolMap.put("单体电压高告警", volHighAlarmsNum);     //高告警数量    alm_signal_id 9
        monVolMap.put("单体电压低告警", volLowAlarmsNum);     //低告警数量     alm_signal_id   10
        //monVolMap.put("告警总数", volTotalAlarmNum);        //告警总数
        //monVolMap.put("告警总数比例", volRateStr);      //告警总数比例
        //monVolMap.put("告警机房总数", volTotalAlarmStations);      //告警机房总数
        //monVolMap.put("告警机房数比例", volStationRateStr);    //告警机房数比例
        resultMap.put("单体电压", monVolMap);
        /*======单体内阻======*/
        //高告警数量
        Integer resHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonResHigh);
        //低告警数量
        Integer resLowAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonResLow);
        //单体内阻总告警数
        //Integer resTotalAlarmNum = resHighAlarmsNum+resLowAlarmsNum;
        //内阻告警机房数
        //int resTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.Alarm_res_Monomer);
        //内阻告警占比
        //String resRateStr = (String) MathUtil.divide(resTotalAlarmNum,totalStationAlarmNum,3);
        //内阻告警机房占比
        //String resStationRateStr = (String) MathUtil.divide(resTotalAlarmStations,totalStationNum,3);
        monResMap.put("单体内阻高告警", resHighAlarmsNum);     //高告警数量    alm_signal_id 13
        monResMap.put("单体内阻低告警", resLowAlarmsNum);     //低告警数量     alm_signal_id 14
        //monResMap.put("告警总数", resTotalAlarmNum);        //告警总数
        //monResMap.put("告警总数比例", resRateStr);      //告警总数比例
        //monResMap.put("告警机房总数", resTotalAlarmStations);      //告警机房总数
        //monResMap.put("告警机房数比例", resStationRateStr);    //告警机房数比例
        resultMap.put("单体内阻", monResMap);
        /*======单体温度======*/
        //高告警数量
        Integer tempHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonTmpHigh);
        //低告警数量
        Integer tempLowAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonTmpLow);
        //单体温度总告警数
        //Integer tempTotalAlarmNum = tempHighAlarmsNum+tempLowAlarmsNum;
        //温度告警机房数
        //int tempTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.Alarm_tmp_Monomer);
        //温度告警占比
        //String tempRateStr = (String) MathUtil.divide(tempTotalAlarmNum,totalStationAlarmNum,3);
        //温度告警机房占比
        //String tempStationRateStr = (String) MathUtil.divide(tempTotalAlarmStations,totalStationNum,3);
        monTemMap.put("单体温度高告警", tempHighAlarmsNum);     //高告警数量    alm_signal_id 13
        monTemMap.put("单体温度低告警", tempLowAlarmsNum);     //低告警数量     alm_signal_id 14
        //monTemMap.put("告警总数", tempTotalAlarmNum);        //告警总数
        //monTemMap.put("告警总数比例", tempRateStr);      //告警总数比例
        //monTemMap.put("告警机房总数", tempTotalAlarmStations);      //告警机房总数
        //monTemMap.put("告警机房数比例", tempStationRateStr);    //告警机房数比例
        resultMap.put("单体温度", monTemMap);
        response.setCode(1);
        response.setData(resultMap);
        return response;
    }
}