package com.qianwen.mdc.collect.job; import com.qianwen.mdc.collect.cache.WorkstationCache; import com.qianwen.mdc.collect.dto.WorkstationDTO; import com.qianwen.mdc.collect.service.DeviceStateAggregateService; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.log.XxlJobLogger; import cn.hutool.core.util.ObjectUtil; import java.util.Map; import java.util.Set; import javax.annotation.Resource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class DeviceStatusAggregateJob { private static final Logger log = LoggerFactory.getLogger(DeviceStatusAggregateJob.class); @Resource private DeviceStateAggregateService deviceStateAggregateService; @Autowired private WorkstationCache workstationCache; @XxlJob("workStationAggregateJobHandler") public ReturnT workStationAggregateJobHandler(String param) throws Exception { XxlJobLogger.log("XXL-JOB, 定时计算工位的状态,产量等信息,开始发送.....", new Object[0]); Map workstations = workstationCache.getWorkstations(); if (ObjectUtil.isNotEmpty(workstations)) { Set workStationIds = workstations.keySet(); log.info("聚合状态工位总数:{}",workStationIds.size()); for(Long workstationId :workStationIds) { log.info("开始聚合工位{}的状态",workstationId); deviceStateAggregateService.stateAggregate(workstationId); } } log.info("聚合状态整体结束"); XxlJobLogger.log("XXL-JOB, 定时计算工位的状态,产量等信息,发送结束", new Object[0]); return ReturnT.SUCCESS; } }