HaiKongWarehouseTemplate.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.kmall.admin.haikong.client;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.kmall.admin.haikong.config.HaiKongProperties;
  4. import com.kmall.admin.haikong.dto.Criteria;
  5. import com.kmall.admin.haikong.dto.WareQueryStockParamDTO;
  6. import com.kmall.admin.haikong.utils.OkHttpUtils;
  7. import com.kmall.admin.haikong.utils.WareSysSignUtils;
  8. import com.kmall.admin.haikong.utils.XmlUtils;
  9. import okhttp3.MediaType;
  10. import okhttp3.Request;
  11. import okhttp3.RequestBody;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Component;
  16. import java.util.ArrayList;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * 对接海控的仓库系统
  21. * @author lhm
  22. * @createDate 2021-10-29
  23. */
  24. @Component
  25. public class HaiKongWarehouseTemplate {
  26. private static final Logger log = LoggerFactory.getLogger(HaiKongWarehouseTemplate.class);
  27. @Autowired
  28. private HaiKongProperties haiKongProperties;
  29. /**
  30. * 获取海控保税仓的仓库库存
  31. * @param wareQueryStockParamDTO 请求数据
  32. * @return 响应数据
  33. */
  34. public String queryWarehouseStock(WareQueryStockParamDTO wareQueryStockParamDTO) {
  35. haiKongProperties.getWareUrl();
  36. return "";
  37. }
  38. public static void main(String[] args) throws Exception {
  39. // 公司编码 = '44048600Y8'
  40. // 仓库编码 = '20'
  41. // 店铺编码 = 'wxe186e23f5a8f0dbf'
  42. // appKey = 'GREE'
  43. // customerId = 'GREE1001'
  44. // secretKey = 'GREE1001'
  45. // 正式环境地址:http://yjapi.highstore.cn:8202/esbcenter/api/esb
  46. String url = "http://yjapi.highstore.cn:8202/esbcenter/api/esb";
  47. url += "?method=inventory.query";
  48. url += "&format=xml";
  49. url += "&sign_method=md5";
  50. url += "&customerId=GREE1001";
  51. url += "&timestamp=" + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");
  52. url += "&app_key=GREE";
  53. url += "&v=1.0";
  54. WareQueryStockParamDTO wareQueryStockParamDTO = new WareQueryStockParamDTO();
  55. List<Criteria> criteriaList = new ArrayList<>();
  56. Criteria criteria = new Criteria();
  57. criteria.setImperfectGrade("a");
  58. criteria.setInventoryType("SY");
  59. criteria.setItemCode("708177112730");
  60. // criteria.setItemId("");
  61. criteria.setOwnerCode("44048600Y8");
  62. criteria.setWarehouseCode("20");
  63. Criteria criteria1 = new Criteria();
  64. criteria1.setImperfectGrade("a");
  65. criteria1.setInventoryType("SY");
  66. criteria1.setItemCode("test");
  67. // criteria1.setItemId("SSS");
  68. criteria1.setOwnerCode("44048600Y8");
  69. criteria1.setWarehouseCode("20");
  70. criteriaList.add(criteria);
  71. // criteriaList.add(criteria1);
  72. wareQueryStockParamDTO.setCriteriaList(criteriaList);
  73. String xmlStr = XmlUtils.toXml(wareQueryStockParamDTO, false);
  74. String signUrl = WareSysSignUtils.getSignRequest(url, xmlStr, "GREE1001");
  75. //xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><request><criteriaList><criteria><warehouseCode>20</warehouseCode><ownerCode>44048600Y8</ownerCode><itemCode>test</itemCode><itemId>SSS</itemId><inventoryType>SY</inventoryType><imperfectGrade>a</imperfectGrade></criteria><criteria><warehouseCode>20</warehouseCode><ownerCode>44048600Y8</ownerCode><itemCode>test</itemCode><itemId>SSS</itemId><inventoryType>SY</inventoryType><imperfectGrade>a</imperfectGrade></criteria></criteriaList></request>";
  76. Request.Builder builder = new Request.Builder();
  77. RequestBody requestBody = RequestBody.create(MediaType.parse(org.springframework.http.MediaType.TEXT_XML_VALUE), xmlStr);
  78. Request request = builder.post(requestBody)
  79. .url(signUrl)
  80. .build();
  81. String retry = OkHttpUtils.retry(request, 3);
  82. System.out.println(retry);
  83. }
  84. }