4
hao
2025-04-16 c5fb1fbcbb2bf4d511773d348f9ef625855c61fc
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
package com.web.supplier.service.internal;
 
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
 
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
 
import com.app.base.data.ApiResponseResult;
import com.utils.UserUtil;
import com.web.supplier.service.OperateService;
import com.web.supplier.service.PrintService;
 
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
 
@Service(value = "OperateService")
@Transactional(propagation = Propagation.REQUIRED)
public class Operatelmpl implements OperateService {
 
    // 调用乐亿通ERP成品出货接口
    public ApiResponseResult doApiData(String url, JSONObject jsonObject) throws Exception {
        String apiResult = okhttpPost(url, jsonObject);
        List<Object> list = analyJson(apiResult);
        // System.out.println(apiResult);
        if (!list.get(0).toString().equals("200")) {// 存储过程调用失败
            return ApiResponseResult.failure(list.get(1).toString());
        }
        return ApiResponseResult.success().data(list.get(2));
    }
 
    // 调用乐亿通ERP成品出货接口
    public ApiResponseResult setApiData(String url, JSONArray jsonArray) throws Exception {
        String apiResult = okhttpPost(url, jsonArray);
        List<Object> list = analyJson(apiResult);
        // System.out.println(apiResult);
        if (!list.get(0).toString().equals("200")) {// 存储过程调用失败
            return ApiResponseResult.failure(list.get(1).toString());
        }
        return ApiResponseResult.success().data(list.get(2));
    }
 
    /*** 连接API ***/
    public static String okhttpPost(String url, JSONObject json) throws IOException {
        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), String.valueOf(json));
        Request request = new Request.Builder().url(url).post(body).build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            return response.body().string();
        } else {
            throw new IOException("失败" + response);
        }
    }
 
    /*** 连接API json数组格式 ***/
    public static String okhttpPost(String url, JSONArray json) throws IOException {
        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), String.valueOf(json));
        Request request = new Request.Builder().url(url).post(body).build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            return response.body().string();
        } else {
            throw new IOException("失败" + response);
        }
    }
 
    // 解析返回数据
 
    private List<Object> analyJson(String json) {
        //System.out.println(json);
        List<Object> result = new ArrayList<>();
        JSONObject jsonObject = JSONObject.parseObject(json);
        try {
            result.add(jsonObject.getString("code"));
            result.add(jsonObject.getString("info"));
            if (jsonObject.getString("code").equals("200")) {
                JSONArray infoList = jsonObject.getJSONArray("data");
                // System.out.println(infoList);
                result.add(infoList);// 内容
                result.add(infoList.size());// 记录数
            }
        } catch (Exception e) {
            e.printStackTrace();
            result.add("ERR");
            result.add("解析失败");
        }
        return result;
    }
}