فهرست منبع

优化出库物料与对应搅拌槽不符程序报错8.15

李卫 1 سال پیش
والد
کامیت
421e6ee64a

+ 43 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/constant/SatsukiEnums.java

@@ -0,0 +1,43 @@
+package com.ruoyi.ams.order.constant;
+
+
+import com.ruoyi.ams.order.constant.base.BizEnum;
+
+public class SatsukiEnums {
+
+    public enum BaseSkuCategories implements BizEnum {
+        TANK_01("1", "Na2CO3"),
+        TANK_02("2", "C5H10OS2"),
+        TANK_03("3", "(NaPO3)6"),
+        TANK_04("4", "(NH4)2SO4"),
+        TANK_05("5", "CH3CH2OCS2Na");
+        /**
+         * 支付渠道类别
+         */
+        private String channelCode;
+
+        private String channelDesc;
+
+        BaseSkuCategories(String channelCode, String channelDesc) {
+            this.channelCode = channelCode;
+            this.channelDesc = channelDesc;
+        }
+
+
+        public String getChannelCode() {
+            return channelCode;
+        }
+
+        public String getChannelDesc() {
+            return channelDesc;
+        }
+
+        @Override
+        public String getCode() {
+            return getChannelCode();
+        }
+
+
+    }
+
+}

+ 7 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/constant/base/BizEnum.java

@@ -0,0 +1,7 @@
+package com.ruoyi.ams.order.constant.base;
+
+public interface BizEnum{
+
+	<T> T getCode();
+
+}

+ 28 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/constant/base/EnumUtils.java

@@ -0,0 +1,28 @@
+package com.ruoyi.ams.order.constant.base;
+
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @see BizEnum 该类中的枚举都可以使用改工具类,即继承自BizEnum即可
+ * @description 通过code来获取枚举对象方法,根据Code找不到对应枚举会返回Null,调用者请避免NPE
+ * @author chenyang
+ */
+@Slf4j
+public class EnumUtils {
+
+	public static <T extends BizEnum> T getEnumByCode(Object code, Class<T> enumClass){
+
+		//参数校验
+		if(ObjectUtil.isNull(code)) return null;
+		T[] enumConstants = enumClass.getEnumConstants();
+		if(ArrayUtil.isEmpty(enumConstants)){
+			log.warn("EnumUtils-getEnumByCode-enumConstants is Empty, current class: {}", enumClass.getName());
+			return null;
+		}
+		//筛选
+		return Lists.newArrayList(enumConstants).stream().filter(item -> ObjectUtil.equal(code, item.getCode())).findFirst().orElse(null);
+	}
+}

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

@@ -8,7 +8,6 @@ import com.ruoyi.ams.box.domain.WmsBoxInfo;
 import com.ruoyi.ams.box.mapper.WmsBoxInfoMapper;
 import com.ruoyi.ams.box.service.IWmsBoxInfoService;
 import com.ruoyi.ams.business.IBusinessService;
-import com.ruoyi.ams.config.domain.FlowConfigHeader;
 import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
 import com.ruoyi.ams.config.domain.vo.FlowConfigHeaderVO;
@@ -23,6 +22,8 @@ import com.ruoyi.ams.inv.service.IActTransactionLogService;
 import com.ruoyi.ams.inv.service.IInvLotLocIdService;
 import com.ruoyi.ams.order.domain.ActAllocationDetails;
 import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
+import com.ruoyi.ams.order.constant.SatsukiEnums;
+import com.ruoyi.ams.order.constant.base.EnumUtils;
 import com.ruoyi.ams.order.form.*;
 import com.ruoyi.ams.order.mapper.WmsDocOrderDetailsMapper;
 import com.ruoyi.ams.order.service.IActAllocationDetailsService;
@@ -30,8 +31,6 @@ import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
 import com.ruoyi.ams.order.vo.CheckOutVO;
 import com.ruoyi.ams.order.vo.PickingListVO;
 import com.ruoyi.ams.order.vo.StockOrderVO;
-import com.ruoyi.ams.task.domain.WcsTask;
-import com.ruoyi.ams.task.service.IWcsTaskService;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseLocationInfo;
 import com.ruoyi.base.domain.vo.CodeSkuRelationshipVO;
@@ -45,7 +44,6 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.uuid.SnowflakeIdWorker;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 import com.ruoyi.ams.order.mapper.WmsDocOrderHeaderMapper;
 import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
@@ -153,28 +151,8 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
     public AjaxResult insertWmsDocOrderHeader(WmsDocOrderHeader wmsDocOrderHeader) {
         List<WmsDocOrderDetails> wmsDocOrderDetails = wmsDocOrderDetailsService.selectWmsDocOrderDetailsByOrderNo(wmsDocOrderHeader.getOrderNo());
         String soReference3 = wmsDocOrderHeader.getSoReference3();
-        String sku = "";
-        switch(soReference3) {
-            case "1":
-                sku = "Na2CO3";
-                break;
-            case "2":
-                sku = "C5H10OS2";
-                break;
-            case "3":
-                sku = "(NaPO3)6";
-                break;
-            case "4":
-                sku = "(NH4)2SO4";
-                break;
-            case "5":
-                sku = "CH3CH2OCS2Na";
-                break;
-            default:
-                sku = "未知物质";
-                break;
-        }
-        String finalSku = sku;
+        SatsukiEnums.BaseSkuCategories baseSkuCategory = EnumUtils.getEnumByCode(soReference3, SatsukiEnums.BaseSkuCategories.class);
+        String finalSku = baseSkuCategory == null ? "未知物质" : baseSkuCategory.getChannelDesc();
         wmsDocOrderDetails.forEach(item ->{
             if(!finalSku.equals(item.getSku())){
                 throw new RuntimeException("物料不符!");
@@ -185,10 +163,6 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
         wmsDocOrderHeader.setOrderNo(orderNo);
         wmsDocOrderHeader.setEdiSendFlag("N");
         wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(wmsDocOrderHeader);
-        /*List<WmsDocOrderDetails> orderDetails = wmsDocOrderHeader.getWmsDocOrderDetailsList();
-        for (WmsDocOrderDetails de : orderDetails) {
-            wmsDocOrderHeaderService.insertWmsDocOrderDetails(de);
-        }*/
         return AjaxResult.success("新增成功!",orderNo);
     }