| 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<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData(); | 
|         if (wrkMasts.isEmpty()) { | 
|             return; | 
|         } | 
|         for (WrkMast wrkMast : wrkMasts) { | 
|             ReturnT<String> result = workLogHandler.start(wrkMast); | 
|             if (!result.isSuccess()) { | 
|                 log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo()); | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     @Scheduled(cron = "0/3 * * * * ? ") | 
|     private void execute2() { | 
|         List<Order> orders = orderService.selectWork(); | 
|         for (Order order : orders) { | 
|             List<WrkDetl> wrkDetls = wrkDetlService.selectByOrderNo(order.getOrderNo()); | 
|             if (wrkDetls != null) { | 
|                 return; | 
|             } | 
|             List<OrderDetl> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().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() + "】状态为已完成失败"); | 
|                 } | 
|             } | 
|         } | 
|     } | 
| } |