src/main/java/com/whyc/mapper/BattalarmDataMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattMaintDealarmService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BatttestdataInfService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BattalarmDataMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>