yangys
2024-10-08 ba9557b5edf7f31ab8bce0ae57aaaaefd6459bb4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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<String> workStationAggregateJobHandler(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, 定时计算工位的状态,产量等信息,开始发送.....", new Object[0]);
        
        Map<Long, WorkstationDTO> workstations = workstationCache.getWorkstations();
        if (ObjectUtil.isNotEmpty(workstations)) {
            
            Set<Long> 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;
    }
}