| package com.fzzy.push.gd2020.v2; | 
|   | 
| import com.fzzy.api.data.AuthToken; | 
| import com.fzzy.api.entity.*; | 
| 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; | 
|   | 
| /** | 
|  * @Desc: 粮食库存信息 | 
|  * @author: Andy | 
|  * @update-time: 2022/10/16 | 
|  */ | 
| @Slf4j | 
| public class InventoryInsertRecordSolidWebService { | 
|   | 
|     public static InventoryInsertRecordSolidWebService newInstance() { | 
|         return new InventoryInsertRecordSolidWebService(); | 
|     } | 
|   | 
|     public String xml_webService = "<?xml version=\"1.0\" encoding=\"utf8\"?><root><row id=\"kcgl_inventory_record\"><hwmc desc=\"货位名称\" type=\"varchar\" length=\"32\" requir=\"必填\">{hwmc}</hwmc><foodstuff_grade_id desc=\"粮食等级\" type=\"varchar\" length=\"50\" requir=\"必填\">{foodstuff_grade_id}</foodstuff_grade_id><glfs desc=\"管理方式\" type=\"varchar\" length=\"2\" requir=\"必填\">{glfs}</glfs><scdd desc=\"收储地点\" type=\"varchar\" length=\"1\" requir=\"必填\">{scdd}</scdd><clfs desc=\"储粮方式\" type=\"varchar\" length=\"1\" requir=\"必填\">{clfs}</clfs><rcsj desc=\"入仓时间\" type=\"varchar\" length=\"19\" requir=\"必填\">{rcsj}</rcsj><production_year desc=\"生产年份\" type=\"varchar\" length=\"4\" requir=\"必填\">{production_year}</production_year><gb desc=\"国别\" type=\"varchar\" length=\"3\" requir=\"必填\">{gb}</gb><store_location_id desc=\"库点代码\" type=\"varchar\" length=\"50\" requir=\"必填\">{store_location_id}</store_location_id><storehouse_id desc=\"仓房名称\" type=\"varchar\" length=\"50\" requir=\"必填\">{storehouse_id}</storehouse_id><ownership desc=\"粮权归属地\" type=\"varchar\" length=\"30\" requir=\"必填\">{ownership}</ownership><foodstuff_varieties_id desc=\"粮食品种编码\" type=\"varchar\" length=\"50\" requir=\"必填\">{foodstuff_varieties_id}</foodstuff_varieties_id><foodstuff_nature_id desc=\"粮食性质编码\" type=\"varchar\" length=\"50\" requir=\"必填\">{foodstuff_nature_id}</foodstuff_nature_id><grain_authority desc=\"粮权所属企业\" type=\"varchar\" length=\"50\" requir=\"必填\">{grain_authority}</grain_authority><storage_qty desc=\"存储量(吨)\" type=\"decimal\" length=\"12\" requir=\"必填\">{storage_qty}</storage_qty><production desc=\"产地\" type=\"varchar\" length=\"100\" requir=\"必填\">{production}</production><put_in_time desc=\"入库时间\" type=\"varchar\" length=\"14\" requir=\"必填\">{put_in_time}</put_in_time><goods_allocation_id desc=\"货位编码\" type=\"varchar\" length=\"50\" requir=\"必填\">{goods_allocation_id}</goods_allocation_id><jjsl desc=\"计价数量\" type=\"decimal\" length=\"12\" requir=\"可选\">{jjsl}</jjsl><bclbs desc=\"包存粮包数\" type=\"int\" length=\"12\" requir=\"可选\">{bclbs}</bclbs><sjzlxg desc=\"实际装粮线高\" type=\"decimal\" length=\"12\" requir=\"可选\">{sjzlxg}</sjzlxg><ldtj desc=\"粮堆体积\" type=\"decimal\" length=\"12\" requir=\"可选\">{ldtj}</ldtj><ldkxd desc=\"粮堆孔隙度\" type=\"decimal\" length=\"12\" requir=\"可选\">{ldkxd}</ldkxd><granary_id desc=\"廒间名称\" type=\"varchar\" length=\"50\" requir=\"可选\">{granary_id}</granary_id><hwzt desc=\"货位(油罐)状态\" type=\"varchar\" length=\"1\" requir=\"可选\">{hwzt}</hwzt><ccwcsj desc=\"出仓完成时间\" type=\"varchar\" length=\"19\" requir=\"可选\">{ccwcsj}</ccwcsj><fcrq desc=\"封仓日期\" type=\"varchar\" length=\"19\" requir=\"可选\">{fcrq}</fcrq><qcsj desc=\"清仓时间\" type=\"varchar\" length=\"19\" requir=\"可选\">{qcsj}</qcsj><bz desc=\"备注\" type=\"varchar\" length=\"200\" requir=\"可选\">{bz}</bz><keep_people desc=\"保管员\" type=\"varchar\" length=\"50\" requir=\"可选\">{keep_people}</keep_people><czbz desc=\"操作标志\" type=\"varchar\" length=\"1\" requir=\"必填\">{czbz}</czbz><zhgxsj desc=\"最后更新时间\" type=\"varchar\" length=\"19\" requir=\"必填\">{zhgxsj}</zhgxsj></row></root>"; | 
|   | 
|   | 
|     private String method = "inventoryInsertRecordBySolid";// 填写数据方法名 | 
|     private String wsdl = "/inventoryRecordSolidWebService?wsdl";//填写调用库点信息接口服务 | 
|     private String nameSpace = "http://service.sljt.com";// 填写调用省平台命名空间 | 
|   | 
|   | 
|     public InvokeResult webService(AuthToken authToken,ApiConfs conf, Api1208 data, Api1102 api1102, Api1105 api1105) { | 
|         InvokeResult invokeResult = new InvokeResult(); | 
|   | 
|         ClassLoader cl = Thread.currentThread().getContextClassLoader(); | 
|   | 
|   | 
|         String url = conf.getApiUrl() + wsdl; // 填写调用粮食库存数据接口服务 | 
|   | 
|   | 
|         Thread.currentThread().setContextClassLoader(cl); | 
|         JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); | 
|         Client client = dcf.createClient(url); | 
|         QName name = new QName(nameSpace, method); | 
|         Object[] objects; | 
|   | 
|         try { | 
|   | 
|             String xmlStr = webServiceXml(data, api1102, api1105);// 获取接口的输入报文,根据需要填写相应的报文 | 
|   | 
|             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; | 
|   | 
|   | 
|     } | 
|   | 
|     private String webServiceXml(Api1208 data, Api1102 api1102, Api1105 api1105) { | 
|         String xmlStr = xml_webService; | 
|   | 
|         xmlStr = xmlStr.replace("{store_location_id}", GDUtils.formatStr(data.getKqdm()));//库点代码 | 
|         xmlStr = xmlStr.replace("{storehouse_id}", GDUtils.formatStr(data.getHwdm()));// 仓房名称 -值为货位代码 | 
|         xmlStr = xmlStr.replace("{ownership}", GDUtils.formatStr(api1102.getXzqhdm()));//粮权归属行政区划 -使用库区的行政区 | 
|         xmlStr = xmlStr.replace("{foodstuff_varieties_id}", GDUtils.formatStr(data.getLspzdm()));//粮食品种 | 
|         xmlStr = xmlStr.replace("{foodstuff_nature_id}", GDUtils.formatStr(data.getLsxzdm()));//粮食性质 | 
|         xmlStr = xmlStr.replace("{grain_authority}", GDUtils.formatStr(data.getLqgsdwdm()));//粮权所属企业 | 
|         xmlStr = xmlStr.replace("{storage_qty}", GDUtils.formatNum(data.getSjsl()));//库存量 | 
|         xmlStr = xmlStr.replace("{jjsl}", GDUtils.formatNum(data.getJjsl()));//计价数量 | 
|         xmlStr = xmlStr.replace("{bclbs}", GDUtils.formatNum(data.getBclbs()));//包存粮包数 | 
|         xmlStr = xmlStr.replace("{sjzlxg}", GDUtils.formatNum(data.getSjzlxg()));//实际装粮线高 | 
|         xmlStr = xmlStr.replace("{ldtj}", GDUtils.formatNum(data.getLdtj()));//粮堆体积 | 
|         xmlStr = xmlStr.replace("{ldkxd}", "");//粮堆孔隙度 | 
|         xmlStr = xmlStr.replace("{put_in_time}", GDUtils.formatDate(data.getRcsj(), "yyyy-MM-dd"));//入库日期 | 
|         xmlStr = xmlStr.replace("{production}", GDUtils.formatStr(data.getCd()));//产地 | 
|         xmlStr = xmlStr.replace("{granary_id}", "");//廒间 | 
|         xmlStr = xmlStr.replace("{goods_allocation_id}", GDUtils.formatStr(data.getHwdm()));//货位编码 | 
|         xmlStr = xmlStr.replace("{hwmc}", GDUtils.formatStr(api1105.getHwmc()));//货位名称 | 
|   | 
|         xmlStr = xmlStr.replace("{keep_people}", GDUtils.formatStr(data.getBgy()));//保管员姓名 | 
|         xmlStr = xmlStr.replace("{production_year}", GDUtils.formatStr(data.getShnd()));//    收获年度 | 
|         xmlStr = xmlStr.replace("{shnd}", GDUtils.formatStr(data.getShnd()));//收获年度 | 
|         xmlStr = xmlStr.replace("{foodstuff_grade_id}", GDUtils.formatStr(data.getLsdjdm()));//粮食等级 | 
|         xmlStr = xmlStr.replace("{gb}", GDUtils.formatStr(data.getGb()));//国别 | 
|         xmlStr = xmlStr.replace("{hwzt}", GDUtils.formatStr(data.getHwzt()));//货位(油罐)状态 | 
|         xmlStr = xmlStr.replace("{glfs}", GDUtils.formatStr(data.getGlfs()));//管理方式 | 
|         xmlStr = xmlStr.replace("{scdd}", GDUtils.formatStr(data.getScdd()));//收储地点 | 
|         xmlStr = xmlStr.replace("{clfs}", GDUtils.formatStr(data.getClfs()));//储粮方式 | 
|         xmlStr = xmlStr.replace("{rcsj}", GDUtils.formatDate(data.getRcsj(), "yyyy-MM-dd HH:mm:ss"));//入仓时间 | 
|         xmlStr = xmlStr.replace("{ccwcsj}", GDUtils.formatDate(data.getCcwcsj(), "yyyy-MM-dd HH:mm:ss"));//出仓完成时间 | 
|         xmlStr = xmlStr.replace("{fcrq}", GDUtils.formatDate(data.getFcrq(), "yyyy-MM-dd"));//封仓日期 | 
|         xmlStr = xmlStr.replace("{qcsj}", "");//清仓时间 | 
|         xmlStr = xmlStr.replace("{bz}", GDUtils.formatStr(data.getBz()));//备注 | 
|         xmlStr = xmlStr.replace("{czbz}", GDUtils.formatStr(data.getCzbz()));//操作标志 | 
|         xmlStr = xmlStr.replace("{zhgxsj}", GDUtils.formatDate(data.getZhgxsj(), "yyyy-MM-dd HH:mm:ss"));//最后更新时间 | 
|   | 
|         return xmlStr; | 
|     } | 
|   | 
| } |