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 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 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 analyJson(String json) { //System.out.println(json); List 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; } }