package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.LocCheck; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderCheck; import com.zy.asrs.service.LocCheckService; import com.zy.asrs.service.OrderCheckService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.OrderCheckHandler; import com.zy.asrs.task.handler.OrderLogHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; @Slf4j @Component public class OrderCheckScheduler { @Autowired private LocCheckService locCheckService; @Autowired private OrderCheckService orderCheckService; @Autowired private OrderCheckHandler orderCheckHandler; //定时任务,判断盘点单据内所有条目是否审核完成,完成则更改盘点单状态 @Scheduled(cron = "0/10 * * * * ? ") private void execute(){ List orderChecks = orderCheckService.selectList(null); for (OrderCheck orderCheck : orderChecks){ if (orderCheck.getSettle() == 1 || orderCheck.getSettle() == 2){ EntityWrapper locCheckEntityWrapper = new EntityWrapper<>(); locCheckEntityWrapper.eq("order_no",orderCheck.getOrderNo()); List locChecks = locCheckService.selectList(locCheckEntityWrapper); int status = 1; for (LocCheck locCheck : locChecks){ if (locCheck.getExamine() == 0 ){ status = 0; } } if (status != 0){ orderCheck.setSettle(4L); orderCheckService.updateById(orderCheck); } } } } //定时任务 将已完成的盘点单从主表转移至历史档 @Scheduled(cron = "0/10 * * * * ? ") private void executeLog(){ List orders = orderCheckService.selectToBeHistoryOrder(); if (orders.isEmpty()) { return; } for (OrderCheck order : orders) { ReturnT result = orderCheckHandler.start(order); if (!result.isSuccess()) { log.error("单据档[orderNo={}]历史档处理失败", order.getOrderNo()); } } } }