123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.fdkankan.project.tieta.schedule;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.date.DateTime;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.fdkankan.project.tieta.constant.Constant;
- import com.fdkankan.project.tieta.dto.ScenePushDTO;
- import com.fdkankan.project.tieta.entity.FullphotoFileindex;
- import com.fdkankan.project.tieta.entity.FullphotoUprecord;
- import com.fdkankan.project.tieta.service.FullphotoFileindexService;
- import com.fdkankan.project.tieta.service.FullphotoUprecordService;
- import com.fdkankan.project.tieta.service.IConvertService;
- import com.fdkankan.redis.util.RedisClient;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- @Component
- public class Job {
- private static final String startTime = "2024-09-10 00:00:00";
- @Resource
- private RedisClient redisClient;
- @Autowired
- private FullphotoUprecordService fullphotoUprecordService;
- @Autowired
- private IConvertService convertService;
- @Autowired
- private FullphotoFileindexService fullphotoFileindexService;
- @Scheduled(initialDelay = 2*10*1000, fixedDelay = 10*60*1000)
- public void push(){
- String startTimeStr = redisClient.get(Constant.REDIS_SCENE_CONVERT_STARTTIME);
- if(StrUtil.isEmpty(startTimeStr)){
- startTimeStr = DateUtil.formatDateTime(new Date());
- redisClient.add(Constant.REDIS_SCENE_CONVERT_STARTTIME, startTimeStr);
- }
- DateTime start = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss");
- List<FullphotoUprecord> list = fullphotoUprecordService.list(new LambdaQueryWrapper<FullphotoUprecord>().eq(FullphotoUprecord::getStatus, 1).gt(FullphotoUprecord::getUpTime, start));
- if(CollUtil.isEmpty(list)){
- return;
- }
- Date maxTime = start;
- for (FullphotoUprecord item : list) {
- //判断是否有obj,有obj才推送
- List<FullphotoFileindex> objList = fullphotoFileindexService.list(new LambdaQueryWrapper<FullphotoFileindex>().eq(FullphotoFileindex::getUploadId, item.getUploadId()).eq(FullphotoFileindex::getFileType, "11").eq(FullphotoFileindex::getStatus, 1));
- if(CollUtil.isEmpty(objList)){
- continue;
- }
- convertService.scenePush(ScenePushDTO.builder().upTime(item.getUpTime()).stationCode(item.getStationCode()).entityId(item.getEntityId()).uploadId(item.getUploadId()).build(), null);
- if(maxTime.before(item.getUpTime())){
- maxTime = item.getUpTime();
- redisClient.add(Constant.REDIS_SCENE_CONVERT_STARTTIME, DateUtil.format(maxTime, "yyyy-MM-dd HH:mm:ss"));
- }
- }
- }
- }
|