소스 검색

选矿bug修复

zhangxin 1 년 전
부모
커밋
07b6e1c39c
1개의 변경된 파일28개의 추가작업 그리고 50개의 파일을 삭제
  1. 28 50
      warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/impl/ProcessLocationServiceImpl.java

+ 28 - 50
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/impl/ProcessLocationServiceImpl.java

@@ -4,12 +4,12 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.comparator.CompareUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.ams.inv.domain.InvLotLocId;
 import com.ruoyi.ams.inv.service.IInvLotAttService;
 import com.ruoyi.ams.inv.service.IInvLotLocIdService;
 import com.ruoyi.ams.xuankuang.service.ExcelLocLotModel;
 import com.ruoyi.ams.xuankuang.service.ProcessLocationService;
+import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseLocationInfo;
 import com.ruoyi.base.domain.BaseSku;
 import com.ruoyi.base.service.IBaseLocationInfoService;
@@ -49,11 +49,6 @@ public class ProcessLocationServiceImpl implements ProcessLocationService {
     @Autowired
     private IBaseSkuService baseSkuService;
 
-
-    //仓库ID的默认值
-    private static final Long WAREHOUSE_ID = 1L;
-
-
     /**
      * 选矿项目调整库存专用脚本
      *
@@ -85,10 +80,8 @@ public class ProcessLocationServiceImpl implements ProcessLocationService {
             }catch (RuntimeException ex){
                 log.warn("ex is {}", ex);
                 errorLocLotList.add(locLotModel);
-                continue;
             }
         }
-        System.err.println(JSONObject.toJSONString(errorLocLotList));
     }
 
 
@@ -118,13 +111,13 @@ public class ProcessLocationServiceImpl implements ProcessLocationService {
      */
     public void redressInventory(String locationNo, String bindSku, String palletNo, BigDecimal quantity, Map<String, String> skuTypeMapping) {
         //1.通过库位号获得库位的ID
-        BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationNo, WAREHOUSE_ID);
+        BaseLocationInfo baseLocationInfo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationNo, Constant.WAREHOUSE_ID);
         if (ObjectUtil.isNull(baseLocationInfo)) return;
         if (StringUtils.isBlank(bindSku) && ObjectUtil.isNotNull(quantity)) return;
 
 
         //2.1 如果当前库位是空的,或者库位数量是空的,则删除inv_lot_loc_id中的库存数据并重置库位数据
-        if((ObjectUtil.isNull(quantity) || CompareUtil.compare(quantity, BigDecimal.ZERO)<=0)){
+        if (ObjectUtil.isNull(quantity) || CompareUtil.compare(quantity, BigDecimal.ZERO) <= 0) {
             //生成新的批次记录
             invLotAttService.insertInvLotAtt(bindSku, palletNo);
             invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
@@ -132,35 +125,30 @@ public class ProcessLocationServiceImpl implements ProcessLocationService {
             return;
         }
 
-        if(StringUtils.isNotBlank(bindSku)
-                && ObjectUtil.isNotNull(quantity)
-                && CompareUtil.compare(quantity, BigDecimal.ZERO) > 0){
-            //查出原先的库存情况,如果当前库存SKU不符合,则生成新的批次记录
-            List<InvLotLocId> invLotLocList = invLotLocIdService.getInvLotLocList(baseLocationInfo.getId());
-            if(CollectionUtil.isNotEmpty(invLotLocList)){
-                //此时数据是错的都要重新生成库存
-                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, palletNo);
-                    //删除原先的库存记录`,生成新的库存记录
-                    invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
-                    invLotLocIdService.insertInvLotLocId(baseLocationInfo.getId(), lotnum, bindSku, quantity);
-                    //重置库位数据
-                    reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
-                    return;
-                } else {
-                    //此时只有数量是错的,那么update一下数量就好
-                    InvLotLocId invLotLocId = invLotLocList.get(0);
-                    invLotLocId.setQty(quantity);
-                    //TODO  其他关于数量的字段要改嘛
-                    invLotLocId.setQtyEach(quantity);
-                    invLotLocIdService.updateInvLotLocId(invLotLocId);
-                    //重置库存数据
-                    reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
-                    return;
-                }
-            }
+        //查出原先的库存情况,如果当前库存SKU不符合,则生成新的批次记录
+        List<InvLotLocId> invLotLocList = invLotLocIdService.getInvLotLocList(baseLocationInfo.getId());
+        if (CollectionUtil.isEmpty(invLotLocList)) return;
+        //此时数据是错的都要重新生成库存
+        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, palletNo);
+            //删除原先的库存记录`,生成新的库存记录
+            invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
+            invLotLocIdService.insertInvLotLocId(baseLocationInfo.getId(), lotnum, bindSku, quantity);
+            //重置库位数据
+            reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
+            return;
+        } else {
+            //此时只有数量是错的,那么update一下数量就好
+            InvLotLocId invLotLocId = invLotLocList.get(0);
+            invLotLocId.setQty(quantity);
+            //TODO  其他关于数量的字段要改嘛
+            invLotLocId.setQtyEach(quantity);
+            invLotLocIdService.updateInvLotLocId(invLotLocId);
+            //重置库存数据
+            reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
+            return;
         }
     }
 
@@ -177,21 +165,11 @@ public class ProcessLocationServiceImpl implements ProcessLocationService {
         baseLocationInfo.setIsEmpty(isEmpty);
         baseLocationInfo.setStockStatus(FREE);
         baseLocationInfo.setUserdefine10(StringUtils.isNotBlank(bindSku) ? bindSku : null);
-        baseLocationInfo.setBindSku(StringUtils.isNotBlank(bindSku) ? skuTypeMapping.get(bindSku) : null );
+        baseLocationInfo.setBindSku(StringUtils.isNotBlank(bindSku) ? skuTypeMapping.get(bindSku) : null);
         return baseLocationInfoService.reSetLocationInfo(baseLocationInfo);
     }
 
 
-
-    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) {
         if (StringUtils.isBlank(locationNo)) return StringUtil.EMPTY_STRING;
         Pattern pattern = Pattern.compile("\\s*|\t|\r|\n");