|
|
@@ -1,28 +1,111 @@
|
|
|
package com.uas.eis;
|
|
|
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.sun.xml.internal.bind.v2.util.XmlFactory;
|
|
|
+import com.uas.eis.config.VwmsConfig;
|
|
|
import com.uas.eis.dao.*;
|
|
|
+import com.uas.eis.entity.vwms.req.BaseItemsReq;
|
|
|
+import com.uas.eis.entity.vwms.req.BaseReq;
|
|
|
+import com.uas.eis.entity.vwms.req.ProductReq;
|
|
|
+import com.uas.eis.entity.vwms.resp.BaseVastResp;
|
|
|
import com.uas.eis.service.ERPService;
|
|
|
+import com.uas.eis.utils.CollectionUtil;
|
|
|
+import com.uas.eis.utils.HttpUtil;
|
|
|
+import com.uas.eis.utils.StringUtil;
|
|
|
import org.junit.Test;
|
|
|
import org.junit.runner.RunWith;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
|
|
-import java.io.ByteArrayInputStream;
|
|
|
-import java.io.ByteArrayOutputStream;
|
|
|
-import java.io.File;
|
|
|
-import java.io.UnsupportedEncodingException;
|
|
|
+import java.io.*;
|
|
|
import java.util.*;
|
|
|
-import java.util.zip.DeflaterOutputStream;
|
|
|
-import java.util.zip.InflaterOutputStream;
|
|
|
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
|
|
|
|
|
@RunWith(SpringRunner.class)
|
|
|
@SpringBootTest(classes = {UasEisApplication.class})
|
|
|
public class UasEisApplicationTests {
|
|
|
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
// @Autowired
|
|
|
// private BaseDao baseDao;
|
|
|
+ @Autowired
|
|
|
+ private ObjectMapper objectMapper; // 注入Jackson的ObjectMapper
|
|
|
@Autowired
|
|
|
private ERPService erpService;
|
|
|
+ @Autowired
|
|
|
+ private VwmsConfig vwmsConfig;
|
|
|
+ @Test
|
|
|
+ public void testSendProdByXml(){
|
|
|
+ // 设置测试数据
|
|
|
+ List<ProductReq> prodList = new ArrayList<>();
|
|
|
+ // 创建BaseReq对象
|
|
|
+ BaseItemsReq<ProductReq> prodBaseItemsReq = new BaseItemsReq();
|
|
|
+ prodBaseItemsReq.setActionType("add");
|
|
|
+ prodBaseItemsReq.setWarehouseCode(vwmsConfig.getWarehouseCode());
|
|
|
+ prodBaseItemsReq.setOwnerCode(vwmsConfig.getOwnerCode());
|
|
|
+ prodBaseItemsReq.setOutBizCode("sendProd-"+System.currentTimeMillis());
|
|
|
+ // 创建BaseVastItem对象
|
|
|
+ BaseItemsReq.BaseItems prodBaseItems = new BaseItemsReq<ProductReq>().new BaseItems<ProductReq>();
|
|
|
+ // 设置BaseVastItem的item属性
|
|
|
+ ProductReq productReq = new ProductReq.Builder()
|
|
|
+ .itemId("TESTXML")
|
|
|
+ .itemCode("TESTXML")
|
|
|
+ .barCode("TESTXML")
|
|
|
+ .itemName("TESTXML")
|
|
|
+ .goodsCode("TESTXML")
|
|
|
+ .brandName("TESTXML")
|
|
|
+ .categoryName("TESTXML")
|
|
|
+ .stockUnit("")
|
|
|
+ .ExtendProps(new ProductReq.ExtendProps() {{
|
|
|
+ setKey1("1000.0");
|
|
|
+ }})
|
|
|
+ .build();
|
|
|
+ prodList.add(productReq);
|
|
|
+ prodBaseItems.setItem(prodList);
|
|
|
+ prodBaseItemsReq.setItems(prodBaseItems);
|
|
|
+ // 创建RequestWrapper对象
|
|
|
+ BaseReq<BaseItemsReq<ProductReq>> prodBaseReq = new BaseReq();
|
|
|
+ prodBaseReq.setRequest(prodBaseItemsReq);
|
|
|
+ try {
|
|
|
+ // 将prodBaseReq对象转换为XML字符串
|
|
|
+ // 创建XmlMapper实例
|
|
|
+ XmlMapper xmlMapper = new XmlMapper();
|
|
|
+ String xml = xmlMapper.writeValueAsString(prodBaseReq);
|
|
|
+ logger.info("Request XML: {}", xml);
|
|
|
+
|
|
|
+ // 使用postXml方法发送请求
|
|
|
+ byte[] responseBytes = HttpUtil.postXmlToVWMS("openapi.items.synchronize",xml, "UTF-8",vwmsConfig);
|
|
|
+ String responseText = new String(responseBytes, "UTF-8");
|
|
|
+ System.out.println("responseText:"+responseText);
|
|
|
+ // 处理响应
|
|
|
+ if(responseBytes != null) {
|
|
|
+ // 解析XML响应
|
|
|
+ BaseVastResp baseVastResp = objectMapper.readValue(responseText, BaseVastResp.class);
|
|
|
+ BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
|
|
|
+ if(baseVastRespResponse!=null){
|
|
|
+ //默认成功
|
|
|
+ if("success".equals(baseVastRespResponse.getFlag())){
|
|
|
+ logger.info("response-success code: {} message: {}", baseVastRespResponse.getCode(),baseVastRespResponse.getMessage());
|
|
|
+ }else {
|
|
|
+ logger.info("response-failure code: {} message: {}", baseVastRespResponse.getCode(),baseVastRespResponse.getMessage());
|
|
|
+ //不一定全部失败,此处只会返回失败提示
|
|
|
+ BaseVastResp.Items items = baseVastRespResponse.getItems();
|
|
|
+ if(items!=null&&!CollectionUtil.isEmpty(items.getItem())){
|
|
|
+ for (BaseVastResp.Item item : items.getItem()) {
|
|
|
+ logger.info("response-failure-item code: {} message: {}", item.getItemCode(),item.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
@Test
|
|
|
public void testSendProd(){
|
|
|
// 设置测试数据
|