skyouc
2025-08-09 9d6a02b54ea894771c48ff660d86b48990eccb7f
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.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
@@ -39,6 +40,8 @@
    private OrderUtils orderUtils;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private LocDetlService locDetlService;
    @Override
    @Transactional
@@ -81,7 +84,7 @@
        }
        for (HashMap<String, Object> map : param.getList()) {
            double anfme = Double.parseDouble(map.get("anfme").toString());
            Double anfme = Double.parseDouble(map.get("anfme").toString());
            String batch = map.get("batch").toString();
            String matnr = map.get("matnr").toString();
            Double qty = 0D;
@@ -92,6 +95,20 @@
            if (map.containsKey("workQty")) {
                workQty = Double.parseDouble(map.get("workQty").toString());
            }
            if (param.getOrderType() == 2) {
                List<LocDetl> detls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
                        .eq(StringUtils.isNotBlank(batch), LocDetl::getBatch, batch)
                        .eq(StringUtils.isNotBlank(matnr), LocDetl::getMatnr, matnr));
                if (detls.isEmpty()) {
                    throw new CoolException("物料:" + matnr + "剩余库存余下:0" +  ",无法生成出库单!!");
                }
                Double sum = detls.stream().mapToDouble(LocDetl::getAnfme).sum();
                if (anfme.compareTo(sum) > 0) {
                    throw new CoolException("物料:" + matnr + "剩余库存余下:" + sum + ",无法生成出库单!!");
                }
            }
            String memo = map.getOrDefault("memo", "").toString();
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
            if (mat == null) {
@@ -304,7 +321,15 @@
    }
    @Override
    public List<OrderInfoDto> getDetlForOrderId(Long id) {
        return this.baseMapper.getDetlForOrderId(id);
    public List<OrderInfoDto> getDetlForOrderId(Long id, String matnr) {
        if (!Objects.isNull(matnr)) {
            if (Objects.isNull(matnr)) {
                return this.baseMapper.getDetlForOrderId(id, null);
            } else {
                return this.baseMapper.getDetlForOrderId(id, matnr);
            }
        } else {
            return this.baseMapper.getDetlForOrderId(id, null);
        }
    }
}