package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.whyc.constant.BattAlarmIdEnum; import com.whyc.mapper.BattAlmparamMapper; import com.whyc.mapper.BattRtdataMapper; import com.whyc.pojo.db_param.BattAlmparam; import com.whyc.pojo.db_ram_db.BattRtdata; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class BattRtdataService { @Autowired(required = false) private BattRtdataMapper mapper; @Autowired(required = false) private BattAlmparamService almparamService; //实时获取单体信息 public List getRtdataRealInfo(Integer battgroupId) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("battgroup_id",battgroupId); wrapper.orderByAsc("mon_num"); List list=mapper.selectList(wrapper); return list; } //获取单体的实时数据 public BattRtdata getRtdataByNum(Integer battgroupId, Integer monNum) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("battgroup_id",battgroupId); wrapper.eq("mon_num",monNum); wrapper.last("limit 1"); BattRtdata rtdata=mapper.selectOne(wrapper); return rtdata; } //查询当前电池组当前单体电压或者单体内阻低于其单体电压的下下限或高于上上限判定当前电池组劣化 public int getVolAndRes(Integer battgroupId) { int flag=0; //1是劣化,0是正常 float monVolUpper=0; float monVolLower=0; float monResUpper=0; float monResLower=0; //获取电池组的单体电压和单体内阻告警阈值 List list=almparamService.getAlmParamVolAndRes(battgroupId); if(list!=null&&list.size()>0){ for(BattAlmparam param:list){ if(param.getAlmId()== BattAlarmIdEnum.ALARM_119005.getStateId()){ monVolUpper=param.getAlmLowCoe(); monVolLower=param.getAlmLowCoeLower(); } if(param.getAlmId()== BattAlarmIdEnum.ALARM_119006.getStateId()){ monResUpper=param.getAlmLowCoe(); monResLower=param.getAlmLowCoeLower(); } } } QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("battgroup_id",battgroupId); wrapper.orderByAsc("mon_num"); List dataList=mapper.selectList(wrapper); if(dataList!=null&&dataList.size()>0){ for(BattRtdata data:dataList){ if(data.getMonVol()monVolUpper||data.getMonRes()monResUpper){ flag=1; break; }else{ flag=0; } } }else{ flag=1; } return flag; } }