whycrzg
2021-03-12 75009467bfe24f6ebf238a714fb33a20fe661b0a
src/main/java/com/whyc/service/BatteryAlarmService.java
@@ -78,7 +78,7 @@
     * @param userId
     * @return
     */
    public Response getOnlineAndGroupVol(int userId) {
    public Response<Map> getOnlineAndGroupVolAnalysis(int userId) {
//        select alm_signal_id,count(alm_signal_id) as num from db_alarm.tb_battalarm_data alarm where alm_id in (119001,119002,119003,119004)
        Response<Map> response = new Response();   //TODO RZG
        HashMap<String, Object> resultMap = new HashMap<>();
@@ -86,21 +86,24 @@
        Map<String, Integer> errMap = new HashMap<>();//故障数量
        try {
            Integer highAlarmsNO = mapper.getAlarmsNO(AlarmConstant.ALM_SIGNAL_ID_OnlineVolHigh, userId);
            Integer lowAlarmsNO = mapper.getAlarmsNO(AlarmConstant.ALM_SIGNAL_ID_OnlineVolLow, userId);
            BatteryAlarmDto onlinebatteryAlarmDto = mapper.getOnlineAndGroupAlarms(AlarmConstant.Alarm_res_Monomer,AlarmConstant.ALM_SIGNAL_ID_OnlineVolHigh, userId);
            BatteryAlarmDto groupbatteryAlarmDto = mapper.getOnlineAndGroupAlarms(AlarmConstant.Alarm_vol_Group,AlarmConstant.ALM_SIGNAL_ID_OnlineVolHigh, userId);
            resMap.put("highAlarmsNO", highAlarmsNO);     //高告警数量    alm_signal_id:online 1 high; 2 low
            resMap.put("lowAlarmsNO", lowAlarmsNO);     //低告警数量
            Integer highAlarmNum = onlinebatteryAlarmDto.getNum();
            Integer stationNum = onlinebatteryAlarmDto.getStationNum();
            resMap.put("highAlarmsNO", 1);     //高告警数量    alm_signal_id:online 1 high; 2 low
            resMap.put("lowAlarmsNO", 1);     //低告警数量
            resMap.put("totalAlarmsScale", 1);      //告警总数比例
            Integer totalAlarms = mapper.getTotalAlarms(userId);
            resMap.put("totalAlarms", 1);        //告警总数
            Integer totalAlarmNum = mapper.getTotalAlarms(userId);
            resMap.put("告警总数", totalAlarmNum);        //告警总数
            Integer totalAlarmRooms = mapper.getTotalAlarmRooms(userId);
            resMap.put("totalAlarmRooms", 1);      //告警机房总数
            resMap.put("lowAlarmRoomsScale", 1);    //低告警机房数比例
            resultMap.put("resMap", resMap);
            resultMap.put("内阻测试数量", resMap);
            errMap.put("highAlarmsNO", 1);     //高告警数量
@@ -109,7 +112,7 @@
            errMap.put("totalAlarms", 1);        //告警总数
            errMap.put("totalAlarmRooms", 1);      //告警机房总数
            errMap.put("lowAlarmRoomsScale", 1);    //低告警机房数比例
            resultMap.put("errMap", errMap);
            resultMap.put("故障数量", errMap);
            response.setCode(1);
            response.setData(resultMap);
@@ -129,10 +132,10 @@
     * @param userId
     * @return
     */
    public Response getDeviceStatus(int userId) {
    public Response<Map> getBTSEquipStatus(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        Map<String, Integer> resultMap = new HashMap<>();
        Map<String, Object> resultMap = new HashMap<>();
        try {
@@ -161,27 +164,43 @@
    /**
     * 放电电流 Alarm_curr_Discharge =119004
     *
     *  alm_signal_id 查询条件 ALM_SIGNAL_ID_DisChargeCurrLow
     * @param userId
     * @return
     */
    public Response getDischargeState(int userId) {
    public Response<Map> getDischargeAnalysis(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        Map<String, Integer> resultMap = new HashMap<>();
        Response<Map> response = new Response();
        Map<String, Object> resultMap = new HashMap<>();
        try {
            resultMap.put("lowAlarmsNO", 1);     //低告警数量 alm_signal_id:DisChargeCurr 7 high; 8 low
            resultMap.put("totalAlarmRooms", 1);      //告警机房总数
            resultMap.put("alarmRoomsScale", 1);    //告警机房数比例
            resultMap.put("totalAlarms", 1);        //告警总数
            resultMap.put("totalAlarmsScale", 1);      //告警总数比例
            //放电电流低告警数和对应的告警机房数
            BatteryAlarmDto batteryAlarmDto = mapper.getLowDischargeAlarms(userId,AlarmConstant.ALM_SIGNAL_ID_DisChargeCurrLow);
            int disChargealarmNum = batteryAlarmDto.getNum();
            int disChargestationNum = batteryAlarmDto.getStationNum();
            //总告警数
            Integer totalAlarmNum = mapper.getTotalAlarms(userId);  //是所有类型告警总数,无条件?
            //总机房数
            int totalStationNum = infoMapper.getStationCount(userId);
            //容量低告警占比
            double disChargeLowRate = BigDecimal.valueOf(disChargealarmNum).divide(BigDecimal.valueOf(totalAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
            String disChargeLowRateStr = (int)(disChargeLowRate*100)+"%";
            //容量低告警机房占比
            double disChargeLowStationRate = BigDecimal.valueOf(disChargestationNum).divide(BigDecimal.valueOf(totalStationNum), 2, RoundingMode.HALF_UP).doubleValue();
            String disChargeLowStationRateStr = (int)(disChargeLowStationRate*100)+"%";
            resultMap.put("低告警数量", disChargealarmNum);     //低告警数量 alm_signal_id:DisChargeCurr 7 high; 8 low
            resultMap.put("告警机房总数", disChargestationNum);      //告警机房总数
            resultMap.put("告警机房数比例", disChargeLowRateStr);    //告警机房数比例
            resultMap.put("告警总数", totalAlarmNum);        //告警总数
            resultMap.put("告警总数比例", disChargeLowStationRateStr);      //告警总数比例
            response.setCode(1);
            response.setData(resultMap);
        } catch (Exception e) {
            e.printStackTrace();
            response.setCode(0);
            return response;
            return response.setCode(0);
        }
        return response;
    }
@@ -194,7 +213,7 @@
     * @param userId
     * @return
     */
    public Response getCharge(int userId) {
    public Response<Map> getChargeAnalysis(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        HashMap<String, Object> resultMap = new HashMap<>();
@@ -225,41 +244,100 @@
    /**
     * 单体电压、内阻和温度
     * alm_id 电池告警参数
     * 三个告警总数不同,带条件?电压、内阻、温度
     * @param userId
     * @return
     */
    public Response getMonVRT(int userId) {
    public Response<Map> getMonVRTAnalysis(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        HashMap<String, Object> resultMap = new HashMap<>();
        Map<String, Integer> monVolMap = new HashMap<>();//单体电压  Alarm_vol_Monomer =119005;
        Map<String, Integer> monResMap = new HashMap<>();//单体内阻  Alarm_res_Monomer =119007
        Map<String, Integer> monTemMap = new HashMap<>();//单体温度  Alarm_tmp_Monomer =119006
        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
        monVolMap.put("highAlarmsNO", 1);     //高告警数量    alm_signal_id 9
        monVolMap.put("lowAlarmsNO", 1);     //低告警数量     alm_signal_id   10
        monVolMap.put("totalAlarms", 1);        //告警总数
        monVolMap.put("totalAlarmsScale", 1);      //告警总数比例
        monVolMap.put("totalAlarmRooms", 1);      //告警机房总数
        monVolMap.put("alarmRoomsScale", 1);    //告警机房数比例
        resultMap.put("monVolMap", monVolMap);
        monResMap.put("highAlarmsNO", 1);     //高告警数量    alm_signal_id 13
        monResMap.put("lowAlarmsNO", 1);     //低告警数量     alm_signal_id 14
        monResMap.put("totalAlarms", 1);        //告警总数
        monResMap.put("totalAlarmsScale", 1);      //告警总数比例
        monResMap.put("totalAlarmRooms", 1);      //告警机房总数
        monResMap.put("alarmRoomsScale", 1);    //告警机房数比例
        resultMap.put("monResMap", monResMap);
//     ******************************************单体电压****************************************************************
        monTemMap.put("highAlarmsNO", 1);     //高告警数量    alm_signal_id 11
        monTemMap.put("lowAlarmsNO", 1);     //低告警数量     alm_signal_id 12
        //高告警数量
        Integer volhighAlarmsNum = mapper.getVolAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolHigh);
        //低告警数量
        Integer vollowAlarmsNum = mapper.getVolAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolLow);
        //单体电压、内阻和温度 总告警数
        Integer voltotalAlarmNum = mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_vol_Monomer);
//        Integer restotalAlarmNum = mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_res_Monomer);
//        Integer temtotalAlarmNum = mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_tmp_Monomer);
        //单体电压机房告警总数
        Integer voltotalStationAlarmNum =mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_tmp_Monomer);
        //总机房数
        int totalStationNum = infoMapper.getStationCount(userId);
        //电压告警占比
        double volRate = BigDecimal.valueOf(volhighAlarmsNum+vollowAlarmsNum).divide(BigDecimal.valueOf(voltotalAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
        String volRateStr = (int)(volRate*100)+"%";
        //电压告警机房占比
        double volStationRate = BigDecimal.valueOf(voltotalAlarmNum).divide(BigDecimal.valueOf(totalStationNum), 2, RoundingMode.HALF_UP).doubleValue();
        String volStationRateStr = (int)(volStationRate*100)+"%";
        monVolMap.put("高告警数量", volhighAlarmsNum);     //高告警数量    alm_signal_id 9
        monVolMap.put("低告警数量", vollowAlarmsNum);     //低告警数量     alm_signal_id   10
        monVolMap.put("告警总数", voltotalAlarmNum);        //告警总数
        monVolMap.put("告警总数比例", volRateStr);      //告警总数比例
        monVolMap.put("告警机房总数", voltotalStationAlarmNum);      //告警机房总数
        monVolMap.put("告警机房数比例", volStationRateStr);    //告警机房数比例
        resultMap.put("单体电压", monVolMap);
//     ******************************************单体内阻****************************************************************
        Integer reshighAlarmsNum = mapper.getResistanceAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonResHigh);
        Integer reslowAlarmsNum = mapper.getResistanceAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonResLow);
        //单体电压、内阻和温度 总告警数
        Integer restotalAlarmNum = mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_res_Monomer);
        //告警机房总数
        Integer restotalStationAlarmNum =mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_tmp_Monomer);
        //总机房数
//        int totalStationNum = infoMapper.getStationCount(userId);
        //内阻告警占比
        double resRate = BigDecimal.valueOf(reshighAlarmsNum+reslowAlarmsNum).divide(BigDecimal.valueOf(restotalAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
        String resRateStr = (int)(resRate*100)+"%";
        //内阻告警机房占比  TODO
        double resStationRate = BigDecimal.valueOf(restotalStationAlarmNum).divide(BigDecimal.valueOf(totalStationNum), 2, RoundingMode.HALF_UP).doubleValue();
        String resStationRateStr = (int)(resStationRate*100)+"%";
        monResMap.put("高告警数量", reshighAlarmsNum);     //高告警数量    alm_signal_id 13
        monResMap.put("低告警数量", reslowAlarmsNum);     //低告警数量     alm_signal_id 14
        monResMap.put("告警总数", restotalAlarmNum);        //告警总数
        monResMap.put("告警总数比例", resRateStr);      //告警总数比例
        monResMap.put("告警机房总数", restotalStationAlarmNum);      //告警机房总数
        monResMap.put("告警机房数比例", resStationRateStr);    //告警机房数比例
        resultMap.put("单体内阻", monResMap);
//     ******************************************单体温度****************************************************************
/*        Integer temhighAlarmsNum = mapper.getTemperatureAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonTmpHigh);
        Integer temlowAlarmsNum = mapper.getTemperatureAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonTmpLow);
        monTemMap.put("highAlarmsNO", temhighAlarmsNum);     //高告警数量    alm_signal_id 11
        monTemMap.put("lowAlarmsNO", temlowAlarmsNum);     //低告警数量     alm_signal_id 12
        monTemMap.put("totalAlarms", 1);        //告警总数
        monTemMap.put("totalAlarmsScale", 1);      //告警总数比例
        monTemMap.put("totalAlarmRooms", 1);      //告警机房总数
        monTemMap.put("alarmRoomsScale", 1);    //告警机房数比例
        resultMap.put("monTemMap", monTemMap);
        resultMap.put("monTemMap", monTemMap);*/
        response.setCode(1);
        response.setData(resultMap);