保时捷人员组织架构图修改、响应对象修改
parent
fdb7bac7f6
commit
01014bda04
|
@ -850,7 +850,7 @@ public class Util extends weaver.general.Util {
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
System.out.println("已存在文件:" + packageName + "." + className + ".java");
|
System.out.println("已存在文件:" + packageName + "." + className + ".java");
|
||||||
System.out.print("你想如何处理该文件:替换[r/ApiResult] 重命名[w/W] 跳过[n/N] ? ");
|
System.out.print("你想如何处理该文件:替换[r/R] 重命名[w/W] 跳过[n/N] ? ");
|
||||||
Scanner scanner = new Scanner(System.in);
|
Scanner scanner = new Scanner(System.in);
|
||||||
String next = scanner.next();
|
String next = scanner.next();
|
||||||
System.out.println(next);
|
System.out.println(next);
|
||||||
|
|
|
@ -2,11 +2,11 @@ package aiyh.utils.httpUtil;
|
||||||
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.annotation.JSONField;
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import org.apache.http.Header;
|
import org.apache.http.*;
|
||||||
|
import org.apache.http.params.HttpParams;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -15,11 +15,10 @@ import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author EBU7-dev1-ayh
|
* @author EBU7-dev1-ayh
|
||||||
* @date 2021/8/31 0031 17:16
|
* @date 2021/8/31 0031 17:16 http请求相应
|
||||||
* http请求相应
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ResponeVo {
|
public class ResponeVo implements HttpResponse {
|
||||||
/**
|
/**
|
||||||
* 相应状态码
|
* 相应状态码
|
||||||
*/
|
*/
|
||||||
|
@ -31,19 +30,30 @@ public class ResponeVo {
|
||||||
/**
|
/**
|
||||||
* 相应头信息
|
* 相应头信息
|
||||||
*/
|
*/
|
||||||
@JSONField(serialize = false)
|
|
||||||
private Header[] allHeaders;
|
|
||||||
private Locale locale;
|
private Locale locale;
|
||||||
|
|
||||||
private InputStream content;
|
private InputStream content;
|
||||||
|
|
||||||
private byte[] contentByteArr;
|
private byte[] contentByteArr;
|
||||||
|
|
||||||
private Map<String,Object> requestData;
|
private Map<String, Object> requestData;
|
||||||
|
|
||||||
|
|
||||||
|
private HttpResponse response;
|
||||||
|
|
||||||
public int getCode() {
|
public int getCode() {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setCode(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResponse(HttpResponse response) {
|
||||||
|
this.response = response;
|
||||||
|
}
|
||||||
|
|
||||||
public Map<String, Object> getRequestData() {
|
public Map<String, Object> getRequestData() {
|
||||||
return requestData;
|
return requestData;
|
||||||
}
|
}
|
||||||
|
@ -54,6 +64,7 @@ public class ResponeVo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据相应结果转化为map集合
|
* 根据相应结果转化为map集合
|
||||||
|
*
|
||||||
* @return 资源皇后的map集合
|
* @return 资源皇后的map集合
|
||||||
* @throws JsonProcessingException JSON转换异常
|
* @throws JsonProcessingException JSON转换异常
|
||||||
*/
|
*/
|
||||||
|
@ -64,6 +75,7 @@ public class ResponeVo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据相应结果,转化为实体类
|
* 根据相应结果,转化为实体类
|
||||||
|
*
|
||||||
* @param clazz 需要映射的实体类
|
* @param clazz 需要映射的实体类
|
||||||
* @param <T> 需要转换实体类的泛型
|
* @param <T> 需要转换实体类的泛型
|
||||||
* @return 转换后的实体类
|
* @return 转换后的实体类
|
||||||
|
@ -74,9 +86,9 @@ public class ResponeVo {
|
||||||
return mapper.readValue(this.getEntityString(), clazz);
|
return mapper.readValue(this.getEntityString(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据相应结果,转化为实体类
|
* 根据相应结果,转化为实体类
|
||||||
|
*
|
||||||
* @param <T> 需要转换实体类的泛型处理器
|
* @param <T> 需要转换实体类的泛型处理器
|
||||||
* @return 转换后的实体类
|
* @return 转换后的实体类
|
||||||
* @throws JsonProcessingException JSON转换异常
|
* @throws JsonProcessingException JSON转换异常
|
||||||
|
@ -88,6 +100,7 @@ public class ResponeVo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据相应结果转化为实体集合
|
* 根据相应结果转化为实体集合
|
||||||
|
*
|
||||||
* @param clazz 需要映射的实体类
|
* @param clazz 需要映射的实体类
|
||||||
* @param <T> 需要转换的实体类的泛型
|
* @param <T> 需要转换的实体类的泛型
|
||||||
* @return 转换后的实体类的集合
|
* @return 转换后的实体类的集合
|
||||||
|
@ -96,6 +109,46 @@ public class ResponeVo {
|
||||||
return JSON.parseArray(this.getEntityString(), clazz);
|
return JSON.parseArray(this.getEntityString(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatusLine getStatusLine() {
|
||||||
|
return this.response.getStatusLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStatusLine(StatusLine statusLine) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStatusLine(ProtocolVersion protocolVersion, int i) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStatusLine(ProtocolVersion protocolVersion, int i, String s) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStatusCode(int i) throws IllegalStateException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setReasonPhrase(String s) throws IllegalStateException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HttpEntity getEntity() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEntity(HttpEntity httpEntity) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public Locale getLocale() {
|
public Locale getLocale() {
|
||||||
return locale;
|
return locale;
|
||||||
}
|
}
|
||||||
|
@ -104,18 +157,92 @@ public class ResponeVo {
|
||||||
this.locale = locale;
|
this.locale = locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCode(int code) {
|
@Override
|
||||||
this.code = code;
|
public ProtocolVersion getProtocolVersion() {
|
||||||
|
return this.response.getProtocolVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean containsHeader(String s) {
|
||||||
|
return response.containsHeader(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Header[] getHeaders(String s) {
|
||||||
|
return response.getHeaders(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Header getFirstHeader(String s) {
|
||||||
|
return response.getFirstHeader(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Header getLastHeader(String s) {
|
||||||
|
return response.getLastHeader(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Header[] getAllHeaders() {
|
public Header[] getAllHeaders() {
|
||||||
return allHeaders;
|
return response.getAllHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAllHeaders(Header[] allHeaders) {
|
@Override
|
||||||
this.allHeaders = allHeaders;
|
public void addHeader(Header header) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addHeader(String s, String s1) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHeader(Header header) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHeader(String s, String s1) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHeaders(Header[] headers) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeHeader(Header header) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeHeaders(String s) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HeaderIterator headerIterator() {
|
||||||
|
return response.headerIterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HeaderIterator headerIterator(String s) {
|
||||||
|
return response.headerIterator(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Deprecated
|
||||||
|
public HttpParams getParams() {
|
||||||
|
return response.getParams();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setParams(HttpParams httpParams) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getEntityString() {
|
public String getEntityString() {
|
||||||
return entityString;
|
return entityString;
|
||||||
}
|
}
|
||||||
|
@ -128,6 +255,10 @@ public class ResponeVo {
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setContent(InputStream content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
public byte[] getContentByteArr() {
|
public byte[] getContentByteArr() {
|
||||||
return contentByteArr;
|
return contentByteArr;
|
||||||
}
|
}
|
||||||
|
@ -136,10 +267,6 @@ public class ResponeVo {
|
||||||
this.contentByteArr = contentByteArr;
|
this.contentByteArr = contentByteArr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setContent(InputStream content) {
|
|
||||||
this.content = content;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ResponeVo{" +
|
return "ResponeVo{" +
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
package aiyh.utils.httpUtil.httpAsync;
|
package aiyh.utils.httpUtil.httpAsync;
|
||||||
|
|
||||||
|
import aiyh.utils.httpUtil.ExtendedIOUtils;
|
||||||
|
import aiyh.utils.httpUtil.ResponeVo;
|
||||||
import org.apache.http.Header;
|
import org.apache.http.Header;
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
import org.apache.http.client.methods.HttpUriRequest;
|
import org.apache.http.client.methods.HttpUriRequest;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
import aiyh.utils.httpUtil.ExtendedIOUtils;
|
|
||||||
import aiyh.utils.httpUtil.ResponeVo;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author EBU7-dev1-ayh
|
* @author EBU7-dev1-ayh
|
||||||
* @date 2021/9/2 0002 22:55
|
* @date 2021/9/2 0002 22:55 async
|
||||||
* async
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +40,6 @@ public class HttpAsyncThread implements Callable<ResponeVo> {
|
||||||
Header[] allHeaders = response.getAllHeaders();
|
Header[] allHeaders = response.getAllHeaders();
|
||||||
Locale locale = response.getLocale();
|
Locale locale = response.getLocale();
|
||||||
responeVo.setLocale(locale);
|
responeVo.setLocale(locale);
|
||||||
responeVo.setAllHeaders(allHeaders);
|
|
||||||
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
||||||
responeVo.setCode(response.getStatusLine().getStatusCode());
|
responeVo.setCode(response.getStatusLine().getStatusCode());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
@ -6,7 +6,6 @@ import aiyh.utils.httpUtil.ResponeVo;
|
||||||
import aiyh.utils.httpUtil.util.HttpUtilParamInfo;
|
import aiyh.utils.httpUtil.util.HttpUtilParamInfo;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
import org.apache.http.Header;
|
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
import org.apache.http.client.methods.HttpUriRequest;
|
import org.apache.http.client.methods.HttpUriRequest;
|
||||||
|
@ -20,18 +19,16 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author EBU7-dev1-ayh
|
* @author EBU7-dev1-ayh
|
||||||
* @date 2021/9/2 0002 23:18
|
* @date 2021/9/2 0002 23:18 callback
|
||||||
* callback
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
public class HttpAsyncThreadCallBack implements Runnable {
|
public class HttpAsyncThreadCallBack implements Runnable {
|
||||||
|
private static final Logger log = Util.getLogger("http_util");
|
||||||
private final CloseableHttpClient httpClient;
|
private final CloseableHttpClient httpClient;
|
||||||
private final HttpUriRequest request;
|
private final HttpUriRequest request;
|
||||||
private final Consumer<ResponeVo> consumer;
|
private final Consumer<ResponeVo> consumer;
|
||||||
private String defaultEncoding = "UTF-8";
|
private String defaultEncoding = "UTF-8";
|
||||||
private static final Logger log = Util.getLogger("http_util");
|
|
||||||
|
|
||||||
private HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
private HttpUtilParamInfo httpUtilParamInfo = new HttpUtilParamInfo();
|
||||||
|
|
||||||
public HttpAsyncThreadCallBack(CloseableHttpClient httpClient, HttpUriRequest request, Consumer<ResponeVo> consumer) {
|
public HttpAsyncThreadCallBack(CloseableHttpClient httpClient, HttpUriRequest request, Consumer<ResponeVo> consumer) {
|
||||||
|
@ -54,11 +51,9 @@ public class HttpAsyncThreadCallBack implements Runnable {
|
||||||
|
|
||||||
response = httpClient.execute(request);
|
response = httpClient.execute(request);
|
||||||
HttpEntity entity = response.getEntity();
|
HttpEntity entity = response.getEntity();
|
||||||
Header[] allHeaders = response.getAllHeaders();
|
|
||||||
ResponeVo responeVo = new ResponeVo();
|
ResponeVo responeVo = new ResponeVo();
|
||||||
Locale locale = response.getLocale();
|
Locale locale = response.getLocale();
|
||||||
responeVo.setLocale(locale);
|
responeVo.setLocale(locale);
|
||||||
responeVo.setAllHeaders(allHeaders);
|
|
||||||
responeVo.setEntityString(EntityUtils.toString(entity, defaultEncoding));
|
responeVo.setEntityString(EntityUtils.toString(entity, defaultEncoding));
|
||||||
responeVo.setCode(response.getStatusLine().getStatusCode());
|
responeVo.setCode(response.getStatusLine().getStatusCode());
|
||||||
httpUtilParamInfo.setResponse(responeVo);
|
httpUtilParamInfo.setResponse(responeVo);
|
||||||
|
|
|
@ -33,19 +33,16 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author EBU7-dev1-ayh
|
* @author EBU7-dev1-ayh
|
||||||
* @date 2021/8/31 0031 17:16
|
* @date 2021/8/31 0031 17:16 http请求工具
|
||||||
* http请求工具
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
public class HttpStaticUtils {
|
public class HttpStaticUtils {
|
||||||
// 默认编码
|
|
||||||
public static String DEFAULT_ENCODING = "UTF-8";
|
|
||||||
|
|
||||||
private static final ToolUtil toolUtil = new ToolUtil();
|
|
||||||
|
|
||||||
// 线程池
|
// 线程池
|
||||||
public static final ThreadPoolExecutor executorService;
|
public static final ThreadPoolExecutor executorService;
|
||||||
|
private static final ToolUtil toolUtil = new ToolUtil();
|
||||||
|
// 默认编码
|
||||||
|
public static String DEFAULT_ENCODING = "UTF-8";
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// private final ExecutorService executorService = Executors.newFixedThreadPool(3);
|
// private final ExecutorService executorService = Executors.newFixedThreadPool(3);
|
||||||
|
@ -423,7 +420,6 @@ public class HttpStaticUtils {
|
||||||
Header[] allHeaders = response.getAllHeaders();
|
Header[] allHeaders = response.getAllHeaders();
|
||||||
Locale locale = response.getLocale();
|
Locale locale = response.getLocale();
|
||||||
responeVo.setLocale(locale);
|
responeVo.setLocale(locale);
|
||||||
responeVo.setAllHeaders(allHeaders);
|
|
||||||
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
||||||
responeVo.setCode(response.getStatusLine().getStatusCode());
|
responeVo.setCode(response.getStatusLine().getStatusCode());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
@ -39,8 +39,7 @@ import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author EBU7-dev1-ayh
|
* @author EBU7-dev1-ayh
|
||||||
* @date 2021/8/31 0031 17:16
|
* @date 2021/8/31 0031 17:16 http请求工具 与HttpStaticUtils使用相同,说明请查看HttpStaticUtils
|
||||||
* http请求工具 与HttpStaticUtils使用相同,说明请查看HttpStaticUtils
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -700,9 +699,9 @@ public class HttpUtils {
|
||||||
Header[] allHeaders = response.getAllHeaders();
|
Header[] allHeaders = response.getAllHeaders();
|
||||||
Locale locale = response.getLocale();
|
Locale locale = response.getLocale();
|
||||||
responeVo.setLocale(locale);
|
responeVo.setLocale(locale);
|
||||||
responeVo.setAllHeaders(allHeaders);
|
|
||||||
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
responeVo.setEntityString(EntityUtils.toString(entity, DEFAULT_ENCODING));
|
||||||
responeVo.setCode(response.getStatusLine().getStatusCode());
|
responeVo.setCode(response.getStatusLine().getStatusCode());
|
||||||
|
responeVo.setResponse(response);
|
||||||
httpUtilParamInfo.setResponse(responeVo);
|
httpUtilParamInfo.setResponse(responeVo);
|
||||||
httpUtilParamInfo.setResponseDate(new Date());
|
httpUtilParamInfo.setResponseDate(new Date());
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -61,4 +61,7 @@ public class HrmResourceDto {
|
||||||
|
|
||||||
/** 头像地址 */
|
/** 头像地址 */
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
|
/** 当前所属分部 */
|
||||||
|
private Integer subCompanyId;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,24 +27,28 @@ public interface OrgChartMapper {
|
||||||
*
|
*
|
||||||
* @param typeOfEmploymentField 人员自定义字段
|
* @param typeOfEmploymentField 人员自定义字段
|
||||||
* @return List<HrmResource> 返回的人员信息
|
* @return List<HrmResource> 返回的人员信息
|
||||||
* @author youHong.ai
|
* @author youHong.ai ******************************************
|
||||||
* ******************************************
|
|
||||||
*/
|
*/
|
||||||
@Select("select hrm.id, " +
|
@Select("select hrm.id, " +
|
||||||
|
" hrm.subcompanyid1 sub_company_id," +
|
||||||
" hrm.messagerurl avatar," +
|
" hrm.messagerurl avatar," +
|
||||||
" cus.$t{lastNameEnField} last_name, " +
|
" (case when cus.$t{lastNameEnField} is null then hrm.lastname " +
|
||||||
|
" else cus.$t{lastNameEnField} end) last_name, " +
|
||||||
" hrm.managerstr manager_str, " +
|
" hrm.managerstr manager_str, " +
|
||||||
" hrm.jobtitle job_title_id, " +
|
" hrm.jobtitle job_title_id, " +
|
||||||
" hrm.managerid manager_id, " +
|
" hrm.managerid manager_id, " +
|
||||||
" hrm.departmentid department_id, " +
|
" hrm.departmentid department_id, " +
|
||||||
" dept.DEPARTMENTNAME department_name, " +
|
" dept.DEPARTMENTNAME department_name, " +
|
||||||
" job.JOBTITLENAME job_title_name, " +
|
" job.JOBTITLENAME job_title_name, " +
|
||||||
" cus.$t{typeOfEmploymentFiled} type_of_employment " +
|
" cus1.$t{typeOfEmploymentFiled} type_of_employment " +
|
||||||
"from hrmresource hrm " +
|
"from hrmresource hrm " +
|
||||||
" inner join hrmjobtitles job on hrm.JOBTITLE = job.id " +
|
" inner join hrmjobtitles job on hrm.JOBTITLE = job.id " +
|
||||||
" inner join cus_fielddata cus on cus.ID = hrm.ID " +
|
" inner join cus_fielddata cus on cus.ID = hrm.ID " +
|
||||||
" and cus.SCOPE = 'HrmCustomFieldByInfoType' " +
|
" and cus.SCOPE = 'HrmCustomFieldByInfoType' " +
|
||||||
" and cus.SCOPEID = 1 " +
|
" and cus.SCOPEID = 1 " +
|
||||||
|
" inner join cus_fielddata cus1 on cus1.id = hrm.id" +
|
||||||
|
" and cus1.scope = 'HrmCustomFieldByInfoType' " +
|
||||||
|
" and cus1.scopeid = -1" +
|
||||||
" inner join hrmdepartment dept on dept.id = hrm.DEPARTMENTID " +
|
" inner join hrmdepartment dept on dept.id = hrm.DEPARTMENTID " +
|
||||||
"where hrm.status in (0, 1)")
|
"where hrm.status in (0, 1)")
|
||||||
List<HrmResource> selectAll(@ParamMapper("typeOfEmploymentFiled") String typeOfEmploymentField,
|
List<HrmResource> selectAll(@ParamMapper("typeOfEmploymentFiled") String typeOfEmploymentField,
|
||||||
|
@ -58,8 +62,7 @@ public interface OrgChartMapper {
|
||||||
*
|
*
|
||||||
* @param userId 当前用户id
|
* @param userId 当前用户id
|
||||||
* @return ShowPointOrAll 展示与否的人员信息
|
* @return ShowPointOrAll 展示与否的人员信息
|
||||||
* @author youHong.ai
|
* @author youHong.ai ******************************************
|
||||||
* ******************************************
|
|
||||||
*/
|
*/
|
||||||
@Select("select id,resources,show_all,show_type from uf_show_point_or_all " +
|
@Select("select id,resources,show_all,show_type from uf_show_point_or_all " +
|
||||||
"where concat(',',resources,',') like concat('%,',#{userId},',%')")
|
"where concat(',',resources,',') like concat('%,',#{userId},',%')")
|
||||||
|
|
|
@ -47,5 +47,8 @@ public class HrmResource {
|
||||||
/** 用工类型 */
|
/** 用工类型 */
|
||||||
private Integer typeOfEmployment;
|
private Integer typeOfEmployment;
|
||||||
|
|
||||||
|
/** 当前所属分部 */
|
||||||
|
private Integer subCompanyId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,9 +52,28 @@ public class OrgChartService {
|
||||||
//List<HrmResourceDto> hrmResourceDtoList = new ArrayList();
|
//List<HrmResourceDto> hrmResourceDtoList = new ArrayList();
|
||||||
AtomicReference<HrmResourceDto> currentUser = new AtomicReference<>();
|
AtomicReference<HrmResourceDto> currentUser = new AtomicReference<>();
|
||||||
/* ******************* 将pojo转换为Dto对象,对节点属性默认值赋值,找出当前用户并设置显示 ******************* */
|
/* ******************* 将pojo转换为Dto对象,对节点属性默认值赋值,找出当前用户并设置显示 ******************* */
|
||||||
List<HrmResourceDto> hrmResourceDtoList = hrmResourceList.stream().map(struct::hrmResourceToDto).peek(item -> Builder.startSet(item).with(HrmResourceDto::setShow, 0).with(HrmResourceDto::setShowBrother, 0).with(HrmResourceDto::setShowChildren, 0).endSet()).collect(Collectors.toList());
|
List<HrmResourceDto> hrmResourceDtoList = hrmResourceList.stream()
|
||||||
hrmResourceDtoList.stream().filter(item -> item.getId() == userId).forEach(item -> {
|
.map(struct::hrmResourceToDto)
|
||||||
Builder.startSet(item).with(HrmResourceDto::setShow, 1).with(HrmResourceDto::setShowBrother, 1).with(HrmResourceDto::setShowChildren, 1).with(HrmResourceDto::setCurrent, true).endSet();
|
.peek(item -> Builder.startSet(item)
|
||||||
|
.with(HrmResourceDto::setShow, 0)
|
||||||
|
.with(HrmResourceDto::setShowBrother, 0)
|
||||||
|
.with(HrmResourceDto::setShowChildren, 0)
|
||||||
|
.endSet())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
hrmResourceDtoList.stream()
|
||||||
|
.peek(item -> {
|
||||||
|
if (item.getManagerId() == userId) {
|
||||||
|
item.setShow(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.filter(item -> item.getId() == userId)
|
||||||
|
.forEach(item -> {
|
||||||
|
Builder.startSet(item)
|
||||||
|
.with(HrmResourceDto::setShow, 1)
|
||||||
|
.with(HrmResourceDto::setShowBrother, 1)
|
||||||
|
.with(HrmResourceDto::setShowChildren, 1)
|
||||||
|
.with(HrmResourceDto::setCurrent, true)
|
||||||
|
.endSet();
|
||||||
currentUser.set(item);
|
currentUser.set(item);
|
||||||
});
|
});
|
||||||
/* ******************* 系统管理员默认全部展开哦 ******************* */
|
/* ******************* 系统管理员默认全部展开哦 ******************* */
|
||||||
|
@ -73,21 +92,32 @@ public class OrgChartService {
|
||||||
parentId -> parentId == null || parentId <= 0)
|
parentId -> parentId == null || parentId <= 0)
|
||||||
.stream().peek(item -> Builder.startSet(item)
|
.stream().peek(item -> Builder.startSet(item)
|
||||||
.with(OrgChartNodeVo::setIsRoot, true)
|
.with(OrgChartNodeVo::setIsRoot, true)
|
||||||
.with(OrgChartNodeVo::setCurrentParent, true)
|
.with(OrgChartNodeVo::setCurrent, true)
|
||||||
.endSet())
|
.endSet())
|
||||||
.peek(item -> recursionChildrenNums(item, 0))
|
.peek(item -> recursionChildrenNums(item, 0))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
Assert.notNull(currentUser.get(), "not find current login user info!");
|
Assert.notNull(currentUser.get(), "not find current login user info!");
|
||||||
|
/* ******************* 根据当前登陆人的分部来过滤 ******************* */
|
||||||
|
hrmResourceDtoList = hrmResourceDtoList.stream()
|
||||||
|
.filter(item -> logInUser.getUserSubCompany1() == item.getSubCompanyId())
|
||||||
|
.collect(Collectors.toList());
|
||||||
/* ******************* 查找当前登陆人员的所有上级 ******************* */
|
/* ******************* 查找当前登陆人员的所有上级 ******************* */
|
||||||
String currentUserManagerStr = currentUser.get().getManagerStr();
|
String currentUserManagerStr = currentUser.get().getManagerStr();
|
||||||
if (Objects.isNull(currentUserManagerStr)) {
|
if (Objects.isNull(currentUserManagerStr)) {
|
||||||
currentUserManagerStr = "";
|
currentUserManagerStr = "";
|
||||||
}
|
}
|
||||||
currentUserManagerStr = Util.removeSeparator(currentUserManagerStr, ",");
|
currentUserManagerStr = Util.removeSeparator(currentUserManagerStr, ",");
|
||||||
List<Integer> currentUserManagerList = Arrays.stream(currentUserManagerStr.split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
List<Integer> currentUserManagerList = Arrays.stream(currentUserManagerStr.split(","))
|
||||||
|
.map(Integer::parseInt)
|
||||||
|
.collect(Collectors.toList());
|
||||||
/* ******************* 对当前用户的所有直接上级设置标识 ******************* */
|
/* ******************* 对当前用户的所有直接上级设置标识 ******************* */
|
||||||
hrmResourceDtoList.stream().filter(item -> currentUserManagerList.contains(item.getId())).forEach(item -> Builder.startSet(item).with(HrmResourceDto::setShowChildren, 1).with(HrmResourceDto::setCurrentParent, true).endSet());
|
hrmResourceDtoList.stream()
|
||||||
|
.filter(item -> currentUserManagerList.contains(item.getId()))
|
||||||
|
.forEach(item -> Builder.startSet(item)
|
||||||
|
.with(HrmResourceDto::setShowChildren, 1)
|
||||||
|
.with(HrmResourceDto::setCurrentParent, true)
|
||||||
|
.endSet());
|
||||||
|
|
||||||
/* ******************* 查询当前用户的是否全部展示或显示小红点的配置信息 ******************* */
|
/* ******************* 查询当前用户的是否全部展示或显示小红点的配置信息 ******************* */
|
||||||
ShowPointOrAll showPointOrAll = mapper.selectShowPointOrAll(userId);
|
ShowPointOrAll showPointOrAll = mapper.selectShowPointOrAll(userId);
|
||||||
|
@ -100,9 +130,15 @@ public class OrgChartService {
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
/* ******************* 转换dto为Vo并且设置根节点标识 ******************* */
|
/* ******************* 转换dto为Vo并且设置根节点标识 ******************* */
|
||||||
orgChartNodeVoList = hrmResourceDtoList.stream().map(struct::hrmResourceDtoToVo).peek(item -> {
|
orgChartNodeVoList = hrmResourceDtoList.stream()
|
||||||
|
.map(struct::hrmResourceDtoToVo)
|
||||||
|
.peek(item -> {
|
||||||
if (showPointOrAll.isShowAll()) {
|
if (showPointOrAll.isShowAll()) {
|
||||||
Builder.startSet(item).with(OrgChartNodeVo::setShow, 1).with(OrgChartNodeVo::setShowBrother, 1).with(OrgChartNodeVo::setShowChildren, 1).endSet();
|
Builder.startSet(item)
|
||||||
|
.with(OrgChartNodeVo::setShow, 1)
|
||||||
|
.with(OrgChartNodeVo::setShowBrother, 1)
|
||||||
|
.with(OrgChartNodeVo::setShowChildren, 1)
|
||||||
|
.endSet();
|
||||||
}
|
}
|
||||||
if (!showPointOrAll.isShowType()) {
|
if (!showPointOrAll.isShowType()) {
|
||||||
item.setType(-1);
|
item.setType(-1);
|
||||||
|
@ -110,7 +146,14 @@ public class OrgChartService {
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
}
|
}
|
||||||
return Util.listToTree(orgChartNodeVoList, OrgChartNodeVo::getId, OrgChartNodeVo::getManagerId, OrgChartNodeVo::getChildren, OrgChartNodeVo::setChildren, parentId -> parentId == null || parentId <= 0).stream().peek(item -> item.setIsRoot(true)).peek(item -> recursionChildrenNums(item, 0)).collect(Collectors.toList());
|
return Util.listToTree(orgChartNodeVoList, OrgChartNodeVo::getId,
|
||||||
|
OrgChartNodeVo::getManagerId, OrgChartNodeVo::getChildren,
|
||||||
|
OrgChartNodeVo::setChildren,
|
||||||
|
parentId -> parentId == null || parentId <= 0)
|
||||||
|
.stream()
|
||||||
|
.peek(item -> item.setIsRoot(true))
|
||||||
|
.peek(item -> recursionChildrenNums(item, 0))
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,7 @@ package weaver.xiao.commons.config.dao;
|
||||||
|
|
||||||
import weaver.conn.RecordSet;
|
import weaver.conn.RecordSet;
|
||||||
import weaver.general.Util;
|
import weaver.general.Util;
|
||||||
import weaver.xiao.commons.config.entity.DocImageFile;
|
import weaver.xiao.commons.config.entity.*;
|
||||||
import weaver.xiao.commons.config.entity.FieldMessage;
|
|
||||||
import weaver.xiao.commons.config.entity.MappingDetail;
|
|
||||||
import weaver.xiao.commons.config.entity.RequestMappingConfig;
|
|
||||||
import weaver.xiao.commons.config.enumtype.DataSourceEnum;
|
import weaver.xiao.commons.config.enumtype.DataSourceEnum;
|
||||||
import weaver.xiao.commons.exception.ValueDealException;
|
import weaver.xiao.commons.exception.ValueDealException;
|
||||||
import weaver.xiao.commons.utils.SqlUtil;
|
import weaver.xiao.commons.utils.SqlUtil;
|
||||||
|
@ -108,17 +105,22 @@ public class ConfigMappingCMD {
|
||||||
mappingDetails.add(mappingDetail);
|
mappingDetails.add(mappingDetail);
|
||||||
}
|
}
|
||||||
requestMappingConfig.setConfigDetail(mappingDetails);
|
requestMappingConfig.setConfigDetail(mappingDetails);
|
||||||
// //查询明细4的信息
|
try {
|
||||||
// RecordSet detail4RecordSet = new RecordSet();
|
|
||||||
// List<ResponseMapping> responseMappingList = new ArrayList<>();
|
//查询明细4的信息
|
||||||
// String queryDetail4Sql = "select responseFieldName,workflowField,mainOrDetail,detailTableId,workflowFieldName from uf_request_config_dt4 where mainid = ?";
|
RecordSet detail4RecordSet = new RecordSet();
|
||||||
// toolUtil.writeDebuggerLog("执行查询的明细sql query detail4Sql >>>>"+queryDetail4Sql+" mainId:"+mainId);
|
List<ResponseMapping> responseMappingList = new ArrayList<>();
|
||||||
// detail4RecordSet.executeQuery(queryDetail4Sql,mainId);
|
String queryDetail4Sql = "select responseFieldName,workflowField,mainOrDetail,detailTableId,workflowFieldName from uf_request_config_dt4 where mainid = ?";
|
||||||
// while (detail4RecordSet.next()){
|
toolUtil.writeDebuggerLog("执行查询的明细sql query detail4Sql >>>>" + queryDetail4Sql + " mainId:" + mainId);
|
||||||
// ResponseMapping responseMapping = sqlUtil.recordSetToEntityByEntity(detail4RecordSet, ResponseMapping.class);
|
detail4RecordSet.executeQuery(queryDetail4Sql, mainId);
|
||||||
// responseMappingList.add(responseMapping);
|
while (detail4RecordSet.next()) {
|
||||||
// }
|
ResponseMapping responseMapping = sqlUtil.recordSetToEntityByEntity(detail4RecordSet, ResponseMapping.class);
|
||||||
// requestMappingConfig.setResponseMappingList(responseMappingList);
|
responseMappingList.add(responseMapping);
|
||||||
|
}
|
||||||
|
requestMappingConfig.setResponseMappingList(responseMappingList);
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
|
||||||
|
}
|
||||||
requestMappingConfig.setConfigDetail(mappingDetails);
|
requestMappingConfig.setConfigDetail(mappingDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package weaver.xiao.commons.config.entity;
|
package weaver.xiao.commons.config.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import weaver.xiao.commons.utils.annotation.SqlFieldMapping;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author XiaoBokang
|
* @author XiaoBokang
|
||||||
|
@ -9,9 +10,19 @@ import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ResponseMapping {
|
public class ResponseMapping {
|
||||||
|
|
||||||
|
@SqlFieldMapping("responseFieldName")
|
||||||
private String responseFieldName;
|
private String responseFieldName;
|
||||||
|
|
||||||
|
@SqlFieldMapping("workflowField")
|
||||||
private String workflowField;
|
private String workflowField;
|
||||||
private String mainOrDetail;
|
|
||||||
|
@SqlFieldMapping("mainOrDetail")
|
||||||
|
private Integer mainOrDetail;
|
||||||
|
|
||||||
|
@SqlFieldMapping("detailTableId")
|
||||||
private String detailTableId;
|
private String detailTableId;
|
||||||
|
|
||||||
|
@SqlFieldMapping("workflowFieldName")
|
||||||
private String workflowFieldName;
|
private String workflowFieldName;
|
||||||
}
|
}
|
|
@ -5,11 +5,16 @@ import aiyh.utils.httpUtil.ResponeVo;
|
||||||
import aiyh.utils.httpUtil.util.HttpUtils;
|
import aiyh.utils.httpUtil.util.HttpUtils;
|
||||||
import basetest.BaseTest;
|
import basetest.BaseTest;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.api.youhong.ai.pcn.organization.orgchart.service.OrgChartService;
|
import com.api.youhong.ai.pcn.organization.orgchart.service.OrgChartService;
|
||||||
import com.api.youhong.ai.pcn.organization.orgchart.vo.OrgChartNodeVo;
|
import com.api.youhong.ai.pcn.organization.orgchart.vo.OrgChartNodeVo;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import ebu7common.youhong.ai.bean.Builder;
|
import ebu7common.youhong.ai.bean.Builder;
|
||||||
import ebu7common.youhong.ai.sftp.SftpConnectUtil;
|
import ebu7common.youhong.ai.sftp.SftpConnectUtil;
|
||||||
|
import org.apache.http.Header;
|
||||||
|
import org.apache.http.HeaderElement;
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
|
import org.apache.http.NameValuePair;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import weaver.conn.RecordSet;
|
import weaver.conn.RecordSet;
|
||||||
import weaver.general.GCONST;
|
import weaver.general.GCONST;
|
||||||
|
@ -41,6 +46,27 @@ import java.util.regex.Pattern;
|
||||||
public class TestOrganization extends BaseTest {
|
public class TestOrganization extends BaseTest {
|
||||||
|
|
||||||
|
|
||||||
|
public static String getFileName(HttpResponse response) {
|
||||||
|
Header contentHeader = response.getFirstHeader("Content-Disposition");
|
||||||
|
String filename = null;
|
||||||
|
if (contentHeader != null) {
|
||||||
|
HeaderElement[] values = contentHeader.getElements();
|
||||||
|
if (values.length == 1) {
|
||||||
|
NameValuePair param = values[0].getParameterByName("filename");
|
||||||
|
if (param != null) {
|
||||||
|
try {
|
||||||
|
//filename = new String(param.getValue().toString().getBytes(), "utf-8");
|
||||||
|
//filename=URLDecoder.decode(param.getValue(),"utf-8");
|
||||||
|
filename = param.getValue();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSftp() throws IOException {
|
public void testSftp() throws IOException {
|
||||||
SftpConnectUtil sftpConnectUtil = new SftpConnectUtil(
|
SftpConnectUtil sftpConnectUtil = new SftpConnectUtil(
|
||||||
|
@ -54,7 +80,6 @@ public class TestOrganization extends BaseTest {
|
||||||
System.out.println(hris_positionExport20221120);
|
System.out.println(hris_positionExport20221120);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGeOrganizationData() {
|
public void testGeOrganizationData() {
|
||||||
GetOrganizationResult getOrganizationResult = new GetOrganizationResult();
|
GetOrganizationResult getOrganizationResult = new GetOrganizationResult();
|
||||||
|
@ -67,7 +92,6 @@ public class TestOrganization extends BaseTest {
|
||||||
log.info(JSON.toJSONString(positionList));
|
log.info(JSON.toJSONString(positionList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testStaticLog() {
|
public void testStaticLog() {
|
||||||
log.info("哈哈哈好的方式");
|
log.info("哈哈哈好的方式");
|
||||||
|
@ -192,7 +216,6 @@ public class TestOrganization extends BaseTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOrgChart() {
|
public void testOrgChart() {
|
||||||
User user = new User(1);
|
User user = new User(1);
|
||||||
|
@ -200,4 +223,25 @@ public class TestOrganization extends BaseTest {
|
||||||
List<OrgChartNodeVo> orgChartTree = orgChartService.getOrgChartTree(user);
|
List<OrgChartNodeVo> orgChartTree = orgChartService.getOrgChartTree(user);
|
||||||
System.out.println(JSON.toJSONString(orgChartTree));
|
System.out.println(JSON.toJSONString(orgChartTree));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDownload() throws IOException {
|
||||||
|
HttpUtils httpUtils = new HttpUtils();
|
||||||
|
// String url = "http://e-sign-dev-yace-web-alb-1694614450.cn-north-1.elb.amazonaws.com.cn:8070/contract/download?appId=100000&signType=SHA256&sign=OEI4RDA5RjMwRTE3Qzk1ODI0RkM3OENCQTA3QzZEQUFBQTgwRjM5MDdDMkIzQTIxNDFERDkyNUI5RDVFRjc4Qg==×tamp=2022-12-07%2014:32:08&bizContent=JTdCJTIyZG9jTm8lMjIlM0ElMjJjMGY5YzhjYTk5OTQ0MzZjYThjY2Y0MWVmMTZkMDUzYSUyMiU3RA==";
|
||||||
|
String url = "https://apigwaws-lite.porsche-cloudservice.com/env-101/econtract/econtract/contract/api/v1/contract/download";
|
||||||
|
String heard = "{\"apikey\":\"TulQxnZSRKeHoQfmeZzOUzGn6KpTDkDK\",\"appId\":\"100001\",\"bizContent\":\"JTdCJTIyY29udHJhY3RObyUyMiUzQSUyMjAwZDBkNmFlYzFkOTQzNGE4YjFlZjc5YzZjODcwNWFmJTIyJTdE\",\"sign\":\"M0I2NjhGRjgwNDY2RjM4MjRBMTg4RUQ0QUU0MkEzOUVEQTAxNTZCRTgwRDE3NzQ3RkQxMzZGOEE1M0FCODRGOA==\",\"signType\":\"SHA256\",\"Content-Type\":\"application/json\",\"timestamp\":\"2022-12-07 17:38:07\"} ";
|
||||||
|
Map<String, String> map = JSONObject.parseObject(heard, Map.class);
|
||||||
|
FaRequestUtils.downContract(new HashMap<String, Object>() {{
|
||||||
|
put("contractNo", "00d0d6aec1d9434a8b1ef79c6c8705af");
|
||||||
|
}}, (map1, response) -> {
|
||||||
|
getFileName(response);
|
||||||
|
Header[] allHeaders = response.getAllHeaders();
|
||||||
|
for (Header allHeader : allHeaders) {
|
||||||
|
System.out.println(allHeader);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}, url);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue