From 9e8e9eea6b0c4017c47b1774d5de139a8ae0e9bb Mon Sep 17 00:00:00 2001
From: super_liu <396572590@qq.com>
Date: Fri, 10 Sep 2021 14:43:45 +0800
Subject: [PATCH] feat: There is no way the
---
pom.xml | 23 ++
.../business_oa/common/WebServiceConf.java | 66 ++++
.../business_oa/config/OkHttpConfig.java | 69 ++++
.../exception/CommonException.java | 12 +
.../wkflow/business_oa/utils/OkHttpUtil.java | 322 ++++++++++++++++++
.../controller/WebServiceOAController.java | 69 ++++
.../service/WebServiceOAService.java | 10 +
.../service/impl/WebServiceOAServiceImpl.java | 94 +++++
.../webService/todoContent/HEAD.java | 19 ++
.../webService/todoContent/JsonSend.java | 19 ++
.../todoContent/NotifyTodoSendContext.java | 67 ++++
.../todoResult/NotifyTodoAppResult.java | 22 ++
.../ydw/bat/wkflow/config/SwaggerConfig.java | 7 +
13 files changed, 799 insertions(+)
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/common/WebServiceConf.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/config/OkHttpConfig.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/exception/CommonException.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/utils/OkHttpUtil.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoContent/HEAD.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoContent/JsonSend.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoContent/NotifyTodoSendContext.java
create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoResult/NotifyTodoAppResult.java
diff --git a/pom.xml b/pom.xml
index a2a262c2..72a353b2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,29 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.apache.cxf
+ cxf-spring-boot-starter-jaxws
+ 3.3.0
+
+
+ org.apache.cxf
+ cxf-rt-transports-http
+ 3.3.0
+
+
+ org.apache.cxf
+ cxf-rt-features-logging
+ 3.3.0
+ test
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 3.6.0
+
org.projectlombok
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/common/WebServiceConf.java b/src/main/java/com/ydw/bat/wkflow/business_oa/common/WebServiceConf.java
new file mode 100644
index 00000000..a3f179e8
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/common/WebServiceConf.java
@@ -0,0 +1,66 @@
+package com.ydw.bat.wkflow.business_oa.common;
+
+import com.ydw.bat.wkflow.business_oa.exception.CommonException;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
+import org.apache.cxf.transport.http.HTTPConduit;
+import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
+import org.springframework.stereotype.Service;
+
+import java.util.ResourceBundle;
+
+/**
+ * @Description: TODO
+ * @author: super_liu
+ * @date: 2021年09月08日 14:40
+ */
+
+@Service
+public class WebServiceConf {
+
+ /**
+ * 调用webservice 接口
+ *
+ * @param method 调用方法名
+ * @param params 接口传入参数
+ * @return
+ */
+ public static synchronized Object[] invoke(String wsdlUrl, String method, Object[] params) throws Exception {
+ Object[] objectArr = null;
+ //创建动态客户端
+ JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory
+ .newInstance();
+ Client client = dcf.createClient(wsdlUrl);
+ try {
+ //如果返回的address不是远程服务地址,重新制定地址
+ //添加发送请求拦截器
+ if (StringUtils.isEmpty(method)) {
+ throw new CommonException("cxf 调用webservice 执行方法名缺失:method 未传入");
+ }
+
+
+ // cxf 调用webservice method paramsStr
+ HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); // 策略
+ httpClientPolicy.setConnectionTimeout(36000); //连接超时
+ httpClientPolicy.setAllowChunking(false);
+ httpClientPolicy.setReceiveTimeout(10000); //接收超时
+ HTTPConduit http = (HTTPConduit) client.getConduit();
+ http.setClient(httpClientPolicy);
+
+
+ objectArr = client.invoke(method, params);
+
+ } catch (Exception e) {
+ throw new CommonException("cxf 调用webservice 执行错误:" + e.toString());
+ }finally {
+ client.close();
+ }
+
+ return objectArr;
+ }
+}
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/config/OkHttpConfig.java b/src/main/java/com/ydw/bat/wkflow/business_oa/config/OkHttpConfig.java
new file mode 100644
index 00000000..cd3db618
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/config/OkHttpConfig.java
@@ -0,0 +1,69 @@
+package com.ydw.bat.wkflow.business_oa.config;
+
+import okhttp3.ConnectionPool;
+import okhttp3.OkHttpClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.concurrent.TimeUnit;
+
+@Configuration
+public class OkHttpConfig {
+
+ @Bean
+ public X509TrustManager x509TrustManager() {
+ return new X509TrustManager() {
+ @Override
+ public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
+ }
+ @Override
+ public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
+ }
+ @Override
+ public X509Certificate[] getAcceptedIssuers() {
+ return new X509Certificate[0];
+ }
+ };
+ }
+ @Bean
+ public SSLSocketFactory sslSocketFactory() {
+ try {
+ //信任任何链接
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(null, new TrustManager[]{x509TrustManager()}, new SecureRandom());
+ return sslContext.getSocketFactory();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (KeyManagementException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+ /**
+ * Create a new connection pool with tuning parameters appropriate for a single-user application.
+ * The tuning parameters in this pool are subject to change in future OkHttp releases. Currently
+ */
+ @Bean
+ public ConnectionPool pool() {
+ return new ConnectionPool(200, 5, TimeUnit.MINUTES);
+ }
+ @Bean
+ public OkHttpClient okHttpClient() {
+ return new OkHttpClient.Builder()
+ .sslSocketFactory(sslSocketFactory(), x509TrustManager())
+ .retryOnConnectionFailure(false)//是否开启缓存
+ .connectionPool(pool())//连接池
+ .connectTimeout(10L, TimeUnit.SECONDS)
+ .readTimeout(10L, TimeUnit.SECONDS)
+ .build();
+ }
+}
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/exception/CommonException.java b/src/main/java/com/ydw/bat/wkflow/business_oa/exception/CommonException.java
new file mode 100644
index 00000000..f159a030
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/exception/CommonException.java
@@ -0,0 +1,12 @@
+package com.ydw.bat.wkflow.business_oa.exception;
+
+/**
+ * 自定义简单异常
+ *
+ */
+public class CommonException extends RuntimeException {
+
+ public CommonException(String message) {
+ super(message);
+ }
+}
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/utils/OkHttpUtil.java b/src/main/java/com/ydw/bat/wkflow/business_oa/utils/OkHttpUtil.java
new file mode 100644
index 00000000..219cd67b
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/utils/OkHttpUtil.java
@@ -0,0 +1,322 @@
+package com.ydw.bat.wkflow.business_oa.utils;
+
+import okhttp3.*;
+import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+@Component
+public class OkHttpUtil {
+ private static final Logger logger = LoggerFactory.getLogger(OkHttpUtil.class);
+
+ @Autowired
+ private OkHttpClient okHttpClient;
+ /**
+ * get
+ *
+ * @param url 请求的url
+ * @param queries 请求的参数,在浏览器?后面的数据,没有可以传null
+ * @return
+ */
+ public String get(String url, Map queries, Map headerParams) {
+ String responseBody = "";
+ StringBuffer sb = new StringBuffer(url);
+ if (queries != null && queries.keySet().size() > 0) {
+ boolean firstFlag = true;
+ Iterator iterator = queries.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ if (firstFlag) {
+ sb.append("?" + entry.getKey() + "=" + entry.getValue());
+ firstFlag = false;
+ } else {
+ sb.append("&" + entry.getKey() + "=" + entry.getValue());
+ }
+ }
+ }
+
+ Request.Builder requestBuilder = new Request.Builder().url(url);
+
+ if(headerParams != null){
+ for(Map.Entry entry : headerParams.entrySet()) {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+ }
+
+
+ Request request = requestBuilder.url(sb.toString())
+ .build();
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ int status = response.code();
+ if (status == 200) {
+ return response.body().string();
+ }
+ } catch (Exception e) {
+ logger.error("okhttp put error >> ex = {}", ExceptionUtils.getStackTrace(e));
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
+ return responseBody;
+ }
+ /**
+ * post
+ *
+ * @param url 请求的url
+ * @param params post form 提交的参数
+ * @return
+ */
+ public String post(String url, Map params, Map headerParams) {
+ String responseBody = "";
+ FormBody.Builder builder = new FormBody.Builder();
+ //添加参数
+ if (params != null && params.keySet().size() > 0) {
+ for (String key : params.keySet()) {
+ builder.add(key, params.get(key));
+ }
+ }
+
+ Request.Builder requestBuilder = new Request.Builder().url(url);
+
+ for(Map.Entry entry : headerParams.entrySet()) {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+
+ Request request = requestBuilder.post(builder.build()).build();
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ int status = response.code();
+ if (status == 200) {
+ return response.body().string();
+ }
+ } catch (Exception e) {
+ logger.error("okhttp post error >> ex = {}", ExceptionUtils.getStackTrace(e));
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
+ return responseBody;
+ }
+
+ /**
+ 47
+ * 同步GET请求 带Authorization认证
+ 48
+ */
+
+ public String getAuthorization(String get_url, String json, String[] auth_base){
+
+
+ final String credential = Credentials.basic(auth_base[0], auth_base[1]);
+ String result = "";
+ String data_url = get_url + "?" + json;
+ Request request = new Request.Builder()
+ .url(data_url)
+ .header("Authorization", credential)
+ .get()
+ .build();
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ int status = response.code();
+ if (status == 200) {
+ return response.body().string();
+ }
+ } catch (Exception e) {
+ logger.error("okhttp post error >> ex = {}", ExceptionUtils.getStackTrace(e));
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
+ return result;
+
+ }
+
+ /**
+ * Post请求 带Authorization认证
+ * */
+ public String postAuthorization(String get_url, HashMap getData, String[] authBase){
+
+ String result = "";
+
+ final String credential = Credentials.basic(authBase[0], authBase[1]);
+
+ RequestBody fromBody = generateParametersForPost(getData).build();
+
+ Request request = new Request.Builder()
+ .url(get_url)
+ .header("Authorization", credential)
+ .post(fromBody)
+ .build();
+
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ int status = response.code();
+ if (status == 200) {
+ return response.body().string();
+ }
+ } catch (Exception e) {
+ logger.error("okhttp post error >> ex = {}", ExceptionUtils.getStackTrace(e));
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
+ return result;
+
+ }
+
+ //拼接参数
+ private static String generateParameters(HashMap parameters) {
+
+ String urlAttachment = "";
+
+ if(parameters.size()>0){
+
+ urlAttachment = "?";
+
+ Object[] keys = parameters.keySet().toArray();
+
+ for(Object key : keys)
+
+ urlAttachment += key.toString() + "=" + parameters.get(key).toString() + "&";
+
+ urlAttachment = urlAttachment.substring(0,urlAttachment.length()-1);
+ }
+
+ return urlAttachment;
+ }
+
+ //拼接参数用于POST请求
+
+ private static FormBody.Builder generateParametersForPost(HashMap parameters) {
+
+ FormBody.Builder builder = new FormBody.Builder();
+
+ if(parameters.size()>0){
+ Object[] keys = parameters.keySet().toArray();
+
+ for(Object key : keys){
+ Object ff = parameters.get(key);
+ String aa = parameters.get(key).toString();
+
+ builder.add(key.toString(),parameters.get(key).toString());
+ }
+ }
+
+ return builder;
+ }
+
+ /**
+ * 发送私密API请求
+ *
+ * @paramget_url请求地址
+ * @paramget_data 请求参数列表
+ * @return 返回JSON数据
+ */
+ private String auth_get(){
+ String result = "";
+ String api_key = "apikey";
+ String api_secret = "apisecret";
+ //认证信息
+ String[] baseAuth = {api_key,api_secret};
+ //请求的URL的参数
+ HashMap get_data = new HashMap<>();
+ get_data.put("page","1"); //page参数
+ get_data.put("name","test"); //name参数
+// result = getAuthorization("http://www.superl.org/page-about.html", get_data, baseAuth);
+ return result;
+ }
+
+ /**
+ * post
+ *
+ * @param url 请求的url
+ * @param headerParams post form 提交的参数
+ * @return
+ */
+ public String postForJson(String url, String json, Map headerParams) {
+ RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), json);
+ String responseBody = "";
+ Request.Builder requestBuilder = new Request.Builder().url(url);
+ for(Map.Entry entry : headerParams.entrySet()) {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+ Request request = requestBuilder.post(requestBody).build();
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ int status = response.code();
+ if (status == 200) {
+ return response.body().string();
+ }
+ } catch (Exception e) {
+ logger.error("okhttp post error >> ex = {}", ExceptionUtils.getStackTrace(e));
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
+ return responseBody;
+ }
+
+ /**
+ * post 上传文件
+ *
+ * @param url
+ * @param params
+ * @param fileType
+ * @return
+ */
+ public String postFile(String url, Map params, String fileType, Map headerParams) {
+ String responseBody = "";
+ MultipartBody.Builder builder = new MultipartBody.Builder();
+ //添加参数
+ if (params != null && params.keySet().size() > 0) {
+ for (String key : params.keySet()) {
+ if (params.get(key) instanceof File) {
+ File file = (File) params.get(key);
+ builder.addFormDataPart(key, file.getName(), RequestBody.create(MediaType.parse(fileType), file));
+ continue;
+ }
+ builder.addFormDataPart(key, params.get(key).toString());
+ }
+ }
+
+ Request.Builder requestBuilder = new Request.Builder();
+ for(Map.Entry entry : headerParams.entrySet()) {
+ requestBuilder.addHeader(entry.getKey(), entry.getValue());
+ }
+
+ Request request = requestBuilder.url(url).post(builder.build()).build();
+ Response response = null;
+ try {
+ response = okHttpClient.newCall(request).execute();
+ int status = response.code();
+ if (status == 200) {
+ return response.body().string();
+ }
+ } catch (Exception e) {
+ logger.error("okhttp postFile error >> ex = {}", ExceptionUtils.getStackTrace(e));
+ } finally {
+ if (response != null) {
+ response.close();
+ }
+ }
+ return responseBody;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java
new file mode 100644
index 00000000..cdffd907
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java
@@ -0,0 +1,69 @@
+package com.ydw.bat.wkflow.business_oa.webService.controller;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.tmsps.fk.common.util.JsonUtil;
+import com.ydw.bat.wkflow.business_activiti.dto.*;
+import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
+import com.ydw.bat.wkflow.business_main.datas.entity.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEntrustService;
+import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
+import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
+import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
+import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
+import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
+import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto;
+import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService;
+import org.activiti.engine.*;
+import org.activiti.engine.history.*;
+import org.activiti.engine.repository.ProcessDefinition;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.runtime.ProcessInstanceQuery;
+import org.activiti.engine.task.NativeTaskQuery;
+import org.activiti.engine.task.Task;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.tmsps.fk.common.base.action.BaseAction;
+import com.tmsps.fk.common.util.ChkUtil;
+import com.tmsps.fk.common.wrapper.WrapMapper;
+import com.tmsps.fk.common.wrapper.Wrapper;
+import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService;
+import com.ydw.bat.wkflow.util.activiti.ActivitiTools;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
+@Api(description = "WebService管理")
+@RestController
+public class WebServiceOAController extends BaseAction {
+
+ @Autowired
+ private WebServiceOAService webServiceOAService;
+
+ @ApiOperation(value = "发送待办接口(")
+ @PostMapping("/sendTodo")
+ public NotifyTodoAppResult sendTodo(){
+ return webServiceOAService.sendTodo(new NotifyTodoSendContext());
+ }
+}
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java
new file mode 100644
index 00000000..a465bdb6
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java
@@ -0,0 +1,10 @@
+package com.ydw.bat.wkflow.business_oa.webService.service;
+
+import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
+import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
+
+public interface WebServiceOAService {
+
+ NotifyTodoAppResult sendTodo(NotifyTodoSendContext notifyTodoSendContext);
+
+}
diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java
new file mode 100644
index 00000000..4896c4c2
--- /dev/null
+++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java
@@ -0,0 +1,94 @@
+package com.ydw.bat.wkflow.business_oa.webService.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ydw.bat.wkflow.business_oa.common.WebServiceConf;
+import com.ydw.bat.wkflow.business_oa.utils.OkHttpUtil;
+import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
+import com.ydw.bat.wkflow.business_oa.webService.todoContent.HEAD;
+import com.ydw.bat.wkflow.business_oa.webService.todoContent.JsonSend;
+import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext;
+import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult;
+import net.sf.json.JSONArray;
+import okhttp3.Credentials;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static java.awt.SystemColor.info;
+
+/**
+ * @Description: TODO
+ * @author: super_liu
+ * @date: 2021年09月08日 15:02
+ */
+@Service
+@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
+public class WebServiceOAServiceImpl implements WebServiceOAService {
+ private static final Logger log = LoggerFactory.getLogger(WebServiceOAServiceImpl.class);
+
+ private String sonar = "sonar";
+ private String info = "info:{},{}";
+ private String errMes = "异常信息:";
+
+ private String api_key = "OA";
+ private String api_secret = "TEST_oa201611241710";
+ //认证信息
+ private String[] baseAuth = {api_key,api_secret};
+ private String credentials = "";
+
+ @Autowired
+ private OkHttpUtil okHttpUtil;
+
+ public WebServiceOAServiceImpl(){
+ credentials = Credentials.basic(api_key,api_secret);
+ }
+
+ @Override
+ public NotifyTodoAppResult sendTodo(NotifyTodoSendContext notifyTodoSendContext){
+ NotifyTodoAppResult notifyTodoAppResult = new NotifyTodoAppResult();
+ String result = "";
+ SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
+ try {
+ HashMap map = new HashMap<>();
+ JsonSend jsonSend = new JsonSend();
+ HEAD head = new HEAD();
+ head.setACCOUNT("OA");
+ head.setBIZTRANSACTIONID("SYC_161320210206133219");
+ head.setCONSUMER("PCMS");
+ head.setCOUNT("1");
+ head.setPASSWORD("TEST_oa201611241710");
+ head.setSRVLEVEL("1");
+ List