package com.uas.eis; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyName; import com.fasterxml.jackson.databind.introspect.AnnotatedClass; import com.fasterxml.jackson.dataformat.xml.JacksonXmlAnnotationIntrospector; 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.*; import java.util.*; 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 testSendProdByEv(){ // 设置测试数据 String master = "DATACENTER"; Map result = new HashMap<>(); String id = "100072167"; String emCode = "ADMIN"; String caller = "Product"; result = erpService.sendProd(master, id, emCode,caller); //客户资料 /*String id = "86362"; String emCode = "ADMIN"; String caller = "Customer!Base"; Map result = erpService.sendCust(master, id, emCode,caller);*/ System.out.println("result:"+result.toString()); } @Test public void testSendCustError(){ // 设置测试数据 String master = "DATACENTER_P"; String id = "86362"; // 86361 测试测试 // 86362 测试测试2 String emCode = "ADMIN"; String caller = "Customer!Base"; Map result = erpService.sendCust(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendVendError(){ // 设置测试数据 String master = "DATACENTER_P"; String id = "104018"; // 104017 测试测试 // 104018 测试测试2 String emCode = "ADMIN"; String caller = "Vendor"; Map result = erpService.sendVend(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendIO(){ // 设置测试数据 String master = "LHWX_SZ_P"; String id = "50790687"; String emCode = "E0263"; String caller = "ProdInOut!Sale"; Map result = erpService.sendIO(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendIn(){ // 设置测试数据 String master = "HUAXK_P"; String id = "50793193"; String emCode = "E0263"; String caller = "ProdInOut!PurcCheckin"; Map result = erpService.sendIO(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void init_vend() { //DATACENTER_P String ids = baseDao.queryForObject(" select wm_concat(ve_id) from ( select ve_id from DATACENTER.vendor where ve_auditstatus='已审核' and nvl(ve_sendwmsflag,0) = 0 order by ve_id ) where rownum <1000 " ,String.class); if(ids!=null){ erpService.sendVend("DATACENTER",ids,"admin","Vendor"); }else { logger.info("初始化完毕"); } } @Test public void init_cust() { String master ="DATACENTER"; String ids = baseDao.queryForObject(" select wm_concat(cu_id) from ( select cu_id FROM(SELECT cu_id from "+master+".customer " + "where cu_auditstatus='已审核' and nvl(cu_sendwmsflag,0) = 0 " + "and (cu_code,cu_name) not in (select ve_code,ve_name from vendor where ve_auditstatus='已审核' and nvl(ve_sendwmsflag,0) = -1) " + "order by cu_id) where rownum <1000 )" ,String.class); if(ids!=null){ Map result = erpService.sendCust(master,ids,"admin","Customer!Base"); String message = ""; if (result.get("success") == null || !"true".equals(result.get("success").toString())) { baseDao.execute("update "+master+".customer set cu_sendwmsflag=-1,cu_sendwmsstatus='同步成功',cu_sendwmserr=null where cu_id in ("+ids+")"); if(result.get("errList")!=null){ try { List> errList = (List>) result.get("errList"); for(Map map:errList){ if(StringUtil.hasText(map.get("code"))){ message = map.get("eMsg") == null? "同步失败" : map.get("eMsg").toString(); message = message.replaceAll("'","''"); baseDao.execute("update "+master+".customer set cu_sendwmsstatus='同步失败',cu_sendwmserr='"+message+"' where cu_id in ("+ids+")"); } } } catch (Exception e) { e.printStackTrace(); } } }else { baseDao.execute("update "+master+".customer set cu_sendwmsflag=-1,cu_sendwmsstatus='同步成功',cu_sendwmserr=null where cu_id in ("+ids+")"); System.out.println("同步成功"); } }else { logger.info("初始化完毕"); } } @Test public void init_prod() { //DATACENTER_P // String ids = baseDao.queryForObject(" select wm_concat(pr_id) from ( select pr_id FROM(SELECT pr_id FROM PRODUCT WHERE nvl(pr_sendwmsflag,0)=0 and PR_cODE IN(select 物料编号 FROM A_原厂型号初始化 where 原厂型号外箱 is not null or 原厂型号内箱 is not null) order by pr_id) " + // "where rownum <1000 )" // ,String.class); // String ids="100072205"; String master ="DATACENTER"; String ids = baseDao.queryForObject(" select wm_concat(pr_id) from ( select pr_id FROM(SELECT pr_id FROM "+master+".PRODUCT a " + " WHERE nvl(a.pr_sendwmsflag,0)=0 and pr_ycxh is not null order by pr_id) " + "where rownum <1000 )",String.class); if(ids!=null){ Map result = erpService.sendProd(master, ids, "admin","Product"); String message = ""; if (result.get("success") == null || !"true".equals(result.get("success").toString())) { baseDao.execute("update "+master+".product set pr_sendwmsflag=-1,pr_sendwmsstatus='同步成功',pr_sendwmserr=null where pr_id in ("+ids+")"); if(result.get("errList")!=null){ try { List> errList = (List>) result.get("errList"); for(Map map:errList){ if(StringUtil.hasText(map.get("code"))){ message = map.get("eMsg") == null? "同步失败" : map.get("eMsg").toString(); message = message.replaceAll("'","''"); baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr='"+message+"' where pr_id in ("+ids+")"); } } } catch (Exception e) { e.printStackTrace(); } } }else { baseDao.execute("update "+master+".product set pr_sendwmsflag=-1,pr_sendwmsstatus='同步成功',pr_sendwmserr=null where pr_id in ("+ids+")"); System.out.println("同步成功"); } }else { logger.info("初始化完毕"); } } @Test public void testSendProdByXml(){ // 设置测试数据 List prodList = new ArrayList<>(); // 创建BaseReq对象 BaseItemsReq prodBaseItemsReq = new BaseItemsReq(); prodBaseItemsReq.setActionType("update"); prodBaseItemsReq.setWarehouseCode(vwmsConfig.getWarehouseCode()); prodBaseItemsReq.setOwnerCode(vwmsConfig.getOwnerCode()); prodBaseItemsReq.setOutBizCode("sendProd-"+System.currentTimeMillis()); // 创建BaseVastItem对象 BaseItemsReq.BaseItems prodBaseItems = new BaseItemsReq().new BaseItems(); // 设置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); ProductReq productReq2 = new ProductReq.Builder() .itemId("TESTXML2") .itemCode("TESTXML2") .barCode("TESTXML2") .itemName("TESTXML2") .goodsCode("TESTXML2") .brandName("TESTXML2") .categoryName("TESTXML2") .stockUnit("") .ExtendProps(new ProductReq.ExtendProps() {{ setKey1("1000.0"); }}) .build(); prodList.add(productReq2); prodBaseItems.setItem(prodList); prodBaseItemsReq.setItems(prodBaseItems); // 创建RequestWrapper对象 // BaseReq> prodBaseReq = new BaseReq(); // prodBaseReq.setRequest(prodBaseItemsReq); try { // 将prodBaseReq对象转换为XML字符串 // 创建XmlMapper实例 XmlMapper xmlMapper = new XmlMapper(); // 配置XML根元素名称为 "request" // xmlMapper.setAnnotationIntrospector(new JacksonXmlAnnotationIntrospector() { // @Override // public PropertyName findRootName(AnnotatedClass ac) { // return PropertyName.construct("request", null); // } // }); String xml = xmlMapper.writeValueAsString(prodBaseItemsReq); logger.info("Request XML: {}", xml); // 使用postXml方法发送请求 // byte[] responseBytes = HttpUtil.postXmlToVWMS("openapi.items.synchronize",xml, "UTF-8",vwmsConfig); // String responseText = new String(responseBytes, "UTF-8"); String responseText="success201openapi.items.synchronize successfully"; System.out.println("responseText:"+responseText); // 处理响应 // if(responseBytes != null) { // 解析XML响应 BaseVastResp baseVastResp = xmlMapper.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(){ // 设置测试数据 String master = "HUAXK"; String id = "100047433"; String emCode = "test"; String caller = "test"; // 调用待测方法 Map result = erpService.sendProd(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testTransfer(){ // String str = "\u8d27\u54c1\u4ee3\u7801\u6216\u6761\u7801\u957f\u5ea6\u4e0d\u6ee1\u8db3"; // System.out.println(str); System.out.println("l:"+"".length()); } @Test public void testSendVend(){ String master = "HUAXK"; String id = "98660"; String emCode = "test"; String caller = "test"; Map result = erpService.sendVend(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendCustomer(){ String master = "HUAXK"; String id = "70779"; String emCode = "test"; String caller = "test"; Map result = erpService.sendCust(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendAddCGYS(){ // 设置测试数据 String master = "HUAXK"; String id = "50735758"; String emCode = "test"; String caller = "ProdInOut!PurcCheckin"; Map result = erpService.sendIO(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendCancelCGYS(){ // 设置测试数据 String master = "HUAXK"; String id = "50735836"; String emCode = "test"; // String caller = "ProdInOut!PurcCheckin"; String caller = "ProdInOut!Sale"; Map result = erpService.cancelIO(master, id, emCode,caller,"反提交"); System.out.println("result:"+result.toString()); } @Test public void testSendAddXSCH(){ // 设置测试数据 String master = "HUAXK"; String id = "50735836"; String emCode = "test"; String caller = "ProdInOut!Sale"; Map result = erpService.sendIO(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendAddBCCK(){ // 设置测试数据 String master = "HUAXK"; String id = "50736049"; String emCode = "test"; String caller = "ProdInOut!AppropriationOut"; Map result = erpService.sendIO(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendAddQTCKZF(){ // 设置测试数据 String master = "HUAXK"; String id = "50736053"; String emCode = "test"; String caller = "ProdInOut!OtherOut"; Map result = erpService.sendIO(master, id, emCode,caller); System.out.println("result:"+result.toString()); } @Test public void testSendStockData(){ // 设置测试数据 String master = "HUAXK"; String emCode = "test"; Map result = erpService.sendStockData(master, emCode); System.out.println("result:"+result.toString()); } }