UasEisApplicationTests.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. package com.uas.eis;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.fasterxml.jackson.databind.PropertyName;
  5. import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
  6. import com.fasterxml.jackson.dataformat.xml.JacksonXmlAnnotationIntrospector;
  7. import com.sun.xml.internal.bind.v2.util.XmlFactory;
  8. import com.uas.eis.config.VwmsConfig;
  9. import com.uas.eis.dao.*;
  10. import com.uas.eis.entity.vwms.req.BaseItemsReq;
  11. import com.uas.eis.entity.vwms.req.BaseReq;
  12. import com.uas.eis.entity.vwms.req.ErpCancelIORequest;
  13. import com.uas.eis.entity.vwms.req.ProductReq;
  14. import com.uas.eis.entity.vwms.resp.BaseVastResp;
  15. import com.uas.eis.service.ERPService;
  16. import com.uas.eis.utils.*;
  17. import org.junit.Test;
  18. import org.junit.runner.RunWith;
  19. import org.slf4j.Logger;
  20. import org.slf4j.LoggerFactory;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.boot.test.context.SpringBootTest;
  23. import org.springframework.test.context.junit4.SpringRunner;
  24. import java.io.*;
  25. import java.security.MessageDigest;
  26. import java.security.NoSuchAlgorithmException;
  27. import java.util.*;
  28. import com.fasterxml.jackson.dataformat.xml.XmlMapper;
  29. @RunWith(SpringRunner.class)
  30. @SpringBootTest(classes = {UasEisApplication.class})
  31. public class UasEisApplicationTests {
  32. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  33. @Autowired
  34. private BaseDao baseDao;
  35. // @Autowired
  36. // private ObjectMapper objectMapper; // 注入Jackson的ObjectMapper
  37. @Autowired
  38. private ERPService erpService;
  39. @Autowired
  40. private VwmsConfig vwmsConfig;
  41. @Test
  42. public void testCancelIO(){
  43. // 设置测试数据
  44. String master = "YUEJH_TEST";
  45. String emCode = "TEST";
  46. String caller="ProdInOut!Sale";
  47. String formStore = "{\"pi_id\":\"50744191\"}";
  48. String gridStore = "[{\"pd_id\":47029492,\"pd_outqty\":0}]";
  49. // 调用待测方法
  50. ErpCancelIORequest erpCancelIORequest = new ErpCancelIORequest();
  51. erpCancelIORequest.setMaster(master);
  52. erpCancelIORequest.setEmCode(emCode);
  53. erpCancelIORequest.setCaller(caller);
  54. erpCancelIORequest.setFormStore(formStore);
  55. erpCancelIORequest.setGridStore(gridStore);
  56. Map<String, Object> result = erpService.cancelIO(erpCancelIORequest);
  57. System.out.println("result:"+result.toString());
  58. }
  59. @Test
  60. public void testSendJSTH(){
  61. // 设置测试数据
  62. String master = "YUEJH_TEST";
  63. String id = "50744184";
  64. String emCode = "TEST";
  65. String caller="ProdInOut!AppropriationOut";
  66. // 调用待测方法
  67. Map<String, Object> result = erpService.sendIO(master, id, emCode,caller);
  68. System.out.println("result:"+result.toString());
  69. }
  70. @Test
  71. public void testSendZK(){
  72. // 设置测试数据
  73. String master = "YUEJH_TEST";
  74. String id = "50744180";
  75. String emCode = "TEST";
  76. String caller="ProdInOut!Sale";
  77. // 调用待测方法
  78. Map<String, Object> result = erpService.sendIO(master, id, emCode,caller);
  79. System.out.println("result:"+result.toString());
  80. }
  81. @Test
  82. public void testSendBC(){
  83. // 设置测试数据
  84. String master = "YUEJH_TEST";
  85. String id = "50744179";
  86. String emCode = "TEST";
  87. String caller="ProdInOut!AppropriationOut";
  88. // 调用待测方法
  89. Map<String, Object> result = erpService.sendIO(master, id, emCode,caller);
  90. System.out.println("result:"+result.toString());
  91. }
  92. @Test
  93. public void testSendSaleOut(){
  94. // 设置测试数据
  95. String master = "YUEJH_TEST";
  96. String id = "50744178";//"50744173";
  97. String emCode = "TEST";
  98. String caller="ProdInOut!StockLoss";
  99. // = "ProdInOut!OtherOut"; //50744177
  100. // = "ProdInOut!PurcCheckout";
  101. // ="ProdInOut!Sale";
  102. // 调用待测方法
  103. Map<String, Object> result = erpService.sendIO(master, id, emCode,caller);
  104. System.out.println("result:"+result.toString());
  105. }
  106. @Test
  107. public void testSendIn(){
  108. // 设置测试数据
  109. String master = "YUEJH_TEST";
  110. String id = "50744157";
  111. String emCode = "test";
  112. String caller ="ProdInOut!OtherIn";
  113. //50744156 "ProdInOut!StockProfit";
  114. //="ProdInOut!SaleReturn";
  115. // = "ProdInOut!PurcCheckin";
  116. // 调用待测方法
  117. Map<String, Object> result = erpService.sendIO(master, id, emCode,caller);
  118. System.out.println("result:"+result.toString());
  119. }
  120. @Test
  121. public void testSendProd(){
  122. // 设置测试数据
  123. String master = "YUEJH_TEST";
  124. String emCode = "test";
  125. String caller = "Product";
  126. String id = baseDao.queryForObject("select pr_id from "+vwmsConfig.getDC_MASTER()+".product where pr_code = 'U00014725'",String.class);
  127. // 调用待测方法
  128. Map<String, Object> result = erpService.sendProd(master, id, emCode,caller);
  129. System.out.println("result:"+result.toString());
  130. }
  131. @Test
  132. public void testResp(){
  133. String responseText="<?xml version=\"1.0\" encoding=\"utf-8\"?><response><flag>success</flag><code>201</code><message>openapi.items.synchronize successfully</message></response>";
  134. System.out.println("responseText:"+responseText);
  135. XmlMapper xmlMapper = new XmlMapper();
  136. // 解析XML响应
  137. BaseVastResp baseVastResp = null;
  138. try {
  139. baseVastResp = xmlMapper.readValue(responseText, BaseVastResp.class);
  140. } catch (IOException e) {
  141. throw new RuntimeException(e);
  142. }
  143. BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
  144. System.out.println("baseVastRespResponse:"+baseVastRespResponse.toString());
  145. }
  146. @Test
  147. public void testMY() {
  148. String meg = "20201015001app_key20201015001customerIdBJMGformatxmlmethodsingleitem.synchronizepartner_idtop-sdk-java-20190305sign_methodmd5timestamp2020-12-14 18:54:36v2.0<request><actionType>ADD</actionType><item><barCode>0001</barCode><itemCode>0001</itemCode><itemName>0001</itemName><itemType>ZP</itemType><stockUnit>个</stockUnit></item><ownerCode>BJMG</ownerCode><warehouseCode>OTHER</warehouseCode></request>20201015001";
  149. String sign = MD5Util.encrypt32Up(meg);
  150. System.out.println("MD5加密结果: " + sign);
  151. }
  152. @Test
  153. public void testSendProdByXml(){
  154. // 设置测试数据
  155. List<ProductReq> prodList = new ArrayList<>();
  156. // 创建BaseReq对象
  157. BaseItemsReq<ProductReq> prodBaseItemsReq = new BaseItemsReq();
  158. prodBaseItemsReq.setActionType("update");
  159. prodBaseItemsReq.setWarehouseCode(vwmsConfig.getWarehouseCode());
  160. prodBaseItemsReq.setOwnerCode("YUEJH");
  161. prodBaseItemsReq.setOutBizCode("sendProd-"+System.currentTimeMillis());
  162. // 创建BaseVastItem对象
  163. BaseItemsReq.BaseItems prodBaseItems = new BaseItemsReq<ProductReq>().new BaseItems<ProductReq>();
  164. // 设置BaseVastItem的item属性
  165. /* ProductReq productReq = new ProductReq.Builder()
  166. .itemId("TESTXML")
  167. .itemCode("TESTXML")
  168. .barCode("TESTXML")
  169. .itemName("TESTXML")
  170. .goodsCode("TESTXML")
  171. .brandName("TESTXML")
  172. .categoryName("TESTXML")
  173. .stockUnit("")
  174. .ExtendProps(new ProductReq.ExtendProps() {{
  175. setKey1("1000.0");
  176. }})
  177. .build();
  178. prodList.add(productReq);
  179. ProductReq productReq2 = new ProductReq.Builder()
  180. .itemId("TESTXML2")
  181. .itemCode("TESTXML2")
  182. .barCode("TESTXML2")
  183. .itemName("TESTXML2")
  184. .goodsCode("TESTXML2")
  185. .brandName("TESTXML2")
  186. .categoryName("TESTXML2")
  187. .stockUnit("")
  188. .ExtendProps(new ProductReq.ExtendProps() {{
  189. setKey1("1000.0");
  190. }})
  191. .build();*/
  192. // prodList.add(productReq2);
  193. prodBaseItems.setItem(prodList);
  194. prodBaseItemsReq.setItems(prodBaseItems);
  195. // 创建RequestWrapper对象
  196. // BaseReq<BaseItemsReq<ProductReq>> prodBaseReq = new BaseReq();
  197. // prodBaseReq.setRequest(prodBaseItemsReq);
  198. try {
  199. // 将prodBaseReq对象转换为XML字符串
  200. // 创建XmlMapper实例
  201. XmlMapper xmlMapper = new XmlMapper();
  202. // 配置XML根元素名称为 "request"
  203. // xmlMapper.setAnnotationIntrospector(new JacksonXmlAnnotationIntrospector() {
  204. // @Override
  205. // public PropertyName findRootName(AnnotatedClass ac) {
  206. // return PropertyName.construct("request", null);
  207. // }
  208. // });
  209. String xml = xmlMapper.writeValueAsString(prodBaseItemsReq);
  210. logger.info("Request XML: {}", xml);
  211. // 使用postXml方法发送请求
  212. // byte[] responseBytes = HttpUtil.postXmlToVWMS("openapi.singleitem.synchronize",xml, "UTF-8",vwmsConfig);
  213. // String responseText = new String(responseBytes, "UTF-8");
  214. String responseText="<?xml version=\"1.0\" encoding=\"utf-8\"?><response><flag>success</flag><code>201</code><message>openapi.items.synchronize successfully</message></response>";
  215. System.out.println("responseText:"+responseText);
  216. // 处理响应
  217. // if(responseBytes != null) {
  218. // 解析XML响应
  219. BaseVastResp baseVastResp = xmlMapper.readValue(responseText, BaseVastResp.class);
  220. BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
  221. if(baseVastRespResponse!=null){
  222. //默认成功
  223. if("success".equals(baseVastRespResponse.getFlag())){
  224. logger.info("response-success code: {} message: {}", baseVastRespResponse.getCode(),baseVastRespResponse.getMessage());
  225. }else {
  226. logger.info("response-failure code: {} message: {}", baseVastRespResponse.getCode(),baseVastRespResponse.getMessage());
  227. //不一定全部失败,此处只会返回失败提示
  228. BaseVastResp.Items items = baseVastRespResponse.getItems();
  229. if(items!=null&&!CollectionUtil.isEmpty(items.getItem())){
  230. for (BaseVastResp.Item item : items.getItem()) {
  231. logger.info("response-failure-item code: {} message: {}", item.getItemCode(),item.getMessage());
  232. }
  233. }
  234. }
  235. }
  236. // }
  237. } catch (Exception e) {
  238. e.printStackTrace();
  239. }
  240. }
  241. }