package com.lts.QC.task; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.lts.QC.domain.MesAnker; import com.lts.QC.service.AnkerMcgsMesService; import com.lts.QC.service.MesAnkerService; import com.lts.QC.sqlServerEntity.AnkerMcgsMes; import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Component @RequiredArgsConstructor public class ScheduledTasks { private final MesAnkerService mesAnkerService; private final AnkerMcgsMesService ankService; /** * 每两分钟执行一次 * * @return void * @author tjx * @description TODO * @date 2024/9/27 21:48 */ @Scheduled(cron = "0 0/2 * * * ?") public void getDeviceRealTimeData() { LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); queryWrapper1.eq(AnkerMcgsMes::getIsReceive, 0); List list = ankService.list(queryWrapper1); if (CollectionUtil.isNotEmpty(list)) { List mesAnkers = new ArrayList<>(); for (AnkerMcgsMes ank : list) { MesAnker mesAnker = new MesAnker(); mesAnker.setCreateDate(new Date()); mesAnker.setAnkerId(ank.getId().longValue()); mesAnker.setMcgsTime(ank.getMcgsTime()); mesAnker.setMcgsTimems(ank.getMcgsTimems().longValue()); mesAnker.setItemBarcode(ank.getItemBarcode()); mesAnker.setBoardConduction(ank.getBoardConduction()); mesAnker.setHighVoltage(ank.getHighVoltage()); mesAnker.setLeakageCurrentLn(ank.getLeakageCurrentLn()); mesAnker.setLeakageCurrentLng(ank.getLeakageCurrentLng()); mesAnker.setGroundCurrent(ank.getGroundCurrent()); mesAnker.setLoad(ank.getLoadMes()); mesAnker.setOverloadTimer(ank.getOverloadTimer()); mesAnker.setComprehensiveJudgment(ank.getComprehensiveJudgment()); mesAnkers.add(mesAnker); } boolean b = mesAnkerService.saveBatch(mesAnkers); if (b) { List list1 = list.stream().map(AnkerMcgsMes::getId).collect(Collectors.toList()); LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper<>(); queryWrapper.set(AnkerMcgsMes::getIsReceive, Integer.valueOf(1)).in(AnkerMcgsMes::getId, list1); ankService.update(queryWrapper); } } } }