package com.zy.asrs.task.kingdee; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.Order; import com.zy.asrs.service.OrderService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.kingdee.handler.SaveOrderSyncHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; /** * Created by Monkey D. Luffy on 2023.10.21 */ @Slf4j @Component public class SaveOrderSyncScheduler { @Autowired private SaveOrderSyncHandler saveOrderSyncHandler; @Autowired private OrderService orderService; @Value("${erp.switch.SaveOrderSwitch}") private boolean SaveOrderSwitch; @Scheduled(cron = "0/3 * * * * ? ") @Async("orderThreadPool") public void completeAndReport() { if (!SaveOrderSwitch) { return; } List orders = orderService.selectCompletemEmo1(); for (Order order : orders) { try { ReturnT result = saveOrderSyncHandler.start(order); if (!result.isSuccess()) { log.error("单据[orderNo={}]保存至erp失败", order.getOrderNo()); } } catch (Exception e) { Order order1 = orderService.selectById(order.getId()); order1.setUpdateTime(new Date()); orderService.updateById(order1); } } } }