package com.ydtech.modules.xxl.handler; import com.xxl.job.core.handler.annotation.XxlJob; import com.ydtech.modules.xxl.mapper.XxlInsAreaCompanyMapper; import com.ydtech.modules.xxl.model.InsAreaCompany; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; /** * 同步已承保状态的定时任务 * 将已承包的同步到内部状态中 */ @Component public class SyncStatusHandler { @Autowired XxlInsAreaCompanyMapper insAreaCompanyMapper; @XxlJob("syncStatusHandler") public void syncStatusHandler() { // 设置日期时间格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); HashMap time = get24HourTime(); List noSyncList = insAreaCompanyMapper.getNoSyncList(time.get("startTime"), time.get("endTime")); noSyncList.forEach(insAreaCompany -> { insAreaCompany.setInsideOrderStatus(Integer.parseInt(insAreaCompany.getOrderstatus())); if(insAreaCompany.getPayDate() == null || "".equals(insAreaCompany.getPayDate())){ insAreaCompany.setInsidePayTime(time.get("startTime")); }else{ insAreaCompany.setInsidePayTime(insAreaCompany.getPayDate().format(formatter)); } insAreaCompanyMapper.updateInsideOrder(insAreaCompany); }); } private HashMap get24HourTime(){ HashMap components = new HashMap<>(); // 获取当前时间 LocalDateTime currentTime = LocalDateTime.now(); // 获取前24小时的时间 LocalDateTime previous24Hours = currentTime.minus(Duration.ofHours(24)); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime current = LocalDateTime.now(); components.put("startTime",previous24Hours.format(formatter)); components.put("endTime",current.format(formatter)); return components; } }