Browse Source

【华信科】【富勒WMS对接】

wuyx 10 months ago
parent
commit
6f177cf8d8
37 changed files with 406 additions and 2173 deletions
  1. 0 49
      src/main/java/com/uas/eis/beans/req/AppTokenReq.java
  2. 0 58
      src/main/java/com/uas/eis/beans/req/BaseOfOpenUserIdReq.java
  3. 0 44
      src/main/java/com/uas/eis/beans/req/BaseReq.java
  4. 0 63
      src/main/java/com/uas/eis/beans/req/CorpAccessTokenReq.java
  5. 0 42
      src/main/java/com/uas/eis/beans/req/CrmAddReq.java
  6. 0 52
      src/main/java/com/uas/eis/beans/req/CrmGetReq.java
  7. 0 202
      src/main/java/com/uas/eis/beans/req/CrmQueryReq.java
  8. 0 50
      src/main/java/com/uas/eis/beans/req/CrmUpdateReq.java
  9. 0 49
      src/main/java/com/uas/eis/beans/req/OpenUserIdReq.java
  10. 0 7
      src/main/java/com/uas/eis/beans/req/Req.java
  11. 0 52
      src/main/java/com/uas/eis/beans/result/AppTokenResult.java
  12. 0 65
      src/main/java/com/uas/eis/beans/result/CorpAccessTokenResult.java
  13. 0 40
      src/main/java/com/uas/eis/beans/result/CrmAddResult.java
  14. 0 11
      src/main/java/com/uas/eis/beans/result/CrmCallBackResult.java
  15. 0 34
      src/main/java/com/uas/eis/beans/result/CrmGetResult.java
  16. 0 33
      src/main/java/com/uas/eis/beans/result/CrmQueryResult.java
  17. 0 67
      src/main/java/com/uas/eis/beans/result/Customer.java
  18. 0 139
      src/main/java/com/uas/eis/beans/result/Goods.java
  19. 0 51
      src/main/java/com/uas/eis/beans/result/OpenUserIdResult.java
  20. 0 156
      src/main/java/com/uas/eis/beans/result/Product.java
  21. 0 41
      src/main/java/com/uas/eis/beans/result/ProductAddResult.java
  22. 0 53
      src/main/java/com/uas/eis/beans/result/ProductDto.java
  23. 32 0
      src/main/java/com/uas/eis/config/VwmsConfig.java
  24. 2 2
      src/main/java/com/uas/eis/controller/ERPController.java
  25. 4 0
      src/main/java/com/uas/eis/entity/vwms/entity/ExtendProps.java
  26. 49 0
      src/main/java/com/uas/eis/entity/vwms/req/BaseReq.java
  27. 51 0
      src/main/java/com/uas/eis/entity/vwms/req/BaseVastReq.java
  28. 90 0
      src/main/java/com/uas/eis/entity/vwms/req/ProductReq.java
  29. 24 0
      src/main/java/com/uas/eis/entity/vwms/req/RequestWrapper.java
  30. 25 0
      src/main/java/com/uas/eis/entity/vwms/req/RequestWrapperVast.java
  31. 1 1
      src/main/java/com/uas/eis/service/ERPService.java
  32. 66 6
      src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java
  33. 0 227
      src/main/java/com/uas/eis/utils/HttpTookit.java
  34. 24 6
      src/main/java/com/uas/eis/utils/HttpUtil.java
  35. 0 279
      src/main/java/com/uas/eis/utils/OpenAPIUtils.java
  36. 28 0
      src/main/resources/vwms.properties
  37. 10 294
      src/test/java/com/uas/eis/UasEisApplicationTests.java

+ 0 - 49
src/main/java/com/uas/eis/beans/req/AppTokenReq.java

@@ -1,49 +0,0 @@
-package com.uas.eis.beans.req;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * 封装获取appToken 请求参数的JaveBean
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class AppTokenReq implements Req {
-
-    private static final long serialVersionUID = -5691676776742443894L;
-
-    /**
-     * 应用ID
-     */
-    private String appId;
-
-    /**
-     * 应用秘钥
-     */
-    private String appSecret;
-
-    public String getAppId() {
-        return appId;
-    }
-
-    public void setAppId(String appId) {
-        this.appId = appId;
-    }
-
-    public String getAppSecret() {
-        return appSecret;
-    }
-
-    public void setAppSecret(String appSecret) {
-        this.appSecret = appSecret;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("appId", appId)
-                .add("appSecret", appSecret)
-                .toString();
-    }
-
-}

+ 0 - 58
src/main/java/com/uas/eis/beans/req/BaseOfOpenUserIdReq.java

@@ -1,58 +0,0 @@
-package com.uas.eis.beans.req;
-
-
-import com.google.common.base.MoreObjects;
-
-public class BaseOfOpenUserIdReq implements Req {
-
-    private static final long serialVersionUID = 6280290415792613761L;
-
-    /**
-     * 第三方应用获得企业授权的凭证
-     */
-    protected String corpAccessToken;
-
-    /**
-     * 开放平台派发的公司账号
-     */
-    protected String corpId;
-
-    /**
-     * 前操作的开放平台派发的用户帐号
-     */
-    protected String currentOpenUserId;
-
-    public String getCurrentOpenUserId() {
-        return currentOpenUserId;
-    }
-
-    public void setCurrentOpenUserId(String currentOpenUserId) {
-        this.currentOpenUserId = currentOpenUserId;
-    }
-
-    public String getCorpAccessToken() {
-        return corpAccessToken;
-    }
-
-    public void setCorpAccessToken(String corpAccessToken) {
-        this.corpAccessToken = corpAccessToken;
-    }
-
-    public String getCorpId() {
-        return corpId;
-    }
-
-    public void setCorpId(String corpId) {
-        this.corpId = corpId;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("corpAccessToken", corpAccessToken)
-                .add("corpId", corpId)
-                .add("currentOpenUserId",currentOpenUserId)
-                .toString();
-    }
-
-}

+ 0 - 44
src/main/java/com/uas/eis/beans/req/BaseReq.java

@@ -1,44 +0,0 @@
-package com.uas.eis.beans.req;
-
-
-import com.google.common.base.MoreObjects;
-
-public class BaseReq implements Req {
-
-    private static final long serialVersionUID = 6280290415792613761L;
-
-    /**
-     * 第三方应用获得企业授权的凭证
-     */
-    protected String corpAccessToken;
-
-    /**
-     * 开放平台派发的公司账号
-     */
-    protected String corpId;
-
-    public String getCorpAccessToken() {
-        return corpAccessToken;
-    }
-
-    public void setCorpAccessToken(String corpAccessToken) {
-        this.corpAccessToken = corpAccessToken;
-    }
-
-    public String getCorpId() {
-        return corpId;
-    }
-
-    public void setCorpId(String corpId) {
-        this.corpId = corpId;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("corpAccessToken", corpAccessToken)
-                .add("corpId", corpId)
-                .toString();
-    }
-
-}

+ 0 - 63
src/main/java/com/uas/eis/beans/req/CorpAccessTokenReq.java

@@ -1,63 +0,0 @@
-package com.uas.eis.beans.req;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * 封装获取CorpAccessToken 请求参数的JaveBean
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class CorpAccessTokenReq implements Req {
-
-    private static final long serialVersionUID = 119087883828028381L;
-
-    /**
-     * 应用ID
-     */
-    private String appId;
-
-    /**
-     * 应用秘钥
-     */
-    private String appSecret;
-
-    /**
-     * 永久授权码
-     */
-    private String permanentCode;
-
-    public String getAppId() {
-        return appId;
-    }
-
-    public void setAppId(String appId) {
-        this.appId = appId;
-    }
-
-    public String getAppSecret() {
-        return appSecret;
-    }
-
-    public void setAppSecret(String appSecret) {
-        this.appSecret = appSecret;
-    }
-
-    public String getPermanentCode() {
-        return permanentCode;
-    }
-
-    public void setPermanentCode(String permanentCode) {
-        this.permanentCode = permanentCode;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("appId", appId)
-                .add("permanentCode", permanentCode)
-                .add("permanentCode", permanentCode)
-                .toString();
-    }
-
-}

+ 0 - 42
src/main/java/com/uas/eis/beans/req/CrmAddReq.java

@@ -1,42 +0,0 @@
-package com.uas.eis.beans.req;
-
-import com.google.common.base.MoreObjects;
-import com.uas.eis.beans.result.Goods;
-
-import java.util.Map;
-
-/**
- * CRM添加接口参数
- * Created by zhongcy on 2016/12/30.
- */
-public class CrmAddReq<T> extends BaseOfOpenUserIdReq{
-
-    private static final long serialVersionUID = 9135811674969239762L;
-
-    private T data;
-
-    public CrmAddReq(T data) {
-        this.data = data;
-    }
-
-    public CrmAddReq() {
-    }
-
-    public T getData() {
-        return data;
-    }
-
-    public void setData(T data) {
-        this.data = data;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("corpAccessToken", corpAccessToken)
-                .add("corpId", corpId)
-                .add("currentOpenUserId", currentOpenUserId)
-                .add("data", data)
-                .toString();
-    }
-}

+ 0 - 52
src/main/java/com/uas/eis/beans/req/CrmGetReq.java

@@ -1,52 +0,0 @@
-package com.uas.eis.beans.req;
-
-
-import com.google.common.base.MoreObjects;
-
-/**
- * Crm获取详情接口参数
- * Created by zhongcy on 2017/1/9.
- */
-public class CrmGetReq extends BaseReq{
-
-    private static final long serialVersionUID = -6899653224372546750L;
-
-    private String currentOpenUserId;
-
-    private String apiName;
-
-    private String dataId;
-
-    public String getCurrentOpenUserId() {
-        return currentOpenUserId;
-    }
-
-    public void setCurrentOpenUserId(String currentOpenUserId) {
-        this.currentOpenUserId = currentOpenUserId;
-    }
-
-    public String getApiName() {
-        return apiName;
-    }
-
-    public void setApiName(String apiName) {
-        this.apiName = apiName;
-    }
-
-    public String getDataId() {
-        return dataId;
-    }
-
-    public void setDataId(String dataId) {
-        this.dataId = dataId;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("currentOpenUserId", currentOpenUserId)
-                .add("apiName", apiName)
-                .add("dataId", dataId)
-                .toString();
-    }
-}

+ 0 - 202
src/main/java/com/uas/eis/beans/req/CrmQueryReq.java

@@ -1,202 +0,0 @@
-package com.uas.eis.beans.req;
-
-import com.google.common.base.MoreObjects;
-
-import java.util.List;
-
-/**
- * Query Arg
- * Created by zhongcy on 2017/1/6.
- */
-public class CrmQueryReq extends BaseReq{
-
-    private static final long serialVersionUID = -6119269380581225350L;
-
-    private String currentOpenUserId;
-
-    private DataApiName data;
-
-    public DataApiName getDataApiName() {
-        return data;
-    }
-
-    public void setDataApiName(DataApiName dataApiName) {
-        this.data = dataApiName;
-    }
-
-    public String getCurrentOpenUserId() {
-        return currentOpenUserId;
-    }
-
-    public void setCurrentOpenUserId(String currentOpenUserId) {
-        this.currentOpenUserId = currentOpenUserId;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("currentOpenUserId", currentOpenUserId)
-                .add("data", data)
-                .toString();
-    }
-
-    public static class SearchQuery{
-        //偏移量
-        private int offset = 0;
-
-        //获取数据条数,取最大值1000
-        private int limit = 100;
-
-        private List<Filters> filters;
-
-        private List<Order> orders;
-
-        public int getOffset() {
-            return offset;
-        }
-
-        public void setOffset(int offset) {
-            this.offset = offset;
-        }
-
-        public int getLimit() {
-            return limit;
-        }
-
-        public void setLimit(int limit) {
-            this.limit = limit;
-        }
-
-
-        public List<Filters> getFilters() {
-            return filters;
-        }
-
-        public void setFilters(List<Filters> filters) {
-            this.filters = filters;
-        }
-
-        public List<Order> getOrders() {
-            return orders;
-        }
-
-        public void setOrders(List<Order> orders) {
-            this.orders = orders;
-        }
-
-        @Override
-        public String toString() {
-            return MoreObjects.toStringHelper(this)
-                    .add("offset", offset)
-                    .add("limit", limit)
-                    .add("filters", filters)
-                    .add("orders", orders)
-                    .toString();
-        }
-    }
-
-    public static class DataApiName{
-        public String getDataObjectApiName() {
-            return dataObjectApiName;
-        }
-
-        public void setDataObjectApiName(String dataObjectApiName) {
-            this.dataObjectApiName = dataObjectApiName;
-        }
-
-        public SearchQuery getSearch_query_info() {
-            return search_query_info;
-        }
-
-        public void setSearch_query_info(SearchQuery search_query_info) {
-            this.search_query_info = search_query_info;
-        }
-
-        private String dataObjectApiName;
-
-        public SearchQuery search_query_info;
-
-        @Override
-        public String toString() {
-            return MoreObjects.toStringHelper(this)
-                    .add("dataObjectApiName", dataObjectApiName)
-                    .add("search_query_info", search_query_info)
-                    .toString();
-        }
-    }
-
-    public static class Filters{
-
-        private String field_name;
-        private List<String> field_values;
-        private String operator;
-
-        public String getField_name() {
-            return field_name;
-        }
-
-        public void setField_name(String field_name) {
-            this.field_name = field_name;
-        }
-
-        public List<String> getField_values() {
-            return field_values;
-        }
-
-        public void setField_values(List<String> field_values) {
-            this.field_values = field_values;
-        }
-
-        public String getOperator() {
-            return operator;
-        }
-
-        public void setOperator(String operator) {
-            this.operator = operator;
-        }
-
-        @Override
-        public String toString() {
-            return MoreObjects.toStringHelper(this)
-                    .add("field_name", field_name)
-                    .add("field_values", field_values)
-                    .add("operator", operator)
-                    .toString();
-        }
-    }
-
-    public static class Order{
-        //降序
-        private boolean isAsc = true;
-
-        public boolean isAsc() {
-            return isAsc;
-        }
-
-        public void setAsc(boolean asc) {
-            isAsc = asc;
-        }
-
-        public String getFieldName() {
-            return fieldName;
-        }
-
-        public void setFieldName(String fieldName) {
-            this.fieldName = fieldName;
-        }
-
-        //字段,默认按照最后更新时间排序
-        private String fieldName = "create_time";
-
-
-        @Override
-        public String toString() {
-            return MoreObjects.toStringHelper(this)
-                    .add("isAsc", isAsc)
-                    .add("fieldName", fieldName)
-                    .toString();
-        }
-    }
-
-}
-

+ 0 - 50
src/main/java/com/uas/eis/beans/req/CrmUpdateReq.java

@@ -1,50 +0,0 @@
-package com.uas.eis.beans.req;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * Crm更新对象数据参数
- * Created by zhongcy on 2017/1/4.
- */
-public class CrmUpdateReq<T> extends BaseOfOpenUserIdReq {
-    private static final long serialVersionUID = -3661876864620608225L;
-
-    private String dataId;
-
-    private T data;
-
-    public CrmUpdateReq() {
-    }
-
-    public CrmUpdateReq(String dataId, T data) {
-        this.dataId = dataId;
-        this.data = data;
-    }
-
-    public String getDataId() {
-        return dataId;
-    }
-
-    public void setDataId(String dataId) {
-        this.dataId = dataId;
-    }
-
-    public T getData() {
-        return data;
-    }
-
-    public void setData(T data) {
-        this.data = data;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("corpAccessToken", corpAccessToken)
-                .add("corpId", corpId)
-                .add("currentOpenUserId", currentOpenUserId)
-                .add("dataId", dataId)
-                .add("data", data)
-                .toString();
-    }
-}

+ 0 - 49
src/main/java/com/uas/eis/beans/req/OpenUserIdReq.java

@@ -1,49 +0,0 @@
-package com.uas.eis.beans.req;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * 封装通过code获取 openUserId 请求参数的JaveBean
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class OpenUserIdReq implements Req {
-
-    private static final long serialVersionUID = 7019560397749052017L;
-
-    /**
-     * appAccessToken
-     */
-    private String appAccessToken;
-
-    /**
-     * 临时身份票据
-     */
-    private String code;
-
-    public String getAppAccessToken() {
-        return appAccessToken;
-    }
-
-    public void setAppAccessToken(String appAccessToken) {
-        this.appAccessToken = appAccessToken;
-    }
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("appAccessToken", appAccessToken)
-                .add("code", code)
-                .toString();
-    }
-
-}

+ 0 - 7
src/main/java/com/uas/eis/beans/req/Req.java

@@ -1,7 +0,0 @@
-package com.uas.eis.beans.req;
-
-import java.io.Serializable;
-
-public interface Req extends Serializable {
-
-}

+ 0 - 52
src/main/java/com/uas/eis/beans/result/AppTokenResult.java

@@ -1,52 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-
-/**
- * 封装获取到的AppToken结果的JavaBean
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class AppTokenResult extends BaseResult {
-
-    private static final long serialVersionUID = 7698338379605078704L;
-
-    /**
-     * appAccessToken
-     */
-    private String appAccessToken;
-
-    /**
-     * appToken 超时时间(单位为:分钟)
-     */
-    private long expiresIn;
-
-    public String getAppAccessToken() {
-        return appAccessToken;
-    }
-
-    public void setAppAccessToken(String appAccessToken) {
-        this.appAccessToken = appAccessToken;
-    }
-
-    public long getExpiresIn() {
-        return expiresIn;
-    }
-
-    public void setExpiresIn(long expiresIn) {
-        this.expiresIn = expiresIn;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("errorCode", errorCode)
-                .add("errorMessage", errorMessage)
-                .add("appAccessToken", appAccessToken)
-                .add("expiresIn", expiresIn)
-                .toString();
-    }
-
-}

+ 0 - 65
src/main/java/com/uas/eis/beans/result/CorpAccessTokenResult.java

@@ -1,65 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * 封装获取到的CorpAccessToken结果的JavaBean
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class CorpAccessTokenResult extends BaseResult {
-
-    private static final long serialVersionUID = -4995204525912210225L;
-
-    /**
-     * corpAccessToken
-     */
-    private String corpAccessToken;
-
-    /**
-     * corpId
-     */
-    private String corpId;
-
-    /**
-     * corpAccessToken 超时时间(单位为:秒)
-     */
-    private long expiresIn;
-
-    public String getCorpAccessToken() {
-        return corpAccessToken;
-    }
-
-    public void setCorpAccessToken(String corpAccessToken) {
-        this.corpAccessToken = corpAccessToken;
-    }
-
-    public String getCorpId() {
-        return corpId;
-    }
-
-    public void setCorpId(String corpId) {
-        this.corpId = corpId;
-    }
-
-    public long getExpiresIn() {
-        return expiresIn;
-    }
-
-    public void setExpiresIn(long expiresIn) {
-        this.expiresIn = expiresIn;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("errorCode", errorCode)
-                .add("errorMessage", errorMessage)
-                .add("corpAccessToken", corpAccessToken)
-                .add("corpId", corpId)
-                .add("expiresIn", expiresIn)
-                .toString();
-    }
-
-}

+ 0 - 40
src/main/java/com/uas/eis/beans/result/CrmAddResult.java

@@ -1,40 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * CRM crete接口返回结果
- * Created by zhongcy on 2016/12/30.
- */
-public class CrmAddResult extends BaseResult {
-
-    private static final long serialVersionUID = -6938203198421600660L;
-
-    private String dataId;
-
-    public String getExtraData() {
-        return extraData;
-    }
-
-    public void setExtraData(String extraData) {
-        this.extraData = extraData;
-    }
-
-    private String extraData;
-
-    public String getDataId() {
-        return dataId;
-    }
-
-    public void setDataId(String dataId) {
-        this.dataId = dataId;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("dataId", dataId)
-                .add("extraData", extraData)
-                .toString();
-    }
-}

+ 0 - 11
src/main/java/com/uas/eis/beans/result/CrmCallBackResult.java

@@ -1,11 +0,0 @@
-package com.uas.eis.beans.result;
-
-import lombok.Data;
-
-@Data
-public class CrmCallBackResult {
-    private String signature;
-    private Long timestamp;
-    private String nonce;
-    private String encryptedResult;
-}

+ 0 - 34
src/main/java/com/uas/eis/beans/result/CrmGetResult.java

@@ -1,34 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-import java.util.Map;
-
-/**
- * 获取详情接口返回值
- * Created by zhongcy on 2017/1/9.
- */
-public class CrmGetResult extends BaseResult{
-
-    private static final long serialVersionUID = 4289877461866887841L;
-
-    /**
-     * 数据详情结果
-     */
-    private Map<String, Object> data;
-
-    public Map<String, Object> getData() {
-        return data;
-    }
-
-    public void setData(Map<String, Object> data) {
-        this.data = data;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("data", data)
-                .toString();
-    }
-}

+ 0 - 33
src/main/java/com/uas/eis/beans/result/CrmQueryResult.java

@@ -1,33 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-import java.util.Map;
-
-/**
- * Crm查询结果
- * Created by zhongcy on 2017/1/6.
- */
-public class CrmQueryResult extends BaseResult {
-
-    private static final long serialVersionUID = -2706748557128822040L;
-
-    private Map<String, Object> data;
-
-    public Map<String, Object> getData() {
-        return data;
-    }
-
-    public void setData(Map<String, Object> data) {
-        this.data = data;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("data", data)
-                .add("errorCode", errorCode)
-                .add("errorMessage", errorMessage)
-                .toString();
-    }
-}

+ 0 - 67
src/main/java/com/uas/eis/beans/result/Customer.java

@@ -1,67 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-import java.io.Serializable;
-
-public class Customer implements Serializable {
-
-    private static final long serialVersionUID = 3486839815456351252L;
-
-    private String dataObjectApiName;
-    private String _id;
-    private String name;
-    private String account_level;
-    private String field_w9e4q__c;
-
-    public String getDataObjectApiName() {
-        return dataObjectApiName;
-    }
-
-    public void setDataObjectApiName(String dataObjectApiName) {
-        this.dataObjectApiName = dataObjectApiName;
-    }
-
-    public String get_id() {
-        return _id;
-    }
-
-    public void set_id(String _id) {
-        this._id = _id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getAccount_level() {
-        return account_level;
-    }
-
-    public void setAccount_level(String account_level) {
-        this.account_level = account_level;
-    }
-
-    public String getField_w9e4q__c() {
-        return field_w9e4q__c;
-    }
-
-    public void setField_w9e4q__c(String field_w9e4q__c) {
-        this.field_w9e4q__c = field_w9e4q__c;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("dataObjectApiName", dataObjectApiName)
-                .add("_id", _id)
-                .add("name", name)
-                .add("account_level", account_level)
-                .add("field_w9e4q__c", field_w9e4q__c)
-                .toString();
-    }
-}

+ 0 - 139
src/main/java/com/uas/eis/beans/result/Goods.java

@@ -1,139 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-public class Goods implements Serializable {
-
-    private static final long serialVersionUID = 3486839815456351252L;
-
-    private String dataObjectApiName;
-    private String unit;
-    private List<String> owner;
-    private boolean is_spec;
-    private String remark;
-    private Double standard_price;
-    private String product_line;
-    private String name;
-    private String category;
-    private List<Map<String,Object>> sku;
-    private String _id;
-    private String item_code__c;
-
-    public String getItem_code__c() {
-        return item_code__c;
-    }
-
-    public void setItem_code__c(String item_code__c) {
-        this.item_code__c = item_code__c;
-    }
-
-    public String get_id() {
-        return _id;
-    }
-
-    public void set_id(String _id) {
-        this._id = _id;
-    }
-
-    public String getDataObjectApiName() {
-        return dataObjectApiName;
-    }
-
-    public void setDataObjectApiName(String dataObjectApiName) {
-        this.dataObjectApiName = dataObjectApiName;
-    }
-
-    public String getUnit() {
-        return unit;
-    }
-
-    public void setUnit(String unit) {
-        this.unit = unit;
-    }
-
-    public List<String> getOwner() {
-        return owner;
-    }
-
-    public void setOwner(List<String> owner) {
-        this.owner = owner;
-    }
-
-    public boolean isIs_spec() {
-        return is_spec;
-    }
-
-    public void setIs_spec(boolean is_spec) {
-        this.is_spec = is_spec;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public Double getStandard_price() {
-        return standard_price;
-    }
-
-    public void setStandard_price(Double standard_price) {
-        this.standard_price = standard_price;
-    }
-
-    public String getProduct_line() {
-        return product_line;
-    }
-
-    public void setProduct_line(String product_line) {
-        this.product_line = product_line;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getCategory() {
-        return category;
-    }
-
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    public List<Map<String, Object>> getSku() {
-        return sku;
-    }
-
-    public void setSku(List<Map<String, Object>> sku) {
-        this.sku = sku;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("dataObjectApiName", dataObjectApiName)
-                .add("unit", unit)
-                .add("owner", owner)
-                .add("is_spec", is_spec)
-                .add("remark", remark)
-                .add("standard_price", standard_price)
-                .add("product_line", product_line)
-                .add("name", name)
-                .add("category", category)
-                .add("sku", sku)
-                .add("_id",_id)
-                .add("item_code__c",item_code__c)
-                .toString();
-    }
-}

+ 0 - 51
src/main/java/com/uas/eis/beans/result/OpenUserIdResult.java

@@ -1,51 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * 封装获取到的OpenUserId 结果的JavaBean
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class OpenUserIdResult extends BaseResult {
-
-    private static final long serialVersionUID = 7403143650678784355L;
-
-    /**
-     * openUserId
-     */
-    private String openUserId;
-
-    /**
-     * corpId
-     */
-    private String corpId;
-
-    public String getOpenUserId() {
-        return openUserId;
-    }
-
-    public void setOpenUserId(String openUserId) {
-        this.openUserId = openUserId;
-    }
-
-    public String getCorpId() {
-        return corpId;
-    }
-
-    public void setCorpId(String corpId) {
-        this.corpId = corpId;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("errorCode", errorCode)
-                .add("errorMessage", errorMessage)
-                .add("openUserId", openUserId)
-                .add("corpId", corpId)
-                .toString();
-    }
-
-}

+ 0 - 156
src/main/java/com/uas/eis/beans/result/Product.java

@@ -1,156 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-import java.io.Serializable;
-
-public class Product implements Serializable {
-
-    private static final long serialVersionUID = 3486839815456351252L;
-
-    private String dataObjectApiName;
-    private String _id;
-    private Double field_ea4Nh__c;//成本单价(含税)
-    private String field_i0v47__c;//样品仓库存
-    private String field_iW998__c;//批量仓库存
-    private String field_dioys__c;//物料类型
-    private String product_code;//物料编号
-    private String UDSText1__c;//品牌
-    private String field_cwppk__c;//封装
-    private String field_r02le__c;//最小包装
-    private String unit;//单位
-    private String name;//物料名称
-    private Double price;//标准价格
-    private String category;//分类
-
-    public Double getPrice() {
-        return price;
-    }
-
-    public void setPrice(Double price) {
-        this.price = price;
-    }
-
-    public String getCategory() {
-        return category;
-    }
-
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getField_cwppk__c() {
-        return field_cwppk__c;
-    }
-
-    public void setField_cwppk__c(String field_cwppk__c) {
-        this.field_cwppk__c = field_cwppk__c;
-    }
-
-
-
-    public String getProduct_code() {
-        return product_code;
-    }
-
-    public void setProduct_code(String product_code) {
-        this.product_code = product_code;
-    }
-
-    public String getUDSText1__c() {
-        return UDSText1__c;
-    }
-
-    public void setUDSText1__c(String UDSText1__c) {
-        this.UDSText1__c = UDSText1__c;
-    }
-
-    public String getField_r02le__c() {
-        return field_r02le__c;
-    }
-
-    public void setField_r02le__c(String field_r02le__c) {
-        this.field_r02le__c = field_r02le__c;
-    }
-
-    public String getUnit() {
-        return unit;
-    }
-
-    public void setUnit(String unit) {
-        this.unit = unit;
-    }
-
-    public String getDataObjectApiName() {
-        return dataObjectApiName;
-    }
-
-    public void setDataObjectApiName(String dataObjectApiName) {
-        this.dataObjectApiName = dataObjectApiName;
-    }
-
-    public String get_id() {
-        return _id;
-    }
-
-    public void set_id(String _id) {
-        this._id = _id;
-    }
-
-    public Double getField_ea4Nh__c() {
-        return field_ea4Nh__c;
-    }
-
-    public void setField_ea4Nh__c(Double field_ea4Nh__c) {
-        this.field_ea4Nh__c = field_ea4Nh__c;
-    }
-
-    public String getField_i0v47__c() {
-        return field_i0v47__c;
-    }
-
-    public void setField_i0v47__c(String field_i0v47__c) {
-        this.field_i0v47__c = field_i0v47__c;
-    }
-
-    public String getField_iW998__c() {
-        return field_iW998__c;
-    }
-
-    public void setField_iW998__c(String field_iW998__c) {
-        this.field_iW998__c = field_iW998__c;
-    }
-
-    public String getField_dioys__c() {
-        return field_dioys__c;
-    }
-
-    public void setField_dioys__c(String field_dioys__c) {
-        this.field_dioys__c = field_dioys__c;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("dataObjectApiName", dataObjectApiName)
-                .add("_id",_id)
-                .add("field_ea4Nh__c", field_ea4Nh__c)
-                .add("field_i0v47__c", field_i0v47__c)
-                .add("field_iW998__c", field_iW998__c)
-                .add("field_dioys__c", field_dioys__c)
-                .add("product_code",product_code)
-                .add("UDSText1__c", UDSText1__c)
-                .add("field_cwppk__c", field_cwppk__c)
-                .add("field_r02le__c", field_r02le__c)
-                .add("unit", unit)
-                .toString();
-    }
-}

+ 0 - 41
src/main/java/com/uas/eis/beans/result/ProductAddResult.java

@@ -1,41 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-/**
- *
- */
-public class ProductAddResult extends BaseResult {
-
-    private static final long serialVersionUID = -1877511411491870320L;
-
-    private Integer productId;
-    private String productCode;
-
-    public Integer getProductId() {
-        return productId;
-    }
-
-    public void setProductId(Integer productId) {
-        this.productId = productId;
-    }
-
-    public String getProductCode() {
-        return productCode;
-    }
-
-    public void setProductCode(String productCode) {
-        this.productCode = productCode;
-    }
-
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("errorCode", errorCode)
-                .add("errorMessage", errorMessage)
-                .add("productId", productId)
-                .add("productCode", productCode)
-                .toString();
-    }
-}

+ 0 - 53
src/main/java/com/uas/eis/beans/result/ProductDto.java

@@ -1,53 +0,0 @@
-package com.uas.eis.beans.result;
-
-import com.google.common.base.MoreObjects;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- *
- */
-public class ProductDto implements Serializable {
-
-    private String dataObjectApiName;
-    private List<Map<String,Object>> spec_and_value;
-    private String spu_id;
-
-    public List<Map<String, Object>> getSpec_and_value() {
-        return spec_and_value;
-    }
-
-    public void setSpec_and_value(List<Map<String, Object>> spec_and_value) {
-        this.spec_and_value = spec_and_value;
-    }
-
-
-
-    public String getDataObjectApiName() {
-        return dataObjectApiName;
-    }
-
-    public void setDataObjectApiName(String dataObjectApiName) {
-        this.dataObjectApiName = dataObjectApiName;
-    }
-
-    public String getSpu_id() {
-        return spu_id;
-    }
-
-    public void setSpu_id(String spu_id) {
-        this.spu_id = spu_id;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("dataObjectApiName", dataObjectApiName)
-                .add("spec_and_value", spec_and_value)
-                .add("spu_id", spu_id)
-                .toString();
-    }
-}

+ 32 - 0
src/main/java/com/uas/eis/config/VwmsConfig.java

@@ -0,0 +1,32 @@
+package com.uas.eis.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+@Configuration
+@PropertySource("classpath:vwms.properties")
+@Data
+public class VwmsConfig {
+    @Value("${api_url}")
+    private String apiUrl;
+
+    @Value("${app_secret}")
+    private String appSecret;
+
+    @Value("${partner_id}")
+    private String partnerId;
+
+    @Value("${app_key}")
+    private String appKey;
+
+    @Value("${customerId}")
+    private String customerId;
+
+    @Value("${vwms.warehouse.code}")
+    private String warehouseCode;
+
+    @Value("${ownerCode}")
+    private String ownerCode;
+}

+ 2 - 2
src/main/java/com/uas/eis/controller/ERPController.java

@@ -25,8 +25,8 @@ public class ERPController {
      */
     @RequestMapping(value="/erp/sendProd",method=RequestMethod.POST)
     @ResponseBody
-    public Map<String, Object> sendProd(String master, Integer id,String emCode){
-        return erpService.sendProd(master,id,emCode);
+    public Map<String, Object> sendProd(String master, String ids,String emCode){
+        return erpService.sendProd(master,ids,emCode);
     }
 
 }

+ 4 - 0
src/main/java/com/uas/eis/entity/vwms/entity/ExtendProps.java

@@ -0,0 +1,4 @@
+package com.uas.eis.entity.vwms.entity;
+
+public class ExtendProps {
+}

+ 49 - 0
src/main/java/com/uas/eis/entity/vwms/req/BaseReq.java

@@ -0,0 +1,49 @@
+package com.uas.eis.entity.vwms.req;
+
+import lombok.Data;
+
+@Data
+public class BaseReq<T> {
+    private String actionType;
+    private String warehouseCode;
+    private String ownerCode;
+    private T item;
+
+    // 省略getter/setter方法
+
+    public static class Builder<T> {
+        private String actionType;
+        private String warehouseCode;
+        private String ownerCode;
+        private T item;
+
+        public Builder<T> actionType(String actionType) {
+            this.actionType = actionType;
+            return this;
+        }
+
+        public Builder<T> warehouseCode(String warehouseCode) {
+            this.warehouseCode = warehouseCode;
+            return this;
+        }
+
+        public Builder<T> ownerCode(String ownerCode) {
+            this.ownerCode = ownerCode;
+            return this;
+        }
+
+        public Builder<T> item(T item) {
+            this.item = item;
+            return this;
+        }
+
+        public BaseReq<T> build() {
+            BaseReq<T> baseReq = new BaseReq<>();
+            baseReq.actionType = this.actionType;
+            baseReq.warehouseCode = this.warehouseCode;
+            baseReq.ownerCode = this.ownerCode;
+            baseReq.item = this.item;
+            return baseReq;
+        }
+    }
+}

+ 51 - 0
src/main/java/com/uas/eis/entity/vwms/req/BaseVastReq.java

@@ -0,0 +1,51 @@
+package com.uas.eis.entity.vwms.req;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BaseVastReq<T> {
+    private String actionType;
+    private String warehouseCode;
+    private String ownerCode;
+    private List<T> items;
+
+    // 省略getter/setter方法
+
+    public static class Builder<T> {
+        private String actionType;
+        private String warehouseCode;
+        private String ownerCode;
+        private List<T> items;
+
+        public Builder<T> actionType(String actionType) {
+            this.actionType = actionType;
+            return this;
+        }
+
+        public Builder<T> warehouseCode(String warehouseCode) {
+            this.warehouseCode = warehouseCode;
+            return this;
+        }
+
+        public Builder<T> ownerCode(String ownerCode) {
+            this.ownerCode = ownerCode;
+            return this;
+        }
+
+        public Builder<T> items(List<T> items) {
+            this.items = items;
+            return this;
+        }
+
+        public BaseVastReq<T> build() {
+            BaseVastReq<T> baseReq = new BaseVastReq<>();
+            baseReq.actionType = this.actionType;
+            baseReq.warehouseCode = this.warehouseCode;
+            baseReq.ownerCode = this.ownerCode;
+            baseReq.items = this.items;
+            return baseReq;
+        }
+    }
+}

+ 90 - 0
src/main/java/com/uas/eis/entity/vwms/req/ProductReq.java

@@ -0,0 +1,90 @@
+package com.uas.eis.entity.vwms.req;
+
+import lombok.Data;
+
+// 创建ProductReq类
+@Data
+public class ProductReq {
+    private String itemId;
+    private String itemCode;
+    private String barCode;
+    private String itemName;
+    private String goodsCode;
+    private String categoryName;
+    private String stockUnit;
+    private ExtendProps extendProps;
+
+    // 省略getter/setter方法
+
+    public static class Builder {
+        private String itemId;
+        private String itemCode;
+        private String barCode;
+        private String itemName;
+        private String goodsCode;
+        private String categoryName;
+        private String stockUnit;
+        private ExtendProps extendProps;
+
+        public Builder itemId(String itemId) {
+            this.itemId = itemId;
+            return this;
+        }
+
+        public Builder itemCode(String itemCode) {
+            this.itemCode = itemCode;
+            return this;
+        }
+
+        public Builder barCode(String barCode) {
+            this.barCode = barCode;
+            return this;
+        }
+
+        public Builder itemName(String itemName) {
+            this.itemName = itemName;
+            return this;
+        }
+
+        public Builder goodsCode(String goodsCode) {
+            this.goodsCode = goodsCode;
+            return this;
+        }
+
+        public Builder categoryName(String categoryName) {
+            this.categoryName = categoryName;
+            return this;
+        }
+
+        public Builder stockUnit(String stockUnit) {
+            this.stockUnit = stockUnit;
+            return this;
+        }
+        public Builder ExtendProps(ExtendProps extendProps) {
+            this.extendProps = extendProps;
+            return this;
+        }
+
+        public ProductReq build() {
+            ProductReq productReq = new ProductReq();
+            productReq.itemId = this.itemId;
+            productReq.itemCode = this.itemCode;
+            productReq.barCode = this.barCode;
+            productReq.itemName = this.itemName;
+            productReq.goodsCode = this.goodsCode;
+            productReq.categoryName = this.categoryName;
+            productReq.stockUnit = this.stockUnit;
+            productReq.extendProps = this.extendProps;
+            return productReq;
+        }
+    }
+
+    @Data
+    public static class ExtendProps {
+        private String key1;
+        private String key2;
+        private String key3;
+        private String key4;
+        private String key5;
+    }
+}

+ 24 - 0
src/main/java/com/uas/eis/entity/vwms/req/RequestWrapper.java

@@ -0,0 +1,24 @@
+package com.uas.eis.entity.vwms.req;
+
+import lombok.Data;
+@Data
+public class RequestWrapper<T> {
+    private BaseReq<T> request;
+
+    // 省略getter/setter方法
+
+    public static class Builder<T> {
+        private BaseReq<T> request;
+
+        public Builder<T> request(BaseReq<T> request) {
+            this.request = request;
+            return this;
+        }
+
+        public RequestWrapper<T> build() {
+            RequestWrapper<T> wrapper = new RequestWrapper<>();
+            wrapper.request = this.request;
+            return wrapper;
+        }
+    }
+}

+ 25 - 0
src/main/java/com/uas/eis/entity/vwms/req/RequestWrapperVast.java

@@ -0,0 +1,25 @@
+package com.uas.eis.entity.vwms.req;
+
+import lombok.Data;
+
+@Data
+public class RequestWrapperVast<T> {
+    private BaseVastReq<T> request;
+
+    // 省略getter/setter方法
+
+    public static class Builder<T> {
+        private BaseVastReq<T> request;
+
+        public Builder<T> request(BaseVastReq<T> request) {
+            this.request = request;
+            return this;
+        }
+
+        public RequestWrapperVast<T> build() {
+            RequestWrapperVast<T> wrapper = new RequestWrapperVast<>();
+            wrapper.request = this.request;
+            return wrapper;
+        }
+    }
+}

+ 1 - 1
src/main/java/com/uas/eis/service/ERPService.java

@@ -10,5 +10,5 @@ import java.util.Map;
  * @date 2025-03-04
  */
 public interface ERPService {
-    Map<String, Object> sendProd(String master, Integer id,String emCode);
+    Map<String, Object> sendProd(String master, String ids,String emCode);
 }

+ 66 - 6
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -1,8 +1,14 @@
 package com.uas.eis.service.Impl;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.uas.eis.config.VwmsConfig;
 import com.uas.eis.core.config.SpObserver;
 import com.uas.eis.dao.*;
+import com.uas.eis.entity.vwms.req.*;
 import com.uas.eis.service.ERPService;
+import com.uas.eis.utils.CollectionUtil;
+import com.uas.eis.utils.HttpUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,17 +26,71 @@ public class ERPServiceImpl implements ERPService {
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
     @Autowired
     private BaseDao baseDao;
+
+    @Autowired
+    private VwmsConfig vwmsConfig;
+
+    @Autowired
+    private ObjectMapper objectMapper;  // 注入Jackson的ObjectMapper
+
     @Override
-    public Map<String, Object> sendProd(String master, Integer id,String emCode) {
+    public Map<String, Object> sendProd(String master, String ids,String emCode) {
         Map<String,Object> retMap = new HashMap<>();
         retMap.put("success",true);
-        logger.info("sendProd-Begin:master {} id {}",master,id);
+        logger.info("sendProd-Begin:master {} ids {}",master,ids);
         SpObserver.putSp(master);
-        SqlRowList outMsg = baseDao.queryForRowSet(" select pr_code from product where pr_id = ? ",id);
-        if(outMsg.next()) {
-            logger.info("sendProd-test:master {} id {} code {}",master,id,outMsg.getGeneralString("pr_code"));
+        SqlRowList outMsg = baseDao.queryForRowSet(" select pr_id,pr_code,pr_ycxh,pr_detail,pr_orispeccode,pr_brand,pr_unit,pr_zxbzs from product left join productbrand on pb_name = pr_brand where pr_id in ("+ids+") and pb_sendwms = -1 ");
+        List<ProductReq> productReqList = new ArrayList<>();
+        while (outMsg.next()) {
+            logger.info("sendProd-test:master {} id {} code {}",master,outMsg.getGeneralInt("pr_id"),outMsg.getGeneralString("pr_code"));
+            // 创建ProductReq对象
+            ProductReq productReq = new ProductReq.Builder()
+                    .itemId(outMsg.getGeneralString("pr_code"))
+                    .itemCode(outMsg.getGeneralString("pr_code"))
+                    .barCode(outMsg.getGeneralString("pr_ycxh"))
+                    .itemName(outMsg.getGeneralString("pr_detail"))
+                    .goodsCode(outMsg.getGeneralString("pr_orispeccode"))
+                    .categoryName(outMsg.getGeneralString("pr_brand"))
+                    .stockUnit(outMsg.getGeneralString("pr_unit"))
+                    .ExtendProps(new ProductReq.ExtendProps() {{
+                        setKey1(String.valueOf(outMsg.getGeneralDouble("pr_zxbzs")));
+                    }})
+                    .build();
+            productReqList.add(productReq);
+        }
+        if(CollectionUtil.isEmpty(productReqList)){
+            retMap.put("success",false);
+            retMap.put("message","没有需要同步的商品。");
+            return retMap;
+        }
+        // 创建BaseReq对象
+        BaseVastReq<ProductReq> baseVastReq = new BaseVastReq.Builder<ProductReq>()
+                .actionType("add")
+                .warehouseCode(vwmsConfig.getWarehouseCode())
+                .ownerCode(vwmsConfig.getOwnerCode())
+                .items(productReqList)
+                .build();
+        // 创建RequestWrapper对象
+        RequestWrapperVast<ProductReq> wrapper = new RequestWrapperVast.Builder<ProductReq>()
+                .request(baseVastReq)
+                .build();
+        try {
+            // 将wrapper对象转换为JSON字符串
+            String json = objectMapper.writeValueAsString(wrapper);
+            logger.info("Request JSON: {}", json);
+            //{{testapiurl}}?method=openapi.singleitem.synchronize&timestamp=2025-03-04 15:45:00
+            // &format={{format}}&app_key={{app_key}}&v=2.0&sign=B21FFFE48507569E72D573359856B19B
+            // &sign_method=md5&customerId={{customerId}}
+//            HttpUtil.Response response = HttpUtil.doPostToVWMS("openapi.items.synchronize", json,vwmsConfig);
+        } catch (JsonProcessingException e) {
+            logger.error("Failed to convert request to JSON", e);
+            retMap.put("success", false);
+            retMap.put("message", "JSON转换失败");
+            return retMap;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        logger.info("sendProd-End:master {} id {}",master,id);
+        logger.info("sendProd-End:master {} ids {}",master,ids);
         retMap.put("message","同步成功。");
         return retMap;
     }

+ 0 - 227
src/main/java/com/uas/eis/utils/HttpTookit.java

@@ -1,227 +0,0 @@
-package com.uas.eis.utils;
-
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.net.ssl.SSLContext;
-
-import com.google.gson.Gson;
-import com.uas.eis.beans.HttpResponseMessageVO;
-import com.uas.eis.beans.req.Req;
-import com.uas.eis.beans.result.BaseResult;
-import com.uas.eis.beans.result.Result;
-import com.uas.eis.exception.BaseException;
-import org.apache.commons.lang.StringUtils;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLContextBuilder;
-import org.apache.http.conn.ssl.TrustStrategy;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * https 请求工具类
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class HttpTookit {
-
-    private static final Logger LOG = LoggerFactory.getLogger(HttpTookit.class);
-
-    private static final CloseableHttpClient httpClient;
-
-    public static final String CHARSET = "UTF-8";
-
-    static {
-        // 饱含模式实现 httpClient 单例
-        httpClient = createSSLClientDefault();
-    }
-
-    private HttpTookit() {}
-
-    public static CloseableHttpClient createSSLClientDefault() {
-        RequestConfig config = RequestConfig.custom().setConnectTimeout(600000).setSocketTimeout(150000).build();
-
-        try {
-            SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
-                // 信任所有
-                @Override
-                public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
-                    return true;
-                }
-            }).build();
-
-            SSLConnectionSocketFactory sslsf =
-                    new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
-
-            return HttpClients.custom().setSSLSocketFactory(sslsf).setDefaultRequestConfig(config).build();
-        } catch (Exception e) {
-            LOG.error("init httpClient error, details:", e);
-        }
-
-        return HttpClients.createDefault();
-    }
-
-    /**
-     * post + json 发送请求
-     * 
-     * @param url
-     * @param parameters
-     * @return @see HttpResponseMessageVO
-     * @throws
-     * @throws
-     */
-    public static HttpResponseMessageVO sendPostByJson(String url, String parameters) throws BaseException {
-        if (StringUtils.isEmpty(url)) {
-            throw new BaseException(Constants.interfaceException.ILLEGAL_ARGUMENT.code,
-                    Constants.interfaceException.ILLEGAL_ARGUMENT.msg + ": url is illegal !");
-        }
-
-        HttpResponseMessageVO httpResponseMessageVO = new HttpResponseMessageVO();
-        CloseableHttpResponse response = null;
-        HttpEntity entity = null;
-        try {
-            StringEntity params = new StringEntity(parameters, CHARSET);
-            HttpPost request = new HttpPost(url);
-            request.addHeader("Content-type", "application/json");
-            request.setEntity(params);
-            response = httpClient.execute(request);
-
-            int statusCode = response.getStatusLine().getStatusCode();
-            entity = response.getEntity();
-            httpResponseMessageVO.setHttpCode(Integer.toString(statusCode));
-            
-            if (statusCode == HttpStatus.SC_OK && entity != null) {
-                httpResponseMessageVO.setContent(EntityUtils.toString(entity, CHARSET));
-            }
-        } catch (Exception e) {
-            LOG.error("sendPostByJson error, details:", e);
-            throw new BaseException(Constants.interfaceException.INTERFACE_EXCEPTION.code,
-                    Constants.interfaceException.INTERFACE_EXCEPTION.msg);
-        }finally{
-            try{
-                if(entity != null){
-                    EntityUtils.consume(entity);
-                }
-                if(response != null){
-                    response.close();
-                }
-            }catch(Exception e){
-                
-            }
-        }
-
-        return httpResponseMessageVO;
-    }
-
-    private static Result<String> sendPostByJson(String url, Req req) {
-        Result<String> result = new Result<String>();
-        if (StringUtils.isEmpty(url)) {
-            result.setCode(Constants.interfaceException.ILLEGAL_ARGUMENT.code);
-            result.setMsg(Constants.interfaceException.ILLEGAL_ARGUMENT.msg + ":" + url);
-            return result;
-        }
-        CloseableHttpResponse response = null;
-        HttpEntity entity = null;
-        try {
-            StringEntity params = new StringEntity(new Gson().toJson(req), CHARSET);
-            HttpPost request = new HttpPost(url);
-            request.addHeader("Content-type", "application/json");
-            request.setEntity(params);
-            response = httpClient.execute(request);
-
-            int statusCode = response.getStatusLine().getStatusCode();
-            entity = response.getEntity();
-            
-            if (statusCode == HttpStatus.SC_OK && entity != null) {
-                result.setData(EntityUtils.toString(entity, CHARSET));
-            } else {
-                result.setCode(Constants.interfaceException.INTERFACE_EXCEPTION.code);
-                result.setMsg(Constants.interfaceException.INTERFACE_EXCEPTION.msg + ":" + url + ",HTTP Status Code:"
-                        + statusCode);
-            }
-        } catch (Exception e) {
-            LOG.error("sendPostByJson error, details:", e);
-            result.setCode(Constants.interfaceException.INTERFACE_EXCEPTION.code);
-            result.setMsg("发送请求异常,请检查url、参数的合法性!异常错误:" + e.getMessage());
-        }finally{
-            try{
-                if(entity != null){
-                    EntityUtils.consume(entity);
-                }
-                if(response != null){
-                    response.close();
-                }
-            }catch(Exception e){
-                
-            }
-        }
-        return result;
-    }
-
-    public static <T extends BaseResult> T sendPostByJson(String url, Req req, Class<T> clazz) {
-        Result<String> result = sendPostByJson(url, req);
-
-        if (result.getCode() == 0) {
-            Gson gson = new Gson();
-            return gson.fromJson(result.getData(), clazz);
-        }
-
-        T t = null;
-
-        try {
-            t = clazz.newInstance();
-            t.setErrorCode(result.getCode());
-            t.setErrorMessage(result.getMsg());
-        } catch (Exception e) {
-            LOG.error("sendPostByJson error, details:", e);
-        }
-
-        return t;
-    }
-
-    public static void main(String[] args) throws Exception {
-        Gson gson = new Gson();
-
-        String token = "testToken";
-        String nonce = "9890d0eb-5aa9-4f45-9a28-0b05fdfb2588";
-        long timestamp = System.currentTimeMillis();
-        String content =
-                "4FE34659FB17F8AEB8971177F9FF04B581B83A0A6E5F5271C1BA41BD112C9F3C21C8E3AF0978FEB57323B5A903997327D65F7C1D1FF6F4308B720F8E52248223CC6E693CC3029B4A9A4784C21D4A064956C883CE64DE09486F053957827D4B8F2D10AAABB9083B806B5F6507887BF8F9";
-
-        String deStr =
-                SigUtils.decodeAES(
-                        "4FE34659FB17F8AEB8971177F9FF04B581B83A0A6E5F5271C1BA41BD112C9F3C21C8E3AF0978FEB57323B5A903997327D65F7C1D1FF6F4308B720F8E52248223CC6E693CC3029B4A9A4784C21D4A064956C883CE64DE09486F053957827D4B8F2D10AAABB9083B806B5F6507887BF8F9",
-                        "x45sdf3sd1231231232xs");
-
-        System.out.println(deStr);
-
-        String sig = SigUtils.getSHA1(token, "" + timestamp, nonce, content);
-
-        Map<String, String> paramMap = new HashMap<String, String>();
-        paramMap.put("nonce", nonce);
-        paramMap.put("timeStamp", "" + timestamp);
-        paramMap.put("content", content);
-        paramMap.put("sig", sig);
-
-        String jsonStr = gson.toJson(paramMap);
-
-        System.out.println(jsonStr);
-        HttpResponseMessageVO httpResponseMessage =
-                sendPostByJson("http://localhost:8080/third-sys/parse/authorize", jsonStr);
-        System.out.println(httpResponseMessage.getContent());
-    }
-
-}

+ 24 - 6
src/main/java/com/uas/eis/utils/HttpUtil.java

@@ -15,18 +15,15 @@ import java.net.URLEncoder;
 import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.CertificateException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Set;
 
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
+import com.uas.eis.config.VwmsConfig;
 import org.apache.http.Consts;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
@@ -977,6 +974,27 @@ public class HttpUtil {
 		return response.getEntity().getContent();
 	}
 
+	public static Response doPostToVWMS(String method,String formData, VwmsConfig vwmsConfig) throws Exception {
+		CloseableHttpClient httpClient = HttpClients.createDefault();
+		String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+		//"{secretkey}app_key{app_key}customerId{customerId}formatjsonmethod{openapi_name}sign_methodmd5timestamp2015-04-26 00:00:07v2.0{body}{secretkey}";
+		String signMsg= String.format("%sapp_key%scustomerId%sformatjsonmethod%ssign_methodmd5timestamp%sv2.0%s%s",
+				vwmsConfig.getAppSecret(),vwmsConfig.getAppKey(), vwmsConfig.getCustomerId(),method,timestamp,formData,vwmsConfig.getAppSecret() );
+		//http://{openapiUrl}?method=openapi.singleitem.synchronize&timestamp=2015-04-26%2000:00:07&format=json&app_key={app_key}&v=2.0&sign=D06D88CB34B2EC0E5C9BAB396C9542B6&sign_method=md5&customerId={customerId}
+		StringBuilder postUrl = new StringBuilder(vwmsConfig.getApiUrl());
+		postUrl.append("?method=").append(method)
+				.append("&timestamp=").append(System.currentTimeMillis()).append("&format=json").append("&app_key=").append(vwmsConfig.getAppKey())
+				.append("&v=2.0")
+				.append("&_signature=").append(HmacUtils.encode(signMsg, vwmsConfig.getAppSecret()))	// 对请求串进行签名
+				.append("&sign_method=md5").append("&customerId=").append(vwmsConfig.getCustomerId());
+		HttpPost post = new HttpPost(postUrl.toString());
+		StringEntity postingString = new StringEntity(formData, HTTP.UTF_8);
+		post.setEntity(postingString);
+		post.setHeader("Content-type", "application/json");
+		CloseableHttpResponse response = httpClient.execute(post);
+		return Response.getResponse(response);
+	}
+
 	public static class Response {
 		private int statusCode;
 		private String responseText;

+ 0 - 279
src/main/java/com/uas/eis/utils/OpenAPIUtils.java

@@ -1,279 +0,0 @@
-package com.uas.eis.utils;
-
-
-import com.google.gson.Gson;
-import com.uas.eis.beans.AppReqParmVO;
-import com.uas.eis.beans.HttpResponseMessageVO;
-import com.uas.eis.beans.MsgReceiveParamVO;
-import com.uas.eis.beans.req.*;
-import com.uas.eis.beans.result.*;
-import com.uas.eis.exception.BaseException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * 开放平台Api调用的工具类
- * 
- * @author huanghp
- * @date 2015年8月28日
- */
-public class OpenAPIUtils {
-
-    private static final Logger LOG = LoggerFactory.getLogger(OpenAPIUtils.class);
-
-    /**
-     * 环境为:https://open.fxiaoke.com
-     */
-    private static final String prefix = "https://open.fxiaoke.com";
-
-    /**
-     * 获取AppToken 实现
-     *
-     * @param appTokenReq @see AppTokenReq
-     * @return
-     * @throws Exception
-     */
-    public static AppTokenResult getAppToken(AppTokenReq appTokenReq) {
-        String url = prefix + "/cgi/appAccessToken/get";
-        return doPost(url, appTokenReq, AppTokenResult.class);
-    }
-
-    /**
-     * 获取corpAccessToken 实现
-     *
-     * @param corpAccessTokenReq @see CorpAccessTokenReq
-     * @return
-     * @throws Exception
-     */
-    public static CorpAccessTokenResult getCorpToken(CorpAccessTokenReq corpAccessTokenReq) {
-        String url = prefix + "/cgi/corpAccessToken/get/V2";
-        return doPost(url, corpAccessTokenReq, CorpAccessTokenResult.class);
-    }
-
-    /**
-     * 获取OpenUserId 实现
-     *
-     * @param openUserIdReq @see OpenUserIdReq
-     * @return
-     * @throws Exception
-     */
-    public static OpenUserIdResult getOpenUserId(OpenUserIdReq openUserIdReq) {
-        String url = prefix + "/oauth2/openUserId/get";
-        return doPost(url, openUserIdReq, OpenUserIdResult.class);
-    }
-
-    /*//**
-     * accountBind 实现
-     * 
-     * @param bindAccountArg @see BindAccountArg
-     * @return
-     * @throws Exception
-     *//*
-    public static BindAccountResult bindAccount(BindAccountArg bindAccountArg) {
-        String url = prefix + "/oauth2/accountBind";
-        return doPost(url, bindAccountArg, BindAccountResult.class);
-    }*/
-
-   /* *//**
-     * 获取用户详细信息 实现
-     * 
-     * @see UserInfoArg @see UserInfoArg
-     * @return
-     * @throws Exception
-     *//*
-    public static UserResult getUserInfo(UserInfoArg userInfoArg) {
-        String url = prefix + "/cgi/user/get";
-        return doPost(url, userInfoArg, UserResult.class);
-    }
-
-    *//**
-     * 获取部门列表 实现
-     * 
-     * @param deptListArg @see DeptListArg
-     * @return
-     * @throws Exception
-     *//*
-    public static DeptListResult getDeptList(DeptListArg deptListArg) {
-        String url = prefix + "/cgi/department/list";
-        return doPost(url, deptListArg, DeptListResult.class);
-    }
-
-    *//**
-     * 获取部门人员列表 实现
-     * 
-     * @param deptUserListArg @see DeptUserListArg
-     * @return
-     * @throws Exception
-     *//*
-    public static DeptUserListResult getDeptUserList(DeptUserListArg deptUserListArg) {
-        String url = prefix + "/cgi/user/list";
-        return doPost(url, deptUserListArg, DeptUserListResult.class);
-    }
-
-    *//**
-     * 发送文本消息 实现
-     * 
-     * @param textMsgArg @see TextMsgArg
-     * @return
-     * @throws Exception
-     *//*
-    public static TextMsgResult sendTextMsg(TextMsgArg textMsgArg) {
-        String url = prefix + "/cgi/message/send";
-        return doPost(url, textMsgArg, TextMsgResult.class);
-    }
-    
-    *//**
-     * CRM 字段描述  元数据接口
-     *//*
-    public static CrmDescResult getCrmDesc(CrmDescArg arg) {
-        String url = prefix + "/cgi/crm/object/describe";
-        return doPost(url, arg, CrmDescResult.class);
-    }
-    
-    *//**
-     * CRM 字段描述  修改负责人
-     *//*
-    public static BaseResult changeCrmOwner(CrmChangeOwnerArg arg) {
-        String url = prefix + "/cgi/crm/data/changeOwner";
-        return doPost(url, arg, BaseResult.class);
-    }*/
-    
-    /**
-     * CRM添加 元数据接口
-     */
-    public static CrmAddResult createCrmData(CrmAddReq arg) {
-        String url = prefix + "/cgi/crm/v2/data/create";
-        return doPost(url, arg, CrmAddResult.class);
-    }
-
-    /**
-     * CRM修改 元数据接口
-     */
-    public static BaseResult updateCrmData(CrmUpdateReq arg) {
-        String url = prefix + "/cgi/crm/v2/data/update";
-        return doPost(url, arg, BaseResult.class);
-    }
-
-    /**
-     * CRM作废 元数据接口
-     *//*
-    public static BaseResult dropCrmData(CrmDeleteArg arg) {
-        String url = prefix + "/cgi/crm/data/drop";
-        return doPost(url, arg, BaseResult.class);
-    }*/
-
-    /**
-     * CRM查询列表 元数据接口
-     */
-    public static CrmQueryResult queryCrmData(CrmQueryReq req) {
-        String url = prefix + "/cgi/crm/v2/data/query";
-        return doPost(url, req, CrmQueryResult.class);
-    }
-
-    /**
-     * CRM自定义对象查询接口
-     * @param req
-     * @return
-     */
-    public static CrmQueryResult queryCrmCustomData(CrmQueryReq req) {
-        String url = prefix + "/cgi/crm/custom/v2/data/query";
-        return doPost(url, req, CrmQueryResult.class);
-    }
-
-    /**
-     * CRM获取详情 元数据接口
-     */
-    public static CrmGetResult getData(CrmGetReq req) {
-        String url = prefix + "/cgi/crm/data/get";
-        return doPost(url, req, CrmGetResult.class);
-    }
-
-    /**
-     * 验证消息推送请求合法性
-     * 
-     * @param msgReceiveParamVO @see MsgReceiveParamVO
-     * @param token
-     * @return true 表示验证成功,其它表示失败
-     */
-    public static boolean verifyMsgReq(MsgReceiveParamVO msgReceiveParamVO, String token) {
-        boolean verifyResult = false;
-
-        try {
-            String sha1Str = SigUtils.getSHA1(token, msgReceiveParamVO.getTimeStamp(), msgReceiveParamVO.getNonce(),
-                            msgReceiveParamVO.getContent());
-            verifyResult = sha1Str.equals(msgReceiveParamVO.getSig()) ? true : false;
-        } catch (Exception e) {
-            verifyResult = false;
-            LOG.error(" verify signature error, details:", e);
-        }
-
-        return verifyResult;
-    }
-
-    /**
-     * 验证应用跳转来源合法性
-     * 
-     * @param appReqParmVO @see AppReqParmVO
-     * @param token
-     * @return true 表示验证成功,其它表示失败
-     */
-    public static boolean verifyAppReq(AppReqParmVO appReqParmVO, String token) {
-        boolean verifyResult = false;
-
-        try {
-            String signResult = SigUtils.getSHA1(token, appReqParmVO.getCode(), appReqParmVO.getTimestamp(),
-                            appReqParmVO.getNonce());
-            verifyResult = appReqParmVO.getCodeSig().equals(signResult) ? true : false;
-        } catch (Exception e) {
-            verifyResult = false;
-            LOG.error(" verify signature error, details:", e);
-        }
-
-        return verifyResult;
-    }
-
-    private static <T extends BaseResult> T doPost(String url, Req req, Class<T> clazz) {
-        T t = null;
-        Result<String> result = doPost(url, req);
-        if (result.getCode() == 0) {
-            t = new Gson().fromJson(result.getData(), clazz);
-        }
-
-        if (t != null) {
-            return t;
-        }
-
-        try {
-            t = clazz.newInstance();
-            t.setErrorCode(result.getCode());
-            t.setErrorMessage(result.getMsg());
-        } catch (Exception e) {
-            LOG.error("doPost error, details:", e);
-        }
-        return t;
-    }
-
-    private static Result<String> doPost(String url, Req req) {
-        Result<String> result = new Result<String>();
-
-        try {
-            String reqJosn = new Gson().toJson(req);
-            //System.out.println("reqJosn"+reqJosn);
-            HttpResponseMessageVO resp = HttpTookit.sendPostByJson(url, reqJosn);
-            //System.out.println("content"+resp.getContent());
-            if ("200".equals(resp.getHttpCode())) {
-                result.setData(resp.getContent());
-            } else {
-                result.setCode(Constants.interfaceException.INTERFACE_EXCEPTION.code);
-                result.setMsg(Constants.interfaceException.INTERFACE_EXCEPTION.msg.concat(",HTTP Status Code:").concat(
-                        resp.getHttpCode()));
-            }
-        } catch (BaseException e) {
-            LOG.error("doPost error, details:", e);
-            result.setMsg(e.getMessage());
-            result.setCode(e.getCode());
-        }
-
-        return result;
-    }
-}

+ 28 - 0
src/main/resources/vwms.properties

@@ -0,0 +1,28 @@
+#?????http://113.108.118.106:8443/c1.1/openapi
+#format?xml/json
+#app_key?HXK0225
+#sign?E58F1B90BCD69FF7DFC7E9DA1831F532
+#sign_method?md5
+#customerId?HXK
+#???? warehouse_code:LH01
+#???? owner_code:HXK
+#WMS?????
+#http://113.108.118.106:8443/api/login
+#???F12345
+#???F12345.1
+api_url=http://113.108.118.106:8443/c1.1/openapi
+app_secret=E58F1B90BCD69FF7DFC7E9DA1831F532
+partner_id=HXK
+app_key=HXK0225
+customerId=HXK
+vwms.warehouse.code=LH01
+ownerCode=HXK
+
+
+
+
+
+
+
+
+

+ 10 - 294
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -1,314 +1,30 @@
 package com.uas.eis;
 
-
 import com.uas.eis.dao.*;
-import com.uas.eis.entity.sf.*;
 import com.uas.eis.service.ERPService;
-import com.uas.eis.utils.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
-import com.sf.csim.express.service.CallExpressServiceTools;
-import com.sf.csim.express.service.HttpClientUtil;
-import com.sf.csim.express.service.IServiceCodeStandard;
-import com.sf.csim.express.service.code.ExpressServiceCodeEnum;
 
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.URL;
 import java.util.*;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = {UasEisApplication.class})
 public class UasEisApplicationTests {
-	@Autowired
-	private BaseDao baseDao;
+//	@Autowired
+//	private BaseDao baseDao;
 	@Autowired
 	private ERPService erpService;
-	/**
-	 丰桥新沙箱测试顾客编码  Yg4Zf06w_sxZs3A5D
-	 校验码  3Xdk1jqeG1Xod9nUXus8Op7DNOkchTnw
-	 **/
-	private static final String CLIENT_CODE = "JYXKJWFFJ88E";  //此处替换为您在丰桥平台获取的顾客编码
-	//此处替换为您在丰桥平台获取的校验码
-	private static final String CHECK_WORD_PROD = "GgO0UoyQ5FssNLItii3olo63bQ80ErAE"; //生产校验码
-	private static final String CHECK_WORD_BOX ="rMBhSYRa9OtUPkfX5mow01NlxDWtI411";//沙箱校验码
-
-	//沙箱环境的地址 -PRO
-	private static final String CALL_URL_BOX = "https://sfapi-sbox.sf-express.com/std/service";
-	//生产环境的地址 -PRO
-	private static final String CALL_URL_PROD = "https://sfapi.sf-express.com/std/service";
-	@Test
-	public void TestApi() throws UnsupportedEncodingException {
-		/**ExpressServiceCodeEnum     对应速运类-快递APIs
-		 POSTServiceCodeEnum        对应速运类-驿站APIs
-		 YJTServiceCodeEnum         对应解决方案-医寄通APIs
-		 EPSServiceCodeEnum         对应解决方案-快递管家APIs
-		 HZTServiceCodeEnum         对应解决方案-函证通APIs    2022-2-24 新增
-		 详情见code目录下枚举类,客户可自行修改引用的该类
-		 **/
-		IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CREATE_ORDER; //下订单
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ORDER_RESP; //查订单
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_UPDATE_ORDER;//订单取消
-		// 	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_FILTER_ORDER_BSP;//订单筛选
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ROUTES;//查路由
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_GET_SUB_MAILNO;//子单号
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_QUERY_SFWAYBILL;//查运费
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_REGISTER_ROUTE;//注册路由
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CREATE_REVERSE_ORDER;//退货下单
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CANCEL_REVERSE_ORDER;//退货消单
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_WANTED_INTERCEPT;//截单转寄
-		// 	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_QUERY_DELIVERTM;//时效标准及价格查询
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.COM_RECE_CLOUD_PRINT_WAYBILLS;//面单打印
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_UPLOAD_ROUTE;//路由上传
-		//   IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_PROMITM;//预计派送时间查询
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_EXCE_CHECK_PICKUP_TIME;//揽件服务时间查询
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_VALIDATE_WAYBILLNO;//运单号合法性校验
-
-
-		CallExpressServiceTools tools=CallExpressServiceTools.getInstance();
-		Map<String, String> params = new HashMap<String, String>();
-		String timeStamp = String.valueOf(System.currentTimeMillis());
-		String msgData = tools.packageMsgData(standardService);
-		SFCreatOrderReq sfOrder = new SFCreatOrderReq();
-		sfOrder.setOrderId("SD24090018-2");
-		sfOrder.setMonthlyCard("7551234567");
-//		1,寄件方信息 2,到件方信息
-		List<SFContactInfo> contactInfoList = new ArrayList<>();
-		SFContactInfo sendInfo = new SFContactInfo();
-		sendInfo.setContactType(1);
-		sendInfo.setCompany("深圳市佳毅兴科技有限公司");
-		sendInfo.setContact("窦慧怡");
-		sendInfo.setMobile("18128820006");
-		sendInfo.setAddress("广东省深圳市宝安区大宝路51号新柯城业园1栋5楼");
-		contactInfoList.add(sendInfo);
-
-		SFContactInfo receiveInfo = new SFContactInfo();
-		receiveInfo.setContactType(2);
-		receiveInfo.setCompany("深圳市豪锦瑞科技有限公司");
-		receiveInfo.setContact("刘洋");
-		receiveInfo.setMobile("18688770976");
-		receiveInfo.setAddress("深圳市宝安区71区万源商务大厦B栋606");
-		contactInfoList.add(receiveInfo);
-		sfOrder.setContactInfoList(contactInfoList);
-
-		List<SFCargoDetail> cargoDetails = new ArrayList<>();
-		sfOrder.setCargoDetails(cargoDetails);
-		msgData = FlexJsonUtil.toJsonDeep(sfOrder);
-		params.put("partnerID", CLIENT_CODE);  // 顾客编码 ,对应丰桥上获取的clientCode
-		params.put("requestID", UUID.randomUUID().toString().replace("-", ""));
-		params.put("serviceCode",standardService.getCode());// 接口服务码
-		params.put("timestamp", timeStamp);
-		params.put("msgData", msgData);
-		params.put("msgDigest", tools.getMsgDigest(msgData,timeStamp,CHECK_WORD_BOX));
-		long startTime = System.currentTimeMillis();
-
-//		System.out.println("====调用请求:" + params.get("msgData"));
-		System.out.println("====调用实际请求:" + params);
-		String result = HttpClientUtil.post(CALL_URL_BOX, params);
-		System.out.println("====调用丰桥的接口服务代码:" + String.valueOf(standardService.getCode()) + " 接口耗时:"+ String.valueOf(System.currentTimeMillis()-startTime)+"====");
-		System.out.println("===调用地址 ==="+CALL_URL_BOX);
-		System.out.println("===顾客编码 ==="+CLIENT_CODE);
-		System.out.println("===返回结果:" +result);
-//		Map<String,Object> resData = JacksonUtil.fromJson(result);
-		SFApiResp sfApiResp = FlexJsonUtil.fromJson(result, SFApiResp.class);
-		if(sfApiResp!=null){
-			if("A1000".equals(sfApiResp.getApiResultCode())){
-				String apiResultData = sfApiResp.getApiResultData();
-				SFCreatOrderResp sfApiRespData =  FlexJsonUtil.fromJson(apiResultData, SFCreatOrderResp.class);
-				if(sfApiRespData.isSuccess()){
-					SFCreateOrder sfOrderResp =  sfApiRespData.getMsgData();
-					if(!CollectionUtil.isEmpty(sfOrderResp.getWaybillNoInfoList())){
-						for (SFWaybillNoInfo sfWaybillNoInfoResp:sfOrderResp.getWaybillNoInfoList()){
-							System.out.println("顺丰物流单号: ====="+sfWaybillNoInfoResp.getWaybillNo());
-						}
-					}
-				}else {
-					System.out.println("errorCode:"+sfApiRespData.getErrorCode()+"====errorMsg:"+sfApiRespData.getErrorMsg());
-				}
-			}else {
-				System.out.println("code:"+sfApiResp.getApiResultCode()
-						+"===apiResponseID:"+sfApiResp.getApiResponseID()
-						+"===apiErrorMsg:"+sfApiResp.getApiErrorMsg());
-			}
-		}
-	}
-
 	@Test
-	public void TestCreatSFOrder(){
-		Map<String, Object> res = erpService.creatSFOrder("JYX_TEST", 50734879,"ADMIN");
-		System.out.println("res==="+res.get("success")+":"+res.get("message"));
-	}
-
-	@Test
-	public void TestCancelSFOrder(){
-		Map<String, Object> res = erpService.cancelSFOrder("JYX_TEST", 50734879,"ADMIN");
-		System.out.println("res==="+res.get("success")+":"+res.get("message"));
-	}
-	@Test
-	public void TestPrintPDF() throws UnsupportedEncodingException {
-		/**ExpressServiceCodeEnum     对应速运类-快递APIs
-		 POSTServiceCodeEnum        对应速运类-驿站APIs
-		 YJTServiceCodeEnum         对应解决方案-医寄通APIs
-		 EPSServiceCodeEnum         对应解决方案-快递管家APIs
-		 HZTServiceCodeEnum         对应解决方案-函证通APIs    2022-2-24 新增
-		 详情见code目录下枚举类,客户可自行修改引用的该类
-		 **/
-		IServiceCodeStandard standardService = ExpressServiceCodeEnum.COM_RECE_CLOUD_PRINT_WAYBILLS; //下订单
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ORDER_RESP; //查订单
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_UPDATE_ORDER;//订单取消
-		// 	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_FILTER_ORDER_BSP;//订单筛选
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_ROUTES;//查路由
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_GET_SUB_MAILNO;//子单号
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_QUERY_SFWAYBILL;//查运费
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_REGISTER_ROUTE;//注册路由
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CREATE_REVERSE_ORDER;//退货下单
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_CANCEL_REVERSE_ORDER;//退货消单
-		//	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_WANTED_INTERCEPT;//截单转寄
-		// 	IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_QUERY_DELIVERTM;//时效标准及价格查询
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.COM_RECE_CLOUD_PRINT_WAYBILLS;//面单打印
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_UPLOAD_ROUTE;//路由上传
-		//   IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_SEARCH_PROMITM;//预计派送时间查询
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_EXCE_CHECK_PICKUP_TIME;//揽件服务时间查询
-		//  IServiceCodeStandard standardService = ExpressServiceCodeEnum.EXP_RECE_VALIDATE_WAYBILLNO;//运单号合法性校验
-
-
-		CallExpressServiceTools tools=CallExpressServiceTools.getInstance();
-		Map<String, String> params = new HashMap<String, String>();
-		String timeStamp = String.valueOf(System.currentTimeMillis());
-		Map<String, Object> msgDataMap = new HashMap<>();
-		msgDataMap.put("templateCode","fm_76130_standard_JYXKJWFFJ88E");
-		msgDataMap.put("version","2.0");
-		msgDataMap.put("fileType","pdf");
-		msgDataMap.put("sync","true");
-		List<Map<String,Object>> docList = new ArrayList<>();
-		Map<String,Object> doc = new HashMap<>();
-		doc.put("masterWaybillNo","SF7444488564898");
-		docList.add(doc);
-		doc = new HashMap<>();
-		doc.put("masterWaybillNo","SF7444488606478");
-		docList.add(doc);
-		msgDataMap.put("documents",docList);
-		String msgData = FlexJsonUtil.toJsonDeep(msgDataMap);
-		params.put("partnerID", CLIENT_CODE);  // 顾客编码 ,对应丰桥上获取的clientCode
-		params.put("requestID", UUID.randomUUID().toString().replace("-", ""));
-		params.put("serviceCode",standardService.getCode());// 接口服务码
-		params.put("timestamp", timeStamp);
-		params.put("msgData", msgData);
-		params.put("msgDigest", tools.getMsgDigest(msgData,timeStamp,CHECK_WORD_BOX));
-		long startTime = System.currentTimeMillis();
-//		System.out.println("====调用请求:" + params.get("msgData"));
-		System.out.println("====调用实际请求:" + params);
-		String result = HttpClientUtil.post(CALL_URL_BOX, params);
-		System.out.println("====调用丰桥的接口服务代码:" + String.valueOf(standardService.getCode()) + " 接口耗时:"+ String.valueOf(System.currentTimeMillis()-startTime)+"====");
-		System.out.println("===调用地址 ==="+CALL_URL_BOX);
-		System.out.println("===顾客编码 ==="+CLIENT_CODE);
-		System.out.println("===返回结果:" +result);
-//		Map<String,Object> resData = JacksonUtil.fromJson(result);
-		SFApiResp sfApiResp = FlexJsonUtil.fromJson(result, SFApiResp.class);
-		if(sfApiResp!=null){
-			if("A1000".equals(sfApiResp.getApiResultCode())){
-				String apiResultData = sfApiResp.getApiResultData();
-				SFPrintToPDFResp sfPrintToPDFResp =  FlexJsonUtil.fromJson(apiResultData, SFCreatOrderResp.class);
-				if(sfPrintToPDFResp.isSuccess()){
-					SFPrintFileResp sfPrintFileResp =  sfPrintToPDFResp.getObj();
-					List<SFPrintFile> files = sfPrintFileResp.getFiles();
-					if(!CollectionUtil.isEmpty(files)){
-						files.stream().sorted(Comparator.comparingInt(SFPrintFile::getSeqNo));
-						for (SFPrintFile file : files) {
-							pdfDownLoad(file.getUrl(),file.getToken(),file.getWaybillNo());
-						}
-					}
-				}else {
-					System.out.println("errorCode:"+sfPrintToPDFResp.getErrorCode()+"====errorMsg:"+sfPrintToPDFResp.getErrorMessage());
-				}
-			}else {
-				System.out.println("code:"+sfApiResp.getApiResultCode()
-						+"===apiResponseID:"+sfApiResp.getApiResponseID()
-						+"===apiErrorMsg:"+sfApiResp.getApiErrorMsg());
-			}
-		}
-	}
-
-	@Test
-	public void TestpdfDownLoad(){
-		String fileUrl="https://eos-scp-core-shenzhen-futian1-oss.sf-express.com:443/v1.2/AUTH_EOS-SCP-CORE/print-file-sbox/AAABkcBBzkdSfT1fJRhKjpLt-VFNcr-a_SF7444488607870_fm_76130_standard_JYXKJWFFJ88E_1_1.pdf";
-		String token="AUTH_tkv12_f146d1855480549d262b5c46ab0ab597ff20a97d9d0db45c16bedeb4fabd112b012deadd477ee524b1d690ce01baa3cdffbb125a6ccf69b73778dba2eb5157eb29d9b3c970d295a3ca38c86f265339b4e7673f13379eb30a5b06511e78f70544cc4cdfc6c2876b2b6b012fdd1261d4dc0a993336de84ff3d3ef08dcf6775c715ea8f1ccf7c6c82a84ac370b171a5ac5311e398d02ff8a80d4a3a5acb161165ebbbfe1b7a686c5f0c6fb838db2b8c7625d1d8540df26f87d4f8e135ecce42d062";
-		String fileName="SF7444488607870";
-		pdfDownLoad(fileUrl,token,fileName);
-	}
-	private void pdfDownLoad(String fileUrl,String token,String fileName){
-		//下载地址
-//		String fileUrl = ioList.getGeneralString("ei_pdfurl"); // "https://inv.jss.com.cn/fp2/2zpnwyKkdvu9dWzE8BhmSnER0Iux3xQRMLidDJhiIE2PziVXY4lL3k83OsK0K06YctW5cf1FFHxraffj-bf16A.pdf";
-		// 定义要保存的文件的路径
-//		String fileName = ioList.getGeneralString("cu_name")+ioList.getGeneralString("ei_refno")+".pdf";//
-		String fileBasePath = "C:\\jyxsf\\"+fileName+".pdf";
-//		fileBasePath = String.valueOf(obs[5])+fileName;//发票储存路径
-		try {//X-Auth-token
-			// 创建URL对象
-			URL url = new URL(fileUrl);
-			HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
-			// 设置请求方法为GET
-			httpURLConnection.setRequestMethod("GET");
-			// 添加请求头
-			httpURLConnection.setRequestProperty("X-Auth-token", token); // 假设你的token是通过Bearer模式传递的
-			// 连接服务器
-			httpURLConnection.connect();
-			// 检查响应码
-			int responseCode = httpURLConnection.getResponseCode();
-			if (responseCode == HttpURLConnection.HTTP_OK) {
-				// 读取输入流
-				InputStream inputStream = httpURLConnection.getInputStream();
-				// 写入文件
-				FileOutputStream fileOutputStream = new FileOutputStream(fileBasePath);
-				byte[] buffer = new byte[4096];
-				int bytesRead = -1;
-				while ((bytesRead = inputStream.read(buffer)) != -1) {
-					fileOutputStream.write(buffer, 0, bytesRead);
-				}
-				// 关闭流
-				fileOutputStream.close();
-				inputStream.close();
-
-				System.out.println("下载成功");
-			} else {
-				System.out.println("下载失败 : " + responseCode);
-			}
-			// 断开连接
-			httpURLConnection.disconnect();
-			// 打开连接
-//			URLConnection conn = url.openConnection();
-//			// 获取输入流
-//			InputStream in = conn.getInputStream();
-//			// 创建输出流
-//			FileOutputStream out = new FileOutputStream(fileBasePath);
-//			// 创建缓冲区
-//			byte[] buffer = new byte[104857600];
-//			// 读取并写入数据
-//			int len;
-//			while ((len = in.read(buffer)) != -1) {
-//				out.write(buffer, 0, len);
-//			}
-//			long size = out.getChannel().size();
-//			// 关闭流
-//			in.close();
-//			out.close();
-//                        System.out.println("size:"+size);
-			//存文件 filepath
-//			int id = commonService.saveFilePath(fileBasePath, (int) size, fileName, "管理员");
-//			baseDao.execute("update ELECINVOICE set ei_pdfattach ='"+id+";' where ei_id = "+ioList.getGeneralInt("ei_id"));
-		} catch (Exception e) {
-			e.printStackTrace();
-			String errMsg = "文件转存异常";
-			if(StringUtil.hasText(e.getMessage())){
-				errMsg = e.getMessage();
-			}else if(e.getCause()!=null&&StringUtil.hasText(e.getCause().getMessage())){
-				errMsg = e.getCause().getMessage();
-			}
-		}
+	public void testSendProd(){
+		// 设置测试数据
+		String master = "HUAXK_P";
+		String id = "100072113";
+		String emCode = "test";
+		// 调用待测方法
+		Map<String, Object> result = erpService.sendProd(master, id, emCode);
+		System.out.println("result:"+result.toString());
 	}
 }