Sfoglia il codice sorgente

Merge branch 'feature/eccs-upgrade' of lvjian/eccs into feature/eccs-upgrade

吕健 2 anni fa
parent
commit
e4d5771b47

+ 22 - 0
eccs-biz/src/main/java/com/emato/biz/controller/warehouse/OWbInveMngController.java

@@ -2,8 +2,11 @@ package com.emato.biz.controller.warehouse;
 
 import java.util.List;
 
+import com.emato.biz.domain.OutRequest;
 import com.emato.biz.domain.warehouse.PullInveQueryVO;
 import com.emato.biz.util.RoleUtils;
+import com.emato.common.annotation.AnonymousAccess;
+import com.emato.common.core.Result;
 import com.emato.common.core.domain.entity.SysDept;
 import com.emato.common.core.domain.entity.SysUser;
 import com.emato.common.core.domain.model.LoginUser;
@@ -114,6 +117,12 @@ public class OWbInveMngController extends BaseController
         return toAjax(oWbInveMngService.deleteOWbInveMngByIds(inveSns));
     }
 
+    /**
+     * 拉取库存数据
+     *
+     * @param queryVO
+     * @return
+     */
     @PreAuthorize("@ss.hasPermi('biz:invemng:pull')")
     @PostMapping("/pullInveMng")
     public AjaxResult pullInveMng(PullInveQueryVO queryVO)
@@ -121,4 +130,17 @@ public class OWbInveMngController extends BaseController
         return oWbInveMngService.pullInveMng(queryVO);
     }
 
+    /**
+     * 接收 OMS 仓库库存数据
+     *
+     * @param outRequest
+     * @return
+     */
+    @AnonymousAccess
+    @PostMapping("/receive")
+    public Result receiveInveMng(@RequestBody OutRequest outRequest) {
+        return oWbInveMngService.receiveInveMng(outRequest);
+    }
+
+
 }

+ 15 - 0
eccs-biz/src/main/java/com/emato/biz/controller/warehouse/OWbMerchShopInveController.java

@@ -2,7 +2,10 @@ package com.emato.biz.controller.warehouse;
 
 import java.util.List;
 
+import com.emato.biz.domain.OutRequest;
 import com.emato.biz.domain.warehouse.PullInveQueryVO;
+import com.emato.common.annotation.AnonymousAccess;
+import com.emato.common.core.Result;
 import com.emato.common.core.domain.entity.SysDept;
 import com.emato.common.core.domain.entity.SysUser;
 import com.emato.common.core.domain.model.LoginUser;
@@ -120,4 +123,16 @@ public class OWbMerchShopInveController extends BaseController
         return oWbMerchShopInveService.pullShopInve(queryVO);
     }
 
+    /**
+     * 接收 OMS 门店库存数据
+     *
+     * @param outRequest
+     * @return
+     */
+    @AnonymousAccess
+    @PostMapping("/receive")
+    public Result receiveShopInve(@RequestBody OutRequest outRequest) {
+        return oWbMerchShopInveService.receiveShopInve(outRequest);
+    }
+
 }

+ 34 - 0
eccs-biz/src/main/java/com/emato/biz/service/impl/OWbInveMngServiceImpl.java

@@ -13,13 +13,16 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.emato.biz.config.OmsConfig;
 import com.emato.biz.domain.OutRequest;
+import com.emato.biz.domain.mall.InventoryReqVO;
 import com.emato.biz.domain.merchant.MerchUser;
 import com.emato.biz.domain.merchant.ThirdMerchantBiz;
 import com.emato.biz.domain.warehouse.Page;
 import com.emato.biz.domain.warehouse.PullInveQueryVO;
+import com.emato.biz.exception.Assert;
 import com.emato.biz.mapper.merchant.MerchUserMapper;
 import com.emato.biz.mapper.merchant.ThirdMerchantBizMapper;
 import com.emato.biz.mapper.warehouse.WbInveMngMapper;
+import com.emato.biz.service.SignService;
 import com.emato.biz.util.JsonUtil;
 import com.emato.biz.util.OmsDataUtil;
 import com.emato.biz.util.RoleUtils;
@@ -31,6 +34,7 @@ import com.emato.common.utils.DateUtils;
 import com.emato.common.utils.SecurityUtils;
 import com.emato.common.utils.oms.JacksonUtils;
 import com.emato.common.utils.oms.request.OmsSign;
+import com.emato.common.utils.oms.response.ResultCodeEnum;
 import org.apache.http.HttpStatus;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpPost;
@@ -75,6 +79,36 @@ public class OWbInveMngServiceImpl implements IOWbInveMngService
     @Autowired
     private ThreadPoolExecutor threadPoolExecutor;
 
+    @Autowired
+    private SignService signService;
+
+    /**
+     * 接收 OMS 推送的库存数据
+     *
+     * @param outRequest
+     * @return
+     */
+    @Override
+    public Result receiveInveMng(OutRequest outRequest) {
+        try {
+            log.info("----- 接收 OMS 仓库库存开始 -----");
+            log.info("========== OMS 请求 eccs 报文 =========> {}", outRequest);
+            // 验签
+            Assert.notTrue(!signService.verifySign(outRequest), ResultCodeEnum.SIGN_ERROR);
+            // 将发送数据转为请求类
+            OWbInveMng wbInveMng = JSON.parseObject(outRequest.getData(), OWbInveMng.class);
+            log.debug("========== 解析后的请求数据 ==========> {}", wbInveMng);
+            // 插入数据库
+            wbInveMngMapper.saveOrUpdate(wbInveMng);
+            log.info("----- 接收 OMS 仓库库存结束 -----");
+            return Result.success();
+        } catch (Exception e) {
+            log.error("接收 OMS 仓库库存异常 => ", e);
+            return Result.error(ResultCodeEnum.RECEIVE_WB_INVE_EXCEPTION.getCode(),
+                    ResultCodeEnum.RECEIVE_WB_INVE_EXCEPTION.getMsg());
+        }
+    }
+
     /**
      * 根据条件拉取 OMS 数据
      *

+ 35 - 0
eccs-biz/src/main/java/com/emato/biz/service/impl/OWbMerchShopInveServiceImpl.java

@@ -9,16 +9,20 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.emato.biz.config.OmsConfig;
+import com.emato.biz.domain.OutRequest;
 import com.emato.biz.domain.merchant.MerchUser;
 import com.emato.biz.domain.merchant.ThirdMerchantBiz;
 import com.emato.biz.domain.store.OWbShopBase;
 import com.emato.biz.domain.warehouse.*;
+import com.emato.biz.exception.Assert;
 import com.emato.biz.mapper.merchant.MerchUserMapper;
 import com.emato.biz.mapper.merchant.ThirdMerchantBizMapper;
 import com.emato.biz.mapper.store.OWbShopBaseMapper;
 import com.emato.biz.mapper.warehouse.WbMerchShopInveMapper;
+import com.emato.biz.service.SignService;
 import com.emato.biz.util.OmsDataUtil;
 import com.emato.biz.util.RoleUtils;
+import com.emato.common.core.Result;
 import com.emato.common.core.domain.AjaxResult;
 import com.emato.common.core.domain.entity.SysUser;
 import com.emato.common.exception.ServiceException;
@@ -26,9 +30,11 @@ import com.emato.common.utils.DateUtils;
 import com.emato.common.utils.SecurityUtils;
 import com.emato.common.utils.oms.request.OkHttpUtils;
 import com.emato.common.utils.oms.request.OmsSign;
+import com.emato.common.utils.oms.response.ResultCodeEnum;
 import okhttp3.Request;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.emato.biz.mapper.warehouse.OWbMerchShopInveMapper;
 import com.emato.biz.service.warehouse.IOWbMerchShopInveService;
@@ -59,8 +65,37 @@ public class OWbMerchShopInveServiceImpl implements IOWbMerchShopInveService
     @Resource
     private OWbShopBaseMapper oWbShopBaseMapper;
 
+    @Autowired
+    private SignService signService;
+
     private static final Logger log = LoggerFactory.getLogger(OWbMerchShopInveServiceImpl.class);
 
+    /**
+     * 接收 OMS 门店库存数据
+     *
+     * @param outRequest
+     * @return
+     */
+    @Override
+    public Result receiveShopInve(OutRequest outRequest) {
+        try {
+            log.info("----- 接收 OMS 门店库存开始 -----");
+            log.info("========== OMS 请求 eccs 报文 =========> {}", outRequest);
+            // 验签
+            Assert.notTrue(!signService.verifySign(outRequest), ResultCodeEnum.SIGN_ERROR);
+            // 将发送数据转为请求类
+            OWbMerchShopInve shopInve = JSON.parseObject(outRequest.getData(), OWbMerchShopInve.class);
+            log.debug("========== 解析后的请求数据 ==========> {}", shopInve);
+            // 插入数据库
+            wbMerchShopInveMapper.saveOrUpdate(shopInve);
+            log.info("----- 接收 OMS 门店库存结束 -----");
+            return Result.success();
+        } catch (Exception e) {
+            log.error("接收 OMS 门店库存异常 => ", e);
+            return Result.error(ResultCodeEnum.RECEIVE_WB_INVE_EXCEPTION.getCode(),
+                    ResultCodeEnum.RECEIVE_WB_INVE_EXCEPTION.getMsg());
+        }
+    }
 
     /**
      * 拉取门店库存数据

+ 11 - 0
eccs-biz/src/main/java/com/emato/biz/service/warehouse/IOWbInveMngService.java

@@ -1,8 +1,11 @@
 package com.emato.biz.service.warehouse;
 
 import java.util.List;
+
+import com.emato.biz.domain.OutRequest;
 import com.emato.biz.domain.warehouse.OWbInveMng;
 import com.emato.biz.domain.warehouse.PullInveQueryVO;
+import com.emato.common.core.Result;
 import com.emato.common.core.domain.AjaxResult;
 
 /**
@@ -15,6 +18,14 @@ public interface IOWbInveMngService
 {
 
     /**
+     * 接收 OMS 推送的库存数据
+     *
+     * @param outRequest
+     * @return
+     */
+    Result receiveInveMng(OutRequest outRequest);
+
+    /**
      * 根据条件拉取 OMS 数据
      *
      * @param queryVO

+ 11 - 0
eccs-biz/src/main/java/com/emato/biz/service/warehouse/IOWbMerchShopInveService.java

@@ -1,8 +1,11 @@
 package com.emato.biz.service.warehouse;
 
 import java.util.List;
+
+import com.emato.biz.domain.OutRequest;
 import com.emato.biz.domain.warehouse.OWbMerchShopInve;
 import com.emato.biz.domain.warehouse.PullInveQueryVO;
+import com.emato.common.core.Result;
 import com.emato.common.core.domain.AjaxResult;
 
 /**
@@ -15,6 +18,14 @@ public interface IOWbMerchShopInveService
 {
 
     /**
+     * 接收 OMS 门店库存数据
+     *
+     * @param outRequest
+     * @return
+     */
+    Result receiveShopInve(OutRequest outRequest);
+
+    /**
      * 拉取门店库存数据
      *
      * @param queryVO

+ 2 - 0
eccs-common/src/main/java/com/emato/common/utils/oms/response/ResultCodeEnum.java

@@ -8,6 +8,8 @@ public enum ResultCodeEnum {
 	/** 未登录/登录超时 */
 	SESSION_TIMEOUT("2", "system.session.timeout"),
 
+	RECEIVE_WB_INVE_EXCEPTION("3", "接收仓库库存异常!"),
+
 	PARAM_ERROR_PAGE_INDEX_NOT_NULL("900001", "分页页码不能为空!"),
 	PARAM_ERROR_PAGE_SIZE_NOT_NULL("900001", "分页大小不能为空!"),
 	PARAM_ERROR_PAGE_INDEX_NOT_POS_INT("900001", "分页页码请填入正整数!"),