lxw
2023-07-31 2c7c17d4d9f62faf9ed69866bc2df3249c29e31f
修改蓄电池组后评估加因为告警导致的损坏和劣化
4个文件已修改
100 ■■■■■ 已修改文件
src/main/java/com/whyc/mapper/BattalarmDataMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattMaintDealarmService.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatttestdataInfService.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattalarmDataMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattalarmDataMapper.java
@@ -81,4 +81,9 @@
    List<BattalarmData> getListByStationIds(List<String> stationIdList);
    //电池告警(劣化:内阻过高重要,电压过低重要;损坏:内阻过高紧急,电压过低紧急)
    List<String> searchAlarmLHorSH(int userId, int severity, List listAlm);
    //查询电池告警(劣化:内阻过高重要,电压过低重要;损坏:内阻过高紧急,电压过低紧急)
    List getAlmFlag(Integer battGroupId, Integer almFlag);
}
src/main/java/com/whyc/service/BattMaintDealarmService.java
@@ -30,6 +30,9 @@
    private BattResDataMapper BattResDataMapper;
    @Resource
    AlarmParamMapper alarmParamMapper;
    @Resource
    BattalarmDataMapper alarmDataMapper;
    @Resource
    private BatttestdataInfService batttestdataInfService;
@@ -77,11 +80,21 @@
                btdinf.setTestCap(binf.getMonCapStd());
                List batttestdataInfList = batttestdataInfService.searchDischargeTest(btdinf);
                int flag = getAssess(batttestdataInfList, assess, binf.getMonCapStd());
                Map map = new HashMap();
                map.put("battinf", binf);
                if (flag == 1) {
                    Map map = new HashMap();
                    map.put("battinf", binf);
                    map.put("battTestDataInf", batttestdataInfList);
                    result.add(map);
                } else {
                    if (assess == 2 || assess == 3) {
                        //查询电池告警(劣化:内阻过高重要,电压过低重要;损坏:内阻过高紧急,电压过低紧急)
                        int almFlag = getAlmFlag(binf.getBattGroupId(), assess);
                        if (almFlag == 1) {
                            batttestdataInfList.set(7, assess);
                        }
                        map.put("battTestDataInf", batttestdataInfList);
                        result.add(map);
                    }
                }
            }
        }
@@ -89,6 +102,16 @@
        pageInfo.setList(result);*/
        PageInfo pageInfo = PageInfoUtils.list2PageInfo(result, pageNum, pageSize);
        return new Response().set(1, pageInfo, "查询成功");
    }
    //查询电池告警(劣化:内阻过高重要,电压过低重要;损坏:内阻过高紧急,电压过低紧急)
    private int getAlmFlag(Integer battGroupId, Integer assess) {
        int almFlag = 0;
        List list = alarmDataMapper.getAlmFlag(battGroupId, assess);
        if (list != null && list.size() > 0) {
            almFlag = 1;
        }
        return almFlag;
    }
    //筛选蓄电池组后评性能
@@ -131,12 +154,12 @@
                    flag = 1;
                }
                break;
            case 2:
            case 2://劣化
                if (disNum != 0 && (realCap <= capAlarm * monCapStd) && (realCap >= capChange * monCapStd)) {
                    flag = 1;
                }
                break;
            case 3:
            case 3://损坏
                if (disNum != 0 && realCap < capChange * monCapStd) {
                    flag = 1;
                }
src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -36,6 +36,9 @@
    @Resource
    BattInfMapper binfMapper;
    @Resource
    BattalarmDataMapper alarmDataMapper;
    //在线监测-历史监控-获取充放电记录
    public Response searchBattTestInfDataById(int battGroupId, int fbsDeviceId) {
        String lang = ActionUtil.getLang();
@@ -200,6 +203,7 @@
        list1.add(minCap);
        list1.add(lastCap);
        list1.add(testList);
        list1.add(0);
        return list1;
    }
@@ -430,32 +434,42 @@
            //小于capChange
            int changeNum = 0;
            String battGroupId = "0";
            //损坏
            List listAlmSH = new ArrayList();
            //劣化
            List listAlmLH = new ArrayList();
            if (list != null && list.size() > 0) {
                for (BatttestdataInf inf : list) {
                    if (!battGroupId.equals(inf.getBattGroupId().toString())) {
                        int hourRate = BattCapFactory.GetHourRate(inf.getMonCapStd(), inf.getTestCurr());
                        float cap = (float) BattCapFactory.GetMonomerCap(inf.getMonCapStd(), hourRate, inf.getTestCap(), inf.getMaxMonvol(), inf.getMinMonvol(), inf.getMonVolStd(), BattCapFactory.CapType_Real);
                        if (cap < capAlarm * inf.getMonCapStd()) {
                        if (cap >= capChange * inf.getMonCapStd() && cap <= capAlarm * inf.getMonCapStd()) {
                            alarmNum = alarmNum + 1;
                            listAlmLH.add(inf.getBattGroupId().toString());
                        }
                        if (cap < capChange * inf.getMonCapStd()) {
                            changeNum = changeNum + 1;
                            listAlmSH.add(inf.getBattGroupId().toString());
                        }
                        battGroupId = inf.getBattGroupId().toString();
                        //map.put(battGroupId, inf.getMonCapStd() + " " + inf.getMonVolStd() + " " + cap + " " + capAlarm + " " + capChange);
                    }
                }
            }
            //电池告警(劣化:内阻过高重要,电压过低重要;损坏:内阻过高紧急,电压过低紧急<内阻的alm_signal_id是13,电压的alm_signal_id是10>)
            //损坏列表
            List<String> listSH = alarmDataMapper.searchAlarmLHorSH(userId, 1, listAlmSH);
            //列坏列表
            List<String> listLH = alarmDataMapper.searchAlarmLHorSH(userId, 0, listAlmLH);
            Map<String, Integer> numMap = new HashMap<>();
            numMap.put("alarmNum", (alarmNum - changeNum));
            numMap.put("changeNum", changeNum);
            numMap.put("alarmNum", alarmNum + listSH.size());
            numMap.put("changeNum", changeNum + listLH.size());
            //总电池组(分类)
            int groupNum = binfMapper.geGroupCount(userId);
            numMap.put("groupNum", groupNum);
            //已放电电池组数
            int inDischargeNum = binfMapper.searchInDischarge(userId);
            //蓄电池优良(已经放电数-告警数)
            numMap.put("goodSum", (inDischargeNum - alarmNum));
            numMap.put("goodSum", (inDischargeNum - alarmNum - changeNum));
             /*本年度已核容放电电池组(testdate_inf中test_type=3,test_startType=3)
             int hrDisNum = testInfService.getHrQuarter(userId);
            * 修改为:领导层本年度已放数 仅需要统计放电正常停止的 正常停止的条件如下:
src/main/resources/mapper/BattalarmDataMapper.xml
@@ -505,4 +505,44 @@
            #{item}
        </foreach>
    </select>
    <select id="searchAlarmLHorSH" resultType="java.lang.String">
        SELECT distinct BattGroupId
        from db_alarm.tb_battalarm_data
        <where>
            alm_signal_id in(10,13)
            <if test="severity==1">
                and alm_severity=1
            </if>
            <if test="severity==0">
                and alm_severity=0
            </if>
            <if test="listAlm!=null">
                <foreach collection="listAlm" item="battgroupid" separator="," open="and BattGroupId not in(" close=")">
                    #{battgroupid}
                </foreach>
            </if>
            and BattGroupId in (select distinct BattGroupId
            from 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_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})
        </where>
    </select>
    <select id="getAlmFlag" resultType="java.util.List">
        SELECT distinct *
        from db_alarm.tb_battalarm_data
        <where>
            BattGroupId=#{battGroupId}
            and alm_signal_id in(10,13)
            <if test="almFlag==3">
                and alm_severity=1
            </if>
            <if test="almFlag==2">
                and alm_severity=0
            </if>
        </where>
    </select>
</mapper>