自动化立体仓库 - WMS系统
ZY
2024-10-12 b248de310fd65c11f959f4cd0f02d3a6d3edb2c2
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,23 +1,19 @@
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.Order;
import com.zy.asrs.entity.OrderDetl;
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;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@@ -71,75 +67,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 +131,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();