package com.qianwen.mdc.collect.runner;
|
|
import java.time.LocalDate;
|
import java.util.Arrays;
|
import java.util.List;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.stereotype.Component;
|
|
import com.google.common.collect.Sets;
|
import com.qianwen.mdc.collect.cache.TimeSliceCache;
|
import com.qianwen.mdc.collect.dto.CacheBuildDTO;
|
import com.qianwen.mdc.collect.mapper.iotdb.DeviceStateMapper;
|
import com.qianwen.mdc.collect.service.DeviceStateFixPointService;
|
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DateTime;
|
|
@Component
|
public class InitRunner implements ApplicationRunner {
|
private static final Logger log = LoggerFactory.getLogger(InitRunner.class);
|
|
@Autowired
|
private DeviceStateFixPointService stateFixPointService;
|
@Autowired
|
private TimeSliceCache timeSliceCache;
|
@Autowired
|
private DeviceStateMapper deviceStateMapper;
|
//@Autowired
|
//private WorkstationAppMappingService mappingService;;
|
|
@Override
|
public void run(ApplicationArguments args) throws Exception {
|
|
//mappingService.saveToCache();
|
|
//生成时间切片
|
CacheBuildDTO cacheBuildDTO = CacheBuildDTO.builder().tenantIds(Sets.newHashSet(new String[]{"000000"})).targetDate(LocalDate.now()).build();
|
timeSliceCache.build(cacheBuildDTO);
|
|
checkNeedStateFixPoint();
|
}
|
|
//@RedisLock("posting:lock:initStateFixPoint")
|
public void checkNeedStateFixPoint() {
|
DateTime dateTime = DateTime.now();
|
log.info("程序启动校验是否存在工位打过固定点....... ");
|
|
Long count = deviceStateMapper.fixPointCountByDate(Integer.valueOf(DatePattern.PURE_DATE_FORMAT.format(dateTime)));
|
/*
|
Long result = this.workstationStateMapper.selectCount(Wrappers.<WorkstationState>lambdaQuery()
|
.eq(WorkstationState::getFactoryDate, Integer.valueOf(DatePattern.PURE_DATE_FORMAT.format(dateTime)))
|
.eq(WorkstationState::getIsFixPoint, Boolean.TRUE));
|
*/
|
//Long result = 1L;
|
if(count == null || count == 0) {
|
//if (count <= 0) {
|
log.info("设备未打过锚点,启动时打点....... ");
|
//this.workStationStateFixPointService.workStationStateFixPoint(dateTime, null);
|
//List<String> wids = Arrays.asList("1656819188967653378");
|
stateFixPointService.deviceStateFixPoint(dateTime, null);
|
}else {
|
log.info("设备已存在锚点");
|
}
|
}
|
}
|