ChenYang 1 anno fa
parent
commit
cd12c434cb

BIN
doc/~$环境使用手册.docx


+ 19 - 16
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/wms/order/WmsDocOrderHeaderController.java

@@ -1,33 +1,32 @@
 package com.ruoyi.web.controller.warewms.wms.order;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletResponse;
-
-import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
 import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO;
 import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
+import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
 import com.ruoyi.ams.order.form.AllocationForm;
 import com.ruoyi.ams.order.form.CancelOrderForm;
 import com.ruoyi.ams.order.form.InvTallyForm;
 import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
+import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
 import com.ruoyi.base.service.IBaseIdsequenceService;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.framework.web.domain.server.Sys;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
-import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 出库单头Controller
@@ -154,6 +153,10 @@ public class WmsDocOrderHeaderController extends BaseController {
     @PostMapping("/addDocOrderHeader")
     public AjaxResult addDocOrderHeader(@RequestBody WmsDocOrderHeader wmsDocOrderHeader) {
         LoginUser loginUser = getLoginUser();
+        if(StringUtils.equals("DZ", wmsDocOrderHeader.getOrderType())
+                && StringUtils.isBlank(wmsDocOrderHeader.getSoReference3())){
+            return AjaxResult.error("袋装出库请指定破袋机编号");
+        }
         wmsDocOrderHeader.setCreateTime(new Date());
         wmsDocOrderHeader.setCreateBy(loginUser.getUsername());
         return wmsDocOrderHeaderService.insertWmsDocOrderHeader(wmsDocOrderHeader);

+ 4 - 0
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/ExcelLocLotModel.java

@@ -17,4 +17,8 @@ public class ExcelLocLotModel implements Serializable {
 
     @Excel(name = "数量(例:50.00)")
     private String quantity;
+
+    @Excel(name = "托盘号")
+    private String palletNo;
+
 }

+ 18 - 15
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/ProcessLocationTest.java

@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.comparator.CompareUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.fasterxml.jackson.datatype.jsr310.DecimalUtils;
 import com.ruoyi.RuoYiApplication;
 import com.ruoyi.ams.inv.domain.InvLotLocId;
 import com.ruoyi.ams.inv.service.IInvLotAttService;
@@ -57,6 +56,7 @@ public class ProcessLocationTest {
     @Autowired
     private IBaseSkuService baseSkuService;
 
+
     //仓库ID的默认值
     private static final Long WAREHOUSE_ID = 1L;
 
@@ -88,9 +88,9 @@ public class ProcessLocationTest {
             try {
                 String count = locLotModel.getQuantity();
                 BigDecimal quantity = StringUtils.isNotBlank(count) ? new BigDecimal(count) : null;
-                //所需的sku,库位号locationNo以及数量即可操作
+                //所需的sku,库位号locationNo以及数量即可操作
                 String locationNo = handleLocationNo(locLotModel.getLocationNo());
-                redressInventory(locationNo, locLotModel.getBindSku(), quantity, skuTypeMapping);
+                redressInventory(locationNo, locLotModel.getBindSku(), locLotModel.getPalletNo(), quantity, skuTypeMapping);
             }catch (RuntimeException ex){
                 log.warn("ex is {}", ex);
                 errorLocLotList.add(locLotModel);
@@ -104,14 +104,17 @@ public class ProcessLocationTest {
 
 
 
+
+
     /**
      * 重置一个库的库位库存信息
      * @param locationNo 库位号
      * @param bindSku
+     * @param palletNo
      * @param quantity
      * @param skuTypeMapping
      */
-    private void redressInventory(String locationNo, String bindSku, BigDecimal quantity, Map<String, String> skuTypeMapping) {
+    private void redressInventory(String locationNo, String bindSku, String palletNo, BigDecimal quantity, Map<String, String> skuTypeMapping) {
         //1.通过库位号获得库位的ID
         BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationNo, WAREHOUSE_ID);
         if (ObjectUtil.isNull(baseLocationInfo)) return;
@@ -120,6 +123,8 @@ public class ProcessLocationTest {
 
         //2.1 如果当前库位是空的,或者库位数量是空的,则删除inv_lot_loc_id中的库存数据并重置库位数据
         if((ObjectUtil.isNull(quantity) || CompareUtil.compare(quantity, BigDecimal.ZERO)<=0)){
+            //生成新的批次记录
+            invLotAttService.insertInvLotAtt(bindSku, palletNo);
             invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
             reSetLocationInfo(baseLocationInfo, bindSku, Constants.YES, skuTypeMapping);
             return;
@@ -135,8 +140,8 @@ public class ProcessLocationTest {
                 List<String> skuList = invLotLocList.stream().map(item -> item.getSku()).collect(Collectors.toList());
                 if(CollectionUtil.isEmpty(skuList) || skuList.size() > 1 || !StringUtils.equals(skuList.get(0), bindSku)){
                     //生成新的批次记录
-                    String lotnum = invLotAttService.insertInvLotAtt(bindSku);
-                    //删除原先的库存记录,生成新的库存记录
+                    String lotnum = invLotAttService.insertInvLotAtt(bindSku, palletNo);
+                    //删除原先的库存记录`,生成新的库存记录
                     invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
                     invLotLocIdService.insertInvLotLocId(baseLocationInfo.getId(), lotnum, bindSku, quantity);
                     //重置库位数据
@@ -154,7 +159,6 @@ public class ProcessLocationTest {
                     return;
                 }
             }
-
         }
     }
 
@@ -176,13 +180,13 @@ public class ProcessLocationTest {
 
 
 
-    /*public static void main(String[] args) {
-        System.out.println(handleLocationNo("A\t-02\t-08"));
-        System.out.println(handleLocationNo("  A-02-08"));
-        System.out.println(handleLocationNo("  -02-08"));
-        System.out.println(handleLocationNo("Out-02-cache"));
-        System.out.println(handleLocationNo("STAGE01"));
-    }*/
+    public static void main(String[] args) {
+//        System.out.println(handleLocationNo("A\t-02\t-08"));
+//        System.out.println(handleLocationNo("  A-02-08"));
+//        System.out.println(handleLocationNo("  -02-08"));
+//        System.out.println(handleLocationNo("Out-02-cache"));
+//        System.out.w's'x'z's'x'x'z(handleLocationNo("STAGE01"));
+    }
 
 
     private static String handleLocationNo(String locationNo) {
@@ -195,7 +199,6 @@ public class ProcessLocationTest {
             lotNo = StringUtils.replace(lotNo, "-", "\t-");
         }
         return lotNo;
-
     }
 
 

+ 12 - 2
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/WarehouseTest.java

@@ -9,11 +9,11 @@ import com.ruoyi.ams.agv.ndc.service.IAmsTaskService;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
 import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
+import com.ruoyi.ams.business.IBusinessService;
 import com.ruoyi.ams.business.domain.FilterLockInvLocationDTO;
 import com.ruoyi.ams.config.domain.AsnSoStrategy;
 import com.ruoyi.ams.config.domain.FlowConfigHeader;
 import com.ruoyi.ams.config.domain.dto.InWarehouseDTO;
-import com.ruoyi.ams.business.IBusinessService;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
 import com.ruoyi.ams.config.domain.dto.OutWarehouseDTO;
 import com.ruoyi.ams.config.mapper.AsnSoStrategyMapper;
@@ -30,6 +30,7 @@ import com.ruoyi.ams.order.mapper.WmsDocOrderDetailsMapper;
 import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
 import com.ruoyi.ams.order.vo.StockOrderVO;
 import com.ruoyi.ams.task.service.IWcsTaskService;
+import com.ruoyi.ams.xuankuang.service.WcsTaskSubService;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseLocationInfo;
 import com.ruoyi.base.domain.BaseWarehouse;
@@ -40,7 +41,6 @@ import com.ruoyi.base.service.IBaseIdsequenceService;
 import com.ruoyi.base.service.IBaseLocationInfoService;
 import com.ruoyi.base.service.IBaseWarehouseService;
 import com.ruoyi.base.utils.IdSequenceUtils;
-import com.ruoyi.framework.web.domain.server.Sys;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -317,4 +317,14 @@ public class WarehouseTest {
 
     }
 
+
+    @Autowired
+    private WcsTaskSubService wcsTaskSubService;
+
+
+    @Test
+    public void taskStatusResponse(){
+        wcsTaskSubService.callBack("1690210547924", 2, null);
+    }
+
 }

+ 6 - 8
ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java

@@ -1,25 +1,23 @@
 package com.ruoyi.framework.web.exception;
 
-import javax.servlet.http.HttpServletRequest;
-
+import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.redis.RedisKey;
+import com.ruoyi.common.exception.DemoModeException;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.validation.BindException;
 import org.springframework.web.HttpRequestMethodNotSupportedException;
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
-import com.ruoyi.common.constant.HttpStatus;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.exception.DemoModeException;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.StringUtils;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 /**

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/IInvLotAttService.java

@@ -72,5 +72,5 @@ public interface IInvLotAttService {
      * @param bindSku
      * @return
      */
-    String insertInvLotAtt(String bindSku);
+    String insertInvLotAtt(String bindSku, String palletNo);
 }

+ 2 - 4
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotAttServiceImpl.java

@@ -103,16 +103,14 @@ public class InvLotAttServiceImpl implements IInvLotAttService {
     }
 
     @Override
-    public String insertInvLotAtt(String bindSku) {
+    public String insertInvLotAtt(String bindSku, String palletNo) {
         InvLotAtt invLotAtt = new InvLotAtt();
 
         String lotnum = idSequenceUtils.generateId("LOTNUMBER");
         invLotAtt.setLotnum(lotnum);
         invLotAtt.setCustomerId(Constants.DEFAULT_CUSTOMER_ID);
         invLotAtt.setSku(bindSku);
-        //TODO 这俩是啥字段
-        invLotAtt.setLotatt07("");
-        invLotAtt.setLotatt08("");
+        invLotAtt.setLotatt07(palletNo);
         invLotAttMapper.insertInvLotAtt(invLotAtt);
         return lotnum;
     }

+ 2 - 8
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotLocIdServiceImpl.java

@@ -710,15 +710,9 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
         invLotLocId.setLotnum(lotnum);
         invLotLocId.setCustomerId(Constants.DEFAULT_CUSTOMER_ID);
         invLotLocId.setSku(bindSku);
-        invLotLocId.setQty(quantity);
         invLotLocId.setLotnum(lotnum);
-
-        //TODO 这俩是啥字段
-        invLotLocId.setQtyEach(null);
-        invLotLocId.setQtyallocated(null);
-        invLotLocId.setQtyallocatedEach(null);
-        invLotLocId.setQtypa(null);
-        invLotLocId.setQtyrpin(null);
+        invLotLocId.setQty(quantity);
+        invLotLocId.setQtyEach(quantity);
         return invLotLocIdMapper.insertInvLotLocId(invLotLocId) == 1;
     }
 }

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -268,7 +268,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
             }
             //可以叫料且合格的库存
             InvLotAtt lotAtt = invLotAttMapper.selectInvLotAttByLotnum(inv.getLotnum());
-            if (!lotAtt.getLotatt05().equals("90") || !lotAtt.getLotatt12().equals("Y")) {
+            if (!StringUtils.equals("90", lotAtt.getLotatt05()) || !StringUtils.equals("Y", lotAtt.getLotatt12())) {
                 continue;
             }
 

+ 4 - 14
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WcsTaskSubService.java

@@ -378,8 +378,8 @@ public class WcsTaskSubService {
 
         for (InvLotLocId invLotLocId : invLotLocIds) {
             BigDecimal qty = invLotLocId.getQty();
-            if (qty.compareTo(canQty) == 1) {
-                list.get(0).setQtyAllocated(qtyOrderedEach);
+            if (qty.compareTo(canQty) >= 0) {
+                list.get(0).setQtyPicked(qtyOrderedEach);
                 int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
                 if (i > 0) {
                     list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
@@ -388,18 +388,8 @@ public class WcsTaskSubService {
                     con = false;
                     continue;
                 }
-            } else if (qty.compareTo(canQty) == 0) {
-                list.get(0).setQtyAllocated(qtyOrderedEach);
-                int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
-                if (i > 0) {
-                    list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
-                    iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
-                } else {
-                    con = false;
-                    continue;
-                }
-            } else if (qty.compareTo(canQty) == -1) {
-                list.get(0).setQtyAllocated(allocatedEach.add(qty));
+            } else if (qty.compareTo(canQty) < 0) {
+                list.get(0).setQtyPicked(allocatedEach.add(qty));
                 int i = iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
                 if (i > 0) {
                     list.get(0).setLineStatus(Constant.ASN_STS.STS30.getValue());

+ 25 - 47
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WmsDocOrderSubService.java

@@ -1,13 +1,10 @@
 package com.ruoyi.ams.xuankuang.service;
 
-import com.alibaba.fastjson.JSON;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
-import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
 import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
-import com.ruoyi.ams.inv.domain.InvLotLocId;
-import com.ruoyi.ams.inv.domain.form.InvLocIdSearchFrom;
-import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO;
 import com.ruoyi.ams.inv.mapper.InvLotLocIdMapper;
 import com.ruoyi.ams.inv.service.IInvLotLocIdService;
 import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
@@ -15,13 +12,9 @@ import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
 import com.ruoyi.ams.order.mapper.WmsDocOrderHeaderMapper;
 import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
 import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
-import com.ruoyi.ams.order.vo.StockOrderVO;
-import com.ruoyi.ams.task.domain.WcsTask;
-import com.ruoyi.ams.xuankuang.domain.form.BillTaskForm;
 import com.ruoyi.ams.xuankuang.domain.form.OutTaskForm;
 import com.ruoyi.ams.xuankuang.domain.vo.WcsResponseVo;
 import com.ruoyi.base.constant.Constant;
-import com.ruoyi.base.domain.BaseLocationInfo;
 import com.ruoyi.base.domain.BaseSku;
 import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
 import com.ruoyi.base.service.IBaseLocationInfoService;
@@ -33,11 +26,13 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.PathVariable;
 
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 import static com.ruoyi.ams.xuankuang.service.BaseLocationInfoSubService.OUT_ZONES;
 
@@ -155,6 +150,7 @@ public class WmsDocOrderSubService {
                 dests.add(dest);
                 outTaskForm.setDests(dests);
             }
+
             WcsResponseVo wcsResponseVo = wmsToWcsApiService.wmsOutTask(outTaskForm);
             if (!wcsResponseVo.isSuccess()) {
                 con = false;
@@ -165,7 +161,10 @@ public class WmsDocOrderSubService {
         }
         if (con == true) {
             // 修改 明细行状态为10
-            list.get(0).setLineStatus(Constant.ORDER_STS.STS10.getValue());
+            WmsDocOrderDetails wmsDocOrderDetail = list.get(0);
+            wmsDocOrderDetail.setLineStatus(Constant.ORDER_STS.STS10.getValue());
+            wmsDocOrderDetail.setQtyAllocated(wmsDocOrderDetail.getQtyOrderedEach());
+            wmsDocOrderDetail.setQtyAllocatedEach(wmsDocOrderDetail.getQtyOrderedEach());
             iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
             // 修改 单头10
             wmsDocOrderHeader.setRemark("");
@@ -182,45 +181,28 @@ public class WmsDocOrderSubService {
      * @return
      */
     public List<BaseLocationLotattVO> addConfirmAllocationAuto(String orderNo) {
-        List<WmsDocOrderDetails> detailslist = null;
+
         // 查询出库单头
         WmsDocOrderHeader wmsDocOrderHeader = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
-        if (wmsDocOrderHeader != null) {
-            if (wmsDocOrderHeader.getOrderStatus().equals(Constant.ORDER_STS.STS00.getValue())) {
-                //根据出库单头查询出库单明细
-                detailslist = iWmsDocOrderDetailsService.selectWmsDocOrderDetailsByOrderNo(orderNo);
-                if (detailslist.size() == 0) {
-                    log.error("单据没有可匹配明细");
-                }
-            } else {
-                log.error("只有新建单据才可分配");
-            }
-        } else {
-            log.error("单号不存在");
-        }
+        Assert.isTrue(ObjectUtil.isNotNull(wmsDocOrderHeader),"单号不存在");
+        Assert.isTrue(StringUtils.equals(wmsDocOrderHeader.getOrderStatus(), Constant.ORDER_STS.STS00.getValue()),"只有新建单据才可分配");
+        List<WmsDocOrderDetails> detailslist = iWmsDocOrderDetailsService.selectWmsDocOrderDetailsByOrderNo(orderNo);
+        Assert.isTrue(CollectionUtil.isNotEmpty(detailslist),"单据没有可匹配明细");
 
-        List<InvLotLocId> list = new ArrayList<>();
+        //TODO 镍盐项目中,一个出库单头对应的物料号明细只有一个sku,其他项目中若存在多个需要获取的是物料号编码列表;
+        //List<String> skuList = detailslist.stream().map(item -> item.getSku()).collect(Collectors.toList());
+        String sku = detailslist.get(0).getSku();
+        Assert.isTrue(StringUtils.isNotNull(sku),"存在无物料号的出库单");
+        List<BaseLocationLotattVO> baseLocationLotattVOS
+                = baseLocationInfoSubService.selectAllocatingInventoryAccordingConditionsOrderBy(OUT_ZONES,  new LotattDTO(), sku, null);
+        Assert.isTrue(CollectionUtil.isNotEmpty(baseLocationLotattVOS),"仓库中无库存");
 
-        String sku = null;
-        LotattDTO lotattDTO = new LotattDTO();
-        String orderBy = null;
-        List<String> outZones = OUT_ZONES;
-
-        //分配
-        for (WmsDocOrderDetails o : detailslist) {
-            sku = o.getSku();
-        }
-        List<BaseLocationLotattVO> baseLocationLotattVOS = baseLocationInfoSubService.selectAllocatingInventoryAccordingConditionsOrderBy(outZones, lotattDTO, sku, orderBy);
-        if (baseLocationLotattVOS.size() == 0) {
-            log.info("仓库中无库存");
-        }
         return baseLocationLotattVOS;
     }
 
     /**
      * 筛选库存
      *
-     * @param baseLocationLotattVO
      * @param orderNo
      * @return
      */
@@ -249,7 +231,7 @@ public class WmsDocOrderSubService {
             BigDecimal qtyAllocatedEach = wmsDocOrderDetails1.getQtyOrderedEach();
 
             for (BaseLocationLotattVO baseLocationLotattVO1 : baseLocationLotattVOS2) {
-                if (qtyAllocatedEach.compareTo(BigDecimal.ZERO) == 0) {
+                if (qtyAllocatedEach.compareTo(BigDecimal.ZERO) <= 0) {
                     return baseLocationLotattVOS1;
                 }
                 //库存数量
@@ -260,10 +242,7 @@ public class WmsDocOrderSubService {
                     continue;
                 }
                 int i = qty.compareTo(qtyAllocatedEach);
-                if (i == 0) {
-                    baseLocationLotattVOS1.add(baseLocationLotattVO1);
-                    return baseLocationLotattVOS1;
-                } else if (i > 0) {
+                if (i >= 0) {
                     baseLocationLotattVOS1.add(baseLocationLotattVO1);
                     return baseLocationLotattVOS1;
                 } else if (i < 0) {
@@ -326,7 +305,6 @@ public class WmsDocOrderSubService {
     /**
      * 生成出库单方法
      *
-     * @param asnNo
      * @return
      */
     public String generateAnOutboundOrder(String sku, BigDecimal qty) {