Browse Source

Merge remote-tracking branch 'origin/master'

xl37192053 2 years ago
parent
commit
998eff629f

+ 55 - 0
conf/script/1000/business/BE_PlateForm_CodeList.groovy

@@ -0,0 +1,55 @@
+import com.alibaba.fastjson2.JSON
+import com.dderp.common.api.BusinessExecutor
+import com.dderp.common.datas.ERPModule
+import com.dderp.common.entity.base.InvokeCallParams
+import com.dderp.common.entity.base.InvokeCallResult
+import com.sweetfish.service.RetResult
+import groovy.json.JsonOutput
+import groovy.json.JsonSlurper
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.Logger
+
+import javax.annotation.Resource
+
+@SuppressWarnings("unused")
+class BE_PlateForm_CodeList implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
+
+    protected final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
+
+    @Resource(name = "APP_HOME")
+    private String appHome
+
+    private def platformCodeArray = []
+
+    @Override
+    String scriptName() {
+        return "获取平台编号大全"
+    }
+
+    @Override
+    ERPModule module() {
+        return ERPModule.DOC
+    }
+
+    void start(long supplierCode) {
+        def jsonSlurper = new JsonSlurper()
+
+        def platformCodeJsonFile = new File(appHome + File.separator +
+                "conf" + File.separator +
+                "script" + File.separator +
+                "1000" + File.separator +
+                "scriptFiles" + File.separator +
+                "platformCode.json")
+        platformCodeArray = jsonSlurper.parse(platformCodeJsonFile)
+    }
+
+    @Override
+    RetResult<InvokeCallResult> execute(InvokeCallParams source) {
+        String codeJson = JSON.toJSONString(platformCodeArray);// JsonOutput.toJson(platformCodeArray)
+        logger.info(codeJson)
+
+        return RetResult.<InvokeCallResult> successT().result(
+                InvokeCallResult.success().data(codeJson)
+        )
+    }
+}

+ 6 - 0
conf/script/1000/expressApi/BE_Express_CreateOrder_SFTC.groovy

@@ -11,6 +11,7 @@ import com.dderp.common.entity.express.SFOrderReceive
 import com.dderp.common.http.HttpTools
 import com.sweetfish.convert.json.JsonConvert
 import com.sweetfish.service.RetResult
+import groovy.json.JsonSlurper
 import org.apache.logging.log4j.LogManager
 import org.apache.logging.log4j.Logger
 
@@ -111,6 +112,11 @@ class BE_Express_CreateOrder_SFTC implements BusinessExecutor<ProcessStringItem,
         try {
             String orderResult = apiResult.get(6000, TimeUnit.SECONDS)
 
+            def jsonSlurper = new JsonSlurper()
+            def sfOrderJson = jsonSlurper.parseText(orderResult)
+
+            logger.info(sfOrderJson)
+
             SFCreateOrderResult createOrderResult = jsonConvert.convertFromO(SFCreateOrderResult.class, orderResult)
             logger.info(orderResult)
             logger.info(jsonConvert.convertTo(createOrderResult))

+ 81 - 0
conf/script/1000/expressApi/BE_Express_StoreBind_SFTC.groovy

@@ -0,0 +1,81 @@
+import com.dderp.common.api.BusinessExecutor
+import com.dderp.common.api.ERPLockDataService
+import com.dderp.common.api.NoSqlKeysService
+import com.dderp.common.datas.ERPModule
+import com.dderp.common.datas.RedisKeys
+import com.dderp.common.entity.base.InvokeCallParams
+import com.dderp.common.entity.base.InvokeCallResult
+import com.dderp.common.entity.store.StoreInfo
+import com.dySweetFishPlugin.sql.dao.OperatorWait
+import com.sweetfish.convert.json.JsonConvert
+import com.sweetfish.service.RetResult
+import groovy.json.JsonSlurper
+import org.apache.commons.lang3.StringUtils
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.Logger
+
+import javax.annotation.Resource
+
+class BE_Express_StoreBind_SFTC implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
+
+    private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
+
+    @Resource(name = "property.sftc.appId")
+    long sfAppId
+
+    @Resource(name = "property.sftc.storeBindUrl")
+    String sfStoreBindUrl
+
+    @Resource
+    JsonConvert jsonConvert
+
+    @Resource
+    ERPLockDataService lockDataService
+
+    @Resource
+    NoSqlKeysService keysService
+
+    @Override
+    String scriptName() {
+        return "顺丰同城店铺绑定地址"
+    }
+
+    @Override
+    ERPModule module() {
+        return ERPModule.EXPRESS_API
+    }
+
+    @Override
+    OperatorWait getAWait() {
+        return OperatorWait.SYNC
+    }
+
+    @Override
+    RetResult<InvokeCallParams> checkExecute(InvokeCallParams source) {
+        //检查门店信息
+        def jsonSlurper = new JsonSlurper()
+        def invokeData = jsonSlurper.parseText(source.params)
+
+        long idStore = invokeData["id"] as long
+        //todo 调用store服务获取门店信息,检查
+
+        return RetResult.<InvokeCallParams>successT().result(source)
+    }
+
+    RetResult<InvokeCallResult> execute(InvokeCallParams source) {
+        def jsonSlurper = new JsonSlurper()
+        def invokeData = jsonSlurper.parseText(source.params)
+
+        long idStore = invokeData["id"] as long
+
+        //todo 调用store服务获取门店信息,检查
+        StoreInfo storeInfo = new StoreInfo()
+
+        //查找storeInfo中的顺丰同城店铺id
+
+
+        return RetResult.<InvokeCallResult> successT().result(
+                InvokeCallResult.success()
+        )
+    }
+}

+ 27 - 0
conf/script/1000/scriptFiles/platformCode.json

@@ -0,0 +1,27 @@
+[
+  {
+    "code": "DYLK",
+    "name": "抖音来客",
+    "kind": 0
+  },
+  {
+    "code": "ELM",
+    "name": "饿了么",
+    "kind": 0
+  },
+  {
+    "code": "MEITUAN",
+    "name": "美团闪购",
+    "kind": 0
+  },
+  {
+    "code": "SFTC",
+    "name": "顺丰同城",
+    "kind": 1
+  },
+  {
+    "code": "DDPT",
+    "name": "达达跑腿",
+    "kind": 1
+  }
+]

+ 2 - 1
conf/sftc.properties

@@ -1,4 +1,5 @@
 sftc.appId = 1688762808
 sftc.appKey = 48bbf2d69b43a38cac9df1a7e753a784
 
-sftc.createOrderUrl = https://openic.sf-express.com/open/api/external/createorder?
+sftc.createOrderUrl = https://openic.sf-express.com/open/api/external/createorder?
+sftc.storeBindUrl = https://openic.sf-express.com/artascope/cx/receipt/getpage/product/artascope/page/storeBinding

+ 17 - 6
ddBusiness/src/main/java/com/dderp/business/service/DocInfoServiceImpl.java

@@ -5,10 +5,7 @@ import com.dderp.common.api.DocInfoService;
 import com.dderp.common.api.NoSqlKeysService;
 import com.dderp.common.base.BaseService;
 import com.dderp.common.datas.*;
-import com.dderp.common.entity.base.ProcessEntityItem;
-import com.dderp.common.entity.base.ProcessIdItem;
-import com.dderp.common.entity.base.ProcessSearchItem;
-import com.dderp.common.entity.base.ScriptContent;
+import com.dderp.common.entity.base.*;
 import com.dderp.common.entity.doc.BusinessScript;
 import com.dderp.common.entity.inquire.InquireCondition;
 import com.dderp.common.entity.inquire.InquireExecRecord;
@@ -102,8 +99,6 @@ public class DocInfoServiceImpl extends BaseService implements DocInfoService {
 
         docExecutor = Executors.newFixedThreadPool(4, new ThreadFactoryWithNamePrefix("[基础档案线程池]"));
 
-
-
         final JsonFactory billChildFactory = jsonRootFactory.createChild();
         billChildFactory.register(InquireMainInfo.class, true, "resultColumnList", "conditionList");
         //重新加载Coder使之覆盖父Factory的配置
@@ -864,4 +859,20 @@ public class DocInfoServiceImpl extends BaseService implements DocInfoService {
 
 
     //endregion
+
+    public RetResult<InvokeCallResult> callDoc(InvokeCallParams source, ERPTokenUser currentUser, String dataSourceId, long supplierCode) {
+        if (source == null) {
+            return RetResult.<InvokeCallResult>errorT().retinfo("无效的参数信息");
+        }
+
+        if (StringUtils.isEmpty(source.getBusinessMethod())) {
+            return RetResult.<InvokeCallResult>errorT().retinfo("无效的参数方法[businessMethod]信息");
+        }
+
+        source.setCurrentUser(currentUser);
+        source.setDataSourceId(dataSourceId);
+        source.setSupplierCode(supplierCode);
+
+        return callScript(source.getBusinessMethod(), source, currentUser, dataSourceId, supplierCode);
+    }
 }

+ 4 - 1
ddCommon/src/main/java/com/dderp/common/api/DocInfoService.java

@@ -1,5 +1,7 @@
 package com.dderp.common.api;
 
+import com.dderp.common.entity.base.InvokeCallParams;
+import com.dderp.common.entity.base.InvokeCallResult;
 import com.dderp.common.entity.base.ProcessSearchItem;
 import com.dderp.common.entity.base.ScriptContent;
 import com.dderp.common.entity.doc.BusinessScript;
@@ -150,7 +152,6 @@ public interface DocInfoService extends ScriptService {
     RetResult<InquireMainInfo> addExcelTemplate(long id, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
     //endregion
 
-
     //region 分厂档案
     /**
      * 从id获取分厂信息信息
@@ -209,4 +210,6 @@ public interface DocInfoService extends ScriptService {
      */
     RetResult<CompanyInfo> voidCompanyInfo(CompanyInfo companyInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
     //endregion
+
+    RetResult<InvokeCallResult> callDoc(InvokeCallParams source, ERPTokenUser currentUser, String dataSourceId, long supplierCode);
 }

+ 19 - 3
ddWebCore/src/main/java/com/dderp/webcore/rest/DocInfoRest.java

@@ -6,9 +6,7 @@ import com.dderp.common.base.BaseService;
 import com.dderp.common.datas.ERPHeader;
 import com.dderp.common.datas.ERPModule;
 import com.dderp.common.datas.HttpCode;
-import com.dderp.common.entity.base.IdValueItem;
-import com.dderp.common.entity.base.ProcessSearchItem;
-import com.dderp.common.entity.base.ScriptContent;
+import com.dderp.common.entity.base.*;
 import com.dderp.common.entity.doc.BusinessScript;
 import com.dderp.common.entity.inquire.InquireCondition;
 import com.dderp.common.entity.inquire.InquireExecRecord;
@@ -31,6 +29,7 @@ import java.util.stream.Collectors;
 @AutoLoad(false)
 @Local
 @RestService(name = "doc", moduleid = 0, comment = "基础档案模块")
+@SuppressWarnings("rawtypes")
 public class DocInfoRest extends BaseService {
     @Resource
     private DocInfoService docInfoService;
@@ -38,6 +37,23 @@ public class DocInfoRest extends BaseService {
     @Resource
     private SystemService systemService;
 
+    @RestMapping(name = "callDoc", auth = false, sort = 1, logging = 4, comment = "基础档案接口", methods = {"POST"})
+    public CompletableFuture<InvokeCallResult> callDoc(
+            @RestBody(comment = "提交数据") InvokeCallParams callParams,
+            @RestParam(name = "&", comment = "登录用户,无需传入") ERPTokenUser currentUser,
+            @RestHeader(name = ERPHeader.HTTPHEADER_DATASOURCE) String dataSourceId,
+            @RestHeader(name = ERPHeader.HTTPHEADER_SUPPLIER) String supplierCode) {
+        return CompletableFuture.supplyAsync(
+                () -> {
+                    RetResult<InvokeCallResult> infoResult = docInfoService.callDoc(callParams, currentUser, dataSourceId, Long.parseLong(supplierCode));
+                    if (infoResult.isSuccess()) {
+                        return infoResult.getResult();
+                    }
+                    return InvokeCallResult.error(HttpCode.BAD_REQUEST.value(), infoResult.getRetinfo());
+                }, getExecutor()
+        );
+    }
+
     //region 业务执行脚本
     @RestMapping(name = "getBusinessScriptList", auth = true, sort = 500, comment = "获取业务脚本列表", methods = {"GET", "POST"})
     @WebApiBean(result = true, type = BusinessScript.class)