Browse Source

库位阻挡与任务阻挡bug修改

LZH 1 year ago
parent
commit
9c52c49d5c

+ 10 - 0
warewms-ams/src/main/java/com/ruoyi/ams/business/BusinessServiceImpl.java

@@ -462,6 +462,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     if (inStockByLocs.size() > 0) {
                         continue;
                     }
+//                    //同列是否为相同物料
+//                    Boolean aBoolean = baseLocationInfoService.verifyThatTheItemsAreIdentical(location.getId().toString(), Constant.WAREHOUSE_ID);
+//                    if (aBoolean == true){
+//                        continue;
+//                    }
                 }
                 // 是否目标点
                 if (!isReleaseGoods) {
@@ -470,6 +475,11 @@ public class BusinessServiceImpl implements IBusinessService {
                         continue;
                     }
                 } else {
+                    //同列是否为相同物料
+                    Boolean aBoolean = baseLocationInfoService.verifyThatTheItemsAreIdentical(location.getId().toString(), Constant.WAREHOUSE_ID);
+                    if (aBoolean == true){
+                        continue;
+                    }
                     if (!location.getStockStatus().equals(Constant.STOCK_STATUS.STOCK00.getValue())
                             || !location.getIsEmpty().equals(Constant.IS_YES.Y.name())
                             || redisCache.checkIsLock(RedisKey.LOCK_LOCATION + location.getId())) {

+ 17 - 4
warewms-ams/src/main/java/com/ruoyi/ams/locationView/service/LocationViewService.java

@@ -170,10 +170,23 @@ public class LocationViewService {
                             guiCols.add(bCol);
                         }
                     } else {
-                        bCol = new BasLocationGuiColDTO();
-                        bCol.setColNo(index + "");
-                        bCol.addBaslocation(b);
-                        guiCols.add(bCol);
+                        if (bCol == null) {
+                            exitsColNo.add(locNo);
+                            bCol = new BasLocationGuiColDTO();
+                            bCol.setColNo(locNo);
+                            bCol.addBaslocation(b);
+                        } else if (!exitsColNo.contains(locNo)) {
+                            exitsColNo.add(locNo);
+                            guiCols.add(bCol);
+                            bCol = new BasLocationGuiColDTO();
+                            bCol.setColNo(locNo);
+                            bCol.addBaslocation(b);
+                        } else {
+                            bCol.addBaslocation(b);
+                        }
+                        if (index == locList.size()) {
+                            guiCols.add(bCol);
+                        }
                     }
                 }
                 basLocationGuiExtDTO.setBasLocationGuiColDTOS(guiCols);

+ 16 - 0
warewms-base/src/main/java/com/ruoyi/base/mapper/BaseLocationInfoMapper.java

@@ -60,6 +60,22 @@ public interface BaseLocationInfoMapper {
      */
     List<BaseLocationInfo> selectBaseLocationInfoList(BaseLocationInfo baseLocationInfo);
 
+    /**
+     * 根据列号,物料查询库位信息列表
+     *
+     * @param baseLocationInfo 库位信息
+     * @return 库位信息集合
+     */
+    List<BaseLocationInfo> selectBaseLocationInfoList1(BaseLocationInfo baseLocationInfo);
+
+    /**
+     * 根据列号,查询同列库位信息列表
+     *
+     * @param baseLocationInfo 库位信息
+     * @return 库位信息集合
+     */
+    List<BaseLocationInfo> selectBaseLocationInfoList2(BaseLocationInfo baseLocationInfo);
+
     /**
      * 新增库位信息
      *

+ 8 - 0
warewms-base/src/main/java/com/ruoyi/base/service/IBaseLocationInfoService.java

@@ -182,6 +182,14 @@ public interface IBaseLocationInfoService {
      */
     Boolean verifyLocationIsIdle(String locationId, Long warehouseId);
 
+    /**
+     * 验证同列是否为相同物料
+     *
+     * @param locationId
+     * @return true 相同物料
+     */
+    Boolean verifyThatTheItemsAreIdentical(String locationId, Long warehouseId);
+
     /**
      * 验证库位库存是否为占用
      *

+ 35 - 0
warewms-base/src/main/java/com/ruoyi/base/service/impl/BaseLocationInfoServiceImpl.java

@@ -17,6 +17,7 @@ import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.KeyBoundCursor;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
@@ -273,6 +274,40 @@ public class BaseLocationInfoServiceImpl implements IBaseLocationInfoService {
         return true;
     }
 
+    //验证同列物料是否为相同的
+    @Override
+    public Boolean verifyThatTheItemsAreIdentical(String locationId, Long warehouseId) {
+        //推荐的库位
+        BaseLocationInfo baseLocationInfo = selectBaseLocationInfoByIdOrNo(locationId, warehouseId);
+        //根据推荐的库位查询出同列的库位
+        List<BaseLocationInfo> baseLocationInfos1 = baseLocationInfoMapper.selectBaseLocationInfoList2(baseLocationInfo);
+        Long id =new Long(0);
+        Long id1 = new Long(0);
+        if (baseLocationInfos1.size() == 0){
+            return false;
+        }
+        if (baseLocationInfos1.size()<2){
+             id = baseLocationInfos1.get(0).getId();
+        }else {
+             id = baseLocationInfos1.get(0).getId();
+             id1 = baseLocationInfos1.get(1).getId();
+        }
+        BaseLocationInfo baseLocationInfo1 = selectBaseLocationInfoByIdOrNo(id.toString(), warehouseId);
+        BaseLocationInfo baseLocationInfo2 = selectBaseLocationInfoByIdOrNo(id1.toString(), warehouseId);
+        List<BaseLocationInfo> baseLocationInfos = baseLocationInfoMapper.selectBaseLocationInfoList1(baseLocationInfo1);
+        List<BaseLocationInfo> baseLocationInfos2 = baseLocationInfoMapper.selectBaseLocationInfoList1(baseLocationInfo2);
+        if (baseLocationInfos1.size()<2){
+            if (baseLocationInfos.size()>0 ){
+                return true;
+            }
+        }else {
+            if (baseLocationInfos.size()>0 || baseLocationInfos2.size()>0){
+                return true;
+            }
+        }
+        return false;
+    }
+
     @Override
     public Boolean verifyLocationIsInStock(String locationId, Long warehouseId) {
         BaseLocationInfo baseLocationInfo = selectBaseLocationInfoByIdOrNo(locationId, warehouseId);

File diff suppressed because it is too large
+ 517 - 349
warewms-base/src/main/resources/mapper/base/BaseLocationInfoMapper.xml