package com.ard.alarm.digitization.service.impl; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ard.alarm.digitization.mapper.DataBridgeMapper; import com.ard.alarm.digitization.model.DataBridge; import com.ard.alarm.digitization.service.DataBridgeService; import com.ard.alarm.stealelec.domain.ArdAlarmStealelec; import com.ard.utils.mqtt.MqttConsumer; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Map; /** * @Description: * @ClassName: DatabridgeServiceImpl * @Author: 刘苏义 * @Date: 2023年09月18日16:41:50 **/ @Service @Slf4j(topic = "alarm") public class DataBridgeServiceImpl implements DataBridgeService { @Resource DataBridgeMapper databridgeMapper; public static Date lastTime; @Scheduled(cron = "0/5 * * * * ?") public void alarmHandler() { try { List dataBridgeList = selectDatabridgeList(new DataBridge()); if (dataBridgeList.size() > 0) { for (DataBridge data : dataBridgeList) { String[] elem = data.getValue().split(";"); data.setWellNo(elem[0]); data.setAlarmType(elem[1]); data.setAlarmTime(elem[2]); MqttConsumer.publish(2, false, "digitization3", JSON.toJSONString(data)); } } } catch (Exception ex) { log.error("3厂数字化报警数据推送异常:" + ex.getMessage()); } } @Override public List selectDatabridgeList(DataBridge row) { List dataBridgeList; if (lastTime == null) { lastTime = new Date(); row.setRowNum(10); dataBridgeList = databridgeMapper.selectDatabridgeList(row); lastTime = dataBridgeList.get(0).getDateTime(); } else { row.setDateTime(lastTime); dataBridgeList = databridgeMapper.selectDatabridgeList(row); } return dataBridgeList; } }