package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.exception.CoolException; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.mapper.OrderDetlMapper; import com.zy.asrs.service.OrderService; import com.zy.asrs.service.WrkDetlService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkLogHandler; 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; /** * Created by vincent on 2020/7/7 */ @Slf4j @Component public class WorkLogScheduler { @Autowired private WorkLogHandler workLogHandler; @Autowired private WrkMastService wrkMastService; @Autowired private OrderService orderService; @Autowired private WrkDetlService wrkDetlService; @Autowired private OrderDetlMapper orderDetlMapper; @Scheduled(cron = "0/3 * * * * ? ") private void execute() { List wrkMasts = wrkMastService.selectToBeHistoryData(); if (wrkMasts.isEmpty()) { return; } for (WrkMast wrkMast : wrkMasts) { ReturnT result = workLogHandler.start(wrkMast); if (!result.isSuccess()) { log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo()); } } } @Scheduled(cron = "0/3 * * * * ? ") private void execute2() { List orders = orderService.selectWork(); for (Order order : orders) { List wrkDetls = wrkDetlService.selectByOrderNo(order.getOrderNo()); if (wrkDetls != null) { return; } List orderDetls = orderDetlMapper.selectList(new EntityWrapper().eq("order_id", order.getId())); boolean complete = true; for (OrderDetl orderDetl : orderDetls) { if (orderDetl.getAnfme() > orderDetl.getQty()) { complete = false; break; } } if (complete) { if (!orderService.updateSettle(order.getId(), 4L, null)) { throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败"); } } } } }