From 354e6f1cf9a83b6207a2cd510e3f2528a6b149aa Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Thu, 31 Jul 2025 17:35:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=B9=E6=8D=AE=E5=89=8D?= =?UTF-8?q?=E7=BD=AE=E5=BF=83=E8=B7=B3=E6=9B=B4=E6=96=B0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E9=80=9A=E4=BF=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pq/job/DeviceComflagTasks.java | 89 +++++++++++++++++++ .../timer/tasks/DataRecallTaskRunner.java | 4 +- 2 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/DeviceComflagTasks.java diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/DeviceComflagTasks.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/DeviceComflagTasks.java new file mode 100644 index 000000000..8ea761a1b --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/DeviceComflagTasks.java @@ -0,0 +1,89 @@ +package com.njcn.device.pq.job; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.njcn.dataProcess.api.PqsCommunicateFeignClient; +import com.njcn.dataProcess.pojo.dto.PqsCommunicateDto; +import com.njcn.device.pq.constant.Param; +import com.njcn.device.pq.mapper.LineMapper; +import com.njcn.device.pq.mapper.NodeMapper; +import com.njcn.device.pq.mapper.PqsTerminalLogsMapper; +import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.dto.NodeProcessDeviceTree; +import com.njcn.device.pq.pojo.po.Device; +import com.njcn.device.pq.pojo.po.DeviceProcess; +import com.njcn.device.pq.pojo.po.Node; +import com.njcn.device.pq.pojo.po.PqsTerminalLogs; +import com.njcn.device.pq.service.DeviceProcessService; +import com.njcn.device.pq.service.IDeviceService; +import com.njcn.message.constant.DeviceRebootType; +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.api.DicDataFeignClient; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * Description: + * Date: 2025/07/31 下午 4:23【需求编号】 + *定时根据前置心跳设置设备状态 + * @author clam + * @version V1.0.0 + */ +@Component +@EnableScheduling +@RequiredArgsConstructor +public class DeviceComflagTasks { + private final NodeMapper nodeMapper; + private final IDeviceService iDeviceService; + private final DeviceProcessService deviceProcessService; + private final PqsCommunicateFeignClient pqsCommunicateFeignClient; + private final RedisUtil redisUtil; + private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); + + @Scheduled(fixedRate = 1000*60*3) // 每3钟执行一次 + public void updateDeviceComflag() { + List nodeList = nodeMapper.selectList(null); + for (Node node : nodeList) { + for (int i = 1; i <= node.getMaxProcessNum(); i++) { + + //h获取redis里心跳如果收不到心跳 + + String heartByKey = redisUtil.getStringByKey(node.getId().concat(":").concat(i + "")); + if(StringUtils.isBlank(heartByKey)){ + List list = iDeviceService.lambdaQuery().eq(Device::getNodeId, node.getId()).list(); + if(!CollectionUtils.isEmpty(list)){ + List collect = list.stream().map(Device::getId).collect(Collectors.toList()); + List deviceProcess = deviceProcessService.lambdaQuery().in(DeviceProcess::getId, collect).eq(DeviceProcess::getProcessNo, i).list(); + + List collect2 = deviceProcess.stream().map(DeviceProcess::getId).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(list)){ + collect2.forEach(temp->{ + PqsCommunicateDto pqsCommunicateDto = new PqsCommunicateDto(); + pqsCommunicateDto.setTime(LocalDateTimeUtil.now().format(DatePattern.NORM_DATETIME_FORMATTER)); + pqsCommunicateDto.setDevId(temp); + pqsCommunicateDto.setType(0); + + pqsCommunicateFeignClient.insertion(pqsCommunicateDto) ; + }); + + } + + } + } + } + } + + } +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/DataRecallTaskRunner.java b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/DataRecallTaskRunner.java index 917fb0f40..f0460a167 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/DataRecallTaskRunner.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/DataRecallTaskRunner.java @@ -33,11 +33,11 @@ public class DataRecallTaskRunner implements TimerTaskRunner { if(StrUtil.isBlank(date)){ baseParam.setReCallStartTime(LocalDate.now().minusDays(1)); - baseParam.setReCallEndTime(LocalDate.now()); + baseParam.setReCallEndTime(LocalDate.now().minusDays(1)); }else { LocalDate localDate = LocalDateTimeUtil.parseDate(date,DatePattern.NORM_DATE_FORMATTER); baseParam.setReCallStartTime(localDate); - baseParam.setReCallEndTime(localDate.plusDays(1)); + baseParam.setReCallEndTime(localDate); } dataRecallFeignClient.recall(baseParam); }