Browse Source

运单协议 调整

mashengyi 1 year ago
parent
commit
035b2ddca2

+ 1 - 2
pom.xml

@@ -295,8 +295,7 @@
             <artifactId>sdk</artifactId>
             <scope>system</scope>
             <version>1.0</version>
-            <!--todo 测试包,通过后,给数据源要正式jar,sdk-common-2.3包-->
-            <systemPath>${project.basedir}/lib/sdk-common-2.2.jar</systemPath>
+            <systemPath>${project.basedir}/lib/sdk-common-2.4.jar</systemPath>
         </dependency>
 
         <!--无车-->

+ 7 - 6
src/main/java/com/jkcredit/invoice/credit/InterfaceCheckServer.java

@@ -5,6 +5,7 @@ import com.jkcredit.invoice.component.StatisRequestIdTimeComp;
 import com.jkcredit.invoice.credit.interserver.CustomerInterLowerService;
 import com.jkcredit.invoice.credit.interserver.NoCarInterService;
 import com.jkcredit.invoice.credit.interserver.SelfCarInterService;
+import com.jkcredit.invoice.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -37,7 +38,7 @@ public class InterfaceCheckServer {
      * @return
      */
     public DataResult doJumpHandler(String appKey, String api, String data, String requestid) {
-        log.info("[-InterfaceCheckServer.doJumpHandler-] request appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid);
+        log.info("[-InterfaceCheckServer.doJumpHandler-] request appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid);
         long startTime = System.currentTimeMillis();
         DataResult resultTimeOut = new DataResult();
         resultTimeOut.setData(3);
@@ -46,7 +47,7 @@ public class InterfaceCheckServer {
         resultTimeOut.setMsg("网络异常");
         DataResult result;
         result = getDataResult(appKey, api, data, requestid, resultTimeOut);
-        log.info("[-InterfaceCheckServer.doJumpHandler-] result appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid + " ,result=" + result + " ,costTime=" + (System.currentTimeMillis() - startTime));
+        log.info("[-InterfaceCheckServer.doJumpHandler-] result appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid + " ,result=" + result + " ,costTime=" + (System.currentTimeMillis() - startTime));
         return result;
 
     }
@@ -241,7 +242,7 @@ public class InterfaceCheckServer {
             //无车 实时运单开始指令
             case "WAY_BILL_START":
                 if (StatisRequestIdTimeComp.isLimit) {
-                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid + "=被拒绝");
+                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid + "=被拒绝");
                     result = resultTimeOut;
                 } else {
                     statisRequestIdTimeComp.putReQuestIdAndTime(requestid);
@@ -252,7 +253,7 @@ public class InterfaceCheckServer {
             //无车 实时运单结束指令
             case "WAY_BILL_END":
                 if (StatisRequestIdTimeComp.isLimit) {
-                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid + "=被拒绝");
+                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid + "=被拒绝");
                     result = resultTimeOut;
                 } else {
                     statisRequestIdTimeComp.putReQuestIdAndTime(requestid);
@@ -263,7 +264,7 @@ public class InterfaceCheckServer {
             //无车 历史运单开始指令
             case "WAY_BILL_HISTORY_START":
                 if (StatisRequestIdTimeComp.isLimit) {
-                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid + "=被拒绝");
+                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid + "=被拒绝");
                     result = resultTimeOut;
                 } else {
                     statisRequestIdTimeComp.putReQuestIdAndTime(requestid);
@@ -274,7 +275,7 @@ public class InterfaceCheckServer {
             //无车 历史运单结束指令
             case "WAY_BILL_HISTORY_END":
                 if (StatisRequestIdTimeComp.isLimit) {
-                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid + "=被拒绝");
+                    log.info("InterfaceCheckServer.doJumpHandler,appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid + "=被拒绝");
                     result = resultTimeOut;
                 } else {
                     statisRequestIdTimeComp.putReQuestIdAndTime(requestid);

+ 20 - 6
src/main/java/com/jkcredit/invoice/credit/SimpleCoreFilter.java

@@ -8,11 +8,17 @@ import com.jkcredit.invoice.common.ResponseCode;
 import com.jkcredit.invoice.model.entity.customer.Customer;
 import com.jkcredit.invoice.service.customer.CustomerService;
 import com.jkcredit.invoice.util.CorsFilterCheckUtil;
+import com.jkcredit.invoice.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import javax.servlet.*;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -20,9 +26,17 @@ import java.io.PrintWriter;
 import java.math.BigDecimal;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
-import java.util.*;
-
-import static com.jkcredit.invoice.common.CommonConst.*;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.UUID;
+
+import static com.jkcredit.invoice.common.CommonConst.CONTEXT_PATH;
+import static com.jkcredit.invoice.common.CommonConst.PATH;
+import static com.jkcredit.invoice.common.CommonConst.STATIC_PATH;
+import static com.jkcredit.invoice.common.CommonConst.USER_PATH;
 
 /**
  * @Description: 跨域请求拦截器
@@ -281,7 +295,7 @@ public class SimpleCoreFilter implements Filter {
                 httpResponse.setCharacterEncoding("utf-8");
                 PrintWriter writer = httpResponse.getWriter();
                 writer.write(new ObjectMapper().writeValueAsString(ApiResult.failure(dataResult)));
-                log.info("[SUCCESS - SimpleCORSFilter-] return result=" + dataResult.toString() + " , param is api=" + requestApi.getApi() + " , data=" + requestApi.getData() + " , appKey=" + requestApi.getAppKey() + " , appSecret=" + requestApi.getAppSecret() + " ,timeCost=" + (System.currentTimeMillis() - startTime) + "ms" + " , flag=" + flagUuid);
+                log.info("[SUCCESS - SimpleCORSFilter-] return result=" + dataResult.toString() + " , param is api=" + requestApi.getApi() + " , data=" + StringUtil.removeJSonField(requestApi.getData(),"base64Str") + " , appKey=" + requestApi.getAppKey() + " , appSecret=" + requestApi.getAppSecret() + " ,timeCost=" + (System.currentTimeMillis() - startTime) + "ms" + " , flag=" + flagUuid);
                 return;
             }
         }
@@ -351,7 +365,7 @@ public class SimpleCoreFilter implements Filter {
             requestApi.setData(data);
             requestApi.setAppSecret(appSecret);
             requestApi.setAppKey(appKey);
-            log.info("[-SimpleCORSFilter-] query param api=" + api + " , data=" + data + " , appKey=" + appKey + " , appSecret=" + appSecret + " , flag=" + flag);
+            log.info("[-SimpleCORSFilter-] query param api=" + api + " , data=" + StringUtil.removeJSonField(data,"base64Str") + " , appKey=" + appKey + " , appSecret=" + appSecret + " , flag=" + flag);
             if (StringUtils.isEmpty(api) || StringUtils.isEmpty(data) || StringUtils.isEmpty(appKey) || StringUtils.isEmpty(appSecret)) {
                 return ResponseCode.UNKNOWN_ERROR;
             }

+ 17 - 9
src/main/java/com/jkcredit/invoice/credit/interserver/NoCarInterServiceImpl.java

@@ -20,8 +20,10 @@ import com.jkcredit.invoice.service.lowerservice.NoCarService;
 import com.jkcredit.invoice.service.lowerservice.vo.HcInvoiceQueryVo;
 import com.jkcredit.invoice.service.manager.ParamService;
 import com.jkcredit.invoice.service.nocar.NoCarBillWayImportService;
+import com.jkcredit.invoice.service.nocar.WayBillFileService;
 import com.jkcredit.invoice.util.DateUtil;
 import com.jkcredit.invoice.util.RespR;
+import com.jkcredit.invoice.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import net.sf.json.JSONArray;
 import org.apache.commons.lang3.StringUtils;
@@ -30,8 +32,14 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
-import com.jkcredit.invoice.service.nocar.WayBillFileService;
-import static com.jkcredit.invoice.common.CommonConst.*;
+
+import static com.jkcredit.invoice.common.CommonConst.NOT_FOUND;
+import static com.jkcredit.invoice.common.CommonConst.ONE;
+import static com.jkcredit.invoice.common.CommonConst.REC_STATUS_UN;
+import static com.jkcredit.invoice.common.CommonConst.REC_STATUS_WAIT;
+import static com.jkcredit.invoice.common.CommonConst.RESULT;
+import static com.jkcredit.invoice.common.CommonConst.SELF_CAR;
+import static com.jkcredit.invoice.common.CommonConst.XY_WAYBILL_HISTORY_END;
 import static java.util.stream.Collectors.toList;
 
 /**
@@ -274,7 +282,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
         result.setRequestid(requestid);
         result.setMsg("无法认证");
         try {
-            log.info("[-NoCarInterServiceImpl.noCarBillStart-] request appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid);
+            log.info("[-NoCarInterServiceImpl.noCarBillStart-] request appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid);
             JSONObject jsonObject = JSONObject.parseObject(data);
             //运单编号 必选
             String num = jsonObject.getString("num");
@@ -356,7 +364,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
             return dataResult;
         } catch (Exception e) {
             log.error("[-NoCarInterServiceImpl.noCarBillStart-] get httpclient exception is "
-                    + e + ", request is " + data);
+                    + e + ", request is " + StringUtil.removeJSonField(data,"base64Str"));
         }
         return result;
     }
@@ -437,7 +445,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
         result.setMsg("无法认证");
 
         try {
-            log.info("[-NoCarInterServiceImpl.noCarBillEnd-] request appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid);
+            log.info("[-NoCarInterServiceImpl.noCarBillEnd-] request appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid);
             JSONObject jsonObject = JSONObject.parseObject(data);
             //运单号 必输
             String num = jsonObject.getString("num");
@@ -493,7 +501,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
         result.setRequestid(requestid);
         result.setMsg("无法认证");
         try {
-            log.info("[-NoCarInterServiceImpl.noCarHisWaybillStart-] request appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid);
+            log.info("[-NoCarInterServiceImpl.noCarHisWaybillStart-] request appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid);
             JSONObject jsonObject = JSONObject.parseObject(data);
             //运单编号 必选
             String num = jsonObject.getString("num");
@@ -591,7 +599,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
             return getDataResultss(data, costtimestart, result, respR, "[-NoCarInterServiceImpl.noCarHisWaybillStart-] result is ");
         } catch (Exception e) {
             log.error("[-NoCarInterServiceImpl.noCarHisWaybillStart-] get httpclient exception is "
-                    + e + ", request is " + data);
+                    + e + ", request is " + StringUtil.removeJSonField(data,"base64Str"));
         }
         return result;
     }
@@ -600,7 +608,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
         RespR rs = respR;
         long costtimeend = System.currentTimeMillis();
         log.info(s
-                + rs.toString() + ", request is " + data + " ,costtime="
+                + rs.toString() + ", request is " + StringUtil.removeJSonField(data,"base64Str") + " ,costtime="
                 + (costtimeend - costtimestart));
         if (null != rs && rs.getCode() == 0) {
             result.setData(1);
@@ -692,7 +700,7 @@ public class NoCarInterServiceImpl implements NoCarInterService {
         result.setMsg("无法认证");
 
         try {
-            log.info("[-NoCarInterServiceImpl.noCarHisWaybillEnd-] request appKey=" + appKey + " ,api=" + api + " ,data=" + data + " ,requestid=" + requestid);
+            log.info("[-NoCarInterServiceImpl.noCarHisWaybillEnd-] request appKey=" + appKey + " ,api=" + api + " ,data=" + StringUtil.removeJSonField(data,"base64Str") + " ,requestid=" + requestid);
             JSONObject jsonObject = JSONObject.parseObject(data);
             //运单号 必输
             String num = jsonObject.getString("num");

+ 41 - 5
src/main/java/com/jkcredit/invoice/service/lowerservice/impl/NoCarServiceImpl.java

@@ -4,7 +4,23 @@ import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryRequest;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryResponse;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterRequest;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterResponse;
-import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.*;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.InvoiceProcessingListModel;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillCountPageRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillCountQueryRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillCountQueryResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillEndRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillEndResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryEndRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryEndResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryStartRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryStartResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillInvoiceRedQueryModel;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillInvoiceRedQueryRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillInvoiceRedQueryResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillNumFindInvoiceRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillNumFindInvoiceResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillStartRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillStartResponse;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jkcredit.invoice.common.CommonConstants;
@@ -25,6 +41,7 @@ import com.jkcredit.invoice.model.entity.invoice.BillInvoice;
 import com.jkcredit.invoice.model.entity.invoice.HcInvoice;
 import com.jkcredit.invoice.model.entity.manager.Param;
 import com.jkcredit.invoice.model.entity.waybill.NoCarWayBill;
+import com.jkcredit.invoice.model.entity.waybill.NoCarWayBillFileInfo;
 import com.jkcredit.invoice.service.lowerservice.NoCarService;
 import com.jkcredit.invoice.service.lowerservice.vo.HcInvoiceQueryVo;
 import com.jkcredit.invoice.service.lowerservice.vo.MonthAccountQueryVo;
@@ -42,10 +59,26 @@ import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
-import com.jkcredit.invoice.mapper.waybill.WayBillFileMapper;
-import java.util.*;
-import com.jkcredit.invoice.model.entity.waybill.NoCarWayBillFileInfo;
-import static com.jkcredit.invoice.common.CommonConst.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static com.jkcredit.invoice.common.CommonConst.A_THOUSAND;
+import static com.jkcredit.invoice.common.CommonConst.EIGHT_NUM;
+import static com.jkcredit.invoice.common.CommonConst.FIVE_NUM;
+import static com.jkcredit.invoice.common.CommonConst.FOR;
+import static com.jkcredit.invoice.common.CommonConst.FOR_NUM;
+import static com.jkcredit.invoice.common.CommonConst.INTONE;
+import static com.jkcredit.invoice.common.CommonConst.INTTOW;
+import static com.jkcredit.invoice.common.CommonConst.NE_FIVE_NUM;
+import static com.jkcredit.invoice.common.CommonConst.ONE_NUM;
+import static com.jkcredit.invoice.common.CommonConst.THREE_NUM;
+import static com.jkcredit.invoice.common.CommonConst.TWO_NUM;
 
 /**
  * 无车操作接口
@@ -567,9 +600,12 @@ public class NoCarServiceImpl implements NoCarService {
             NoCarWayBillFileInfo noCarWayBillFileInfo =  wayBillFileMapper.selectFileInfo(noCarWayBill.getFileBatchNum(),noCarWayBill.getBillNum());
             waybillStartRequest.setWaybillFileName(noCarWayBillFileInfo.getWayBillNum());
             waybillStartRequest.setBase64Str(noCarWayBillFileInfo.getBase64Str());
+            waybillStartRequest.setContractType(noCarWayBill.getContractType());
         }else {
             waybillStartRequest.setWaybillFileName(noCarWayBill.getWaybillFileName());
             waybillStartRequest.setBase64Str(noCarWayBill.getBase64Str());
+            waybillStartRequest.setContractType(noCarWayBill.getContractType());
+
         }
         return waybillStartRequest;
     }

+ 4 - 1
src/main/java/com/jkcredit/invoice/service/nocar/impl/NoCarBillWayServiceImpl.java

@@ -28,7 +28,9 @@ import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 
-import static com.jkcredit.invoice.common.CommonConst.*;
+import static com.jkcredit.invoice.common.CommonConst.INTONE;
+import static com.jkcredit.invoice.common.CommonConst.INTTHREE;
+import static com.jkcredit.invoice.common.CommonConst.INTTOW;
 
 /**
  * 运单维护接口实现类
@@ -205,6 +207,7 @@ public class NoCarBillWayServiceImpl extends ServiceImpl<NoCarWaybillMapper, NoC
                     noCarWayBill.setBillwayStatus(-2);
                     noCarWayBill.setHisFlag(1);
                     noCarWayBill.setCustomerName(customerName);
+                    noCarWayBill.setContractType(1);//运单协议类型默认是 1
                     noCarWaybillMapperImprt.insertImport(noCarWayBill);
                     if (checkBatchHsitoryBillWay(stringBuffer, noCarWayBill, customerRec)) {
                         return;

+ 33 - 9
src/main/java/com/jkcredit/invoice/service/upservice/impl/NoCarInterfaceImpl.java

@@ -6,9 +6,25 @@ import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryRequest;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleQueryResponse;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterRequest;
 import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterResponse;
-import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.*;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillCountPageRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillCountQueryRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillCountQueryResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillEndRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillEndResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryEndRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryEndResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryStartRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillHistoryStartResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillInvoiceRedQueryRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillInvoiceRedQueryResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillNumFindInvoiceRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillNumFindInvoiceResponse;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillStartRequest;
+import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.WaybillStartResponse;
 import com.jkcredit.invoice.service.upservice.NoCarInterface;
+import com.jkcredit.invoice.util.DateUtil;
 import com.jkcredit.invoice.util.RespR;
+import com.jkcredit.invoice.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -74,15 +90,19 @@ public class NoCarInterfaceImpl implements NoCarInterface {
         try {
             log.info("NoCarInterfaceImpl.waybillStart上游请求参数:{}", waybillStartRequest.toString());
             WaybillStartResponse response = ETCCommHelper.upload(fileName, waybillStartRequest, WaybillStartResponse.class);
-            log.info("NoCarInterfaceImpl.waybillStart上游接口返回:{},请求参数:{},cost={}ms", response.toString(), waybillStartRequest.toString(), System.currentTimeMillis() - startTime);
-
+            log.info("NoCarInterfaceImpl.waybillStart上游接口返回:{},请求参数:{},cost={}ms", response.toString(), StringUtil.removeJSonField(waybillStartRequest.toString(),"base64Str"), System.currentTimeMillis() - startTime);
+            //TODO 如果数据源调整,需要优化返回值
+            if(null == response.getInfo() && null == response.getReceiveTime()){
+                response.setInfo("成功");
+                response.setReceiveTime(DateUtil.getCurrentDateStrFormat());
+            }
             return new RespR<>(response);
         } catch (IOException e) {
-            log.error(e.getMessage() + " ,请求参数:" + waybillStartRequest.toString() + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
+            log.error(e.getMessage() + " ,请求参数:" + StringUtil.removeJSonField(waybillStartRequest.toString(),"base64Str") + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
             e.printStackTrace();
             return new RespR(false, "网络异常,请联系管理人员");
         } catch (ApiRequestException apie) {
-            log.error(apie.getMessage().replaceAll("[\r\n]", "") + " ,请求参数:" + waybillStartRequest.toString() + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
+            log.error(apie.getMessage().replaceAll("[\r\n]", "") + " ,请求参数:" + StringUtil.removeJSonField(waybillStartRequest.toString(),"base64Str") + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
             apie.printStackTrace();
             return new RespR(false, apie.getMessage());
         }
@@ -120,15 +140,19 @@ public class NoCarInterfaceImpl implements NoCarInterface {
 
             //(4)指定协议的响应模型(IssuerUploadResponse),调用upload 发送数据
             WaybillHistoryStartResponse response = ETCCommHelper.upload(fileName, waybillHistoryStartRequest, WaybillHistoryStartResponse.class);
-            log.info("NoCarInterfaceImpl.waybillHistoryStart上游接口返回:{},请求参数:{},cost={}ms", response.toString(), waybillHistoryStartRequest.toString(), System.currentTimeMillis() - startTime);
-
+            log.info("NoCarInterfaceImpl.waybillHistoryStart上游接口返回:{},请求参数:{},cost={}ms", response.toString(), StringUtil.removeJSonField(waybillHistoryStartRequest.toString(),"base64Str"), System.currentTimeMillis() - startTime);
+            //TODO 如果数据源调整,需要优化返回值
+            if(null == response.getInfo() && null == response.getReceiveTime()){
+                response.setInfo("成功");
+                response.setReceiveTime(DateUtil.getCurrentDateStrFormat());
+            }
             return new RespR<>(response);
         } catch (IOException e) {
-            log.error(e.getMessage() + " ,请求参数:" + waybillHistoryStartRequest.toString() + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
+            log.error(e.getMessage() + " ,请求参数:" + StringUtil.removeJSonField(waybillHistoryStartRequest.toString(),"base64Str") + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
             e.printStackTrace();
             return new RespR(false, "网络异常,请联系管理人员");
         } catch (ApiRequestException apie) {
-            log.error(apie.getMessage().replaceAll("[\r\n]", "") + " ,请求参数:" + waybillHistoryStartRequest.toString() + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
+            log.error(apie.getMessage().replaceAll("[\r\n]", "") + " ,请求参数:" + StringUtil.removeJSonField(waybillHistoryStartRequest.toString(),"base64Str") + " ,cost=" + (System.currentTimeMillis() - startTime) + "ms");
             apie.printStackTrace();
             return new RespR(false, apie.getMessage());
         }

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

@@ -8,7 +8,11 @@ import org.joda.time.format.DateTimeFormatter;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
 
 /**
  * @description: 日期时间工具类
@@ -84,6 +88,9 @@ public class DateUtil {
         return "";
     }
 
+    public static String getCurrentDateStrFormat() {
+        return dateFormate(getCurrentDateStr());
+    }
     /**
      * 时间格式转换
      * yyyy-MM-dd HH:mm:ss 转 yyyy-MM-dd'T'HH:mm:ss

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

@@ -5,7 +5,11 @@ import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.NameValuePair;
 import org.apache.commons.httpclient.methods.PostMethod;
 
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.Iterator;
 
 /**
@@ -16,22 +20,18 @@ public class QueryDemoTest {
     /**
      * 测试地址
      */
-    private static final String URL = "http://127.0.0.1:18081/gateway?api=credit.sec.data";
+    private static final String URL = "http://127.0.0.1:18081/api/rest";
 
     /**
      * 分配的appKey
      */
-    private static final String APP_KEY = "jkxy";
+    private static final String APP_KEY = "data_test";
 
     /**
      * 分配的appSecret
      */
-    private static final String APP_SECRET = "7697CE9BB9D5A856CFDDE738320AD34EA53E483C";
+    private static final String APP_SECRET = "6MD50FA127P1ACNP9C64272X13C1FA1BEA20H406";
 
-    /**
-     * 企业编号
-     */
-    private static final String COMPANY_NUM = "10004616";
 
     /**
      * 方法入口
@@ -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", "PROTOCOL_ADD_V1");
+        paramJsonObj.put("api", "WAY_BILL_HISTORY_START");
         paramJsonObj.put("appKey", APP_KEY);
         paramJsonObj.put("appSecret", APP_SECRET);
 
@@ -114,12 +114,19 @@ public class QueryDemoTest {
          * 具体业务参数放在data中
          */
         JSONObject dataJson = new JSONObject();
-        dataJson.put("companyNum", COMPANY_NUM);
-        dataJson.put("serviceStartTime", "2022-05-11T17:30:37");
-        dataJson.put("serviceEndTime", "2023-05-11T21:30:37");
-        dataJson.put("contractFileName", "etc高速开票抵扣(1).pdf");
-        dataJson.put("serviceType", "3");
-        dataJson.put("base64Str", Base64Utils.fileToBase64Str(new File("/Users/mashengyi/Desktop/etc高速开票抵扣(1).pdf")));
+        dataJson.put("num", "1556502451-23");
+        dataJson.put("plateNumber", "京CF0237");
+        dataJson.put("plateColor", 1);
+        dataJson.put("startTime", "2023-07-05T19:25:56");
+        dataJson.put("sourceAddr", "北京市朝阳区");
+        dataJson.put("destAddr", "北京市朝阳区");
+        dataJson.put("predictEndTime", "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("contractType",1);
         return dataJson;
     }
 

+ 163 - 0
src/main/java/com/jkcredit/invoice/util/QueryDemoTest1.java

@@ -0,0 +1,163 @@
+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.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+
+/**
+ * @author mashengyi
+ */
+public class QueryDemoTest1 {
+
+    /**
+     * 测试地址
+     */
+    private static final String URL = "http://etc.jkcredit.com:9999/api/rest";
+
+    /**
+     * 分配的appKey
+     */
+    private static final String APP_KEY = "wycl";
+
+    /**
+     * 分配的appSecret
+     */
+    private static final String APP_SECRET = "8EDEE739B81EFF37820A1921DEFC0ABE39FF137A";
+
+    /**
+     * 企业编号
+     */
+    private static final String COMPANY_NUM = "11174796";
+
+    /**
+     * 方法入口
+     *
+     * @param args
+     */
+    public static void main(String[] args) throws Exception {
+        QueryDemoTest1 demo = new QueryDemoTest1();
+        demo.runMainService();
+    }
+
+    /**
+     * 流转字符串
+     *
+     * @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();
+    }
+
+    /**
+     * 调用主接口
+     */
+    public void runMainService() {
+        try {
+            /**
+             * 实名demo
+             */
+            JSONObject paramJsonObj = initParamJsonObjRealname();
+            String ret = postClient(URL, paramJsonObj);
+            System.out.println(ret);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 整合参数
+     *
+     * @return
+     */
+    public JSONObject initParamJsonObjRealname() {
+        /**
+         * 基本参数
+         */
+        JSONObject paramJsonObj = new JSONObject();
+        //CMCC_MOBILE_CHECK_V8//CMCC_3RD_V2//CMCC_3RD_DETAIL_V1//
+        paramJsonObj.put("api", "VEHICLE_REGISTER");
+        paramJsonObj.put("appKey", APP_KEY);
+        paramJsonObj.put("appSecret", APP_SECRET);
+
+
+        /**
+         * 业务参数
+         */
+        JSONObject dataJson = initMainServiceParamJsonObjRealname();
+        paramJsonObj.put("data", dataJson);
+        return paramJsonObj;
+    }
+
+    public JSONObject initMainServiceParamJsonObjRealname() {
+        /**
+         * 具体业务参数放在data中
+         */
+        JSONObject dataJson = new JSONObject();
+        dataJson.put("plateNumber", "冀DK1957");
+        dataJson.put("plateColor", "1");
+        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/json;charset=utf-8");
+            NameValuePair[] param = new NameValuePair[paramObj.size()];
+            @SuppressWarnings("unchecked")
+            Iterator<String> keys = paramObj.keys();
+            int i = 0;
+            while (keys.hasNext()) {
+                String key = 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;
+    }
+
+}

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

@@ -0,0 +1,289 @@
+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_3rd {
+
+    /**
+     * 测试地址
+     */
+    private static final String URL = "http://127.0.0.1:18081/api/rest";
+
+    /**
+     * 分配的appKey
+     */
+    private static final String appKey = "data_test";
+
+    static String filename = "/Users/mashengyi/Downloads/";
+    static String logname = "99.txt";
+
+    /**
+     * 方法入口
+     *
+     * @param args
+     */
+
+    public static void main(String args[]) throws Exception {
+
+        QueryDemo_3rd demo = new QueryDemo_3rd();
+
+
+
+        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 base64Str = str.replaceAll(" ", "+");
+                    System.out.println(base64Str);
+
+                    com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(str);
+                   com.alibaba.fastjson.JSONObject jsonObject1 = jsonObject.getJSONObject("data");
+
+                    demo.runMainService(jsonObject1.getString("waybillFileName"),jsonObject1.getInteger("contractType"),jsonObject1.getString("base64Str"));
+
+
+                    /**	if(str.contains("18:")){
+                     continue;
+                     }
+                     if(str.contains("requestid")|| str.contains("未解密成功")){
+                     System.out.println(str);
+                     }
+
+                     if( str.contains("未解密成功")){
+                     System.out.println(str);
+                     continue;
+                     }
+                     String str1 = getsrt("\"msg\":\"", "\"", str);
+                     System.out.println(str1);**/
+
+                  //  String mobile = getsrt("tradeIds=[", "]},", str).trim();
+                  //  System.out.println(mobile);
+                    //String idcard = getsrt("idcard:", "name:", str).trim();
+
+                    //String name = getsrt1("name:",str).trim();
+
+
+                    //demo.runMainService(name,idcard,mobile);
+
+                } 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,Integer 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,Integer idcard,String mobile) {
+        /**
+         * 基本参数
+         */
+        JSONObject paramJsonObj = new JSONObject();
+        paramJsonObj.put("api", "WAY_BILL_START");
+        paramJsonObj.put("appKey", appKey);
+        paramJsonObj.put("appSecret",
+                "6MD50FA127P1ACNP9C64272X13C1FA1BEA20H406");
+
+
+        /**
+         * 业务参数
+         */
+        JSONObject dataJson = initMainServiceParamJsonObj_Realname(name,idcard,mobile);
+        paramJsonObj.put("data", dataJson);
+        return paramJsonObj;
+    }
+
+    /*
+     * 初始化业务参数(实名认证)
+     *
+     * 姓名,身份证,手机号
+     *
+     * @return
+     */
+    public JSONObject initMainServiceParamJsonObj_Realname(String name,Integer idcard,String mobile) {
+        /**
+         * 具体业务参数放在data中
+         */
+        JSONObject dataJson = new JSONObject();
+        dataJson.put("num", "1556502451-6");
+        dataJson.put("plateNumber", "京CF0237");
+        dataJson.put("plateColor", 1);
+        dataJson.put("startTime", "2023-07-31T19:25:56");
+        dataJson.put("sourceAddr", "北京市朝阳区");
+        dataJson.put("destAddr", "北京市朝阳区");
+        dataJson.put("predictEndTime", "2023-08-01T09:25:56");
+        dataJson.put("fee", 10000);
+        dataJson.put("titleType", 1);
+        dataJson.put("taxplayerCode", "91330106MA28LMW9XQ");
+        dataJson.put("waybillFileName", name);
+        dataJson.put("base64Str", mobile);
+        dataJson.put("contractType",idcard);
+        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();
+    }
+
+}

+ 187 - 0
src/main/java/com/jkcredit/invoice/util/QueryDemo_Test.java

@@ -0,0 +1,187 @@
+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.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+
+/**
+ * Created by zhangqingxin Date : 16/11/6 Time : 10:41
+ * <p/>
+ * 参考一(HttpClient):http://mvnrepository.com/artifact/commons-httpclient/commons-
+ * httpclient/3.1
+ * 参考一(json-lib):http://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4
+ */
+public class QueryDemo_Test {
+
+    /**
+     * 	测试地址
+     */
+    //	private static final String URL = "http://110.88.150.74:80/credit?api=credit.sec.data";
+    //private static final String URL = "http://110.88.150.74/credit?api=credit.sec.data";
+    //	private static final String URL = "http://123.57.186.204/gateway?api=credit.sec.data";
+    //private static final String URL = "http://123.57.186.204/gateway?api=credit.sec.data";
+    //private static final String URL = "http://192.168.50.4:18080/gateway?api=credit.sec.data";//北京节点
+    //	private static final String URL = "http://jk.h11.site/gateway?api=credit.sec.data";
+    //	  private static final String URL = "http://127.0.0.1:18080/gateway?api=credit.sec.data";
+  		private static final String URL = "http://110.88.150.68:8000/gateway?api=credit.sec.data";
+    //	private static final String URL = "http://110.88.150.72:8000/gateway?api=credit.sec.data_test";
+    //	private static final String URL = "http://60.205.114.163:8000/gateway?api=credit.sec.data";
+    //private static final String URL = " http://45.126.120.88/gateway?api=credit.sec.data_test";
+    //		private static final String URL = " http://45.126.120.88/gateway?api=credit.sec.data";
+    //	private static final String URL = " http://119.18.195.163/gateway?api=credit.sec.data";
+
+    /**
+     *	 分配的appKey
+     */
+    // private static final String APP_KEY = "jkxy";
+    // 	 private static final String appKey = "junxin_test";
+
+  			  	 private static final String appKey = "DATA_TEST";
+    //private static final String appKey = "JIAO_KE";
+    //private static final String appKey = "HANGZHOU_JUNXIN_72";
+
+    /**290dec3f6a243889e5ed3210cf1ad499
+     * 	方法入口
+     *
+     * @param args
+     */
+    public static void main(String args[]) throws Exception {
+
+            QueryDemo_Test demo = new QueryDemo_Test();
+            demo.runMainService();
+    }
+
+    /**
+     * 	调用主接口
+     */
+    public void runMainService() {
+        try {
+            /**
+             *	 实名demo
+             */
+            JSONObject paramJsonObj = initParamJsonObj_Realname();
+            String ret = postClient(URL, paramJsonObj);
+            System.out.println(ret);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 	整合参数(实名认证)
+     *
+     * @return
+     */
+    public JSONObject initParamJsonObj_Realname() {
+        /**
+         *	 基本参数
+         */
+        JSONObject paramJsonObj = new JSONObject();
+        paramJsonObj.put("api", "CMCC_STATUS_CHECK_V7");//CMCC_3RD_DETAIL_V15//CMCC_2ND_V27G//CMCC_3RD_DETAIL_V32B//CMCC_ONLINE_CHECK_V8//CMCC_STATUS_CHECK_V7
+        paramJsonObj.put("appKey", appKey);
+        paramJsonObj.put("appSecret",
+                //		"D78C393359BF128715C65D91C67051478A4DFC13");
+                "C41DF125F0C23FBBB83E461F5045A30ACB3FF55A");
+
+
+
+        /**
+         * 	业务参数
+         */
+        JSONObject dataJson = initMainServiceParamJsonObj_Realname();
+        paramJsonObj.put("data", dataJson);
+
+        return paramJsonObj;
+    }
+
+    /*
+     * 	初始化业务参数(实名认证)
+     *
+     *	 姓名,身份证,手机号
+     *
+     * @return
+     */
+    public JSONObject initMainServiceParamJsonObj_Realname() {
+        /**
+         * 具体业务参数放在data中
+         */
+        JSONObject dataJson = new JSONObject();
+	      dataJson.put("name","陈春灵");
+	      dataJson.put("mobile","19846930551");
+        dataJson.put("id_number","372926198502202847");
+
+        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/json;charset=utf-8");
+            NameValuePair[] param = new NameValuePair[paramObj.size()];
+            @SuppressWarnings("unchecked")
+            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();
+    }
+
+}

+ 678 - 0
src/main/java/com/jkcredit/invoice/util/QueryDemo_Test1.java

@@ -0,0 +1,678 @@
+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.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+
+/**
+ * Created by zhangqingxin Date : 16/11/6 Time : 10:41
+ * <p/>
+ * 参考一(HttpClient):http://mvnrepository.com/artifact/commons-httpclient/commons-
+ * httpclient/3.1
+ * 参考一(json-lib):http://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4
+ */
+public class QueryDemo_Test1 {
+
+	/**
+	 * 测试地址
+	 */
+          private static final String URL = "http://etc.jkcredit.com:9999/api/rest";
+
+	 	//private static final String URL = "http://110.88.150.74:80/credit?api=credit.sec.data_test";
+	  	//private static final String URL = "http://110.88.150.74/credit?api=credit.sec.data";
+		//private static final String URL = "http://123.57.186.204/gateway?api=credit.sec.data_test";
+		//private static final String URL = "http://123.57.186.204/gateway?api=credit.sec.data";
+	//	private static final String URL = "http://www1.h11.site/gateway?api=credit.sec.data";
+	//	private static final String URL = "http://110.88.150.68:8000/gateway?api=credit.sec.data";
+		//private static final String URL = "http://60.205.114.163:8000/gateway?api=credit.sec.data";
+	 	//private static final String URL = " http://45.126.120.88/gateway?api=credit.sec.data";
+		//private static final String URL = "http://119.18.195.163/gateway?api=credit.sec.data";
+
+	/**
+	 * 分配的appKey
+	 */
+	 	//private static final String appKey = "junxin_test";
+	
+		private static final String appKey = "jkxy";
+	 	//private static final String appKey = "ccx";
+
+	/**
+	 * 方法入口
+	 *
+	 * @param args
+	 */
+	public static void main(String args[]) throws Exception {
+		   QueryDemo_Test1 demo = new QueryDemo_Test1();
+		demo.runMainService();
+	}
+
+	/**
+	 * 调用主接口
+	 */
+	public void runMainService() {
+		try {
+			/**
+			 * 实名demo
+			 */
+			String [] nums = {
+					"KHY921000470609055744",
+					"",
+
+			};
+			for(int i=0;i<nums.length;i++){
+//				JSONObject paramJsonObj202109 = initParamJsonObj_Realname202109(nums[i]);
+//				String ret202109 = postClient(URL, paramJsonObj202109);
+//				System.out.println(ret202109);
+//
+//
+//				JSONObject paramJsonObj202110 = initParamJsonObj_Realname202110(nums[i]);
+//				String ret202110 = postClient(URL, paramJsonObj202110);
+//				System.out.println(ret202110);
+//
+//
+//
+//				JSONObject paramJsonObj202111 = initParamJsonObj_Realname202111(nums[i]);
+//				String ret202111 = postClient(URL, paramJsonObj202111);
+//				System.out.println(ret202111);
+//
+//
+//
+//				JSONObject paramJsonObj202112 = initParamJsonObj_Realname202112(nums[i]);
+//				String ret202112 = postClient(URL, paramJsonObj202112);
+//				System.out.println(ret202112);
+//
+//
+//
+//				JSONObject paramJsonObj202201 = initParamJsonObj_Realname202201(nums[i]);
+//				String ret202201 = postClient(URL, paramJsonObj202201);
+//				System.out.println(ret202201);
+//
+//
+//
+//
+//				JSONObject paramJsonObj202202 = initParamJsonObj_Realname202202(nums[i]);
+//				String ret202202 = postClient(URL, paramJsonObj202202);
+//				System.out.println(ret202202);
+//
+//
+//
+//				JSONObject paramJsonObj202203 = initParamJsonObj_Realname202203(nums[i]);
+//				String ret202203= postClient(URL, paramJsonObj202203);
+//				System.out.println(ret202203);
+//
+//
+//
+//				JSONObject paramJsonObj202204 = initParamJsonObj_Realname202204(nums[i]);
+//				String ret202204 = postClient(URL, paramJsonObj202204);
+//				System.out.println(ret202204);
+//
+//
+//				JSONObject paramJsonObj202205 = initParamJsonObj_Realname202205(nums[i]);
+//				String ret202205 = postClient(URL, paramJsonObj202205);
+//				System.out.println(ret202205);
+//
+//
+//				JSONObject paramJsonObj202206 = initParamJsonObj_Realname202206(nums[i]);
+//				String ret202206 = postClient(URL, paramJsonObj202206);
+//				System.out.println(ret202206);
+
+
+				JSONObject paramJsonObj202207 = initParamJsonObj_Realname202207(nums[i]);
+				String ret202207 = postClient(URL, paramJsonObj202207);
+				System.out.println(ret202207);
+
+//
+//				JSONObject paramJsonObj202208 = initParamJsonObj_Realname202208(nums[i]);
+//				String ret202208 = postClient(URL, paramJsonObj202208);
+//				System.out.println(ret202208);
+//
+//				JSONObject paramJsonObj202209 = initParamJsonObj_Realname202209(nums[i]);
+//				String ret202209 = postClient(URL, paramJsonObj202209);
+//				System.out.println(ret202209);
+//
+//				JSONObject paramJsonObj202210 = initParamJsonObj_Realname202210(nums[i]);
+//				String ret202210 = postClient(URL, paramJsonObj202210);
+//				System.out.println(ret202210);
+//
+//				JSONObject paramJsonObj202211 = initParamJsonObj_Realname202211(nums[i]);
+//				String ret202211 = postClient(URL, paramJsonObj202211);
+//				System.out.println(ret202211);
+//
+//				JSONObject paramJsonObj202212 = initParamJsonObj_Realname202212(nums[i]);
+//				String ret202212 = postClient(URL, paramJsonObj202212);
+//				System.out.println(ret202212);
+//
+//				JSONObject paramJsonObj202301 = initParamJsonObj_Realname202301(nums[i]);
+//				String ret202301 = postClient(URL, paramJsonObj202301);
+//				System.out.println(ret202301);
+
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 整合参数(实名认证)
+	 *
+	 * @return
+	 */
+	public JSONObject initParamJsonObj_Realname202109(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "VEHICLE_REGISTER");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		 //paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+	    paramJsonObj.put("appSecret",
+		"7697CE9BB9D5A856CFDDE738320AD34EA53E483C");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+	   
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2021-09-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2021-10-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	public JSONObject initParamJsonObj_Realname202110(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2021-10-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2021-11-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	public JSONObject initParamJsonObj_Realname202111(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2021-11-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2021-12-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	public JSONObject initParamJsonObj_Realname202112(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2021-12-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-01-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202201(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-01-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-02-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	public JSONObject initParamJsonObj_Realname202202(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-02-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-03-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	public JSONObject initParamJsonObj_Realname202203(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-03-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-04-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	public JSONObject initParamJsonObj_Realname202204(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-04-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-05-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202205(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-05-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-06-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202206(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-06-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-07-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202207(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "VEHICLE_REGISTER");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"7697CE9BB9D5A856CFDDE738320AD34EA53E483C");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("plateNumber","川AD58376");
+		dataJson.put("plateColor","9");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202208(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-08-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-09-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202209(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-09-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-10-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+	public JSONObject initParamJsonObj_Realname202210(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-10-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-11-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202211(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-11-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2022-12-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202212(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2022-12-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2023-01-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+	public JSONObject initParamJsonObj_Realname202301(String num) {
+		/**
+		 * 基本参数
+		 */
+		JSONObject paramJsonObj = new JSONObject();
+		paramJsonObj.put("api", "B2B_INVOICE_QUERY_V1");//CTCC_3RD_DETAIL_V11//CTCC_STATUS_CHECK_V11//CUCC_STATUS_CHECK_V11//CMCC_3RD_DETAIL_V15//CMCC_3RD_V2//CTCC_3RD_DETAIL_V11//
+		//paramJsonObj.put("api", "MSISDNMD5TOIMEI");//MOBILE_CHECK_V1//CMCC_3RD_VERIFY_V4//CTCC_CHECK_V1
+		paramJsonObj.put("appKey", appKey);
+		paramJsonObj.put("appSecret",
+				"CA02EAB3CAE8A89CD61359244CD971BBABDB44D5");
+		//"84C1CE24EDF361F28072E313BD87EAB24CC727CF");
+
+
+
+		/**
+		 * 业务参数
+		 */
+		JSONObject dataJson = new JSONObject();
+		dataJson.put("companyNum","11171249");
+		dataJson.put("cardId",num);
+		dataJson.put("startInvoiceMakeTime","2023-01-01T00:00:00");
+		dataJson.put("endInvoiceMakeTime","2023-02-01T00:00:00");
+		paramJsonObj.put("data", dataJson);
+		return paramJsonObj;
+	}
+
+
+	/**
+	 * 实现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/json;charset=utf-8");
+			NameValuePair[] param = new NameValuePair[paramObj.size()];
+			@SuppressWarnings("unchecked")
+			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();
+	}
+
+}

+ 236 - 0
src/main/java/com/jkcredit/invoice/util/StringUtil.java

@@ -0,0 +1,236 @@
+package com.jkcredit.invoice.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.helpers.FormattingTuple;
+import org.slf4j.helpers.MessageFormatter;
+
+import java.util.Collection;
+import java.util.Objects;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 字符串工具类
+ *
+ * @author 刘随阳
+ * @version V4.1.0 注意:本内容仅限于杭州时代银通软件股份有限公司内部传阅,禁止外泄以及用于其他的商业目的
+ */
+public final class StringUtil {
+    private static final Pattern PATTERN = Pattern.compile("\\s*|\t|\r|\n");
+
+    private StringUtil() {
+
+    }
+
+    /**
+     * 判断是否为空
+     *
+     * @param value 字符串
+     * @return 是否
+     * @author 刘随阳
+     */
+    public static boolean isEmpty(String value) {
+        return StringUtils.isEmpty(value);
+    }
+
+    /**
+     * 判断字符串是否不为空
+     *
+     * @param value 字符串
+     * @return 是否
+     * @author 刘随阳
+     */
+    public static boolean isNotEmpty(String value) {
+        return !isEmpty(value);
+    }
+
+    /**
+     * 判断字符串是否为空或者空白
+     *
+     * @param value 字符串
+     * @return 是否
+     * @author 刘随阳
+     */
+    public static boolean isBlank(String value) {
+        return StringUtils.isBlank(value);
+    }
+
+    /**
+     * 判断字符串是否不为空或者空白
+     *
+     * @param value 字符串
+     * @return 是否
+     * @author 刘随阳
+     */
+    public static boolean isNotBlank(String value) {
+        return !isBlank(value);
+    }
+
+    /**
+     * 将集合或数组以某拼接符拼接到一起形成新的字符串
+     *
+     * @param collection 集合
+     * @param separator  拼接符
+     * @return 字符串
+     * @author 刘随阳
+     */
+    public static String join(Collection collection, String separator) {
+        return StringUtils.join(collection, separator);
+    }
+
+    /**
+     * 字符串是否包含于字符串数组
+     *
+     * @param value 字符串
+     * @param array 字符串数组
+     * @return true if value contains in array
+     * @author hucx
+     */
+    public static boolean contains(String value, String[] array) {
+        if (array == null) {
+            return false;
+        }
+        for (String anArray : array) {
+            if (value.equals(anArray)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 字符串替换
+     *
+     * @param text         old String
+     * @param searchString 要被替换的字符串
+     * @param replacement  要替换的字符串
+     * @return new String
+     * @author hucx
+     */
+    public static String replace(String text, String searchString, String replacement) {
+        return StringUtils.replace(text, searchString, replacement);
+    }
+
+    /**
+     * str字符串移除remove字符串开始的字符
+     *
+     * @param str    old String
+     * @param remove 移除的字符串
+     * @return new String
+     * @author hucx
+     */
+    public static String removeStart(String str, String remove) {
+        return StringUtils.removeStart(str, remove);
+    }
+
+    /**
+     * str字符串移除remove字符串结尾的字符
+     *
+     * @param str    old字符串
+     * @param remove 移除的字符串
+     * @return new String
+     * @author hucx
+     */
+    public static String removeEnd(String str, String remove) {
+        return StringUtils.removeEnd(str, remove);
+
+    }
+
+    /**
+     * 判断两个数据是否相等
+     *
+     * @param a
+     * @param b
+     * @return boolean
+     * @throws
+     * @createDate 2022/11/17 上午10:48
+     * @author mashengyi
+     */
+    public static boolean equal(Object a, Object b) {
+        return Objects.equals(a, b);
+    }
+
+    /**
+     * @param formatterStr
+     * @param param
+     * @throws
+     * @Description://格式化含有占位符{}的字符
+     * @author jxy
+     * @created 2021/12/8 17:06
+     */
+    public static String messageFormatter(String formatterStr, Object... param) {
+        String rst;
+        try {
+            FormattingTuple ft = MessageFormatter.arrayFormat(formatterStr, param);
+            rst = ft.getMessage();
+        } catch (Exception e) {
+            rst = formatterStr;
+        }
+        return rst;
+    }
+
+    /**
+     * spring的字符串拆分
+     *
+     * @param source
+     * @param split
+     * @return java.lang.String[]
+     * @throws
+     * @createDate 2022/11/21 9:10
+     * @author jxy
+     */
+    public static String[] split(String source, String split) {
+        return org.springframework.util.StringUtils.delimitedListToStringArray(source, split);
+    }
+
+
+
+    /**
+     * string字符串去除所有空格,制表符
+     *
+     * @param str
+     * @return java.lang.String
+     * @throws
+     * @createDate 2023/2/15 上午11:23
+     * @author mashengyi
+     */
+    public static String replaceBlank(String str) {
+        String dest = "";
+        if (str != null) {
+            Matcher m = PATTERN.matcher(str);
+            dest = m.replaceAll("");
+        }
+        return dest;
+    }
+
+
+
+    /**
+     * string字符串去除所有空格,制表符
+     *
+     * @param jsonString
+     * @return java.lang.String
+     * @throws
+     * @createDate 2023/2/15 上午11:23
+     * @author mashengyi
+     */
+    public static String removeJSonField(String jsonString,String field) {
+
+        String modifiedJsonString = "";
+        try {
+            // 将 JSON 字符串解析为对象
+            JSONObject jsonObject = JSON.parseObject(jsonString);
+            // 排除要忽略的字段
+            jsonObject.remove(field);
+            // 将修改后的对象转换回 JSON 字符串
+            modifiedJsonString = JSON.toJSONString(jsonObject);
+            // 打印结果
+            return  modifiedJsonString;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return modifiedJsonString;
+    }
+}