高章伟
2022-02-18 8b5f4c6c281cfa548f92de52c8021e37aa81901e
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
// public with sharing class GetDataFromETQForRepairQIS {
public with sharing class NFM402Controller {
    // SYSTEM_SOURCE_REF_NO :修理受付番号 Name
    // ETQ_UPLOAD_STATUS
    // ETQ_COMPLAINT_NUMBER : Complaint_Number__c
 
    public class ETQData {
        public String SYSTEM_SOURCE_REF_NO;
        public String ETQ_UPLOAD_STATUS;
        public String ETQ_COMPLAINT_NUMBER;
        public Long INTERFACE_RECORD_ID;
        public String ETQ_UPLOAD_MESSAGE;
    }
 
    // private static String repairName;
    // private static String qisName;
 
    // private static String endpoint = 'http://161.189.3.104:8088/dojtest/dojInfo/getDojInfoByRefNo';
 
    public NFM402Controller() {
 
    }
 
 
    public static void sendRequest(List<String> repairIdOrQISId){
 
        List<Repair__c> repList = [SELECT Id,Name,Complaint_Number__c,INTERFACE_RECORD_ID__c from Repair__c where id in :repairIdOrQISId];
        List<QIS_Report__c> qisList = [SELECT Id,Name,Complaint_Number__c,INTERFACE_RECORD_ID__c from QIS_Report__c where id in :repairIdOrQISId];
        // repairName = repList.get(0).Name;
        // qisName = qisList.get(0).Name;
        String requestJson = null;
 
        List<String> nameList = new List<String>();
        
        for (Repair__c rpr : repList) {
            nameList.add(rpr.Name);
        }
 
        for (QIS_Report__c qis : qisList) {
            nameList.add(qis.Name);
        }
 
        if (nameList.size() > 0) {
            requestJson = '[';
            for (String name : nameList) {
                requestJson += '\"' + name + '\",';
            }
            requestJson = requestJson.substring(0,requestJson.length() - 1);
            requestJson += ']';
        }
        
        System.debug('requestJson++'+requestJson);
        
        // HttpRequest req = new HttpRequest();
        // req.setEndpoint(endpoint);
        // req.setMethod('POST');
        // req.setHeader('Content-Type', 'application/json');
        // req.setBody(requestJson);
        // Http http = new Http();
        // HTTPResponse res = http.send(req);
 
        // System.debug('res.getStatusCode()'+ res.getStatusCode());
        // String responseBody = res.getBody();
 
        //------ update by rentongxiao 2020-08-18 Stsrt
        
        String responseBody = NFMUtil.getETQData(requestJson,NFMUtil.NFM402_ENDPOINT);
        System.debug('11111::'+responseBody);
        Integer start = responseBody.indexOf('[');
        Integer theEnd = responseBody.lastIndexOf('],');
        responseBody = responseBody.substring(start,theEnd+1);
        //------ update by rentongxiao 2020-08-18 End
        // // String responseBody = mockjson();
        System.debug('result'+responseBody);
        getResult(responseBody,repList,qisList);
 
    }
 
 
    public static void getResult(String responseBody,List<Repair__c> repList,List<QIS_Report__c> qisList){
        
        Map<String,Repair__c> repMap = new Map<String,Repair__c>();
        Map<String,QIS_Report__c> qisMap = new Map<String,QIS_Report__c>();
 
        for (Repair__c rpr : repList) {
            repMap.put(rpr.Name,rpr);
        }
 
        for (QIS_Report__c qis : qisList) {
            qisMap.put(qis.Name,qis);
        }
        System.debug('repMap.values() before++'+repMap);
 
        // GeneralData genData =  (GeneralData) JSON.deserializeStrict(responseBody, GeneralData.class);
        List<ETQData> genData =  (List<ETQData>) JSON.deserializeStrict(responseBody, List<ETQData>.class);
        System.debug('genData'+genData);
        
        for(ETQData obj : genData){
            String complaintNumber =  obj.ETQ_COMPLAINT_NUMBER;
            String eleKey = obj.SYSTEM_SOURCE_REF_NO;
            Long tempId = obj.INTERFACE_RECORD_ID;
            String status = obj.ETQ_UPLOAD_STATUS;
            String message = obj.ETQ_UPLOAD_MESSAGE;
            if (repMap.containsKey(eleKey)) {
                repMap.get(eleKey).Complaint_Number__c = complaintNumber;
                repMap.get(eleKey).INTERFACE_RECORD_ID__c = tempId;
                repMap.get(eleKey).ETQ_UPLOAD_STATUS__c = status;
                repMap.get(eleKey).ETQ_UPLOAD_MESSAGE__c = message;
            }
 
            if (qisMap.containsKey(eleKey)) {
                qisMap.get(eleKey).Complaint_Number__c = complaintNumber;
                qisMap.get(eleKey).INTERFACE_RECORD_ID__c = tempId;
                qisMap.get(eleKey).ETQ_UPLOAD_STATUS__c = status;
                qisMap.get(eleKey).ETQ_UPLOAD_MESSAGE__c = message;
            }
        }
 
        System.debug('repMap.values() after++'+repMap);
 
        update repMap.values();
        update qisMap.values();
    }
 
    // public static String mockjson(){
 
        // SYSTEM_SOURCE_REF_NO
        // ETQ_UPLOAD_STATUS;   
        // ETQ_COMPLAINT_NUMBER
 
        // String repairName = repList.get(0).Name;
        // String qisName = qisList.get(0).Name;
        // ETQData etq1 = new ETQData();
        // etq1.SYSTEM_SOURCE_REF_NO = 'repairName';
        // etq1.ETQ_UPLOAD_STATUS = '200';
        // etq1.ETQ_COMPLAINT_NUMBER = '111111';
 
        // ETQData etq2 = new ETQData();
        // etq2.SYSTEM_SOURCE_REF_NO = 'RS-201611-361215';
        // etq2.ETQ_UPLOAD_STATUS = '200';
        // etq2.ETQ_COMPLAINT_NUMBER = '222222';
 
        // ETQData etq3 = new ETQData();
        // etq3.SYSTEM_SOURCE_REF_NO = qisName;
        // etq3.ETQ_UPLOAD_STATUS = '200';
        // etq3.ETQ_COMPLAINT_NUMBER = '333333';
 
        // ETQData etq4 = new ETQData();
        // etq4.SYSTEM_SOURCE_REF_NO = 'OCSM-华东-153PA-07322';
        // etq4.ETQ_UPLOAD_STATUS = '200';
        // etq4.ETQ_COMPLAINT_NUMBER = '444444';
 
 
        // List<ETQData> etqDatas = new List<ETQData>();
        // etqDatas.add(etq1);
        // etqDatas.add(etq2);
        // etqDatas.add(etq3);
        // etqDatas.add(etq4);
        // [{"SYSTEM_SOURCE_REF_NO":"a0J1000000LmVQU","ETQ_UPLOAD_STATUS":"200","ETQ_COMPLAINT_NUMBER":"111111"},{"SYSTEM_SOURCE_REF_NO":"a0J1000000LmVQU","ETQ_UPLOAD_STATUS":"200","ETQ_COMPLAINT_NUMBER":"222222"}]
        // System.debug('JSON.serialize(etqDatas)++'+JSON.serialize(etqDatas));
        // return JSON.serialize(etqDatas);
    // }
 
}