Job.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.fdkankan.project.tieta.schedule;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.date.DateTime;
  4. import cn.hutool.core.date.DateUtil;
  5. import cn.hutool.core.util.StrUtil;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.fdkankan.project.tieta.constant.Constant;
  8. import com.fdkankan.project.tieta.dto.ScenePushDTO;
  9. import com.fdkankan.project.tieta.entity.FullphotoFileindex;
  10. import com.fdkankan.project.tieta.entity.FullphotoUprecord;
  11. import com.fdkankan.project.tieta.service.FullphotoFileindexService;
  12. import com.fdkankan.project.tieta.service.FullphotoUprecordService;
  13. import com.fdkankan.project.tieta.service.IConvertService;
  14. import com.fdkankan.redis.util.RedisClient;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.scheduling.annotation.Scheduled;
  17. import org.springframework.stereotype.Component;
  18. import javax.annotation.Resource;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.Map;
  22. @Component
  23. public class Job {
  24. private static final String startTime = "2024-09-10 00:00:00";
  25. @Resource
  26. private RedisClient redisClient;
  27. @Autowired
  28. private FullphotoUprecordService fullphotoUprecordService;
  29. @Autowired
  30. private IConvertService convertService;
  31. @Autowired
  32. private FullphotoFileindexService fullphotoFileindexService;
  33. @Scheduled(initialDelay = 2*10*1000, fixedDelay = 10*60*1000)
  34. public void push(){
  35. String startTimeStr = redisClient.get(Constant.REDIS_SCENE_CONVERT_STARTTIME);
  36. if(StrUtil.isEmpty(startTimeStr)){
  37. startTimeStr = DateUtil.formatDateTime(new Date());
  38. redisClient.add(Constant.REDIS_SCENE_CONVERT_STARTTIME, startTimeStr);
  39. }
  40. DateTime start = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss");
  41. List<FullphotoUprecord> list = fullphotoUprecordService.list(new LambdaQueryWrapper<FullphotoUprecord>().eq(FullphotoUprecord::getStatus, 1).gt(FullphotoUprecord::getUpTime, start));
  42. if(CollUtil.isEmpty(list)){
  43. return;
  44. }
  45. Date maxTime = start;
  46. for (FullphotoUprecord item : list) {
  47. //判断是否有obj,有obj才推送
  48. List<FullphotoFileindex> objList = fullphotoFileindexService.list(new LambdaQueryWrapper<FullphotoFileindex>().eq(FullphotoFileindex::getUploadId, item.getUploadId()).eq(FullphotoFileindex::getFileType, "11").eq(FullphotoFileindex::getStatus, 1));
  49. if(CollUtil.isEmpty(objList)){
  50. continue;
  51. }
  52. convertService.scenePush(ScenePushDTO.builder().upTime(item.getUpTime()).stationCode(item.getStationCode()).entityId(item.getEntityId()).uploadId(item.getUploadId()).build(), null);
  53. if(maxTime.before(item.getUpTime())){
  54. maxTime = item.getUpTime();
  55. redisClient.add(Constant.REDIS_SCENE_CONVERT_STARTTIME, DateUtil.format(maxTime, "yyyy-MM-dd HH:mm:ss"));
  56. }
  57. }
  58. }
  59. }