skyouc
2025-06-28 190230a07b0413f2e1317bae743c50bcef5f650c
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -1,16 +1,13 @@
package com.zy.asrs.wms.asrs.manage;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.datatype.jsr310.DecimalUtils;
import com.mysql.cj.util.StringUtils;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.dto.*;
import com.zy.asrs.wms.asrs.entity.dto.OrderOutMergeDto;
import com.zy.asrs.wms.asrs.entity.enums.*;
import com.zy.asrs.wms.asrs.entity.param.*;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.utils.OrderUtils;
import com.zy.asrs.wms.utils.OutUtils;
@@ -23,11 +20,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * 出库管理
@@ -589,7 +584,7 @@
                    locDto.setWorkQty(detl.getWorkQty());
                    locDtos.add(locDto);
                    //库位实际可用数量
                    double surplusQty = detl.getAnfme() - detl.getWorkQty();
                    Double surplusQty = Math.round((detl.getAnfme() - detl.getWorkQty()) * 10000) / 10000.0;
                    if (surplusQty <= 0) {
                        continue;
                    }
@@ -1053,11 +1048,11 @@
        if (!flatOrders.isEmpty()) {
            //平库出库
            outStockByFlat(flatOrders, wave);
        }
        if (!tucOrders.isEmpty()) {
        } else if (!tucOrders.isEmpty()) {
            //CTU出库
            outStockByTUC(tucOrders, wave);
        } else {
            throw new CoolException("库存不足");
        }
    }
@@ -1158,7 +1153,8 @@
                throw new CoolException("当前波次订单不存在!!");
            }
            List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteStatus, CacheSiteStatusType.O.id).orderByAsc(CacheSite::getChannel));
            List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>()
                    .eq(CacheSite::getSiteStatus, CacheSiteStatusType.O.id).eq(CacheSite::getChannel,task.getTargetSite()));
            if (cacheSites.isEmpty()) {
                throw new CoolException("缓存站空间不足,请稍后再试");
@@ -1173,6 +1169,7 @@
                cacheSite.setOrderId(orders.get(i).getId());
                cacheSite.setOrderNo(orders.get(i).getOrderNo());
                cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
                cacheSite.setBarcode(loc.getBarcode());
                cacheSite.setUpdateTime(new Date());
                if (!cacheSiteService.updateById(cacheSite)) {
                    throw new CoolException("缓存站更新失败");
@@ -1436,15 +1433,15 @@
                    }
                    CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, order.getId()));
                    if (cacheSite == null) {
                        throw new CoolException("缓存站不存在");
                    }
                    cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
                    cacheSite.setOrderId(null);
                    cacheSite.setOrderNo(null);
                    cacheSite.setUpdateTime(new Date());
                    if (!cacheSiteService.updateById(cacheSite)) {
                        throw new CoolException("缓存站清空失败");
                    if (cacheSite != null) {
                        cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
                        cacheSite.setOrderId(null);
                        cacheSite.setOrderNo(null);
                        cacheSite.setBarcode(null);
                        cacheSite.setUpdateTime(new Date());
                        if (!cacheSiteService.updateById(cacheSite)) {
                            throw new CoolException("缓存站清空失败");
                        }
                    }
                }