package com.vci.ubcs.example.service.impl; import com.alibaba.fastjson.JSON; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import com.vci.ubcs.example.apply.*; import com.vci.ubcs.example.applybz.*; import com.vci.ubcs.example.service.ICalledIntegrationService; import com.vci.ubcs.example.service.UniversalInterface; import com.vci.ubcs.example.util.HttpUtils; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import java.net.MalformedURLException; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.List; /** * 统一申请接口:UBCS编码资源管理系统,被其他集成的系统的通用接口调用示例 * @author ludc * @date 2024/2/27 20:34 */ @Service @AllArgsConstructor public class CalledIntegrationServiceImpl implements ICalledIntegrationService { /** * 统一申请接口URL */ private final String UNIAPPLYURL = "http://localhost:37000/ubcs-code/applyCode"; /** * 标准申请接口URL */ private final String UNIAPPLYBZURL = "http://localhost:37000/ubcs-code/applyCodeBZ"; private final UniversalInterface universalInterface; /** * 对编码系统的统一申请接口调用,rest方式 */ @Override public void sendApplyCodeByRest() { // 组织数据 MultiValueMap params = new LinkedMultiValueMap<>(); params.add("dataType","json"); //params.add("dataType","xml");根据需求自行选择 params.add("dataString","");//根据需求自行组织json格式或者xml格式的数据 // 是xml时的格式示例: /*
*/ // 是json时的格式示例 params.add( "dataString", "\"data\": { \"classifys\": { \"classify\": [ { \"classCode\": \"1025\", \"fullclsfNamePath\": \"\", \"library\": \"10\", \"sections\": { \"section\": [ { \"name\": \"分类号\", \"value\": \"1025\" }, { \"name\": \"顺序号\", \"value\": \"\" } ] }, \"obejects\": { \"obeject\": [ { \"code\": \"\", \"id\": \"\", \"status\": \"Released\", \"operate\": \"create\", \"creator\": \"0000\", \"prop\": [ { \"key\": \"name\", \"text\": \"名称\", \"value\": \"\" } ] } ] } } ], \"systemId\": \"ERP\", \"user\": { \"ip\": \"127.0.0.1\", \"trueName\": \"00000\", \"userName\": \"test\" } } } " ); MultiValueMap headers = new LinkedMultiValueMap<>(); String res = HttpUtils.post(UNIAPPLYURL,params,headers); } /** * 对编码系统统一申请接口调用,WebService方式 */ @Override public void sendApplyCodeByWebService() throws MalformedURLException, RemoteException { //使用sopui生成调用webservice接口的代码 String dataType = "json"; //或者xml //String dataString = "\"data\": {\"classifys\": {\"classify\": [{\"classCode\": \"1025\",\"fullclsfNamePath\": \"\",\"library\": \"10\",\"sections\": {\"section\": [{\"name\": \"分类号\",\"value\": \"1025\"},{\"name\": \"顺序号\",\"value\": \"\"}]},\"obejects\": {\"obeject\": [{\"code\": \"\",\"id\": \"\",\"status\": \"Released\",\"operate\": \"create\",\"creator\": \"0000\",\"prop\": [{\"key\": \"name\",\"text\": \"名称\",\"value\": \"\"}]}]}}],\"systemId\": \"ERP\",\"user\": {\"ip\": \"127.0.0.1\",\"trueName\": \"00000\",\"userName\": \"test\"}}}"; // 请求的主要参数组建 InterParameterVO interParameterVO = new InterParameterVO(); RootDataVO rootDataVO = new RootDataVO(); ClassfysVO classfysVO = new ClassfysVO(); List classfyVOList = new ArrayList<>(); ClassfyVO classfyVO = new ClassfyVO(); classfyVO.setLibrary("10"); classfyVO.setClassCode("1025"); ApplyDatasVO applyDatasVO = new ApplyDatasVO(); List applyDataVOList = new ArrayList<>(); ApplyDataVO applyDataVO = new ApplyDataVO(); applyDataVO.setCode(""); applyDataVO.setCreator("0000"); applyDataVO.setEditor("0000"); applyDataVO.setId(""); applyDataVO.setOperate("create"); applyDataVO.setStatus("Released"); ArrayList proppertyVOS = new ArrayList<>(); ProppertyVO proppertyVO = new ProppertyVO(); proppertyVO.setKey("name"); proppertyVO.setText("名称"); proppertyVO.setValue(""); proppertyVOS.add(proppertyVO); applyDataVO.setProp(proppertyVOS); applyDataVOList.add(applyDataVO); applyDatasVO.setObject(applyDataVOList); classfyVO.setObjects(applyDatasVO); SectionsVO sectionsVO = new SectionsVO(); List sectionVOList = new ArrayList<>(); sectionVOList.add(new SectionVO("分类号","1025")); sectionVOList.add(new SectionVO("顺序号","1025")); sectionsVO.setSection(sectionVOList); classfyVO.setSections(sectionsVO); classfysVO.setClassify(classfyVOList); rootDataVO.setClassifys(classfysVO); UserVO userVO = new UserVO(); userVO.setIp("127.0.0.1"); userVO.setTrueName("19861111"); userVO.setUserName("19861111"); rootDataVO.setUser(userVO); rootDataVO.setSystemId("PDM"); interParameterVO.setData(rootDataVO); // 如果是xml请自行构建xml格式,并将dataType改为xml String dataString = JSON.toJSONString(interParameterVO); // xml参数形式示例 XStream xStream = new XStream(new DomDriver()); String dataString1 = xStream.toXML(interParameterVO); String res = universalInterface.applyCode(dataString,dataType); } /** * 对编码系统统一申请接口调用,WebService方式 */ @Override public void sendApplyCodeByWebServicexml(int frequency) throws MalformedURLException, RemoteException { //使用sopui生成调用webservice接口的代码 String dataType = "xml"; //或者xml String dataString = "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; for (int i = 0; i <= frequency; i++) { String res = universalInterface.applyCode(dataString,dataType); System.out.println("第"+i+"次执行,返回结果:"+res); } System.out.println("=================END======================="); } /** * 对标准申码接口调用示例:rest方式,调用方式和统一申码接口没有区别,只是参数上有所调整 */ public void sendApplyCodeBZByRest(){ // 组织数据 MultiValueMap params = new LinkedMultiValueMap<>(); params.add("dataType","json"); //params.add("dataType","xml");根据需求自行选择 // 是json时的格式示例 ApplyBZParamVO applyBZParamVO = new ApplyBZParamVO(); ApplyBZVO applyBZVO = new ApplyBZVO(); ClassfyBZVO classfyBZVO = new ClassfyBZVO(); classfyBZVO.setClassCode("BZHWJ"); classfyBZVO.setLibrary("standard"); SectionsVO sectionsVO = new SectionsVO(); List sectionVOList = new ArrayList<>(); SectionVO sectionVO = new SectionVO(); sectionVO.setName("文件分类"); sectionVO.setValue("BJT"); sectionVOList.add(sectionVO); SectionVO sectionVO1 = new SectionVO(); sectionVO.setName("文件分类"); sectionVO.setValue("BJT"); sectionVOList.add(sectionVO1); SectionVO sectionVO2 = new SectionVO(); sectionVO.setName("分隔符"); sectionVO.setValue("-"); sectionVOList.add(sectionVO2); SectionVO sectionVO3 = new SectionVO(); sectionVO.setName("年代号"); sectionVO.setValue("2024"); sectionVOList.add(sectionVO3); SectionVO sectionVO4 = new SectionVO(); sectionVO.setName("顺序号"); sectionVO.setValue(""); sectionVOList.add(sectionVO3); sectionsVO.setSection(sectionVOList); classfyBZVO.setSections(sectionsVO); ApplyBZDatasVO applyBZDatasVO = new ApplyBZDatasVO(); ArrayList applyBZDataVOS = new ArrayList<>(); ApplyBZDataVO applyBZDataVO = new ApplyBZDataVO(); applyBZDataVO.setCode(""); // 修订时必传 applyBZDataVO.setOldCode(""); applyBZDataVO.setCreator("19822111"); // 是否修订为系列 applyBZDataVO.setEditSeriesFlag(false); // 是否为系列申请 applyBZDataVO.setSeriesFlag(false); // 发布时间 applyBZDataVO.setReleaseTime("2024-3-21"); applyBZDataVO.setId("cassafaf11332213678sdf12673626222"); // 文档中通常会有描述,1是申码,2是修订 applyBZDataVO.setOperationType("1"); applyBZDataVO.setStatus("Released"); // 年代号 applyBZDataVO.setYearNumber("2024"); // 流水号 applyBZDataVO.setSeriesFlow(""); List proppertyVOS = new ArrayList<>(); ProppertyVO proppertyVO = new ProppertyVO(); proppertyVO.setText("名称"); proppertyVO.setKey("测试-首件鉴定"); proppertyVO.setValue("standardName"); proppertyVOS.add(proppertyVO); ProppertyVO proppertyVO1 = new ProppertyVO(); proppertyVO1.setText("发布日期"); proppertyVO1.setKey("2024-3-21"); proppertyVO1.setValue("publishDate"); proppertyVOS.add(proppertyVO1); applyBZDataVO.setProp(proppertyVOS); applyBZDatasVO.setObject(applyBZDataVOS); classfyBZVO.setObjects(applyBZDatasVO); applyBZVO.setClassify(classfyBZVO); UserVO userVO = new UserVO(); userVO.setIp("127.0.0.1"); userVO.setTrueName("19861111"); userVO.setUserName("19861111"); applyBZVO.setUser(userVO); applyBZVO.setSystemId("standardization"); applyBZParamVO.setData(applyBZVO); // xml参数形式示例 XStream xStream = new XStream(new DomDriver()); String dataString1 = xStream.toXML(applyBZParamVO); params.add("dataString",JSON.toJSONString(applyBZParamVO)); MultiValueMap headers = new LinkedMultiValueMap<>(); String res = HttpUtils.post(UNIAPPLYBZURL,params,headers); } /** * 对标准申码接口调用示例:webservice方式,调用方式和统一申码接口没有区别,只是参数上有所调整 */ public void sendApplyCodeBZWebservice() throws RemoteException { //使用sopui生成调用webservice接口的代码 String dataType = "json"; //或者xml // 是json时的格式示例 ApplyBZParamVO applyBZParamVO = new ApplyBZParamVO(); ApplyBZVO applyBZVO = new ApplyBZVO(); ClassfyBZVO classfyBZVO = new ClassfyBZVO(); classfyBZVO.setClassCode("BZHWJ"); classfyBZVO.setLibrary("standard"); SectionsVO sectionsVO = new SectionsVO(); List sectionVOList = new ArrayList<>(); sectionsVO.setSection(sectionVOList); classfyBZVO.setSections(sectionsVO); ApplyBZDatasVO applyBZDatasVO = new ApplyBZDatasVO(); ArrayList applyBZDataVOS = new ArrayList<>(); ApplyBZDataVO applyBZDataVO = new ApplyBZDataVO(); applyBZDataVO.setCode(""); // 修订时必传 applyBZDataVO.setOldCode(""); applyBZDataVO.setCreator("19822111"); // 是否修订为系列 applyBZDataVO.setEditSeriesFlag(false); // 是否为系列申请 applyBZDataVO.setSeriesFlag(false); // 发布时间 applyBZDataVO.setReleaseTime("2024-3-21"); applyBZDataVO.setId("cassafaf11332213678sdf12673626222"); // 文档中通常会有描述,1是申码,2是修订 applyBZDataVO.setOperationType("1"); applyBZDataVO.setStatus("Released"); // 年代号 applyBZDataVO.setYearNumber("2024"); // 流水号 applyBZDataVO.setSeriesFlow(""); List proppertyVOS = new ArrayList<>(); ProppertyVO proppertyVO = new ProppertyVO(); proppertyVO.setText("名称"); proppertyVO.setKey("测试-首件鉴定"); proppertyVO.setValue("standardName"); proppertyVOS.add(proppertyVO); ProppertyVO proppertyVO1 = new ProppertyVO(); proppertyVO1.setText("发布日期"); proppertyVO1.setKey("2024-3-21"); proppertyVO1.setValue("publishDate"); proppertyVOS.add(proppertyVO1); applyBZDataVO.setProp(proppertyVOS); applyBZDatasVO.setObject(applyBZDataVOS); classfyBZVO.setObjects(applyBZDatasVO); applyBZVO.setClassify(classfyBZVO); UserVO userVO = new UserVO(); userVO.setIp("127.0.0.1"); userVO.setTrueName("19861111"); userVO.setUserName("19861111"); applyBZVO.setUser(userVO); applyBZVO.setSystemId("standardization"); applyBZParamVO.setData(applyBZVO); // 如果是xml请自行构建xml格式,并将dataType改为xml String dataString = JSON.toJSONString(applyBZParamVO); // xml参数形式示例 XStream xStream = new XStream(new DomDriver()); String dataString1 = xStream.toXML(applyBZParamVO); String res = universalInterface.applyCodeForBZ(dataString,dataType); } }