|  |  | 
 |  |  | package com.zy.asrs.task; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.zy.asrs.entity.AgvLocDetl; | 
 |  |  | import com.zy.asrs.entity.Order; | 
 |  |  | import com.zy.asrs.entity.OrderDetl; | 
 |  |  | import com.zy.asrs.service.AgvLocDetlService; | 
 |  |  | import com.zy.asrs.service.ApiLogService; | 
 |  |  | import com.zy.asrs.service.OrderDetlService; | 
 |  |  | import com.zy.asrs.service.OrderService; | 
 |  |  | import com.zy.asrs.task.core.ReturnT; | 
 |  |  | import com.zy.asrs.task.handler.OrderSyncHandler; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ApiLogService apiLogService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private AgvLocDetlService agvLocDetlService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlService orderDetlService; | 
 |  |  |  | 
 |  |  |     @Scheduled(cron = "0 0 1 * * ? ") | 
 |  |  |     public void clearApiLog(){ | 
 |  |  |     public void clearApiLog() { | 
 |  |  |         try { | 
 |  |  |             apiLogService.clearWeekBefore(); | 
 |  |  |         } catch (Exception e) { | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Scheduled(cron = "0/5 * * * * ? ") | 
 |  |  |     //@Async("orderThreadPool") | 
 |  |  |     public void completeAndReport(){ | 
 |  |  |     public void completeAndReport() { | 
 |  |  |         String erpReport = Parameter.get().getErpReport(); | 
 |  |  |         if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) { | 
 |  |  |             List<Order> orders = orderService.selectComplete(); | 
 |  |  |             for (Order order : orders) { | 
 |  |  |                 //如果是加工单则进行判断 | 
 |  |  |                 if (order.getDocType() == 33) { | 
 |  |  |                     //查询库存中是否存在该订单的物料信息,存在则不处理该订单 | 
 |  |  |                     List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId()); | 
 |  |  |                     Boolean flag = false; | 
 |  |  |                     for (OrderDetl orderDetl : orderDetlList) { | 
 |  |  |                         List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("matnr", orderDetl.getMatnr()).eq("three_code", orderDetl.getThreeCode())); | 
 |  |  |                         if (!Cools.isEmpty(agvLocDetls)) { | 
 |  |  |                             //只要有一项订单明细存在,则标识为true,跳过该订单 | 
 |  |  |                             flag = true; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (flag) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 ReturnT<String> result = orderSyncHandler.start(order); | 
 |  |  |                 if (!result.isSuccess()) { | 
 |  |  |                     log.error("单据[orderNo={}]上报erp失败", order.getOrderNo()); | 
 |  |  | 
 |  |  |     定时查询状态为2.作业中的单据,检查是否完成 | 
 |  |  |      */ | 
 |  |  |     @Scheduled(cron = "0 */1 * * * ? ") | 
 |  |  |     public void completeOrder(){ | 
 |  |  |     public void completeOrder() { | 
 |  |  |         List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("settle", 2)); | 
 |  |  |         orderList.forEach(order -> { | 
 |  |  |             orderService.checkComplete(order.getOrderNo()); |