| | |
| | | package com.zy.asrs.task; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.Order1; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.Order1Service; |
| | | 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; |
| | | import com.zy.common.entity.Parameter; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | |
| | | public class OrderSyncScheduler { |
| | | |
| | | @Autowired |
| | | private OrderSyncHandler orderSyncHandler; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private Order1Service order1Service; |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void queryAndSave(){ |
| | | // for (WrkMast wrkMast : wrkMasts) { |
| | | // ReturnT<String> result = workLogHandler.start(wrkMast); |
| | | // if (!result.isSuccess()) { |
| | | // log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo()); |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void completeAndReport(){ |
| | | // 所有订单 |
| | | List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); |
| | | for (Order order : orders) { |
| | | // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); |
| | | // results.add(result); |
| | | // result.setOrderNo(order.getOrderNo()); |
| | | // result.setOrderTime(order.getOrderTime()); |
| | | // result.setOrderType(order.getDocType$()); |
| | | // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); |
| | | // for (OrderDetl orderDetl : orderDetls) { |
| | | // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); |
| | | // } |
| | | // // 修改订单状态 4.完成 ===>> 6.已上报 |
| | | // if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | // throw new CoolException("服务器内部错误,请联系管理员"); |
| | | // } |
| | | @Scheduled(cron = "0 0 1 * * ? ") |
| | | public void clearApiLog(){ |
| | | try { |
| | | apiLogService.clearWeekBefore(); |
| | | } catch (Exception e) { |
| | | log.error("第三方接口日志自动清除失败(范围:一周之前", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 入库订单、出库订单完成上报 |
| | | */ |
| | | @Scheduled(cron = "0/5 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | | 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()== 81){ |
| | | continue; |
| | | } |
| | | try { |
| | | ReturnT<String> result = orderSyncHandler.start(order); |
| | | if (!result.isSuccess()) { |
| | | log.error("单据[orderNo={}]上报erp失败", order.getOrderNo()); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | log.error("单据[orderNo={}]上报erp报错", order.getOrderNo()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 销售出库订单明细完成上报 |
| | | */ |
| | | @Scheduled(cron = "0/5 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | | public synchronized void completeAndReport1(){ |
| | | String erpReport = Parameter.get().getErpReport(); |
| | | if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) { |
| | | List<Order1> orders = order1Service.selectComplete(); |
| | | for (Order1 order : orders) { |
| | | if(order.getDocType()!= 81){ |
| | | continue; |
| | | } |
| | | try { |
| | | ReturnT<String> result = orderSyncHandler.start1(order); |
| | | if (!result.isSuccess()) { |
| | | log.error("单据[orderNo={}]上报erp失败", order.getOrderNo()); |
| | | }else { |
| | | //更新子表状态4--》6 |
| | | if (!order1Service.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为上报失败"); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | log.error("单据[orderNo={}]上报erp报错", order.getOrderNo()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // /** |
| | | // * 销售出库订单明细完成上报 |
| | | // */ |
| | | // @Scheduled(cron = "0/5 * * * * ? ") |
| | | // @Async("orderThreadPool") |
| | | // public void completeAndReport1(){ |
| | | // String erpReport = Parameter.get().getErpReport(); |
| | | // if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) { |
| | | // List<OrderDetl> orderDetls = orderDetlService.reportERPOrderDetl(); |
| | | // for (OrderDetl orderDetl : orderDetls) { |
| | | // Order order = orderService.selectByNo(orderDetl.getOrderNo()); |
| | | // try { |
| | | // ReturnT<String> result = orderSyncHandler.start1(order, orderDetl); |
| | | // if (!result.isSuccess()) { |
| | | // log.error("单据明细[orderNo={}],[matnr={}],[batch={}]上报erp失败", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch()); |
| | | // } |
| | | // }catch (Exception e){ |
| | | // e.printStackTrace(); |
| | | // log.error("单据明细[orderNo={}],[matnr={}],[batch={}]上报erp失败", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch()); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | } |