whycxzp
2021-03-13 fcdf8edb15271327988c9e52c25514c8b6eb5677
更新 初步电池电源告警接口
4个文件已修改
286 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/BatteryAlarmController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BatteryAlarmMapper.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatteryAlarmService.java 187 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BatteryAlarmMapper.xml 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BatteryAlarmController.java
@@ -25,7 +25,7 @@
    private BatteryAlarmService service;
    @GetMapping("monCapacity")
    @ApiOperation(notes = "", value = "单体容量告警低统计")
    @ApiOperation(value = "单体容量告警低统计")
    public Response<Map> getMonCapacityLowAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
@@ -41,14 +41,13 @@
     * @return
     */
    @GetMapping("onlinegroupVolAnalysis")
    @ApiOperation(notes = "", value = "在线电压和组端电压")
    @ApiOperation(value = "在线电压和组端电压")
    public Response<Map> getOnlineAndGroupVolAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
        return service.getOnlineAndGroupVolAnalysis(userId);
    }
    /**
     * BTS 设备状态
@@ -57,7 +56,7 @@
     * @return
     */
    @GetMapping("btsStatus")
    @ApiOperation(notes = "", value = "BTS设备状态")
    @ApiOperation(value = "BTS设备状态")
    public Response<Map> getBTSEquipStatus(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
@@ -67,7 +66,7 @@
    @GetMapping("dischargeAnalysis")
    @ApiOperation(notes = "", value = "放电电流")
    @ApiOperation(value = "放电电流")
    public Response<Map> getDischargeAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
@@ -76,7 +75,7 @@
    }
    @GetMapping("chargeAnalysis")
    @ApiOperation(notes = "", value = "放电和 充电电流")
    @ApiOperation(value = "放电和 充电电流")
    public Response<Map> getChargeAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
@@ -85,7 +84,7 @@
    }
    @GetMapping("monVRTAnalysis")
    @ApiOperation(notes = "", value = "单体电压、内阻和温度状态")
    @ApiOperation(value = "单体电压、内阻和温度状态")
    public Response<Map> getMonVRTAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
src/main/java/com/whyc/mapper/BatteryAlarmMapper.java
@@ -29,17 +29,10 @@
    //放电电流 告警机房总数
    BatteryAlarmDto getLowDischargeAlarms(@Param(value = "userId")int userId, @Param(value = "almSignalId")int almSignalId);
    //单体电压 高、低 告警数量
    Integer getVolAlamHighLow(@Param(value = "userId")int userId, @Param(value = "almSignalId")int almSignalId);
    //单体高/低 告警数量
    Integer getAlarmHighLow(@Param(value = "userId")int userId, @Param(value = "almSignalId")int almSignalId);
    //单体内阻 高、低 告警数量
    Integer getResistanceAlamHighLow(@Param(value = "userId")int userId, @Param(value = "almSignalId")int almSignalId);
    //单体温度 高、低 告警数量
    Integer getTemperatureAlamHighLow(@Param(value = "userId")int userId, @Param(value = "almSignalId")int almSignalId);
    //根据 alm_id 查询告警机房总数
    Integer getVRTTotalAlarms(@Param(value = "userId")int userId, @Param(value = "almId")int almId);
    /**特定告警的总告警机房数
     * @return*/
    int getTotalAlarmStations(int userId, int alarm_vol_monomer);
}
src/main/java/com/whyc/service/BatteryAlarmService.java
@@ -78,9 +78,10 @@
     * @param userId
     * @return
     */
    //TODO
    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
        Response<Map> response = new Response();
        HashMap<String, Object> resultMap = new HashMap<>();
        Map<String, Integer> resMap = new HashMap<>();//内阻测试数量
        Map<String, Integer> errMap = new HashMap<>();//故障数量
@@ -91,27 +92,27 @@
            Integer highAlarmNum = onlinebatteryAlarmDto.getNum();
            Integer stationNum = onlinebatteryAlarmDto.getStationNum();
            resMap.put("highAlarmsNO", 1);     //高告警数量    alm_signal_id:online 1 high; 2 low
            resMap.put("高告警数量", 1);     //高告警数量    alm_signal_id:online 1 high; 2 low
            resMap.put("lowAlarmsNO", 1);     //低告警数量
            resMap.put("totalAlarmsScale", 1);      //告警总数比例
            resMap.put("低告警数量", 1);     //低告警数量
            resMap.put("告警总数比例", 1);      //告警总数比例
            Integer totalAlarmNum = mapper.getTotalAlarms(userId);
            resMap.put("告警总数", totalAlarmNum);        //告警总数
            Integer totalAlarmRooms = mapper.getTotalAlarmRooms(userId);
            resMap.put("totalAlarmRooms", 1);      //告警机房总数
            resMap.put("告警机房总数", 1);      //告警机房总数
            resMap.put("lowAlarmRoomsScale", 1);    //低告警机房数比例
            resMap.put("低告警机房数比例", 1);    //低告警机房数比例
            resultMap.put("内阻测试数量", resMap);
            errMap.put("highAlarmsNO", 1);     //高告警数量
            errMap.put("lowAlarmsNO", 1);     //低告警数量
            errMap.put("totalAlarmsScale", 1);      //告警总数比例
            errMap.put("totalAlarms", 1);        //告警总数
            errMap.put("totalAlarmRooms", 1);      //告警机房总数
            errMap.put("lowAlarmRoomsScale", 1);    //低告警机房数比例
            errMap.put("高告警数量", 1);     //高告警数量
            errMap.put("低告警数量", 1);     //低告警数量
            errMap.put("告警总数比例", 1);      //告警总数比例
            errMap.put("告警总数", 1);        //告警总数
            errMap.put("告警机房总数", 1);      //告警机房总数
            errMap.put("低告警机房数比例", 1);    //低告警机房数比例
            resultMap.put("故障数量", errMap);
            response.setCode(1);
@@ -132,9 +133,10 @@
     * @param userId
     * @return
     */
    //TODO
    public Response<Map> getBTSEquipStatus(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        Response<Map> response = new Response();
        Map<String, Object> resultMap = new HashMap<>();
        try {
@@ -146,11 +148,11 @@
//        Integer chargeNO = fbs9100StateMapper.getChargeNO(devId,userId);
//        Integer resTestNO = fbs9100StateMapper.getResTestNO(devId,userId);
//        Integer errNO = fbs9100StateMapper.getErrNO(devId,userId);
            resultMap.put("herongNO", herongNO);    //核容数量
            resultMap.put("onlineFloatNO", 1);    //在线浮充数量
            resultMap.put("chargeNO", 1);    //充电数量
            resultMap.put("resTestNO", 1);    //内阻测试数量
            resultMap.put("errNO", 1);    //故障数量
            resultMap.put("核容数量", herongNO);    //核容数量
            resultMap.put("在线浮充数量", 1);    //在线浮充数量
            resultMap.put("充电数量", 1);    //充电数量
            resultMap.put("内阻测试数量", 1);    //内阻测试数量
            resultMap.put("故障数量", 1);    //故障数量
            response.setCode(1);
            response.setData(resultMap);
        } catch (Exception e) {
@@ -176,23 +178,22 @@
        try {
            //放电电流低告警数和对应的告警机房数
            BatteryAlarmDto batteryAlarmDto = mapper.getLowDischargeAlarms(userId,AlarmConstant.ALM_SIGNAL_ID_DisChargeCurrLow);
            int disChargealarmNum = batteryAlarmDto.getNum();
            int disChargestationNum = batteryAlarmDto.getStationNum();
            int disChargeAlarmNum = batteryAlarmDto.getNum();
            int disChargeStationNum = batteryAlarmDto.getStationNum();
            //总告警数
            Integer totalAlarmNum = mapper.getTotalAlarms(userId);  //是所有类型告警总数,无条件?
            Integer totalAlarmNum = mapper.getTotalAlarms(userId);
            //总机房数
            int totalStationNum = infoMapper.getStationCount(userId);
            //容量低告警占比
            double disChargeLowRate = BigDecimal.valueOf(disChargealarmNum).divide(BigDecimal.valueOf(totalAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
            //放电电流低告警占比
            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();
            //放电电流低告警机房占比
            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("低告警数量", disChargeAlarmNum);     //低告警数量 alm_signal_id:DisChargeCurr 7 high; 8 low
            resultMap.put("告警机房总数", disChargeStationNum);      //告警机房总数
            resultMap.put("告警机房数比例", disChargeLowRateStr);    //告警机房数比例
            resultMap.put("告警总数", totalAlarmNum);        //告警总数
            resultMap.put("告警总数比例", disChargeLowStationRateStr);      //告警总数比例
@@ -205,34 +206,32 @@
        return response;
    }
    //    充电电流
    /**
     * 放电和 充电电流
     * 放电和充电电流 高
     * alm_id 电池告警参数
     * @param userId
     * @return
     */
    //TODO
    public Response<Map> getChargeAnalysis(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        Response<Map> response = new Response();
        HashMap<String, Object> resultMap = new HashMap<>();
        Map<String, Integer> disCharge = new HashMap<>();//放电电流  Alarm_curr_Discharge =119004
        Map<String, Integer> reCharge = new HashMap<>();//充电电流   Alarm_curr_Charge =119003
        disCharge.put("highAlarmsNO", 1);     //高告警数量    alm_signal_id:ChargeCurrHigh 5 high; 6 low
        disCharge.put("totalAlarms", 1);        //告警总数
        disCharge.put("totalAlarmsScale", 1);      //告警总数比例
        disCharge.put("totalAlarmRooms", 1);      //告警机房总数
        disCharge.put("alarmRoomsScale", 1);    //告警机房数比例
        disCharge.put("高告警数量", 1);     //高告警数量    alm_signal_id:ChargeCurrHigh 5 high; 6 low
        disCharge.put("告警总数", 1);        //告警总数
        disCharge.put("告警总数比例", 1);      //告警总数比例
        disCharge.put("告警机房总数", 1);      //告警机房总数
        disCharge.put("告警机房数比例", 1);    //告警机房数比例
        resultMap.put("disCharge", disCharge);
        reCharge.put("highAlarmsNO", 1);     //高告警数量
        reCharge.put("totalAlarms", 1);        //告警总数
        reCharge.put("totalAlarmsScale", 1);      //告警总数比例
        reCharge.put("totalAlarmRooms", 1);      //告警机房总数
        reCharge.put("alarmRoomsScale", 1);    //告警机房数比例
        reCharge.put("高告警数量", 1);     //高告警数量
        reCharge.put("告警总数", 1);        //告警总数
        reCharge.put("告警总数比例", 1);      //告警总数比例
        reCharge.put("告警机房总数", 1);      //告警机房总数
        reCharge.put("告警机房数比例", 1);    //告警机房数比例
        resultMap.put("reCharge", reCharge);
        response.setCode(1);
@@ -250,94 +249,104 @@
     */
    public Response<Map> getMonVRTAnalysis(int userId) {
        Response<Map> response = new Response();   //TODO RZG
        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.getVolAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolHigh);
        Integer volHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolHigh);
        //低告警数量
        Integer vollowAlarmsNum = mapper.getVolAlamHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonVolLow);
        Integer volLowAlarmsNum = mapper.getAlarmHighLow(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 volTotalAlarmNum = volHighAlarmsNum+volLowAlarmsNum;
        //单体电压机房告警总数
        Integer voltotalStationAlarmNum =mapper.getVRTTotalAlarms(userId,AlarmConstant.Alarm_tmp_Monomer);
        //告警总数
        Integer totalStationAlarmNum =mapper.getTotalAlarms(userId);
        //电压告警机房数
        int volTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.Alarm_vol_Monomer);
        //总机房数
        int totalStationNum = infoMapper.getStationCount(userId);
        //电压告警占比
        double volRate = BigDecimal.valueOf(volhighAlarmsNum+vollowAlarmsNum).divide(BigDecimal.valueOf(voltotalAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
        double volRate = BigDecimal.valueOf(volTotalAlarmNum).divide(BigDecimal.valueOf(totalStationAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
        String volRateStr = (int)(volRate*100)+"%";
        //电压告警机房占比
        double volStationRate = BigDecimal.valueOf(voltotalAlarmNum).divide(BigDecimal.valueOf(totalStationNum), 2, RoundingMode.HALF_UP).doubleValue();
        double volStationRate = BigDecimal.valueOf(volTotalAlarmStations).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("高告警数量", volHighAlarmsNum);     //高告警数量    alm_signal_id 9
        monVolMap.put("低告警数量", volLowAlarmsNum);     //低告警数量     alm_signal_id   10
        monVolMap.put("告警总数", volTotalAlarmNum);        //告警总数
        monVolMap.put("告警总数比例", volRateStr);      //告警总数比例
        monVolMap.put("告警机房总数", voltotalStationAlarmNum);      //告警机房总数
        monVolMap.put("告警机房总数", volTotalAlarmStations);      //告警机房总数
        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 resHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_MonResHigh);
        //低告警数量
        Integer resLowAlarmsNum = mapper.getAlarmHighLow(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);
        //单体内阻总告警数
        Integer resTotalAlarmNum = resHighAlarmsNum+resLowAlarmsNum;
        //内阻告警机房数
        int resTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.Alarm_res_Monomer);
        //内阻告警占比
        double resRate = BigDecimal.valueOf(reshighAlarmsNum+reslowAlarmsNum).divide(BigDecimal.valueOf(restotalAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
        double resRate = BigDecimal.valueOf(resTotalAlarmNum).divide(BigDecimal.valueOf(totalStationAlarmNum), 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();
        //内阻告警机房占比
        double resStationRate = BigDecimal.valueOf(resTotalAlarmStations).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("高告警数量", resHighAlarmsNum);     //高告警数量    alm_signal_id 13
        monResMap.put("低告警数量", resLowAlarmsNum);     //低告警数量     alm_signal_id 14
        monResMap.put("告警总数", resTotalAlarmNum);        //告警总数
        monResMap.put("告警总数比例", resRateStr);      //告警总数比例
        monResMap.put("告警机房总数", restotalStationAlarmNum);      //告警机房总数
        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);
/*        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
        //温度告警占比
        double tempRate = BigDecimal.valueOf(tempTotalAlarmNum).divide(BigDecimal.valueOf(totalStationAlarmNum), 2, RoundingMode.HALF_UP).doubleValue();
        String tempRateStr = (int)(tempRate*100)+"%";
        //温度告警机房占比
        double tempStationRate = BigDecimal.valueOf(tempTotalAlarmStations).divide(BigDecimal.valueOf(totalStationNum), 2, RoundingMode.HALF_UP).doubleValue();
        String tempStationRateStr = (int)(tempStationRate*100)+"%";
        monTemMap.put("totalAlarms", 1);        //告警总数
        monTemMap.put("totalAlarmsScale", 1);      //告警总数比例
        monTemMap.put("totalAlarmRooms", 1);      //告警机房总数
        monTemMap.put("alarmRoomsScale", 1);    //告警机房数比例
        resultMap.put("monTemMap", monTemMap);*/
        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);
src/main/resources/mapper/BatteryAlarmMapper.xml
@@ -59,7 +59,7 @@
    <select id="getLowCapacityAlarms" resultType="com.whyc.dto.BatteryAlarmDto">
        SELECT
             count(distinct inf.StationId) num,count(*) stationNum
             count(distinct inf.StationId) stationNum,count(*) num
        FROM
            db_alarm.tb_battalarm_data alarm,
            db_battinf.tb_battinf inf
@@ -144,7 +144,7 @@
    </select>
    <select id="getLowDischargeAlarms" resultType="com.whyc.dto.BatteryAlarmDto">
        SELECT
            count(distinct inf.StationId) num,count(*) stationNum
            count(distinct inf.StationId) stationNum,count(*) num
        FROM
            db_alarm.tb_battalarm_data alarm,
            db_battinf.tb_battinf inf
@@ -167,7 +167,7 @@
              AND db_user.tb_user_inf.uid = #{userId}
        )
    </select>
    <select id="getVolAlamHighLow" resultType="java.lang.Integer">
    <select id="getAlarmHighLow" resultType="java.lang.Integer">
        SELECT
            count(*)
        FROM
@@ -193,17 +193,17 @@
        )
    </select>
    <select id="getResistanceAlamHighLow" resultType="java.lang.Integer">
    <select id="getTotalAlarmStations" resultType="java.lang.Integer">
        SELECT
            count(*)
            count(distinct inf.StationId)
        FROM
            db_alarm.tb_battalarm_data alarm,
            db_battinf.tb_battinf inf
        WHERE
            alarm.BattGroupId = inf.BattGroupId
          AND alm_cleared_type = 0
          AND alm_signal_id = #{almSignalId}
          AND inf.StationId IN (
            AND alm_cleared_type = 0
            AND alm_id = #{param2}
            AND inf.StationId IN (
            SELECT DISTINCT
                inf.StationId
            FROM
@@ -215,58 +215,7 @@
                    db_user.tb_user_battgroup_baojigroup_battgroup.StationId = inf.StationId
              AND db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id = db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
              AND db_user.tb_user_inf.uid = db_user.tb_user_battgroup_baojigroup_usr.uid
              AND db_user.tb_user_inf.uid = #{userId}
        )
    </select>
    <select id="getTemperatureAlamHighLow" resultType="java.lang.Integer">
        SELECT
            count(*)
        FROM
            db_alarm.tb_battalarm_data alarm,
            db_battinf.tb_battinf inf
        WHERE
            alarm.BattGroupId = inf.BattGroupId
          AND alm_cleared_type = 0
          AND alm_signal_id = #{almSignalId}
          AND inf.StationId IN (
            SELECT DISTINCT
                inf.StationId
            FROM
                db_battinf.tb_battinf inf,
                db_user.tb_user_battgroup_baojigroup_battgroup,
                db_user.tb_user_battgroup_baojigroup_usr,
                db_user.tb_user_inf
            WHERE
                    db_user.tb_user_battgroup_baojigroup_battgroup.StationId = inf.StationId
              AND db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id = db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
              AND db_user.tb_user_inf.uid = db_user.tb_user_battgroup_baojigroup_usr.uid
              AND db_user.tb_user_inf.uid = #{userId}
        )
    </select>
    <select id="getVRTTotalAlarms" resultType="java.lang.Integer">
        SELECT
            count(*)
        FROM
            db_alarm.tb_battalarm_data alarm,
            db_battinf.tb_battinf inf
        WHERE
            alarm.BattGroupId = inf.BattGroupId
          AND alm_cleared_type = 0
          AND alm_id = #{almId}
          AND inf.StationId IN (
            SELECT DISTINCT
                inf.StationId
            FROM
                db_battinf.tb_battinf inf,
                db_user.tb_user_battgroup_baojigroup_battgroup,
                db_user.tb_user_battgroup_baojigroup_usr,
                db_user.tb_user_inf
            WHERE
                    db_user.tb_user_battgroup_baojigroup_battgroup.StationId = inf.StationId
              AND db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id = db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
              AND db_user.tb_user_inf.uid = db_user.tb_user_battgroup_baojigroup_usr.uid
              AND db_user.tb_user_inf.uid = #{userId}
              AND db_user.tb_user_inf.uid = #{param1}
        )
    </select>