| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.constant.AlarmConstant; |
| | | import com.whyc.dto.BattState; |
| | | import com.whyc.dto.BattMaintDealarm; |
| | | import com.whyc.dto.BattTestData; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.BattRtstateMapper; |
| | | import com.whyc.pojo.BattRtstate; |
| | | import com.whyc.pojo.Battinf; |
| | | import com.whyc.pojo.Fbs9100State; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.DateUtil; |
| | | import com.whyc.util.MessageUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class BattRtstateService { |
| | |
| | | * @return |
| | | */ |
| | | public Response searchBattLife(int pageNum, int pageSize, Battinf binf) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | PageHelper.startPage(pageNum, pageSize); |
| | | UserInf userInf = ActionUtil.getUser(); |
| | | List<BattState> list = battRtstateMapper.searchBattLife(binf,userInf.getUId().intValue()); |
| | | String lang = ActionUtil.getLang(); |
| | | List<BattState> list = battRtstateMapper.searchBattLife(binf, userInf.getUId().intValue()); |
| | | for (BattState bs : list) { |
| | | Battinf battinf = bs.getBinf(); |
| | | battinf.setStationName9(MessageUtils.getMessageSocket(BattTestData.battState(battinf.getNum()), lang)); |
| | | } |
| | | PageInfo<BattState> pageInfo = new PageInfo<>(list); |
| | | return new Response().set(1,pageInfo,"查询成功"); |
| | | // //分页信息 |
| | | // PageHelper.startPage(bmd.getPage().getPageCurr(), bmd.getPage().getPageSize()); |
| | | // List<BattState> list = battRtstateMapper.searchBattLife(bmd); |
| | | // PageInfo<BattState> pageInfo = new PageInfo<BattState>(list); |
| | | // if (list != null && list.size() > 0) { |
| | | //// System.out.println("list = " + list); |
| | | // return new Response<List<BattState>>().set(1, list, String.valueOf(pageInfo.getTotal())); |
| | | // } else { |
| | | // return new Response<List<BattState>>().set(0, null, String.valueOf(pageInfo.getTotal())); |
| | | // } |
| | | |
| | | return new Response().set(1, pageInfo, "查询成功"); |
| | | } |
| | | |
| | | //查询实时组端信息 |
| | | public Response serchByCondition(int battGroupId) { |
| | | PageHelper.startPage(1,1); |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("BattGroupId",battGroupId); |
| | | BattRtstate brt=battRtstateMapper.selectOne(wrapper); |
| | | return new Response().set(1,brt); |
| | | @Transactional |
| | | public Response<BattRtstate> serchByCondition(int battGroupId) { |
| | | QueryWrapper wrapper = new QueryWrapper(); |
| | | wrapper.eq("BattGroupId", battGroupId); |
| | | wrapper.last(" limit 1"); |
| | | BattRtstate brt = battRtstateMapper.selectOne(wrapper); |
| | | if(brt!=null){ |
| | | brt.setControlFailTypeName(BattTestData.getControlFailType6186(brt.getControlFailType())); |
| | | brt.setLastCapTestStopTypeName(BattTestData.getStopType_61853(brt.getLastCapTestStopType())); |
| | | } |
| | | return new Response().setII(1, brt == null ? false : true, brt, ""); |
| | | } |
| | | |
| | | //9140设备要将2组电池的组端信息都给他 |
| | | public Response serch9140Info(int devId) { |
| | | List<BattRtstate> list = battRtstateMapper.serch9140Info(devId); |
| | | return new Response().setII(1, list.size() > 0 ? true : false, list, "9140数据"); |
| | | } |
| | | |
| | | //3D查询机房下电池组端信息 |
| | | public Response getStation3D(String stationId) { |
| | | List<BattRtstate> list = battRtstateMapper.getStation3D(stationId); |
| | | PageInfo pageInfo = new PageInfo(list); |
| | | return new Response().setII(1, list.size() > 0 ? true : false, pageInfo, ""); |
| | | } |
| | | |
| | | |
| | | /*public void update(List<BattRtstate> battStateList) { |
| | | battRtstateMapper.updateBatch(battStateList); |
| | | }*/ |
| | | |
| | | public void addOrUpdate(List<BattRtstate> battStateList) { |
| | | List<BattRtstate> updateList = new LinkedList<>(); |
| | | List<BattRtstate> addList = new LinkedList<>(); |
| | | List<Integer> battGroupIdList = battStateList.stream().map(BattRtstate::getBattGroupId).collect(Collectors.toList()); |
| | | QueryWrapper<BattRtstate> query = Wrappers.query(); |
| | | query.in("BattGroupId",battGroupIdList); |
| | | List<BattRtstate> battStateListInDB = battRtstateMapper.selectList(query); |
| | | List<Integer> battGroupIdListInDB = battStateListInDB.stream().map(BattRtstate::getBattGroupId).collect(Collectors.toList()); |
| | | |
| | | for (BattRtstate battState : battStateList) { |
| | | if(battGroupIdListInDB.contains(battState.getBattGroupId())){ //更新 |
| | | updateList.add(battState); |
| | | }else{ //新增 |
| | | addList.add(battState); |
| | | } |
| | | } |
| | | if(updateList.size()>0){ |
| | | battRtstateMapper.updateBatch(battStateList); |
| | | } |
| | | if(addList.size()>0) { |
| | | battRtstateMapper.insertBatch(addList); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 61850电池组,每组电池都单独分配了个设备id,是一一对应的 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | public Response getDischargingList(int userId) { |
| | | try { |
| | | //设备才有放电的具体操作,是 核容还是 停电放电 |
| | | List<BattRtstate> list = battRtstateMapper.getDischargingList(userId); |
| | | String nowStr = DateUtil.YYYY_MM_DD_HH_MM_SS.format(new Date()); |
| | | return new Response().setII(1,true, list,nowStr); |
| | | }catch (Exception e){ |
| | | return new Response().set(1,false, e.getCause().toString()); |
| | | } |
| | | } |
| | | //查询电池组端信息 |
| | | public Response serchPowerHr6159(int devId) { |
| | | List<BattRtstate> list= battRtstateMapper.serchPowerHr6159(devId); |
| | | return new Response().setII(1,list!=null,list,"查询电池组端信息"); |
| | | } |
| | | //插入初始数据 |
| | | public void setDefalut( Map<String,Object> map){ |
| | | Map<String,Object> mapNum=new HashMap<>(); |
| | | mapNum.put("未知",0); |
| | | mapNum.put("浮充",0); |
| | | mapNum.put("充电",0); |
| | | mapNum.put("放电",0); |
| | | mapNum.put("均充",0); |
| | | mapNum.put("内阻测试",0); |
| | | map.put("3",mapNum); |
| | | map.put("5",mapNum); |
| | | map.put("6",mapNum); |
| | | map.put("7",mapNum); |
| | | map.put("8",mapNum); |
| | | } |
| | | //3.统计:电池状态 |
| | | public Response getAllBattStateInSz2(Integer userId) { |
| | | Map<String,Object> map=new HashMap<>(); |
| | | Map<String,Integer> allTypemap=new HashMap<>(); |
| | | //setDefalut(map); |
| | | try { |
| | | //查询电池状态(去除未知) |
| | | List<BattRtstate> list=battRtstateMapper.getAllBattStateInSz2(userId); |
| | | Map<String, List<BattRtstate>> ListMap = list.stream().collect(Collectors.groupingBy(BattRtstate::getStationName9)); |
| | | for (String stationName9 : ListMap.keySet()) { |
| | | Map<String, Object> battInfoMap = new HashMap<>(); |
| | | //battInfoMap.put("未知",0); |
| | | battInfoMap.put("浮充",0); |
| | | battInfoMap.put("充电",0); |
| | | battInfoMap.put("放电",0); |
| | | battInfoMap.put("均充",0); |
| | | battInfoMap.put("内阻测试",0); |
| | | List<BattRtstate> name9List=ListMap.get(stationName9); |
| | | Map<Integer, List<BattRtstate>> battStateMap = name9List.stream().collect(Collectors.groupingBy(BattRtstate::getBattState)); |
| | | for (Integer battState:battStateMap.keySet()) { |
| | | battInfoMap.put(BattTestData.getBattState(battState),battStateMap.get(battState).size()); |
| | | int typenum=0; |
| | | if(allTypemap.get(BattTestData.getBattState(battState))==null){ |
| | | typenum=battStateMap.get(battState).size(); |
| | | }else{ |
| | | typenum=allTypemap.get(BattTestData.getBattState(battState))+battStateMap.get(battState).size(); |
| | | } |
| | | allTypemap.put(BattTestData.getBattState(battState),typenum); |
| | | } |
| | | map.put(stationName9,battInfoMap); |
| | | } |
| | | map.put("allmap",allTypemap); |
| | | return new Response<>().setII(1,true,map,""); |
| | | } catch (Exception e) { |
| | | return new Response<>().set(1,false,""); |
| | | } |
| | | } |
| | | } |