自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-03-29 6592a2a095bab7177289adaed866e979a107b22e
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -12,6 +12,7 @@
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +29,19 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @RequestMapping(value = "/order/nav/list/auth")
    @ManagerAuth
    public R navList(@RequestParam(required = false) String orderNo){
        EntityWrapper<Order> wrapper = new EntityWrapper<>();
        if (!Cools.isEmpty(orderNo)) {
            wrapper.like("order_no", orderNo);
        }
        wrapper.le("settle", 2).eq("doc_type", 1).eq("status", 1);
        wrapper.orderBy("create_time", false);
        List<Order> orders = orderService.selectList(wrapper);
        return R.ok().add(orders);
    }
    @RequestMapping(value = "/order/head/page/auth")
    @ManagerAuth
@@ -100,15 +114,28 @@
        if (!orderService.insert(order)) {
            throw new CoolException("保存订单主档失败");
        }
        List<DetlDto> list = new ArrayList<>();
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            orderDetl.setOrderId(order.getId());
            orderDetl.setCreateBy(getUserId());
            orderDetl.setCreateTime(now);
            orderDetl.setUpdateBy(getUserId());
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("保存订单明细档失败");
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
                }
            } else {
                list.add(dto);
                orderDetl.setOrderId(order.getId());
                orderDetl.setOrderNo(order.getOrderNo());
                orderDetl.setCreateBy(getUserId());
                orderDetl.setCreateTime(now);
                orderDetl.setUpdateBy(getUserId());
                orderDetl.setUpdateTime(now);
                orderDetl.setStatus(1);
                orderDetl.setQty(0.0D);
                if (!orderDetlService.insert(orderDetl)) {
                    throw new CoolException("保存订单明细档失败");
                }
            }
        }
        return R.ok("订单添加成功");
@@ -134,32 +161,34 @@
            }
        }
        // 修改明细档
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 1.清空明细档
        if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
            throw new CoolException("清空订单明细失败");
        }
        // 2.重组数据
        List<DetlDto> list = new ArrayList<>();
        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);
            // 修改
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
                }
            } else {
                detl.setAnfme(orderDetl.getAnfme());    // 修改数量
                detl.setUpdateTime(now);
                detl.setUpdateBy(userId);
            }
            // 持久化
            if (!orderDetlService.insert(detl)) {
                throw new CoolException("新增订单明细失败");
                list.add(dto);
                orderDetl.setOrderId(order.getId());
                orderDetl.setOrderNo(order.getOrderNo());
                orderDetl.setCreateBy(getUserId());
                orderDetl.setCreateTime(now);
                orderDetl.setUpdateBy(getUserId());
                orderDetl.setUpdateTime(now);
                orderDetl.setStatus(1);
                orderDetl.setQty(0.0D);
                if (!orderDetlService.insert(orderDetl)) {
                    throw new CoolException("保存订单明细档失败");
                }
            }
        }
        return R.ok("订单修改成功");