package com.ruoyi.alarm.globalAlarm.service; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper; import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube; import com.ruoyi.alarm.tubeAlarm.mapper.ArdAlarmTubeMapper; import com.ruoyi.alarm.tubeAlarm.service.IArdAlarmTubeService; import com.ruoyi.alarmpoints.tube.domain.ArdTubes; import com.ruoyi.alarmpoints.tube.domain.ArdTubesDetails; import com.ruoyi.alarmpoints.tube.mapper.ArdTubesDetailsMapper; import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper; import com.ruoyi.common.utils.uuid.UUID; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * @ClassName: globalAlarmServiceImpl * @Description: * @Author: Administrator * @Date: 2023年03月10日 11:03 * @Version: 1.0 **/ @Service public class GlobalAlarmServiceImpl implements IGlobalAlarmService { @Resource ArdAlarmStealelecMapper ardAlarmStealelecMapper; @Resource IArdAlarmTubeService ardAlarmTubeService; @Resource ArdTubesMapper ardTubesMapper; @Resource ArdTubesDetailsMapper ardTubesDetailsMapper; @Override public List selectAlarmLogs(GlobalAlarmCondition condition) { switch (condition.getCommand()) { case 1001: List ardAlarmStealelecs = ardAlarmStealelecMapper.selectHistoryByCondition(condition); return new ArrayList(ardAlarmStealelecs); default: return null; } } @Override @Async("alarmExecutor") public void receiveAlarm(String topic,String message) { switch (topic) { case "tube": ArdAlarmTube ardAlarmTube = JSONObject.parseObject(message,ArdAlarmTube.class); ardAlarmTube.setId(UUID.randomUUID().toString().replace("-","")); ArdTubesDetails atd=new ArdTubesDetails(); atd.setReelNumber(ardAlarmTube.getTubeId()); List ardTubesDetails = ardTubesDetailsMapper.selectArdTubesDetailsList(atd); if(ardTubesDetails.size()>0) { String tubeId = ardTubesDetails.get(0).getTubeId(); ArdTubes ardTubes = ardTubesMapper.selectArdTubesById(tubeId); ardAlarmTube.setTubeName(ardTubes.getName()); ardAlarmTube.setColor(ardTubes.getColor()); ardAlarmTube.setPipeDiameter(ardTubes.getPipeDiameter()); ardAlarmTube.setTubeType(ardTubes.getType()); } int i = ardAlarmTubeService.insertArdAlarmTube(ardAlarmTube); break; } } }