SyncStatusHandler.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.ydtech.modules.xxl.handler;
  2. import com.xxl.job.core.handler.annotation.XxlJob;
  3. import com.ydtech.modules.xxl.mapper.XxlInsAreaCompanyMapper;
  4. import com.ydtech.modules.xxl.model.InsAreaCompany;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Component;
  7. import java.text.SimpleDateFormat;
  8. import java.time.Duration;
  9. import java.time.LocalDateTime;
  10. import java.time.format.DateTimeFormatter;
  11. import java.util.Calendar;
  12. import java.util.Date;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. /**
  16. * 同步已承保状态的定时任务
  17. * 将已承包的同步到内部状态中
  18. */
  19. @Component
  20. public class SyncStatusHandler {
  21. @Autowired
  22. XxlInsAreaCompanyMapper insAreaCompanyMapper;
  23. @XxlJob("syncStatusHandler")
  24. public void syncStatusHandler() {
  25. // 设置日期时间格式
  26. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  27. HashMap<String,String> time = get24HourTime();
  28. List<InsAreaCompany> noSyncList = insAreaCompanyMapper.getNoSyncList(time.get("startTime"), time.get("endTime"));
  29. noSyncList.forEach(insAreaCompany -> {
  30. insAreaCompany.setInsideOrderStatus(Integer.parseInt(insAreaCompany.getOrderstatus()));
  31. if(insAreaCompany.getPayDate() == null || "".equals(insAreaCompany.getPayDate())){
  32. insAreaCompany.setInsidePayTime(time.get("startTime"));
  33. }else{
  34. insAreaCompany.setInsidePayTime(insAreaCompany.getPayDate().format(formatter));
  35. }
  36. insAreaCompanyMapper.updateInsideOrder(insAreaCompany);
  37. });
  38. }
  39. private HashMap<String,String> get24HourTime(){
  40. HashMap<String,String> components = new HashMap<>();
  41. // 获取当前时间
  42. LocalDateTime currentTime = LocalDateTime.now();
  43. // 获取前24小时的时间
  44. LocalDateTime previous24Hours = currentTime.minus(Duration.ofHours(24));
  45. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  46. LocalDateTime current = LocalDateTime.now();
  47. components.put("startTime",previous24Hours.format(formatter));
  48. components.put("endTime",current.format(formatter));
  49. return components;
  50. }
  51. }