소스 검색

不同的产品类型不允许放一个托盘上

k 2 년 전
부모
커밋
719623610c

+ 12 - 3
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/IWmsDocAsnHeaderService.java

@@ -118,11 +118,20 @@ public interface IWmsDocAsnHeaderService {
     AjaxResult doStock(StockForm stockForm);
 
     /**
-     * 条码检测
+     * 检查是否有是相同类型的物料在同一个托盘上
      *
-     * @param snCheckForm
-     * @return
+     * @param palletNo 托盘编号
+     * @param sku      物料
+     * @return true都是相同的产品类型 false不同的产品类型
      */
+    boolean checkSameTypeByPalletNo(String palletNo, String sku);
+
+        /**
+         * 条码检测
+         *
+         * @param snCheckForm
+         * @return
+         */
     CodeSkuRelationshipVO searchSn(SnCheckForm snCheckForm);
 
     /**

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/impl/WmsDocAsnHeaderServiceImpl.java

@@ -259,7 +259,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
      * @param sku      物料
      * @return true都是相同的产品类型 false不同的产品类型
      */
-    private boolean checkSameTypeByPalletNo(String palletNo, String sku) {
+    public boolean checkSameTypeByPalletNo(String palletNo, String sku) {
         BaseSku baseSku = baseSkuService.selectBaseSkuByCustomerId(Constant.CUSTOMER_ID, sku);
         List<InvLotLocId> invLotLocIdList = invLotLocIdMapper.querySameTypeByPalletNo(baseSku.getSkuType(), palletNo);
         if (invLotLocIdList != null && invLotLocIdList.size() > 0) {

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

@@ -1,5 +1,6 @@
 package com.ruoyi.ams.order.service.impl;
 
+import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
 import com.ruoyi.ams.box.domain.WmsBoxInfo;
 import com.ruoyi.ams.box.mapper.WmsBoxInfoMapper;
 import com.ruoyi.ams.box.service.IWmsBoxInfoService;
@@ -99,6 +100,8 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
     private IErpBarcodesService erpBarcodesService;
     @Autowired
     private IInvLotAttService invLotAttService;
+    @Autowired
+    private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
 
     /**
      * 查询出库单头
@@ -909,6 +912,11 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
             return AjaxResult.error("组盘数量大于单条库存数量!");
         }
         invLotLocIdLotattVOList.add(endLotattVO);
+        // 不同的产品类型不允许放一个托盘上
+        boolean isSameType = iWmsDocAsnHeaderService.checkSameTypeByPalletNo(palletNoTo, sku);
+        if (!isSameType) {
+            throw new ServiceException("不同的产品类型不允许放一个托盘上");
+        }
         // 验证扫描产品是否可以组盘
         AjaxResult ajaxResult = verifyThatDisksCanBeGrouped(endLotattVO);
         if (!ajaxResult.isSuccess()) {