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 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 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 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 rtDataList = dataService.getDataList_index0(); List 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 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); } }