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.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.*;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class BattRtstateService {
|
|
|
@Resource
|
private BattRtstateMapper battRtstateMapper;
|
|
/**
|
* @param binf binf.battGroupId、binf.num、binf.stationname.binf、stationname1
|
* uId
|
* 落后单体查询:根据条件查询落后单体
|
* @return
|
*/
|
public Response searchBattLife(int pageNum, int pageSize, Battinf binf) {
|
PageHelper.startPage(pageNum, pageSize);
|
UserInf userInf = ActionUtil.getUser();
|
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, "查询成功");
|
}
|
|
//查询实时组端信息
|
@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,"");
|
}
|
}
|
}
|