package com.fzzy.push.gd2020.v2; import com.fzzy.api.data.AuthToken; import com.fzzy.api.entity.Api1101; import com.fzzy.api.entity.ApiConfs; import com.fzzy.push.gd2020.GDResult; import com.fzzy.push.gd2020.GDUtils; import com.fzzy.push.gd2020.InvokeResult; import com.fzzy.push.gd2020.JaxbUtil; import lombok.extern.slf4j.Slf4j; import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; import javax.xml.namespace.QName; //TODO 未找到相关实体类 @Slf4j public class GrainConditionCheckWeatherWebservice { public static GrainConditionCheckWeatherWebservice newInstance() { return new GrainConditionCheckWeatherWebservice(); } /** * 气象-数据接口 -xml报文 */ public String xml_grainConditionCheckWeatherWebservice = "51803300202223.460东南风1.2669323无雨雪2018-10-24 15:05:21\n" + "\n"; /** * @Desc: 气象-数据接口 */ public InvokeResult grainConditionCheckWeatherWebservice(AuthToken authToken,ApiConfs conf, Api1101 data) { InvokeResult invokeResult = new InvokeResult(); ClassLoader cl = Thread.currentThread().getContextClassLoader(); String url = conf.getApiUrl()+"/grainConditionCheckWeatherWebservice?wsdl"; //填写调用气象数据接口服务 String method = "grainConditionCheckWeatherSaveRecordBase"; //填写气象数据方法名 String nameSpace= "http://service.sljt.com"; //填写调用省平台命名空间 Thread.currentThread().setContextClassLoader(cl); JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient(url); QName name = new QName(nameSpace,method); Object[] objects; try { String xmlStr = zlglInventoryWebserviceXml(data);// 获取接口的输入报文,根据需要填写相应的报文 log.debug("------xmlStr--{}", xmlStr); objects = client.invoke(name, new Object[]{authToken.getToken(), xmlStr}); log.debug("-----------返回信息---{}", objects[0].toString()); invokeResult = JaxbUtil.converyToJavaBean(objects[0].toString(), InvokeResult.class); } catch (Exception e) { log.error("----执行异常----{}", e); invokeResult.setCode(GDResult.CODE_500.getCode()); invokeResult.setData("后端服务执行异常:+" + e.getMessage()); return invokeResult; } return invokeResult; } /** * 报文获取--替换数据 * * @param data * @return */ public String zlglInventoryWebserviceXml(Api1101 data) { String xmlStr = xml_grainConditionCheckWeatherWebservice; xmlStr = xmlStr.replace("{Kddm}", GDUtils.formatStr(data.getXzqhdm()));//库点代码 xmlStr = xmlStr.replace("{Hjwd}", GDUtils.formatNum(data.getWd()));//环境温度 xmlStr = xmlStr.replace("{Hjsd}", GDUtils.formatNum(data.getJd()));//环境湿度 xmlStr = xmlStr.replace("{Fs}", GDUtils.formatStr(data.getDwlx()));//风向 xmlStr = xmlStr.replace("{Fs}", GDUtils.formatStr(data.getDwlx()));//风速 xmlStr = xmlStr.replace("{Qy}", GDUtils.formatStr(data.getDwlx()));//气压 xmlStr = xmlStr.replace("{Eyht}", GDUtils.formatStr(data.getDwlx()));//CO2 xmlStr = xmlStr.replace("{Jssj}", GDUtils.formatDate(data.getZcrq(), "yyyy-MM-dd"));//检测时间 return xmlStr; } }