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 setDevAlmHrStop(DevalarmSet almSet) {
|
//List<CKPowerDevBattRtDataSet> dataSetList = almSet.getRtDataSetList();
|
//Integer battIndex = dataSetList.get(0).getBattIndex();
|
//1.刷新rsAlarmSet,rtdataSet,rtState告警实时数据<指定默认刷第一组数据>
|
updateDataFromDataAndStateAndRsAlarmToSetHrStop();
|
//命令设置进去
|
almSet.getRsAlmSet().setOpCmd(CMD_Constant.CMD_SetHRSTopAlm);
|
//修改rsAlarmSet
|
rsalarmSetMapper.update(almSet.getRsAlmSet(),null);
|
|
//读取opCmd返回是否成功
|
QueryWrapper<CkpowerdevBattRsalarmSet> query = Wrappers.query();
|
Response opStatus = OpCmdUtil.getOpStatus(rsalarmSetMapper,query, CMD_Constant.CMD_SetHRSTopAlm,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_SetHRSTopAlm);
|
log.setCreateTime(now);
|
log.setCreateDay(now);
|
});
|
setLogService.addBatch(logList);
|
}
|
return opStatus;
|
}
|
//1.刷新rsAlarmSet,rtdataSet,rtState告警实时数据<指定默认刷第一组数据>
|
public void updateDataFromDataAndStateAndRsAlarmToSetHrStop() {
|
//获取默认第一组单体数据刷新至第一组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 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);
|
}
|
|
}
|