自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-10-17 c8630dc9c82a3b44cf33a3db73accec4018c8fbb
#
2个文件已修改
45 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/OrderMergeVo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,6 +1,7 @@
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;
@@ -11,8 +12,8 @@
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 com.zy.common.model.OrderDto;
import com.zy.common.model.OrderMergeVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -174,6 +175,18 @@
            // 获取所有未作业的明细
            List<OrderDetl> orderDetls = orderDetlService.selectRemainder(orderId);
            for (OrderDetl orderDetl : orderDetls) {
                Double leave = orderDetl.getAnfme() - orderDetl.getQty();
                OrderMergeVo vo = new OrderMergeVo(orderDetl.getMatnr(), orderDetl.getBatch(), leave);
                OrderDto orderDto = new OrderDto(orderDetl.getOrderNo(), null, leave);
                if (OrderMergeVo.has(result, vo)) {
                    OrderMergeVo exist = OrderMergeVo.find(result, vo.getMatnr(), vo.getBatch());
                    assert exist != null;
                    exist.setAnfme(exist.getAnfme() + vo.getAnfme());
                    exist.getOrderDtos().add(orderDto);
                } else {
                    vo.getOrderDtos().add(orderDto);
                    result.add(vo);
                }
            }
        }
src/main/java/com/zy/common/model/OrderMergeVo.java
@@ -1,5 +1,6 @@
package com.zy.common.model;
import com.core.common.Cools;
import lombok.Data;
import java.util.ArrayList;
@@ -21,6 +22,33 @@
    private Double anfme;
    private List<DetlDto> detlDtos = new ArrayList<>();
    private List<OrderDto> orderDtos = new ArrayList<>();
    public OrderMergeVo(String matnr, String batch, Double anfme) {
        this.matnr = matnr;
        this.batch = batch;
        this.anfme = anfme;
    }
    public static boolean has(List<OrderMergeVo> detlDtos, OrderMergeVo detlDto) {
        for (OrderMergeVo dto : detlDtos) {
            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) {
                return true;
            }
        }
        return false;
    }
    public static OrderMergeVo find(List<OrderMergeVo> detlDtos, String matnr, String batch) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        for (OrderMergeVo detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) {
                return detlDto;
            }
        }
        return null;
    }
}