package com.ard.alarm.digitization.service.impl; import com.alibaba.fastjson2.JSON; import com.ard.alarm.digitization.model.DataBridge; import com.ard.alarm.digitization.service.DataBridgeService; import com.ard.utils.jdbc.Query; import com.ard.utils.mqtt.MqttConsumer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; /** * @Description: * @ClassName: DatabridgeServiceImpl * @Author: 刘苏义 * @Date: 2023年09月18日16:41:50 **/ @Service @Slf4j(topic = "digitization3") public class DataBridgeServiceImpl implements DataBridgeService { public static Date lastTime; @Value("${spring.digitization3.enabled}") private Boolean enabled; @Scheduled(cron = "0/5 * * * * ?") public void alarmHandler() { List dataBridgeList; try { if(!enabled) { return; } if (lastTime == null) { //初次查询,只获取10条最近数据。 dataBridgeList = Query.getAlarmData(null, 10); if (dataBridgeList.size() > 0) { lastTime = dataBridgeList.get(0).getDateTime(); } } else { //查询大于上次查询最后一条数据的时间 dataBridgeList = Query.getAlarmData(lastTime, null); } 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()); } } }