| | |
| | | import com.whyc.constant.CMD_Constant; |
| | | import com.whyc.dto.DevalarmSet; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.CkpowerdevBattRsalarmSetMapper; |
| | | import com.whyc.mapper.CkpowerdevBattRtalarmSetMapper; |
| | | import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevAlmParam; |
| | | import com.whyc.pojo.db_ckpwrdev_data_rt.CkpowerdevBattRsalarmSet; |
| | | 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 rsMapper; |
| | | private CkpowerdevBattRsalarmSetMapper rsalarmSetMapper; |
| | | |
| | | @Autowired(required = false) |
| | | private CkpowerdevBattRtalarmSetMapper rtMapper; |
| | | 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) { |
| | | rsMapper.update(almSet.getRsAlmSet(),null); |
| | | rtMapper.update(almSet.getRtAlmSet(),null); |
| | | List<CKPowerDevBattRtDataSet> dataSetList = almSet.getRtDataSetList(); |
| | | Integer battIndex = dataSetList.get(0).getBattIndex(); |
| | | //1.刷新rsAlarmSet,rtDataSet,rtStateSet实时数据 |
| | | updateDataFromDataAndStateAndRsAlarmToSet(almSet.getRtDataSetList()); |
| | | |
| | | //修改rsAlarmSet |
| | | rsalarmSetMapper.update(almSet.getRsAlmSet(),null); |
| | | //设置data_set表 |
| | | rtDataSetMapper.updateBatchInRsAlarm(dataSetList); |
| | | //设置state_set表 |
| | | rtStateSetMapper.update(almSet.getRtStateSet(),null); |
| | | //读取opCmd返回是否成功 |
| | | QueryWrapper<CKPowerDevAlmParam> query = Wrappers.query(); |
| | | return OpCmdUtil.getOpStatus(rsMapper,query, CMD_Constant.CMD_SetBattAlarm,20,null); |
| | | 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; |
| | | } |
| | | |
| | | public void update(CkpowerdevBattRsalarmSet rsAlarmSet) { |
| | | rsMapper.update(rsAlarmSet,null); |
| | | private void updateDataFromDataAndStateAndRsAlarmToSet(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); |
| | | } |
| | | } |