whyclxw
2 天以前 dbba9c3fc5187432c34329a2a18e07feca729de5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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<BattRtdata> getRtdataRealInfo(Integer battgroupId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("battgroup_id",battgroupId);
        wrapper.orderByAsc("mon_num");
        List<BattRtdata> 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<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;
    }
}