whycrzg
2021-03-12 75009467bfe24f6ebf238a714fb33a20fe661b0a
update
4个文件已修改
388 ■■■■ 已修改文件
src/main/java/com/whyc/controller/BatteryAlarmController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BatteryAlarmMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatteryAlarmService.java 166 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BatteryAlarmMapper.xml 174 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BatteryAlarmController.java
@@ -40,12 +40,12 @@
     * @param request
     * @return
     */
    @GetMapping("onlineVol")
    @GetMapping("onlinegroupVolAnalysis")
    @ApiOperation(notes = "", value = "在线电压和组端电压")
    public Response<Map> getOnlineAndGroupVol(HttpServletRequest request) {
    public Response<Map> getOnlineAndGroupVolAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
        return service.getOnlineAndGroupVol(userId);
        return service.getOnlineAndGroupVolAnalysis(userId);
    }
@@ -58,38 +58,38 @@
     */
    @GetMapping("btsStatus")
    @ApiOperation(notes = "", value = "BTS设备状态")
    public Response<Map> getBTSEquipState(HttpServletRequest request) {
    public Response<Map> getBTSEquipStatus(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
        return service.getDeviceStatus(userId);
        return service.getBTSEquipStatus(userId);
    }
    @GetMapping("discharge")
    @GetMapping("dischargeAnalysis")
    @ApiOperation(notes = "", value = "放电电流")
    public Response<Map> getDischargeState(HttpServletRequest request) {
    public Response<Map> getDischargeAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
        return service.getDischargeState(userId);
        return service.getDischargeAnalysis(userId);
    }
    @GetMapping("charge")
    @GetMapping("chargeAnalysis")
    @ApiOperation(notes = "", value = "放电和 充电电流")
    public Response<Map> getCharge(HttpServletRequest request) {
    public Response<Map> getChargeAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
        return service.getCharge(userId);
        return service.getChargeAnalysis(userId);
    }
    @GetMapping("monVRT")
    @GetMapping("monVRTAnalysis")
    @ApiOperation(notes = "", value = "单体电压、内阻和温度状态")
    public Response<Map> getMonVRT(HttpServletRequest request) {
    public Response<Map> getMonVRTAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
        return service.getMonVRT(userId);
        return service.getMonVRTAnalysis(userId);
    }
src/main/java/com/whyc/mapper/BatteryAlarmMapper.java
@@ -1,7 +1,6 @@
package com.whyc.mapper;
import com.whyc.dto.BatteryAlarmDto;
import com.whyc.dto.BatteryInfo;
import org.apache.ibatis.annotations.Param;
public interface BatteryAlarmMapper {
@@ -25,5 +24,22 @@
    Integer getHighAlarmsNO(int userId);
    //根据类型查询告警数量 almSignalId
    Integer getAlarmsNO(@Param(value = "almSignalId") int almSignalId, @Param(value = "userId") int userId);
    BatteryAlarmDto getOnlineAndGroupAlarms(@Param(value = "alarmId")int alarmId, @Param(value = "almSignalId") int almSignalId, @Param(value = "userId") int userId);
    //放电电流 告警机房总数
    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 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);
}
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);
src/main/resources/mapper/BatteryAlarmMapper.xml
@@ -117,33 +117,157 @@
    <!--在线电压,组端电压 ;机房对应权限 StationId/BattgroupId-->
    <!--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) -->
    <select id="getAlarmsNO" resultType="java.lang.Integer">
    <select id="getOnlineAndGroupAlarms" resultType="com.whyc.dto.BatteryAlarmDto">
        SELECT count(distinct inf.StationId) num, count(*) stationNum
        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 = #{alarmId}
          AND alm_signal_id = #{almSignalId}
          AND inf.StationId IN (
            SELECT DISTINCT inf.StationId
            FROM (
                     SELECT 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 count(*)
        FROM (
                 SELECT 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 (
                     SELECT DISTINCT inf.StationId
                     FROM (
                              SELECT 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}
                 )
             ) temp
    </select>
    <select id="getLowDischargeAlarms" resultType="com.whyc.dto.BatteryAlarmDto">
        SELECT
            count(distinct inf.StationId) num,count(*) stationNum
        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="getVolAlamHighLow" 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="getResistanceAlamHighLow" 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="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}
        )
    </select>
</mapper>