diff --git a/pom.xml b/pom.xml
index 9104bb2..98f3fb6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
GuoYan
GuoYan
- 11
+ 17
@@ -71,7 +71,7 @@
org.projectlombok
lombok
- 1.18.10
+
diff --git a/src/main/java/com/example/guoyan/config/RestTemplateConfig.java b/src/main/java/com/example/guoyan/config/RestTemplateConfig.java
index 11034a6..dc233ad 100644
--- a/src/main/java/com/example/guoyan/config/RestTemplateConfig.java
+++ b/src/main/java/com/example/guoyan/config/RestTemplateConfig.java
@@ -29,12 +29,12 @@ import org.springframework.util.StreamUtils;
import org.springframework.web.client.RestTemplate;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
@Configuration
@@ -113,76 +113,70 @@ public class RestTemplateConfig {
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
- return builder
- .requestFactory(() -> new HttpComponentsClientHttpRequestFactory(httpClient()))
- .interceptors(new CustomClientHttpRequestInterceptor())
- .build();
+ RestTemplate restTemplate = new RestTemplate();
+ restTemplate.setInterceptors(Collections.singletonList(new LoggingClientHttpRequestInterceptor()));
+ //restTemplate.getInterceptors().add();
+ return restTemplate;
}
@Slf4j
- static class CustomClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
- @Override
- @NonNull
- public ClientHttpResponse intercept(HttpRequest request, @NonNull byte[] bytes, @NonNull ClientHttpRequestExecution execution) throws IOException {
- log.info("HTTP Method: {}, URI: {}, Headers: {}", request.getMethod(), request.getURI(), request.getHeaders());
- request.getMethod();
- if (request.getMethod().equals(HttpMethod.POST)) {
- log.info("HTTP body: {}", new String(bytes, StandardCharsets.UTF_8));
- }
-
- ClientHttpResponse response = execution.execute(request, bytes);
- ClientHttpResponse responseWrapper = new BufferingClientHttpResponseWrapper(response);
-
- String body = StreamUtils.copyToString(responseWrapper.getBody(), StandardCharsets.UTF_8);
- log.info("RESPONSE body: {}", body);
-
- return responseWrapper;
- }
- }
- static class BufferingClientHttpResponseWrapper implements ClientHttpResponse {
-
- private final ClientHttpResponse response;
- private byte[] body;
-
- BufferingClientHttpResponseWrapper(ClientHttpResponse response) {
- this.response = response;
- }
-
-// @NonNull
-// public HttpStatusCode getStatusCode() throws IOException {
-// return this.response.getStatusCode();
-// }
-
- @Override
- public HttpStatus getStatusCode() throws IOException {
- return this.response.getStatusCode();
- }
+ class LoggingClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
@Override
- public int getRawStatusCode() throws IOException {
- return this.response.getRawStatusCode();
- }
-
- @NonNull
- public String getStatusText() throws IOException {
- return this.response.getStatusText();
+ public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
+ traceRequest(request, body);
+ ClientHttpResponse response = execution.execute(request, body);
+// response = (ClientHttpResponse) Proxy.newProxyInstance(response.getClass().getClassLoader(), new Class[]{ClientHttpResponse.class}, new ClientHttpResponseHandler(response));
+ traceResponse(response);
+ return response;
}
- @NonNull
- public HttpHeaders getHeaders() {
- return this.response.getHeaders();
+ private void traceRequest(HttpRequest request, byte[] body) throws IOException {
+ log.info("===========================request begin================================================");
+ log.info("URI : {}", request.getURI());
+ log.info("Method : {}", request.getMethod());
+ log.info("Headers : {}", request.getHeaders());
+ log.info("Request body: {}", new String(body, "UTF-8"));
+ log.info("==========================request end================================================");
}
- @NonNull
- public InputStream getBody() throws IOException {
- if (this.body == null) {
- this.body = StreamUtils.copyToByteArray(this.response.getBody());
+ private void traceResponse(ClientHttpResponse response) throws IOException {
+ StringBuilder inputStringBuilder = new StringBuilder();
+ try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody(), StandardCharsets.UTF_8))) {
+ String line = bufferedReader.readLine();
+ while (line != null) {
+ inputStringBuilder.append(line);
+ inputStringBuilder.append('\n');
+ line = bufferedReader.readLine();
+ }
}
- return new ByteArrayInputStream(this.body);
+ log.info("============================response begin==========================================");
+ log.info("Status code : {}", response.getStatusCode());
+ log.info("Status text : {}", response.getStatusText());
+ log.info("Headers : {}", response.getHeaders());
+ log.info("Response body: {}", inputStringBuilder.toString());//WARNING: comment out in production to improve performance
+ log.info("=======================response end=================================================");
}
- public void close() {
- this.response.close();
- }
+// private static class ClientHttpResponseHandler implements InvocationHandler {
+// private static final String methodName = "getBody";
+// private ClientHttpResponse clientHttpResponse;
+// private byte[] body;
+//
+// ClientHttpResponseHandler(ClientHttpResponse clientHttpResponse) {
+// this.clientHttpResponse = clientHttpResponse;
+// }
+//
+// @Override
+// public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+// if (StrUtil.equals(methodName, method.getName())) {
+// if (Objects.isNull(this.body)) {
+// this.body = StreamUtils.copyToByteArray(this.clientHttpResponse.getBody());
+// }
+// return new ByteArrayInputStream(this.body == null ? new byte[0] : this.body);
+// }
+// return method.invoke(this.clientHttpResponse, args);
+// }
+// }
}
diff --git a/src/main/java/com/example/guoyan/controller/TestController.java b/src/main/java/com/example/guoyan/controller/TestController.java
index 88cc2c5..6459fd3 100644
--- a/src/main/java/com/example/guoyan/controller/TestController.java
+++ b/src/main/java/com/example/guoyan/controller/TestController.java
@@ -74,29 +74,30 @@ public class TestController {
headers.set("Authorization", data);
- sendKpxxList.forEach(item->{
- Integer interfaceType = item.getInterfaceType();//类型字段
- if(interfaceType==0){//开票信息有关的
- //判断是否过了节点5,通过流程id,节点
- String requestid = item.getRequestid();
- String kpssProcessNode5="2c9adae478fdbe15017906f93ec90265";
- List> selectProcessNo5IsSubmit = otherMapper.selectProcessNo5IsSubmit(requestid, kpssProcessNode5);
- if (selectProcessNo5IsSubmit.size()>0){//存在
- processScheduled.senKpxxToYunPingtai(item,headers);
- }
- //开票确认
- }else if (interfaceType==1){
- processScheduled.sendKpqrToYunPingtai(item,headers);
- //开票确认收入
- }else if(interfaceType==2){
- processScheduled.sendKpqrsrToYunPingtai(item,headers);
- }else if (interfaceType==3){
- processScheduled.sendKpqrdzToYunPingtai(item,headers);
- }else {
- log.info("未知编号:"+interfaceType);
- }
- });
-
+// sendKpxxList.forEach(item->{
+// Integer interfaceType = item.getInterfaceType();//类型字段
+// if(interfaceType==0){//开票信息有关的
+// //判断是否过了节点5,通过流程id,节点
+// String requestid = item.getRequestid();
+// String kpssProcessNode5="2c9adae478fdbe15017906f93ec90265";
+// List> selectProcessNo5IsSubmit = otherMapper.selectProcessNo5IsSubmit(requestid, kpssProcessNode5);
+// if (selectProcessNo5IsSubmit.size()>0){//存在
+// processScheduled.senKpxxToYunPingtai(item,headers);
+// }
+// //开票确认
+// }else if (interfaceType==1){
+// processScheduled.sendKpqrToYunPingtai(item,headers);
+// //开票确认收入
+// }else if(interfaceType==2){
+// processScheduled.sendKpqrsrToYunPingtai(item,headers);
+// }else if (interfaceType==3){
+// processScheduled.sendKpqrdzToYunPingtai(item,headers);
+// }else {
+// log.info("未知编号:"+interfaceType);
+// }
+// });
+// processScheduled.sendKpCancelToYPT(headers);
+ processScheduled.queryInvoicingApprovalStatus(headers);
return Result.success("成功");
}
diff --git a/src/main/java/com/example/guoyan/entity/KpssProcessNode6IdInfo.java b/src/main/java/com/example/guoyan/entity/KpssProcessNode6IdInfo.java
index 759b892..1ddf0a8 100644
--- a/src/main/java/com/example/guoyan/entity/KpssProcessNode6IdInfo.java
+++ b/src/main/java/com/example/guoyan/entity/KpssProcessNode6IdInfo.java
@@ -21,5 +21,7 @@ public class KpssProcessNode6IdInfo {
private String nextAllowStaffids;
@Value("${kpssProcessNode6IdInfo.nextStepOperid}")
private String nextStepOperid;
+ @Value("${kpssProcessNode6IdInfo.friststepid}")
+ private String friststepid;
}
diff --git a/src/main/java/com/example/guoyan/mapper/OtherMapper.java b/src/main/java/com/example/guoyan/mapper/OtherMapper.java
index 6ef5e9a..0e58b1c 100644
--- a/src/main/java/com/example/guoyan/mapper/OtherMapper.java
+++ b/src/main/java/com/example/guoyan/mapper/OtherMapper.java
@@ -34,4 +34,9 @@ public interface OtherMapper extends BaseMapper