| | |
| | | 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.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 javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * @Description: |
| | |
| | | * @Date: 2023年09月18日16:41:50 |
| | | **/ |
| | | @Service |
| | | @Slf4j(topic = "alarm") |
| | | @Slf4j(topic = "digitization3") |
| | | public class DataBridgeServiceImpl implements DataBridgeService { |
| | | |
| | | |
| | | @Resource |
| | | DataBridgeMapper databridgeMapper; |
| | | public static Date lastTime; |
| | | @Value("${spring.digitization3.enabled}") |
| | | private Boolean enabled; |
| | | |
| | | @Scheduled(cron = "0/5 * * * * ?") |
| | | public void alarmHandler() { |
| | | List<DataBridge> dataBridgeList; |
| | | try { |
| | | List<DataBridge> dataBridgeList = selectDatabridgeList(new DataBridge()); |
| | | 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()); |
| | | log.error("3厂数字化报警数据处理异常:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |