自动化立体仓库 - WMS系统
luxiaotao1123
2022-03-24 609a1b7daafdc351f6601c046ea3ffae64b6709a
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -122,32 +122,47 @@
        if (order == null || order.getStatus() == 0) {
            return R.error("订单不存在");
        }
        Date now = new Date();
        Long userId = getUserId();
        // 修改主档
        if (!param.getDocType().equals(order.getDocType())) {
            order.setDocType(param.getDocType());
            order.setUpdateBy(getUserId());
            order.setUpdateTime(new Date());
            order.setUpdateBy(userId);
            order.setUpdateTime(now);
            if (!orderService.updateById(order)) {
                throw new CoolException("修改订单类型失败");
            }
        }
        // 修改明细档
        Iterator<OrderDetl> iterator = param.getOrderDetlList().iterator();
        while (iterator.hasNext()) {
            OrderDetl orderDetl = iterator.next();
            OrderDetl detl = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 1.清空明细档
        if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
            throw new CoolException("清空订单明细失败");
        }
        // 2.重组数据
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            OrderDetl detl = orderDetlService.findByLook(orderDetls, order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
            // 新增
            if (detl == null) {
                detl = orderDetl;
                detl.setOrderId(order.getId());
                detl.setCreateTime(now);
                detl.setCreateBy(userId);
                detl.setUpdateTime(now);
                detl.setUpdateBy(userId);
                detl.setStatus(1);
            // 修改
            } else {
                detl.setAnfme(orderDetl.getAnfme());    // 修改数量
                detl.setUpdateTime(now);
                detl.setUpdateBy(userId);
            }
            // 持久化
            if (!orderDetlService.insert(detl)) {
                throw new CoolException("新增订单明细失败");
            }
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        return R.ok();
        return R.ok("订单修改成功");
    }