| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.dto.AlarmDaoFactory; |
| | |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.dto.paramter.BattinfPar; |
| | | import com.whyc.dto.result.ReportBattBadDTO; |
| | | import com.whyc.mapper.AlarmParamMapper; |
| | | import com.whyc.mapper.BadbattMonMapper; |
| | | import com.whyc.mapper.BattInfMapper; |
| | | import com.whyc.pojo.AlarmParam; |
| | | import com.whyc.pojo.BadbattMon; |
| | | import com.whyc.pojo.BattMapInformation; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.util.ActionUtil; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class BadBattMonService { |
| | | |
| | | @Resource |
| | | BadbattMonMapper badbattMonMapper; |
| | | @Resource |
| | | AlarmParamMapper alarmParamMapper; |
| | | @Resource |
| | | BattInfMapper binfMapper; |
| | | |
| | | public Response<List<BattMaintDealarm>> searchByInfo(int pageNum,int pageSize,BattinfPar battinfPar) { |
| | | public Response<List<BattMaintDealarm>> searchByInfo(int pageNum, int pageSize, BattinfPar battinfPar) { |
| | | //分页信息 |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | PageHelper.startPage(pageNum, pageSize); |
| | | UserInf userInf = ActionUtil.getUser(); |
| | | List<ReportBattBadDTO> list = badbattMonMapper.searchByInfo(battinfPar,userInf.getUId().intValue()); |
| | | for (ReportBattBadDTO dto:list) { |
| | | if(Integer.parseInt(dto.getBdmon().getNote())== AlarmDaoFactory.Alarm_CapAlarm){ |
| | | List<ReportBattBadDTO> list = badbattMonMapper.searchByInfo(battinfPar, userInf.getUId().intValue()); |
| | | for (ReportBattBadDTO dto : list) { |
| | | if (Integer.parseInt(dto.getBdmon().getNote()) == AlarmDaoFactory.Alarm_CapAlarm) { |
| | | dto.getBdmon().setNote("告警"); |
| | | }else if(Integer.parseInt(dto.getBdmon().getNote())== AlarmDaoFactory.Alarm_CapChange){ |
| | | } else if (Integer.parseInt(dto.getBdmon().getNote()) == AlarmDaoFactory.Alarm_CapChange) { |
| | | dto.getBdmon().setNote("更换"); |
| | | }else{ |
| | | } else { |
| | | dto.getBdmon().setNote("--"); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | //管理员首页:蓄电池优劣分析 |
| | | @Transactional |
| | | public Response getQualityAnalysis(int userId) { |
| | | return new Response().set(1); |
| | | try { |
| | | //1.查询劣化(告警)和损坏(更换)的阈值 |
| | | QueryWrapper<AlarmParam> alarmWrapper = new QueryWrapper(); |
| | | alarmWrapper.and(wrapper -> { |
| | | return wrapper.eq("alm_name", "Batt_Alarm_Type_CapAlarm").or().eq("alm_name", "Batt_Alarm_Type_CapChange"); |
| | | }); |
| | | alarmWrapper.orderByAsc("alm_id"); |
| | | List<AlarmParam> paramList = alarmParamMapper.selectList(alarmWrapper); |
| | | float capAlarm = 0f; |
| | | float capChange = 0f; |
| | | if (paramList != null && paramList.size() > 0) { |
| | | capAlarm = paramList.get(0).getAlmLowCoe();//劣化参数0.8 |
| | | capChange = paramList.get(1).getAlmLowCoe();//损坏参数0.6 |
| | | } else { |
| | | capAlarm = 0.8f; |
| | | capChange = 0.6f; |
| | | } |
| | | Map<String, Integer> map = new HashMap<>(); |
| | | //劣化数量(包含损坏) |
| | | int alarmNum = badbattMonMapper.getQualityAnalysis(userId, capAlarm); |
| | | //损坏数量 |
| | | int changeNum = badbattMonMapper.getQualityAnalysis(userId, capChange); |
| | | map.put("alarmNum", (alarmNum - changeNum)); |
| | | map.put("changeNum", changeNum); |
| | | //总单体数(分类) |
| | | int monNum = binfMapper.getMonCount(userId); |
| | | map.put("monNum", monNum); |
| | | //蓄电池优良 |
| | | map.put("goodSum", (monNum - alarmNum)); |
| | | return new Response().setII(1, true, map, "蓄电池优劣分析"); |
| | | } catch (Exception e) { |
| | | return new Response<>().set(1, false, "发生异常:" + e.getCause()); |
| | | } |
| | | } |
| | | |
| | | //管理员首页:蓄电池组优劣分析 |
| | | @Transactional |
| | | public Response getGroupAnalysis(int userId) { |
| | | try { |
| | | //1.查询劣化(告警)和损坏(更换)的阈值 |
| | | QueryWrapper<AlarmParam> alarmWrapper = new QueryWrapper(); |
| | | alarmWrapper.and(wrapper -> { |
| | | return wrapper.eq("alm_name", "Batt_Alarm_Type_CapAlarm").or().eq("alm_name", "Batt_Alarm_Type_CapChange"); |
| | | }); |
| | | alarmWrapper.orderByAsc("alm_id"); |
| | | List<AlarmParam> paramList = alarmParamMapper.selectList(alarmWrapper); |
| | | float capAlarm = 0f; |
| | | float capChange = 0f; |
| | | if (paramList != null && paramList.size() > 0) { |
| | | capAlarm = paramList.get(0).getAlmLowCoe();//劣化参数0.8 |
| | | capChange = paramList.get(1).getAlmLowCoe();//损坏参数0.6 |
| | | } else { |
| | | capAlarm = 0.8f; |
| | | capChange = 0.6f; |
| | | } |
| | | Map<String, Integer> map = new HashMap<>(); |
| | | //站点劣化数量(包含损坏) |
| | | int alarmNum = badbattMonMapper.getGroupAnalysis(userId, capAlarm); |
| | | //站点损坏数量 |
| | | int changeNum = badbattMonMapper.getGroupAnalysis(userId, capChange); |
| | | map.put("alarmNum", (alarmNum - changeNum)); |
| | | map.put("changeNum", changeNum); |
| | | //总电池组数(分类) |
| | | int groupNum = binfMapper.geGroupCount(userId); |
| | | map.put("groupNum", groupNum); |
| | | //蓄电池优良 |
| | | map.put("goodSum", (groupNum - alarmNum)); |
| | | return new Response().setII(1, true, map, "蓄电池组优劣分析"); |
| | | } catch (Exception e) { |
| | | return new Response<>().set(1, false, "发生异常:" + e.getCause()); |
| | | } |
| | | } |
| | | |
| | | //管理员首页:不同品牌同一时间品质 |
| | | public Response getProductQuaAnalysis(int userId) { |
| | | return new Response().set(1); |
| | | Map<String, Map<String, Map<String, Integer>>> responseMap = new HashMap<>(); |
| | | float capAlarm = 0.8f; |
| | | float capChange = 0.6f; |
| | | try { |
| | | //1.查询劣化(告警)和损坏(更换)的阈值 |
| | | QueryWrapper<AlarmParam> alarmWrapper = new QueryWrapper(); |
| | | alarmWrapper.and(wrapper -> { |
| | | return wrapper.eq("alm_name", "Batt_Alarm_Type_CapAlarm").or().eq("alm_name", "Batt_Alarm_Type_CapChange"); |
| | | }); |
| | | alarmWrapper.orderByAsc("alm_id"); |
| | | List<AlarmParam> paramList = alarmParamMapper.selectList(alarmWrapper); |
| | | if (paramList.size() > 0) { |
| | | capAlarm = paramList.get(0).getAlmLowCoe();//劣化参数0.8 |
| | | capChange = paramList.get(1).getAlmLowCoe();//损坏参数0.6 |
| | | } |
| | | //一年内数据 |
| | | List<BadbattMon> list1 = badbattMonMapper.getProductQuaAnalysis(userId, 1, capAlarm, capChange); |
| | | Map<String, List<BadbattMon>> list1Map = list1.stream().collect(Collectors.groupingBy(BadbattMon::getBattProducer)); |
| | | Map<String, Map<String, Integer>> producerMap1 = new HashMap<>(); |
| | | for (String producer : list1Map.keySet()) { |
| | | List<BadbattMon> badList1 = list1Map.get(producer); |
| | | Map<String, List<BadbattMon>> badList1Map = badList1.stream().collect(Collectors.groupingBy(BadbattMon::getNote)); |
| | | Map<String, Integer> badMap = new HashMap<>(); |
| | | badMap.put("change", 0); |
| | | badMap.put("alarm", 0); |
| | | for (String note : badList1Map.keySet()) { |
| | | badMap.put(note, badList1Map.get(note).size()); |
| | | } |
| | | producerMap1.put(producer, badMap); |
| | | } |
| | | responseMap.put("oneYear", producerMap1); |
| | | //两年内数据 |
| | | List<BadbattMon> list2 = badbattMonMapper.getProductQuaAnalysis(userId, 2, capAlarm, capChange); |
| | | Map<String, List<BadbattMon>> list2Map = list2.stream().collect(Collectors.groupingBy(BadbattMon::getBattProducer)); |
| | | Map<String, Map<String, Integer>> producerMap2 = new HashMap<>(); |
| | | for (String producer : list2Map.keySet()) { |
| | | List<BadbattMon> badList2 = list2Map.get(producer); |
| | | Map<String, List<BadbattMon>> badList2Map = badList2.stream().collect(Collectors.groupingBy(BadbattMon::getNote)); |
| | | Map<String, Integer> badMap2 = new HashMap<>(); |
| | | badMap2.put("change", 0); |
| | | badMap2.put("alarm", 0); |
| | | for (String note : badList2Map.keySet()) { |
| | | badMap2.put(note, badList2Map.get(note).size()); |
| | | } |
| | | producerMap2.put(producer, badMap2); |
| | | } |
| | | responseMap.put("twoYear", producerMap2); |
| | | //三年内数据 |
| | | List<BadbattMon> list3 = badbattMonMapper.getProductQuaAnalysis(userId, 3, capAlarm, capChange); |
| | | Map<String, List<BadbattMon>> list3Map = list3.stream().collect(Collectors.groupingBy(BadbattMon::getBattProducer)); |
| | | Map<String, Map<String, Integer>> producerMap3 = new HashMap<>(); |
| | | for (String producer : list3Map.keySet()) { |
| | | List<BadbattMon> badList3 = list3Map.get(producer); |
| | | Map<String, List<BadbattMon>> badList3Map = badList3.stream().collect(Collectors.groupingBy(BadbattMon::getNote)); |
| | | Map<String, Integer> badMap3 = new HashMap<>(); |
| | | badMap3.put("change", 0); |
| | | badMap3.put("alarm", 0); |
| | | for (String note : badList3Map.keySet()) { |
| | | badMap3.put(note, badList3Map.get(note).size()); |
| | | } |
| | | producerMap3.put(producer, badMap3); |
| | | } |
| | | responseMap.put("threeYear", producerMap3); |
| | | return new Response().set(1, responseMap, "不同品牌同一时间品质和同品牌同时间品质"); |
| | | } catch (Exception e) { |
| | | return new Response().set(1, responseMap, e.getCause().toString()); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |