自动化立体仓库 - WMS系统
lsh
2025-05-27 07dad0e9ef89346439cfcfb5978b0f1cb8f1b512
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,18 +1,17 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.entity.param.OpenOrderPakoutParam;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.result.OrderNameListDto;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.service.*;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.common.model.DetlDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -36,6 +35,8 @@
    private DocTypeService docTypeService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private OrderService orderService;
    @Override
    public Order selectByNo(String orderNo) {
@@ -71,75 +72,6 @@
            }
        }
        if (complete) {
            // 出库订单重新整理明细
            DocType docType = docTypeService.selectById(order.getDocType());
            if (null != docType && docType.getPakout() == 1) {
                if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
                    throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                }
                List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
                if (orderDetls.size() == wrkDetls.size()) {
                    for (WrkDetl wrkDetl : wrkDetls) {
                        OrderDetl orderDetl = new OrderDetl();
                        orderDetl.sync(wrkDetl);
                        orderDetl.setQty(orderDetl.getAnfme());
                        orderDetl.setOrderId(order.getId());
                        orderDetl.setOrderNo(orderNo);
                        orderDetl.setStatus(1);
                        orderDetl.setCreateTime(order.getCreateTime());
                        orderDetl.setCreateBy(order.getCreateBy());
                        orderDetl.setUpdateTime(order.getUpdateTime());
                        orderDetl.setUpdateBy(order.getUpdateBy());
                        if (!orderDetlService.insert(orderDetl)) {
                            throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                        }
                    }
                } else {
                    for (OrderDetl orderDetl : orderDetls) {
                        for (WrkDetl wrkDetl : wrkDetls) {
                            if (Cools.isEmpty(orderDetl.getBatch()) || Cools.isEmpty(wrkDetl.getBatch())) {
                                if (orderDetl.getMatnr().equals(wrkDetl.getMatnr())) {
                                    OrderDetl newOrderDetl = new OrderDetl();
                                    newOrderDetl.sync(wrkDetl);
                                    newOrderDetl.setAnfme(orderDetl.getAnfme());
                                    newOrderDetl.setQty(orderDetl.getAnfme());
                                    newOrderDetl.setOrderId(order.getId());
                                    newOrderDetl.setOrderNo(orderNo);
                                    newOrderDetl.setStatus(1);
                                    newOrderDetl.setCreateTime(order.getCreateTime());
                                    newOrderDetl.setCreateBy(order.getCreateBy());
                                    newOrderDetl.setUpdateTime(order.getUpdateTime());
                                    newOrderDetl.setUpdateBy(order.getUpdateBy());
                                    if (!orderDetlService.insert(newOrderDetl)) {
                                        throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                                    }
                                    break;
                                }
                            } else {
                                if (orderDetl.getMatnr().equals(wrkDetl.getMatnr()) && orderDetl.getBatch().equals(wrkDetl.getBatch())) {
                                    OrderDetl newOrderDetl = new OrderDetl();
                                    newOrderDetl.sync(wrkDetl);
                                    newOrderDetl.setAnfme(orderDetl.getAnfme());
                                    newOrderDetl.setQty(orderDetl.getAnfme());
                                    newOrderDetl.setOrderId(order.getId());
                                    newOrderDetl.setOrderNo(orderNo);
                                    newOrderDetl.setStatus(1);
                                    newOrderDetl.setCreateTime(order.getCreateTime());
                                    newOrderDetl.setCreateBy(order.getCreateBy());
                                    newOrderDetl.setUpdateTime(order.getUpdateTime());
                                    newOrderDetl.setUpdateBy(order.getUpdateBy());
                                    if (!orderDetlService.insert(newOrderDetl)) {
                                        throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            if (!this.updateSettle(order.getId(), 4L, null)) {
                throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
            }
@@ -204,7 +136,10 @@
        }
        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", orderId));
    }
    @Override
    public List<Order> selectWork() {
        return this.baseMapper.selectWork();
    }
    @Override
    public List<Order> selectComplete() {
        return this.baseMapper.selectComplete();
@@ -235,4 +170,25 @@
        return this.baseMapper.selectOrderMoveStatusInitial();
    }
    @Override
    public List<OrderNameListDto> selectAllorderNo() {
        List<Order> list = orderService.selectList(new EntityWrapper<Order>().orderBy("create_time"));
        if (Cools.isEmpty(list)){
            return null;
        }
        ArrayList<OrderNameListDto> orderNameListDtos = new ArrayList<>();
        for (Order order :list){
            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_id", order.getDocType()));
            if (docType.getPakin() == 1){
                OrderNameListDto orderNameListDto = new OrderNameListDto();
                orderNameListDto.setOrder_no(order.getOrderNo());
                orderNameListDtos.add(orderNameListDto);
            }
        }
        return orderNameListDtos;
    }
}