Browse Source

工具类提交

mashengyi 1 year ago
parent
commit
43da401bb2

+ 31 - 16
src/main/java/com/jkcredit/invoice/util/DateUtil.java

@@ -8,6 +8,7 @@ import org.joda.time.format.DateTimeFormatter;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -91,6 +92,7 @@ public class DateUtil {
     public static String getCurrentDateStrFormat() {
         return dateFormate(getCurrentDateStr());
     }
+
     /**
      * 时间格式转换
      * yyyy-MM-dd HH:mm:ss 转 yyyy-MM-dd'T'HH:mm:ss
@@ -336,6 +338,7 @@ public class DateUtil {
         return format.format(now.getTime());
 
     }
+
     /**
      * 得到几天前的时间
      */
@@ -358,6 +361,7 @@ public class DateUtil {
         return format.format(now.getTime());
 
     }
+
     /**
      * 判断给定时间与给定时间相差多少小时
      *
@@ -388,6 +392,15 @@ public class DateUtil {
         return hours;
     }
 
+
+    public static String formatTime(String dateString) {
+        java.time.format.DateTimeFormatter inputFormatter = java.time.format.DateTimeFormatter.ofPattern("yyyy/M/d H:mm:ss");
+        LocalDateTime dateTime = LocalDateTime.parse(dateString, inputFormatter);
+        java.time.format.DateTimeFormatter outputFormatter = java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
+        String formattedDateTime = dateTime.format(outputFormatter);
+        return formattedDateTime;
+    }
+
     public static void main(String[] args) {
 
        /* System.out.println(getDistanceHoursFormat("2022-11-31T23:59:59"));
@@ -397,11 +410,12 @@ public class DateUtil {
         System.out.println(getMouthDays("2022-5"));*/
         // System.out.println(DateUtil.getDistanceHoursTwo("2022-02-26 09:02:26","2022-03-01 09:02:58"));
         //System.out.print(getSplitTimeOver96("2023-01-04 12:28:11","2023-01-09 12:28:10"));
-        System.out.print(getDateAfterDayTime(getCurrentDateStr(),-1));
     }
-    public static String[] getMouthDays(String mounth){
+
+
+    public static String[] getMouthDays(String mounth) {
         DateFormat format = new SimpleDateFormat("yyyy-MM");
-        String [] dates = null;
+        String[] dates = null;
         try {
             Date date = format.parse(mounth);
             Calendar calendar = new GregorianCalendar();
@@ -409,10 +423,10 @@ public class DateUtil {
             int minDate = calendar.getActualMinimum(Calendar.DATE);
             int maxDate = calendar.getActualMaximum(Calendar.DATE);
             dates = new String[maxDate];
-            for (int i=minDate;i<=maxDate;i++){
-                System.out.print(i+"");
-                String dateStr = mounth+String.format("-%02d", i).toUpperCase();
-                dates[i-1]=dateStr;
+            for (int i = minDate; i <= maxDate; i++) {
+                System.out.print(i + "");
+                String dateStr = mounth + String.format("-%02d", i).toUpperCase();
+                dates[i - 1] = dateStr;
             }
             System.out.print(dates);
         } catch (ParseException e) {
@@ -421,27 +435,27 @@ public class DateUtil {
         return dates;
     }
 
-    public static List<String> getSplitTimeOver96(String startDate, String endDate){
+    public static List<String> getSplitTimeOver96(String startDate, String endDate) {
         List<String> ls = new ArrayList<>();
         DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
             Date startTime = format.parse(startDate);
             Date endTime = format.parse(endDate);
-            long dTime=0;
-            for( dTime= startTime.getTime();dTime<endTime.getTime();){
+            long dTime = 0;
+            for (dTime = startTime.getTime(); dTime < endTime.getTime(); ) {
                 String str1 = "";
-                if(dTime != startTime.getTime()){
-                    str1 = format.format(dTime+1000);
-                }else{
+                if (dTime != startTime.getTime()) {
+                    str1 = format.format(dTime + 1000);
+                } else {
                     str1 = format.format(dTime);
                 }
-                dTime = dTime+(96*60*60)*1000;
+                dTime = dTime + (96 * 60 * 60) * 1000;
                 String str2 = format.format(dTime);
-                if(dTime>endTime.getTime()){
+                if (dTime > endTime.getTime()) {
                     str2 = endDate;
                 }
 
-                ls.add(str1+"#"+str2);
+                ls.add(str1 + "#" + str2);
             }
            /* if(dTime!=endTime.getTime()){
                 ls.add(format.format(dTime)+"#"+endDate);
@@ -453,6 +467,7 @@ public class DateUtil {
 
         return ls;
     }
+
     /**
      * 判断时间格式化
      *

+ 5 - 5
src/main/java/com/jkcredit/invoice/util/QueryDemoTest.java

@@ -96,7 +96,7 @@ public class QueryDemoTest {
          */
         JSONObject paramJsonObj = new JSONObject();
         //CMCC_MOBILE_CHECK_V8//CMCC_3RD_V2//CMCC_3RD_DETAIL_V1//
-        paramJsonObj.put("api", "WAY_BILL_HISTORY_START");
+        paramJsonObj.put("api", "WAY_BILL_HISTORY_END");
         paramJsonObj.put("appKey", APP_KEY);
         paramJsonObj.put("appSecret", APP_SECRET);
 
@@ -114,18 +114,18 @@ public class QueryDemoTest {
          * 具体业务参数放在data中
          */
         JSONObject dataJson = new JSONObject();
-        dataJson.put("num", "1556502451-24");
+        dataJson.put("num", "1556502451-29");
         dataJson.put("plateNumber", "京CF0237");
         dataJson.put("plateColor", 1);
         dataJson.put("startTime", "2023-07-05T19:25:56");
-        dataJson.put("sourceAddr", "北京市朝阳区");
+        dataJson.put("realDestAddr", "北京市朝阳区");
         dataJson.put("destAddr", "北京市朝阳区");
-        dataJson.put("predictEndTime", "2023-07-06T09:25:56");
+        dataJson.put("endTime", "2023-07-06T09:25:56");
         dataJson.put("fee", 10000);
         dataJson.put("titleType", 1);
         dataJson.put("taxplayerCode", "91330106MA28LMW9XQ");
         dataJson.put("waybillFileName", "承运人合同.pdf");
-        dataJson.put("base64Str", Base64Utils.fileToBase64Str(new File("/Users/mashengyi/Downloads/协议/承运人合同.pdf")));
+        dataJson.put("base64Str", Base64Utils.fileToBase64Str(new File("/Users/mashengyi/Downloads/协议/123.pdf")));
         dataJson.put("contractType",1);
         return dataJson;
     }

+ 1 - 1
src/main/java/com/jkcredit/invoice/util/QueryDemo_3rd.java

@@ -31,7 +31,7 @@ public class QueryDemo_3rd {
     private static final String appKey = "data_test";
 
     static String filename = "/Users/mashengyi/Downloads/";
-    static String logname = "99.txt";
+    static String logname = "编辑4.txt";
 
     /**
      * 方法入口

+ 255 - 0
src/main/java/com/jkcredit/invoice/util/QueryDemo_3rd1.java

@@ -0,0 +1,255 @@
+package com.jkcredit.invoice.util;
+
+import net.sf.json.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class QueryDemo_3rd1 {
+
+    /**
+     * 测试地址
+     */
+   private static final String URL = "http://etc.jkcredit.com:9999/api/rest";
+    //  private static final String URL = "http://127.0.0.1:18081/api/rest";
+
+    /**
+     * 分配的appKey
+     */
+    private static final String appKey = "yunyitong";
+
+    static String filename = "/Users/mashengyi/Downloads/";
+    static String logname = "无车运单查询列表_202386 (1).txt";
+
+    /**
+     * 方法入口
+     *
+     * @param args
+     */
+
+    public static void main(String args[]) throws Exception {
+
+        QueryDemo_3rd1 demo = new QueryDemo_3rd1();
+
+
+
+        int count = 0;
+        int total = 0;
+
+        HashMap hashMap = new HashMap();
+
+        try {
+            File file = new File(filename + logname);
+            FileInputStream fis = new FileInputStream(file);
+            InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
+            LineNumberReader lr = new LineNumberReader(isr, 512);
+            String laststr = "";
+            int count_d = 0;
+            int total_d = 0;
+            while (true) {
+
+                String str = lr.readLine();
+
+                try {
+                    if (str == null)
+                        break;
+
+                    String num = getsrt("num:\"", "\"endTime:", str);
+                    String realDestAddr = getsrt1("realDestAddr:", str);
+                    String endTime = getsrt("endTime:","realDestAddr:",  str);
+                    demo.runMainService(num,realDestAddr,endTime);
+
+
+                } catch (Exception e) {
+
+                    System.out.println("无法解析:" + str);
+                }
+            }
+            lr.close();
+
+        } catch (FileNotFoundException e) {
+            System.out.println("FILENAME:" + filename);
+            System.out.println("File not found");
+        } catch (IOException e) {
+            System.out.println("IO error");
+        }
+
+        Iterator it = hashMap.keySet().iterator();
+
+        while (it.hasNext()) {
+
+            String key = (String) it.next();
+            Integer ttttttt = (Integer) hashMap.get(key);
+
+            System.out.println(key + "====" + ttttttt);
+        }
+
+    }
+
+    public static String getsrt(String startkeystr, String endstr, String str) {
+        int customerindex = str.indexOf(startkeystr);
+        String temp = str.substring(customerindex + startkeystr.length());
+        int endindex = temp.indexOf(endstr);
+        String sss = temp.substring(0, endindex);
+        return sss;
+    }
+
+    public static String getsrt1(String startkeystr, String str) {
+        int customerindex = str.indexOf(startkeystr);
+        String temp = str.substring(customerindex + startkeystr.length());
+        return temp;
+    }
+
+    /**
+     * 利用正则表达式判断字符串是否是数字
+     *
+     * @param str
+     * @return
+     */
+    public static boolean isNumeric(String str) {
+        Pattern pattern = Pattern.compile("[0-9]*");
+        Matcher isNum = pattern.matcher(str);
+        if (!isNum.matches()) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 调用主接口
+     */
+    public void runMainService(String name,String idcard,String mobile) {
+        try {
+            /**
+             * 实名demo
+             */
+
+                JSONObject paramJsonObj = initParamJsonObj_Realname(name,idcard,mobile);
+                 String ret = postClient(URL, paramJsonObj);
+                System.out.println(ret);
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 整合参数(实名认证)
+     *
+     * @return
+     */
+    public JSONObject initParamJsonObj_Realname(String name,String idcard,String mobile) {
+        /**
+         * 基本参数
+         */
+        JSONObject paramJsonObj = new JSONObject();
+        paramJsonObj.put("api", "WAY_BILL_HISTORY_END");
+        paramJsonObj.put("appKey", appKey);
+        paramJsonObj.put("appSecret",
+                "4ED8C0AB82F1FA4511FAE5FAFC76B6FF95D5237D");
+
+
+        /**
+         * 业务参数
+         */
+        JSONObject dataJson = initMainServiceParamJsonObj_Realname(name,idcard,mobile);
+        paramJsonObj.put("data", dataJson);
+        return paramJsonObj;
+    }
+
+    /*
+     * 初始化业务参数(实名认证)
+     *
+     * 姓名,身份证,手机号
+     *
+     * @return
+     */
+    public JSONObject initMainServiceParamJsonObj_Realname(String name,String idcard,String mobile) {
+        /**
+         * 具体业务参数放在data中
+         */
+        JSONObject dataJson = new JSONObject();
+        dataJson.put("num", name);
+        dataJson.put("realDestAddr", idcard);
+        dataJson.put("endTime", DateUtil.formatTime(mobile));
+        return dataJson;
+    }
+
+    /**
+     * 实现http post请求 注意编码 UTF-8
+     *
+     * @param url
+     * @param paramObj
+     * @return
+     */
+    public String postClient(String url, JSONObject paramObj) {
+        String str = "";
+        HttpClient client = null;
+        PostMethod method = null;
+        try {
+            client = new HttpClient();
+            method = new PostMethod(url);
+            method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
+            NameValuePair[] param = new NameValuePair[paramObj.size()];
+            Iterator<String> keys = paramObj.keys();
+            int i = 0;
+            while (keys.hasNext()) {
+                String key = (String) keys.next();
+                String value = paramObj.getString(key);
+                param[i] = new NameValuePair(key, value);
+                i++;
+            }
+            method.setRequestBody(param);
+            client.executeMethod(method);
+            str = convertStreamToString(method.getResponseBodyAsStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (method != null) {
+                method.releaseConnection();
+            }
+        }
+        return str;
+    }
+
+    /**
+     * 流转字符串
+     *
+     * @param is
+     * @return
+     */
+    public static String convertStreamToString(InputStream is) {
+        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+        StringBuilder builder = new StringBuilder();
+        String line = null;
+        try {
+            while ((line = reader.readLine()) != null) {
+                builder.append(line + "\n");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                is.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return builder.toString();
+    }
+
+}