whyclxw
2025-06-13 fbd26bdd7e89693f86b71969a885779a9ab065a3
src/main/java/com/whyc/service/BattRtdataService.java
@@ -1,7 +1,10 @@
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;
@@ -12,6 +15,9 @@
public class BattRtdataService {
    @Autowired(required = false)
    private BattRtdataMapper mapper;
    @Autowired(required = false)
    private BattAlmparamService almparamService;
    //实时获取单体信息
    public List<BattRtdata> getRtdataRealInfo(Integer battgroupId) {
        QueryWrapper wrapper=new QueryWrapper();
@@ -29,4 +35,43 @@
        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<BattAlmparam> 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<BattRtdata> dataList=mapper.selectList(wrapper);
        if(dataList!=null&&dataList.size()>0){
            for(BattRtdata data:dataList){
                if(data.getMonVol()<monVolLower||data.getMonVol()>monVolUpper||data.getMonRes()<monResLower||data.getMonRes()>monResUpper){
                    flag=1;
                    break;
                }else{
                    flag=0;
                }
            }
        }else{
            flag=1;
        }
        return flag;
    }
}