自动化立体仓库 - WMS系统
lty
4 天以前 cdfb6025516e43275982780291b4c5bd866bd9d7
src/main/java/com/zy/third/erp/task/ERPInOrOutCancelService.java
@@ -24,7 +24,7 @@
    private OrderDetlService orderDetlService;
    public com.zy.third.lk.entity.InCancelTB tryCancel(String orderNo) {
    public com.zy.third.lk.entity.InCancelTB tryCancelIn(String orderNo) {
        com.zy.third.lk.entity.InCancelTB lkCancel = new com.zy.third.lk.entity.InCancelTB();
        List<Order> targets = orderService.selectList(new EntityWrapper<Order>()
@@ -62,5 +62,44 @@
    }
    public com.zy.third.lk.entity.OutCancelTB tryCancelOut(String orderNo) {
        com.zy.third.lk.entity.OutCancelTB lkCancel = new com.zy.third.lk.entity.OutCancelTB();
        List<Order> targets = orderService.selectList(new EntityWrapper<Order>()
                .eq("order_no",orderNo));
        log.info("要取消的订单:{}", targets);
        if (targets.isEmpty()) {
            lkCancel.setBillNo(orderNo);
            lkCancel.setOpFlag(1);
            //erp方要求,订单找不到,返回1
            lkCancel.setMakeDate(new Date());
            return lkCancel;
        } else {
            //默认订单id不能重复
            Order order = targets.get(0);
            List<OrderDetl> detlList = orderDetlService.selectItem(order.getOrderNo());
            log.info("要取消的订单详情:{}", detlList);
            Optional<OrderDetl> any = detlList.stream().filter(s -> s.getQty().compareTo(0D) > 0).findAny();
            if (order.getSettle() > 1L || any.isPresent()) {
                lkCancel.setBillNo(orderNo);
                lkCancel.setOpFlag(2);
                lkCancel.setMakeDate(new Date());
                return lkCancel;
            }
            orderService.addToLogTable(order);
            orderService.delete(new EntityWrapper<Order>()
                    .eq("order_no", order.getOrderNo()));
            detlList.stream().forEach(d -> orderDetlService.addToLogTable(d));
            orderDetlService.delete(new EntityWrapper<OrderDetl>()
                    .eq("order_no", order.getOrderNo()));
            lkCancel.setBillNo(orderNo);
            lkCancel.setOpFlag(1);
            lkCancel.setMakeDate(new Date());
            return lkCancel;
        }
    }
}