CZT
2023-10-20 07ff6686da8e9922a6f5a4f276e69d045e12a044
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.fzzy.push.gd2020.v2;
 
import com.fzzy.api.data.AuthToken;
import com.fzzy.api.entity.Api1102;
import com.fzzy.api.entity.Api1103;
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;
 
/**
 * @Desc: 仓房信息-数据接口
 * @author: Andy
 * @update-time: 2022/10/15
 */
@Slf4j
public class StoreHouseWebService {
 
    public static StoreHouseWebService newInstance() {
        return new StoreHouseWebService();
    }
 
    public String xml_webservice = "<?xml version=\"1.0\" encoding=\"utf8\"?><root><row id=\"cfgl_storehouse\"><sskd desc=\"所属库点代码\" type=\"varchar\" length=\"50\" requir=\"必填\">{sskd}</sskd><cfmc desc=\"仓房名称\" type=\"varchar\" length=\"50\" requir=\"必填\">{cfmc}</cfmc><cfbm desc=\"仓房编码\" type=\"varchar\" length=\"25\" requir=\"必填\">{cfbm}</cfbm><cflx desc=\"仓房类型\" type=\"varchar\" length=\"50\" requir=\"必填\">{cflx}</cflx><cfsjcr desc=\"仓房设计仓容\" type=\"decimal\" length=\"20\" requir=\"必填\">{cfsjcr}</cfsjcr><jfsyrq desc=\"交付使用日期\" type=\"varchar\" length=\"10\" requir=\"必填\">{jfsyrq}</jfsyrq><nfszcc desc=\"能否散装储存\" type=\"varchar\" length=\"1\" requir=\"必填\">{nfszcc}</nfszcc><ywfsfqfczz desc=\"有无防鼠防雀防虫装置及设施\" type=\"varchar\" length=\"1\" requir=\"必填\">{ywfsfqfczz}</ywfsfqfczz><ywfhfbfdss desc=\"有无防火防爆防盗措施\" type=\"varchar\" length=\"1\" requir=\"必填\">{ywfhfbfdss}</ywfhfbfdss><ywlqjcss desc=\"有无粮情检测设施\" type=\"varchar\" length=\"1\" requir=\"必填\">{ywlqjcss}</ywlqjcss><ywjxtfss desc=\"有无机械通风设施\" type=\"varchar\" length=\"1\" requir=\"必填\">{ywjxtfss}</ywjxtfss><nfhlxzsc desc=\"能否环流熏蒸杀虫\" type=\"varchar\" length=\"1\" requir=\"必填\">{nfhlxzsc}</nfhlxzsc><nffddyqtcl desc=\"能否富氮低氧气调储粮\" type=\"varchar\" length=\"1\" requir=\"必填\">{nffddyqtcl}</nffddyqtcl><nfcwcc desc=\"能否仓外测虫\" type=\"varchar\" length=\"1\" requir=\"必填\">{nfcwcc}</nfcwcc><cfzt desc=\"仓房状态\" type=\"varchar\" length=\"1\" requir=\"必填\">{cfzt}</cfzt><cfccfs desc=\"仓房存储方式\" type=\"varchar\" length=\"1\" requir=\"必填\">{cfccfs}</cfccfs><cfjd desc=\"仓房经度\" type=\"decimal\" length=\"20\" requir=\"必填\">{cfjd}</cfjd><cfwd desc=\"仓房维度\" type=\"decimal\" length=\"20\" requir=\"必填\">{cfwd}</cfwd><bgr desc=\"保管员\" type=\"varchar\" length=\"128\" requir=\"必填\">{bgr}</bgr><czbz desc=\"操作标志\" type=\"varchar\" length=\"1\" requir=\"必填\">{czbz}</czbz><zhgxsj desc=\"最后更新时间\" type=\"varchar\" length=\"19\" requir=\"必填\">{zhgxsj}</zhgxsj><cfsfwh desc=\"仓房是否完好\" type=\"varchar\" length=\"1\" requir=\"必填\">{cfsfwh}</cfsfwh><nfgrbw desc=\"能否隔热保温\" type=\"varchar\" length=\"1\" requir=\"必填\">{nfgrbw}</nfgrbw><dmjg desc=\"地面结构\" type=\"varchar\" length=\"2\" requir=\"必填\">{dmjg}</dmjg><cwc desc=\"仓外长\" type=\"decimal\" length=\"20\" requir=\"必填\">{cwc}</cwc><cwk desc=\"仓外宽\" type=\"decimal\" length=\"20\" requir=\"必填\">{cwk}</cwk><cwyg desc=\"仓外檐高\" type=\"decimal\" length=\"20\" requir=\"必填\">{cwyg}</cwyg><cwdg desc=\"仓外顶高\" type=\"decimal\" length=\"20\" requir=\"必填\">{cwdg}</cwdg><cwtcwj desc=\"仓外筒仓外径\" type=\"decimal\" length=\"20\" requir=\"必填\">{cwtcwj}</cwtcwj><cnc desc=\"仓内长\" type=\"decimal\" length=\"20\" requir=\"必填\">{cnc}</cnc><cnk desc=\"仓内宽\" type=\"decimal\" length=\"20\" requir=\"必填\">{cnk}</cnk><cnyg desc=\"仓内檐高\" type=\"decimal\" length=\"20\" requir=\"必填\">{cnyg}</cnyg><cnzlxg desc=\"仓内装粮线高\" type=\"decimal\" length=\"20\" requir=\"必填\">{cnzlxg}</cnzlxg><cntcnj desc=\"仓内筒仓内径\" type=\"decimal\" length=\"20\" requir=\"必填\">{cntcnj}</cntcnj><cntj desc=\"仓内体积\" type=\"decimal\" length=\"20\" requir=\"必填\">{cntj}</cntj><cmsl desc=\"仓门数量\" type=\"int\" length=\"12\" requir=\"必填\">{cmsl}</cmsl><qtjg desc=\"墙体结构\" type=\"varchar\" length=\"2\" requir=\"必填\">{qtjg}</qtjg><fdjg desc=\"房顶结构\" type=\"varchar\" length=\"2\" requir=\"必填\">{fdjg}</fdjg><fjjg desc=\"房架结构\" type=\"varchar\" length=\"2\" requir=\"必填\">{fjjg}</fjjg><cmwz desc=\"仓门位置\" type=\"varchar\" length=\"256\" requir=\"可选\">{cmwz}</cmwz><cmgd desc=\"仓门高度\" type=\"decimal\" length=\"20\" requir=\"可选\">{cmgd}</cmgd><cmkd desc=\"仓门宽度\" type=\"decimal\" length=\"20\" requir=\"可选\">{cmkd}</cmkd><grbwcs desc=\"隔热保温措施\" type=\"varchar\" length=\"512\" requir=\"可选\">{grbwcs}</grbwcs></row></root>";
 
    private String method = "saveStoreHouseRecordDetail";// 填写数据方法名
    private String wsdl = "/storeLocationWebService?wsdl";//填写调用库点信息接口服务
    private String nameSpace = "http://service.sljt.com";// 填写调用省平台命名空间
 
    public InvokeResult webService(AuthToken authToken,ApiConfs conf, Api1103 data) {
        InvokeResult invokeResult = new InvokeResult();
 
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
 
 
 
        String url = conf.getApiUrl() + "/storeHouseWebService?wsdl"; // 填写调用仓房信息接口服务
        String method = "saveStoreHouseRecordDetail"; // 填写数据方法名
        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 = webServiceXml(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
     */
 
    private String webServiceXml(Api1103 data) {
        String xmlStr = xml_webservice;
        xmlStr = xmlStr.replace("{sskd}", GDUtils.formatStr(data.getKqdm()));//所属库点代码
        xmlStr = xmlStr.replace("{cfmc}", GDUtils.formatStr(data.getCfmc()));//仓房名称
        xmlStr = xmlStr.replace("{cfbm}", GDUtils.formatStr(data.getCfdm()));//仓房编码
        xmlStr = xmlStr.replace("{cflx}", GDUtils.formatStr(data.getCflxdm()));//仓房类型
        xmlStr = xmlStr.replace("{cfsjcr}", GDUtils.formatNum(data.getSjcr()));//仓房设计仓容
        xmlStr = xmlStr.replace("{jfsyrq}", GDUtils.formatDate(data.getJfsyrq(), "yyyy-MM-dd"));//交付使用日期
        xmlStr = xmlStr.replace("{qtjg}", GDUtils.formatStr(data.getQtjg()));//墙体结构
        xmlStr = xmlStr.replace("{fdjg}", GDUtils.formatStr(data.getFdjg()));//房顶结构
        xmlStr = xmlStr.replace("{fjjg}", GDUtils.formatStr(data.getFjjg()));//房架结构
        xmlStr = xmlStr.replace("{dmjg}", GDUtils.formatStr(data.getDmjg()));//地面结构
        xmlStr = xmlStr.replace("{cwc}", GDUtils.formatNum(data.getCwc()));//仓外长
        xmlStr = xmlStr.replace("{cwk}", GDUtils.formatNum(data.getCwk()));//仓外宽
        xmlStr = xmlStr.replace("{cwyg}", GDUtils.formatNum(data.getCwyg()));//仓外檐高
        xmlStr = xmlStr.replace("{cwdg}", GDUtils.formatNum(data.getCwdg()));//仓外顶高
        xmlStr = xmlStr.replace("{cwtcwj}", GDUtils.formatNum(data.getTcwj()));//筒仓外径
        xmlStr = xmlStr.replace("{cnc}", GDUtils.formatNum(data.getCnc()));//仓内长
        xmlStr = xmlStr.replace("{cnk}", GDUtils.formatNum(data.getCnk()));//仓内宽
        xmlStr = xmlStr.replace("{cnyg}", GDUtils.formatNum(data.getCnyg()));//仓内檐高
        xmlStr = xmlStr.replace("{cnzlxg}", GDUtils.formatNum(data.getCnzlxg()));//仓内装粮线高
        xmlStr = xmlStr.replace("{cntcnj}", GDUtils.formatNum(data.getTcnj()));//筒仓内径
        xmlStr = xmlStr.replace("{cntj}", GDUtils.formatNum(data.getCntj()));//仓内体积
        xmlStr = xmlStr.replace("{cmsl}", GDUtils.formatNum(data.getCmsl()));//仓门数量
        xmlStr = xmlStr.replace("{cmwz}", GDUtils.formatStr(data.getCmwz()));//仓门位置
        xmlStr = xmlStr.replace("{cmgd}", GDUtils.formatNum(data.getCmgd()));//仓门高度
        xmlStr = xmlStr.replace("{cmkd}", GDUtils.formatNum(data.getCmkd()));//仓门宽度
        xmlStr = xmlStr.replace("{cfsfwh}", GDUtils.formatStr(data.getCfsfwh()));//仓房是否完好
        xmlStr = xmlStr.replace("{nfgrbw}", GDUtils.formatStr(data.getNfgrbw()));//能否隔热保温
        xmlStr = xmlStr.replace("{grbwcs}", GDUtils.formatStr(data.getGrbwcs()));//隔热保温措施
        xmlStr = xmlStr.replace("{nfszcc}", GDUtils.formatStr(data.getNfszcc()));//能否散装储存
        xmlStr = xmlStr.replace("{ywfsfqfczz}", GDUtils.formatStr(data.getYwfsfqfczz()));//有无防鼠防雀防虫装置及设施
        xmlStr = xmlStr.replace("{ywfhfbfdss}", GDUtils.formatStr(data.getYwfhfbfdss()));//有无防火防爆防盗措施
        xmlStr = xmlStr.replace("{ywlqjcss}", "1");//有无粮情检测设施
        xmlStr = xmlStr.replace("{ywjxtfss}", GDUtils.formatStr(data.getYwjxtfss()));//有无机械通风设施
        xmlStr = xmlStr.replace("{nfhlxzsc}", GDUtils.formatStr(data.getNfhlxzsc()));//能否环流熏蒸杀虫
        xmlStr = xmlStr.replace("{nffddyqtcl}", GDUtils.formatStr(data.getNffddyqtcl()));//能否富氮低氧气调储粮
        xmlStr = xmlStr.replace("{nfcwcc}", "9");//能否仓外测虫
        xmlStr = xmlStr.replace("{cfzt}", GDUtils.formatStr(data.getCfzt()));//仓房状态
        xmlStr = xmlStr.replace("{cfccfs}", "0");//仓房存储方式 0:散装 1:包装
        xmlStr = xmlStr.replace("{cfjd}", GDUtils.formatNum(data.getJd()));//仓房经度
        xmlStr = xmlStr.replace("{cfwd}", GDUtils.formatNum(data.getWd()));//仓房经度
        xmlStr = xmlStr.replace("{bgr}", GDUtils.formatStr(data.getBgr()));//保管员
        xmlStr = xmlStr.replace("{czbz}", GDUtils.formatStr(data.getCzbz()));//操作标志
        xmlStr = xmlStr.replace("{zhgxsj}", GDUtils.formatDate(data.getZhgxsj(), "yyyy-MM-dd HH:mm:ss"));//最后更新时间
 
        return xmlStr;
    }
 
 
}