whyclxw
2024-01-17 3088bef8cb4f9a2513f96175a4349840719c3ea9
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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.whyc.constant.CMD_Constant;
import com.whyc.dto.DevalarmSet;
import com.whyc.dto.Response;
import com.whyc.mapper.*;
import com.whyc.pojo.db_ckpwrdev_data_rt.*;
import com.whyc.util.OpCmdUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
public class CkpowerdevBattRsalarmSetService {
    @Autowired(required = false)
    private CkpowerdevBattRsalarmSetMapper rsalarmSetMapper;
 
    @Autowired(required = false)
    private CKPowerDevBattRtDataSetMapper rtDataSetMapper;
 
    @Autowired(required = false)
    private CKPowerDevBattRtStateSetMapper rtStateSetMapper;
 
    @Autowired
    private CKPowerDevBattRtDataService dataService;
 
    @Autowired
    private CKPowerDevBattRtStateService stateService;
 
    @Autowired
    private CKPowerDevBattRsAlarmService rsAlarmService;
 
    @Resource
    private CkpowerdevBattRsalarmSetLogMapper setLogMapper;
 
    @Resource
    private CkpowerdevBattRsalarmSetLogService setLogService;
 
    //告警设置
    public Response setDevAlm(DevalarmSet almSet) {
        //List<CKPowerDevBattRtDataSet> dataSetList = almSet.getRtDataSetList();
        //Integer battIndex = dataSetList.get(0).getBattIndex();
        //1.刷新rsAlarmSet,rtdataSet,rtState告警实时数据<指定默认刷第一组数据>
        updateDataFromDataAndStateAndRsAlarmToSet();
 
        //修改rsAlarmSet
        rsalarmSetMapper.update(almSet.getRsAlmSet(),null);
        //设置data_set表
        //rtDataSetMapper.updateBatchInRsAlarm(dataSetList);
        //设置state_set表
        //rtStateSetMapper.update(almSet.getRtStateSet(),null);
        //读取opCmd返回是否成功
        QueryWrapper<CKPowerDevAlmParam> query = Wrappers.query();
        Response opStatus = OpCmdUtil.getOpStatus(rsalarmSetMapper,query, CMD_Constant.CMD_SetBattAlarm,20,null);
        if(opStatus.getData()!=null && (boolean)opStatus.getData()) { //成功
            //记录日志
            Date now = new Date();
            List<CkpowerdevBattRsalarmSetLog> logList = almSet.getLogList();
            //查询最大的操作编号
            String opNum=setLogMapper.getOpNum()!=null?setLogMapper.getOpNum():"0";
            logList.forEach(log->{
                log.setOpNum(String.valueOf(Integer.valueOf(opNum)+1));
                log.setCmdType(CMD_Constant.CMD_SetBattAlarm);
                log.setCreateTime(now);
                log.setCreateDay(now);
            });
            setLogService.addBatch(logList);
        }
        return opStatus;
    }
    //1.刷新rsAlarmSet,rtdataSet,rtState告警实时数据<指定默认刷第一组数据>
    private void updateDataFromDataAndStateAndRsAlarmToSet() {
        //获取默认第一组单体数据刷新至第一组0
        List<CKPowerDevBattRtData> rtDataList = dataService.getDataList_index0();
        List<CKPowerDevBattRtDataSet> rtSetDataList = new LinkedList<>();
        CKPowerDevBattRtStateSet stateSet = new CKPowerDevBattRtStateSet();
        for (CKPowerDevBattRtData temp : rtDataList) {
            CKPowerDevBattRtDataSet set = new CKPowerDevBattRtDataSet();
            BeanUtils.copyProperties(temp,set);
            rtSetDataList.add(set);
        }
        rtDataSetMapper.updateBatch(rtSetDataList);
        //获取rtState默认第一组0表数据更新到set表中
        CKPowerDevBattRtState state = stateService.getStateLsit_index0(0);
        BeanUtils.copyProperties(state,stateSet);
        updateStateSet(stateSet);
        //获取rsalarm更新到set表中
        CkpowerdevBattRsalarm rsalarm=rsAlarmService.get();
        CkpowerdevBattRsalarmSet rsalarmSet=new CkpowerdevBattRsalarmSet();
        BeanUtils.copyProperties(rsalarm,rsalarmSet);
        updateRsAlarmSet(rsalarmSet);
    }
    private void updateDataFromDataAndStateAndRsAlarmToSet1(List<CKPowerDevBattRtDataSet> dataSetList) {
        Integer battIndex = dataSetList.get(0).getBattIndex();
        List<Integer> monNumList = dataSetList.stream().map(CKPowerDevBattRtDataSet::getMonNum).collect(Collectors.toList());
        //获取rtData数据并写入set表
        List<CKPowerDevBattRtData> rtDataList = dataService.getMonList(battIndex,monNumList);
        List<CKPowerDevBattRtDataSet> rtSetDataList = new LinkedList<>();
        CKPowerDevBattRtStateSet stateSet = new CKPowerDevBattRtStateSet();
        for (CKPowerDevBattRtData temp : rtDataList) {
            CKPowerDevBattRtDataSet set = new CKPowerDevBattRtDataSet();
            BeanUtils.copyProperties(temp,set);
            rtSetDataList.add(set);
        }
        rtDataSetMapper.updateBatch(rtSetDataList);
        //获取rtState表数据更新到set表中
        CKPowerDevBattRtState state = stateService.get(battIndex);
        BeanUtils.copyProperties(state,stateSet);
        updateStateSet(stateSet);
        //获取rsalarm更新到set表中
        CkpowerdevBattRsalarm rsalarm=rsAlarmService.get();
        CkpowerdevBattRsalarmSet rsalarmSet=new CkpowerdevBattRsalarmSet();
        BeanUtils.copyProperties(rsalarm,rsalarmSet);
        updateRsAlarmSet(rsalarmSet);
    }
    private void updateStateSet(CKPowerDevBattRtStateSet stateSet) {
        UpdateWrapper<CKPowerDevBattRtStateSet> update = Wrappers.update();
        update.eq("batt_index",stateSet.getBattIndex());
        rtStateSetMapper.update(stateSet,update);
    }
 
    private void updateRsAlarmSet(CkpowerdevBattRsalarmSet rsalarmSet) {
        rsalarmSetMapper.update(rsalarmSet,null);
    }
 
    public void update(CkpowerdevBattRsalarmSet rsAlarmSet) {
        rsalarmSetMapper.update(rsAlarmSet,null);
    }
}