#
Junjie
2024-09-20 053e6028bd20e599aea103401137816c6296a9ef
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
@@ -1,6 +1,7 @@
package com.zy.asrs.wms.asrs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
@@ -8,6 +9,8 @@
import com.zy.asrs.wms.asrs.mapper.OrderMapper;
import com.zy.asrs.wms.asrs.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.wms.utils.OrderUtils;
import com.zy.asrs.wms.utils.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +31,19 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderDetlFieldService orderDetlFieldService;
    @Autowired
    private OrderNoRuleService orderNoRuleService;
    @Autowired
    private OrderUtils orderUtils;
    @Override
    @Transactional
    public boolean createOrder(List<CreateOrderParam> list) {
        for (CreateOrderParam orderParam : list) {
            createOrder(orderParam);
        }
        return true;
    }
    @Override
    @Transactional
@@ -39,10 +55,16 @@
            throw new CoolException("订单已存在");
        }
        String orderNo = param.getOrderNo();
        if (Cools.isEmpty(param.getOrderNo())) {
            orderNo = orderNoRuleService.getOrderNo(param.getOrderType().intValue());
        }
        Order order = new Order();
        order.setOrderNo(param.getOrderNo());
        order.setOrderNo(orderNo);
        order.setOrderType(param.getOrderType());
        order.setOrderSettle(param.getOrderSettle());
        order.setIoPri(orderUtils.getIoPri());
        order.setOrderTime(format.format(new Date()));
        order.setCreateTime(new Date());
        order.setCreateBy(9527L);
@@ -55,8 +77,14 @@
            double anfme = Double.parseDouble(map.get("anfme").toString());
            String batch = map.get("batch").toString();
            String matnr = map.get("matnr").toString();
            Double qty = Double.parseDouble(map.get("qty").toString());
            Double workQty = Double.parseDouble(map.get("workQty").toString());
            Double qty = 0D;
            Double workQty = 0D;
            if (map.containsKey("qty")) {
                qty = Double.parseDouble(map.get("qty").toString());
            }
            if (map.containsKey("workQty")) {
                workQty = Double.parseDouble(map.get("workQty").toString());
            }
            String memo = map.getOrDefault("memo", "").toString();
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
            if (mat == null) {
@@ -95,6 +123,11 @@
                }
            }
            orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField()));
            if (!orderDetlService.updateById(orderDetl)) {
                throw new CoolException("更新明细索引失败");
            }
        }
        return true;
@@ -103,6 +136,14 @@
    @Override
    public boolean updateOrder(UpdateOrderParam param) {
        Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, param.getOrderId()));
        if (order == null) {
            throw new CoolException("订单不存在");
        }
        if (order.getHasWave() == 1) {
            throw new CoolException("订单已经生成波次,无法修改");
        }
        order.setOrderType(param.getOrderType());
        order.setOrderSettle(param.getOrderSettle());
        order.setUpdateTime(new Date());
@@ -180,6 +221,11 @@
                }
            }
            orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField()));
            if (!orderDetlService.updateById(orderDetl)) {
                throw new CoolException("更新明细索引失败");
            }
        }
        List<Long> deleteDetlId = param.getDeleteDetlId();
@@ -197,6 +243,11 @@
    @Override
    public boolean deleteOrder(Long orderId) {
        Order order = this.getById(orderId);
        if (order.getHasWave() == 1) {
            throw new CoolException("订单已经生成波次,删除失败");
        }
        //删除订单
        this.removeById(orderId);
        //删除明细