|
@@ -0,0 +1,384 @@
|
|
|
+package com.uas.main;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.uas.util.JdbcUtil;
|
|
|
+import com.uas.util.MyX509TrustManager;
|
|
|
+import org.apache.http.*;
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
+import org.apache.http.client.utils.URIBuilder;
|
|
|
+import org.apache.http.impl.client.DefaultHttpClient;
|
|
|
+import org.apache.http.impl.conn.PoolingClientConnectionManager;
|
|
|
+import org.apache.http.message.BasicNameValuePair;
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
+import sun.misc.BASE64Encoder;
|
|
|
+
|
|
|
+import javax.net.ssl.HttpsURLConnection;
|
|
|
+import javax.net.ssl.SSLContext;
|
|
|
+import javax.net.ssl.SSLSocketFactory;
|
|
|
+import javax.net.ssl.TrustManager;
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStreamReader;
|
|
|
+import java.io.PrintWriter;
|
|
|
+import java.net.URI;
|
|
|
+import java.net.URL;
|
|
|
+import java.net.URLDecoder;
|
|
|
+import java.net.URLEncoder;
|
|
|
+import java.sql.Connection;
|
|
|
+import java.sql.ResultSet;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.sql.Statement;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+import static javax.xml.transform.OutputKeys.ENCODING;
|
|
|
+
|
|
|
+
|
|
|
+ * @author kl
|
|
|
+ * @email koul@usoftchina.com
|
|
|
+ * @date 2020-01-02 8:53
|
|
|
+ */
|
|
|
+public class HttpClient {
|
|
|
+ private static final String testUrl = "prm-sit.goodix.com";
|
|
|
+ private static final String url = "prm.goodix.com";
|
|
|
+ private static final String serviceUrl = "/goodix/agent/aDelivery/agentAutoDelivery";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private static final String ur = "https://prm.goodix.com/goodix/agent/aDelivery/agentAutoDelivery";
|
|
|
+
|
|
|
+ public static void runHttp() {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ sendPost("HUAXK_P", "SZhuaxinke", "SZhuaxinke");
|
|
|
+ sendPost("HXK_SU_P", "SZhuaxinke", "SZhuaxinke");
|
|
|
+ sendPost("LHWX_HK_P", "XGlianheWX", "XGlianheWX");
|
|
|
+ }
|
|
|
+
|
|
|
+ private static List<Map<String, String>> getDate(Statement statement, String sob) {
|
|
|
+ List<Map<String, String>> maps = new ArrayList<>();
|
|
|
+ ResultSet rs = null;
|
|
|
+ try {
|
|
|
+ rs = statement.executeQuery("select ct_id,cd_id,cd_varchar50_1,cd_varchar50_2,cd_varchar50_3," +
|
|
|
+ "cd_varchar50_4,cd_varchar50_5,cd_varchar50_6,cd_varchar50_7,cd_varchar50_8,cd_varchar50_9,cd_number_1," +
|
|
|
+ "cd_date_1,cd_varchar50_10,cd_number_2,cd_varchar50_11,cd_varchar50_12 from " + sob +
|
|
|
+ ".customtabledetail left join " + sob + ".customtable on ct_id = cd_ctid where nvl(cd_number_12,0)= 0 " +
|
|
|
+ "and ct_status = '已审核' and ct_caller = 'HDXHCHMXB' and cd_varchar100_1 = '出货单' and nvl(cd_number_1,0)>0");
|
|
|
+ while (rs.next()) {
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ int cd_id = rs.getInt("cd_id");
|
|
|
+ String cd_date_1 = rs.getString("cd_date_1");
|
|
|
+ cd_date_1 = cd_date_1.substring(0, 10);
|
|
|
+ String cd_varchar50_5 = rs.getString("cd_varchar50_5");
|
|
|
+ String cd_varchar50_6 = rs.getString("cd_varchar50_6");
|
|
|
+ String cd_varchar50_7 = rs.getString("cd_varchar50_7");
|
|
|
+ String cd_varchar50_8 = rs.getString("cd_varchar50_8");
|
|
|
+ String cd_varchar50_1 = rs.getString("cd_varchar50_1");
|
|
|
+ String cd_varchar50_4 = rs.getString("cd_varchar50_4");
|
|
|
+ String cd_varchar50_2 = rs.getString("cd_varchar50_2");
|
|
|
+
|
|
|
+ int cd_number_1 = rs.getInt("cd_number_1");
|
|
|
+ int cd_number_2 = rs.getInt("cd_number_2");
|
|
|
+ String cd_varchar50_9 = rs.getString("cd_varchar50_9");
|
|
|
+ String cd_varchar50_10 = rs.getString("cd_varchar50_10");
|
|
|
+ map.put("cd_id", cd_id + "");
|
|
|
+ map.put("cd_date_1", cd_date_1);
|
|
|
+ map.put("cd_varchar50_5", cd_varchar50_5);
|
|
|
+ map.put("cd_varchar50_6", cd_varchar50_6);
|
|
|
+ map.put("cd_varchar50_7", cd_varchar50_7);
|
|
|
+ map.put("cd_varchar50_8", cd_varchar50_8);
|
|
|
+ if (cd_varchar50_1 != null) {
|
|
|
+ cd_varchar50_1 = cd_varchar50_1.contains("(") && cd_varchar50_1.contains(")") ?
|
|
|
+ cd_varchar50_1.replace("(", "(") : cd_varchar50_1;
|
|
|
+ cd_varchar50_1 = cd_varchar50_1.contains("(") ? cd_varchar50_1.substring(0,
|
|
|
+ cd_varchar50_1.indexOf("(")) : cd_varchar50_1;
|
|
|
+ }
|
|
|
+ map.put("cd_varchar50_1", cd_varchar50_1);
|
|
|
+ map.put("cd_varchar50_4", cd_varchar50_4);
|
|
|
+
|
|
|
+ map.put("cd_number_1", cd_number_1 + "");
|
|
|
+ map.put("cd_number_2", cd_number_2 + "");
|
|
|
+ map.put("cd_varchar50_9", cd_varchar50_9);
|
|
|
+ map.put("cd_varchar50_10", cd_varchar50_10);
|
|
|
+ map.put("cd_varchar50_2", cd_varchar50_2);
|
|
|
+ maps.add(map);
|
|
|
+ }
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ rs.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return maps;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void httpclientPost(String sob, String username, String password) {
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String formatdate = format.format(new Date());
|
|
|
+ Connection connect = null;
|
|
|
+ Statement statement = null;
|
|
|
+ try {
|
|
|
+ connect = JdbcUtil.getConnectBySob(sob);
|
|
|
+ statement = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
|
|
+ List<Map<String, String>> maps = getDate(statement, sob);
|
|
|
+ for (Map<String, String> map : maps) {
|
|
|
+ List<NameValuePair> params = new ArrayList<NameValuePair>();
|
|
|
+ ResultSet result = null;
|
|
|
+ try {
|
|
|
+ String name = "";
|
|
|
+ String cd_varchar50_9 = map.get("cd_varchar50_9");
|
|
|
+ String cd_varchar50_1 = map.get("cd_varchar50_1");
|
|
|
+ String cd_varchar50_4 = map.get("cd_varchar50_4");
|
|
|
+ if (cd_varchar50_9 != null) {
|
|
|
+ cd_varchar50_9 = cd_varchar50_9.replace(";", ",").substring(0, cd_varchar50_9.length() - 1);
|
|
|
+ result = statement.executeQuery("select fp_path from " + sob + ".filepath where fp_id in (" + cd_varchar50_9 + ")");
|
|
|
+
|
|
|
+ if (result.getRow() == 0) {
|
|
|
+ while (result.next()) {
|
|
|
+ String path = result.getString("fp_path");
|
|
|
+ String substring = path.substring(path.lastIndexOf("."));
|
|
|
+ name = name + cd_varchar50_4 + "_" + formatdate + substring;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ while (result.next()) {
|
|
|
+ String path = result.getString("fp_path");
|
|
|
+ String substring = path.substring(path.lastIndexOf("."));
|
|
|
+ name = name + cd_varchar50_4 + "_" + formatdate + substring + ";";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (map.get("cd_varchar50_2") != null) {
|
|
|
+ params.add(new BasicNameValuePair("screenCustomerNo", map.get("cd_varchar50_2")));
|
|
|
+ }
|
|
|
+ if (map.get("cd_varchar50_6") != null) {
|
|
|
+ params.add(new BasicNameValuePair("softCustomerNo", map.get("cd_varchar50_6")));
|
|
|
+ }
|
|
|
+ params.add(new BasicNameValuePair("terminalCustomerNo", map.get("cd_varchar50_7")));
|
|
|
+ if (map.get("cd_varchar50_8") != null) {
|
|
|
+ params.add(new BasicNameValuePair("whiteCustomerName", map.get("cd_varchar50_8")));
|
|
|
+ }
|
|
|
+ params.add(new BasicNameValuePair("modelName", cd_varchar50_1));
|
|
|
+ params.add(new BasicNameValuePair("agentOrderCode", map.get("cd_varchar50_4")));
|
|
|
+ params.add(new BasicNameValuePair("deliveryTime", map.get("cd_date_1")));
|
|
|
+ params.add(new BasicNameValuePair("deliveryAmount", map.get("cd_number_1")));
|
|
|
+ params.add(new BasicNameValuePair("fileName", name));
|
|
|
+ if (map.get("cd_remark") != null) {
|
|
|
+ params.add(new BasicNameValuePair("note", map.get("cd_remark")));
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ result.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ URIBuilder uriBuilder = new URIBuilder();
|
|
|
+ URI uri =
|
|
|
+ uriBuilder.setScheme("http").setHost(url).setPort(80).setPath(serviceUrl).setParameters(params).build();
|
|
|
+ DefaultHttpClient httpClient = new DefaultHttpClient(new PoolingClientConnectionManager());
|
|
|
+ HttpPost httpPost = new HttpPost(uri);
|
|
|
+ String user = String.format("%s:%s", new Object[]{username, password});
|
|
|
+ httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
|
|
|
+ String auth = new BASE64Encoder().encode(user.getBytes("UTF-8"));
|
|
|
+ httpPost.setHeader("Authorization", "Basic " + auth);
|
|
|
+ HttpResponse response = httpClient.execute(httpPost);
|
|
|
+ HttpEntity entity = response.getEntity();
|
|
|
+ if (entity != null) {
|
|
|
+ String resultStr = EntityUtils.toString(entity, "UTF-8");
|
|
|
+ Gson gson = new Gson();
|
|
|
+ Map<String, Object> map1 = new HashMap<String, Object>();
|
|
|
+ map1 = gson.fromJson(resultStr, map1.getClass());
|
|
|
+ Boolean statu = (Boolean) map1.get("state");
|
|
|
+ Integer cd_id = Integer.valueOf(map.get("cd_id"));
|
|
|
+ if (statu) {
|
|
|
+ statement.execute("update " + sob + ".customtabledetail set cd_number_12 = -1,cd_varchar200_1 = '' where cd_id = " + cd_id);
|
|
|
+ } else {
|
|
|
+ String stateInfo = (String) map1.get("stateInfo");
|
|
|
+ if (stateInfo.indexOf(":") != -1) {
|
|
|
+ stateInfo = stateInfo.substring(0, stateInfo.indexOf(":"));
|
|
|
+ }
|
|
|
+ statement.execute("update " + sob + ".customtabledetail set cd_varchar200_1 = '" + stateInfo + "' " +
|
|
|
+ "where nvl(cd_number_12,0)=0 and cd_id = " + cd_id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ statement.close();
|
|
|
+ connect.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 向指定 URL 发送POST方法的请求
|
|
|
+ *
|
|
|
+ * @return 所代表远程资源的响应结果
|
|
|
+ */
|
|
|
+ public static void sendPost(String sob, String username, String password) {
|
|
|
+ PrintWriter out = null;
|
|
|
+ BufferedReader in = null;
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ String formatdate = format.format(new Date());
|
|
|
+ Connection connect = null;
|
|
|
+ Statement statement = null;
|
|
|
+ try {
|
|
|
+ connect = JdbcUtil.getConnectBySob(sob);
|
|
|
+ statement = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
|
|
+ List<Map<String, String>> maps = getDate(statement, sob);
|
|
|
+ for (Map<String, String> map : maps) {
|
|
|
+ List<NameValuePair> params = new ArrayList<NameValuePair>();
|
|
|
+ ResultSet result = null;
|
|
|
+ try {
|
|
|
+ String name = "";
|
|
|
+ String cd_varchar50_9 = map.get("cd_varchar50_9");
|
|
|
+ String cd_varchar50_1 = map.get("cd_varchar50_1");
|
|
|
+ String cd_varchar50_4 = map.get("cd_varchar50_4");
|
|
|
+ if (cd_varchar50_9 != null) {
|
|
|
+ cd_varchar50_9 = cd_varchar50_9.replace(";", ",").substring(0, cd_varchar50_9.length() - 1);
|
|
|
+ result = statement.executeQuery("select fp_path from " + sob + ".filepath where fp_id in (" + cd_varchar50_9 + ")");
|
|
|
+
|
|
|
+ if (result.getRow() == 0) {
|
|
|
+ while (result.next()) {
|
|
|
+ String path = result.getString("fp_path");
|
|
|
+ String substring = path.substring(path.lastIndexOf("."));
|
|
|
+ name = name + cd_varchar50_4 + "_" + formatdate + substring;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ while (result.next()) {
|
|
|
+ String path = result.getString("fp_path");
|
|
|
+ String substring = path.substring(path.lastIndexOf("."));
|
|
|
+ name = name + cd_varchar50_4 + "_" + formatdate + substring + ";";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (map.get("cd_varchar50_2") != null) {
|
|
|
+ params.add(new BasicNameValuePair("screenCustomerNo", map.get("cd_varchar50_2")));
|
|
|
+ }
|
|
|
+ if (map.get("cd_varchar50_6") != null) {
|
|
|
+ params.add(new BasicNameValuePair("softCustomerNo", map.get("cd_varchar50_6")));
|
|
|
+ }
|
|
|
+ params.add(new BasicNameValuePair("terminalCustomerNo", map.get("cd_varchar50_7")));
|
|
|
+ if (map.get("cd_varchar50_8") != null) {
|
|
|
+ params.add(new BasicNameValuePair("whiteCustomerName", map.get("cd_varchar50_8")));
|
|
|
+ }
|
|
|
+ params.add(new BasicNameValuePair("modelName", cd_varchar50_1));
|
|
|
+ params.add(new BasicNameValuePair("agentOrderCode", map.get("cd_varchar50_4")));
|
|
|
+ params.add(new BasicNameValuePair("deliveryTime", map.get("cd_date_1")));
|
|
|
+ params.add(new BasicNameValuePair("deliveryAmount", map.get("cd_number_1")));
|
|
|
+ params.add(new BasicNameValuePair("fileName", name));
|
|
|
+ if (map.get("cd_remark") != null) {
|
|
|
+ params.add(new BasicNameValuePair("note", map.get("cd_remark")));
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ result.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ TrustManager[] tm = {new MyX509TrustManager()};
|
|
|
+ SSLContext sslContext = SSLContext.getInstance("SSL");
|
|
|
+ sslContext.init(null, tm, new java.security.SecureRandom());
|
|
|
+
|
|
|
+
|
|
|
+ SSLSocketFactory ssf = sslContext.getSocketFactory();
|
|
|
+
|
|
|
+
|
|
|
+ String s="";
|
|
|
+ for (NameValuePair nv:params) {
|
|
|
+ s = s +nv.getName()+"="+URLEncoder.encode(nv.getValue(), "UTF-8") + "&" ;
|
|
|
+ }
|
|
|
+ String ss = ur + "?" +s.substring(0,s.length()-1);
|
|
|
+ URL realUrl = new URL(ss);
|
|
|
+ HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
|
|
|
+ conn.setSSLSocketFactory(ssf);
|
|
|
+
|
|
|
+
|
|
|
+ conn.setRequestProperty("accept", "*/*");
|
|
|
+ conn.setRequestProperty("connection", "Keep-Alive");
|
|
|
+ conn.setRequestProperty("content-Type", "application/json");
|
|
|
+ conn.setRequestProperty("user-agent",
|
|
|
+ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
|
|
+ String user = String.format("%s:%s", new Object[]{username, password});
|
|
|
+ String auth = new BASE64Encoder().encode(user.getBytes("UTF-8"));
|
|
|
+ conn.setRequestProperty("Authorization", "Basic " + auth);
|
|
|
+
|
|
|
+ conn.setDoOutput(true);
|
|
|
+ conn.setDoInput(true);
|
|
|
+
|
|
|
+ out = new PrintWriter(conn.getOutputStream());
|
|
|
+
|
|
|
+ out.print(params);
|
|
|
+
|
|
|
+ out.flush();
|
|
|
+
|
|
|
+ in = new BufferedReader(
|
|
|
+ new InputStreamReader(conn.getInputStream()));
|
|
|
+ String line;
|
|
|
+ String res = "";
|
|
|
+ while ((line = in.readLine()) != null) {
|
|
|
+ res += line;
|
|
|
+ }
|
|
|
+ Gson gson = new Gson();
|
|
|
+ Map<String, Object> map1 = new HashMap<String, Object>();
|
|
|
+ map1 = gson.fromJson(res, map1.getClass());
|
|
|
+
|
|
|
+ Boolean statu = (Boolean) map1.get("state");
|
|
|
+ Integer cd_id = Integer.valueOf(map.get("cd_id"));
|
|
|
+ if (statu) {
|
|
|
+ statement.execute("update " + sob + ".customtabledetail set cd_number_12 = -1,cd_varchar200_1 = '' where cd_id = " + cd_id);
|
|
|
+ } else {
|
|
|
+ String stateInfo = (String) map1.get("stateInfo");
|
|
|
+ if (stateInfo.indexOf(":") != -1) {
|
|
|
+ stateInfo = stateInfo.substring(0, stateInfo.indexOf(":"));
|
|
|
+ }
|
|
|
+ statement.execute("update " + sob + ".customtabledetail set cd_varchar200_1 = '" + stateInfo + "' " +
|
|
|
+ "where cd_id = " + cd_id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ statement.close();
|
|
|
+ connect.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (out != null) {
|
|
|
+ out.close();
|
|
|
+ }
|
|
|
+ if (in != null) {
|
|
|
+ in.close();
|
|
|
+ }
|
|
|
+ } catch (IOException ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|