浏览代码

feat: 芳华臻选的快递配置

xdd 1 月之前
父节点
当前提交
3730603036

+ 10 - 0
fs-service-system/src/main/java/com/fs/oms/config/DeliverCompanyConfig.java

@@ -0,0 +1,10 @@
+package com.fs.oms.config;
+
+import lombok.Data;
+
+@Data
+public class DeliverCompanyConfig {
+    private DeliverModeConfig pub;
+    private DeliverModeConfig pri;
+
+}

+ 37 - 0
fs-service-system/src/main/java/com/fs/oms/config/DeliverConfig.java

@@ -0,0 +1,37 @@
+package com.fs.oms.config;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Setter
+@Getter
+@Configuration
+@ConfigurationProperties(prefix = "deliver")
+@ConditionalOnProperty(prefix = "deliver", name = "enabled", havingValue = "true", matchIfMissing = false)
+public class DeliverConfig {
+    private Map<String, DeliverCompanyConfig> companies = new HashMap<>();
+
+    /**
+     * 获取omsCode
+     * @param erpCode ERP代码
+     * @param isPri 私域还是公域
+     * @return omsCode
+     */
+    public String getOmsCode(String erpCode, boolean isPri) {
+        DeliverCompanyConfig companyConfig = companies.get(erpCode);
+        if (companyConfig == null) {
+            return null;
+        }
+
+        DeliverModeConfig modeConfig = isPri ? companyConfig.getPri() : companyConfig.getPub();
+        return modeConfig != null ? modeConfig.getOmsCode() : null;
+    }
+}

+ 9 - 0
fs-service-system/src/main/java/com/fs/oms/config/DeliverModeConfig.java

@@ -0,0 +1,9 @@
+package com.fs.oms.config;
+
+import lombok.Data;
+
+@Data
+public class DeliverModeConfig {
+    private String omsCode;
+
+}

+ 22 - 11
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -56,6 +56,7 @@ import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuifuCreateOrderResult;
 import com.fs.huifuPay.dto.*;
 import com.fs.huifuPay.service.HuiFuService;
+import com.fs.oms.config.DeliverConfig;
 import com.fs.pay.pay.domain.CreateWxOrderResult;
 import com.fs.pay.pay.domain.RefundResult;
 import com.fs.pay.pay.dto.OrderQueryDTO;
@@ -235,8 +236,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Autowired
     private IFsStoreOrderItemService itemService;
 
-    @Value("${fsConfig.omsCode}")
-    private String deliverOmsCode;
 
     @Value("${jst.shop_code}")
     private String jstShopCode;
@@ -278,6 +277,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Value("${snowflake.datacenter-id:1}")
     private long datacenterId;
 
+    @Autowired
+    private DeliverConfig deliverConfig;
+
     @Override
     public void syncExpressToWx() {
         List<FsWxExpressTask> fsWxExpressTasks = fsWxExpressTaskMapper.selectPendingData();
@@ -1995,19 +1997,23 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         }
         else if(order.getCompanyId()!=null){
             Company company = companyService.selectCompanyById(order.getCompanyId());
+            String omsCode = deliverConfig.getOmsCode(ErpContextHolder.getErpType(), true);
+            Asserts.notNull(omsCode,String.format("当前ERP为: %s, 是否私域: %s,未找到匹配的OMS_CODE!",ErpContextHolder.getErpType(),"是"));
+            logger.info("单号: {}, 当前ERP: {},是否私域: {},OMS_CODE: {}",order.getOrderCode(),ErpContextHolder.getErpType(),"是",omsCode);
+
             if (order.getPayDelivery().compareTo(new BigDecimal(0)) == 0) {  //没有物流代收(全款订单)
                 FsExpress express = new FsExpress();
                 //express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
                 if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
-                    express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                    express=expressService.selectFsExpressByOmsCode(omsCode);
                 }
                 else{
                     boolean found = containsAddress(order.getUserAddress());
                     if(found){
-                        express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                        express=expressService.selectFsExpressByOmsCode(omsCode);
                     }
                     else{
-                        express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                        express=expressService.selectFsExpressByOmsCode(omsCode);
                     }
                 }
                 Asserts.notNull(express,"快递没有找到!");
@@ -2022,14 +2028,14 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     if(StringUtils.isNotEmpty(company.getOmsCode())){
                         express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
                     }else{
-                        express=expressService.selectFsExpressByOmsCode("EMS.1");
+                        express=expressService.selectFsExpressByOmsCode(omsCode);
                     }
                 }
                 else{
                     if(StringUtils.isNotEmpty(company.getOmsCode())){
                         express = expressService.selectFsExpressByOmsCode(company.getOmsCode());
                     }else{
-                        express = expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                        express = expressService.selectFsExpressByOmsCode(omsCode);
                     }
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
@@ -2044,17 +2050,22 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
         }
         else{
+            String omsCode = deliverConfig.getOmsCode(ErpContextHolder.getErpType(), false);
+            Asserts.notNull(omsCode,String.format("当前ERP为: %s, 是否私域: %s,未找到匹配的OMS_CODE!",ErpContextHolder.getErpType(),"否"));
+
+            logger.info("单号: {}, 当前ERP: {},是否私域: {},OMS_CODE: {}",order.getOrderCode(),ErpContextHolder.getErpType(),"否",omsCode);
+
             if(order.getPayDelivery().compareTo(new BigDecimal(0))==0){  //没有物流代收(全款订单)
                 FsExpress express=new FsExpress();
                 if(order.getPayPrice().compareTo(new BigDecimal(100))<=0){
-                    express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                    express=expressService.selectFsExpressByOmsCode(omsCode);
                 }else{
                     boolean found = containsAddress(order.getUserAddress());
                     if(found){
-                        express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                        express=expressService.selectFsExpressByOmsCode(omsCode);
                     }
                     else{
-                        express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                        express=expressService.selectFsExpressByOmsCode(omsCode);
                     }
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
@@ -2073,7 +2084,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     express=expressService.selectFsExpressByOmsCode("EMS.1");
                 }
                 else {
-                    express=expressService.selectFsExpressByOmsCode(deliverOmsCode);
+                    express=expressService.selectFsExpressByOmsCode(omsCode);
                 }
                 erpOrder.setExpress_code(express.getOmsCode());
                 order.setDeliveryName(express.getName());

+ 12 - 1
fs-service-system/src/main/resources/application-config.yml

@@ -113,4 +113,15 @@ snowflake:
   datacenter-id: 11
 
 
-
+# 发货快递配置
+deliver:
+  GY:
+    pub:
+      omsCode: 'WXSPHYD'
+    pri:
+      omsCode: 'MPSF0235506547'
+  JST:
+    pub:
+      omsCode: 'YUNDA.18'
+    pri:
+      omsCode: 'SF.34'