123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- package cn.cslg.pas.service;
- import cn.cslg.pas.common.model.PatentCell;
- import cn.cslg.pas.common.model.dto.GetClaimsInfoParamsDTO;
- import cn.cslg.pas.common.model.dto.GetDescriptionInfoParamsDTO;
- import cn.cslg.pas.common.model.dto.GetFuTuParamsDTO;
- import cn.cslg.pas.common.model.dto.GetSearchBiblioParamsDTO;
- import cn.cslg.pas.domain.PubNo;
- import com.google.gson.Gson;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import okhttp3.MediaType;
- import okhttp3.OkHttpClient;
- import okhttp3.Request;
- import okhttp3.RequestBody;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.util.List;
- import java.util.Objects;
- import java.util.concurrent.TimeUnit;
- /**
- * 调用外部接口的Service类 PCS:权限系统
- *
- * @Author chenyu
- * @Date 2023/4/25
- */
- @RequiredArgsConstructor
- @Slf4j
- @Service
- public class OutInterfaceService {
- @Value("${authorUrl}")
- private String PCSUrl;
- @Value("${OPSUrl}")
- private String OPSUrl;
- @Value("${PASUrl}")
- private String PASUrl;
- @Value("${RMSUrl}")
- private String RMSUrl;
- /**
- * 根据人员名称模糊查询人员ids
- *
- * @param personName 人员名称
- * @return 返回人员ids
- */
- public String getPersonIdByNamePCS(String personName) throws IOException {
- OkHttpClient okHttpClient = new OkHttpClient();
- Request request = new Request.Builder()
- .url(PCSUrl + "/permission/api/system/getPersonIdByName?personName=" + personName)
- .get()
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- public String getPersonIdByNamesPCS(List<String> personNames) throws IOException {
- String param = new Gson().toJson(personNames);
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(PCSUrl + "/permission/api/system/getPersonIdByNames")
- .post(requestBody)
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- /**
- * 根据人员ids查询人员列表
- *
- * @param ids 人员ids
- * @return 返回装载着人员列表数据的data的String
- */
- public String getPersonnelByIdsFromPCS(List<Integer> ids) throws IOException {
- String param = new Gson().toJson(ids);
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(PCSUrl + "/permission/api/system/getPersonnelByIds")
- .post(requestBody)
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- /**
- * 远程调用获取一批专利著录的接口
- *
- * @return
- */
- public String getSearchBiblio(GetSearchBiblioParamsDTO getSearchBiblioParamsDTO) throws IOException {
- //String param = new Gson().toJson(getSearchBiblioParamsDTO);
- //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(OPSUrl + "/api/OPSQuery/SearchBiblio?query=" + getSearchBiblioParamsDTO.getQuery() + "&start=" + getSearchBiblioParamsDTO.getStart() + "&end=" + getSearchBiblioParamsDTO.getEnd())
- .get()
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- /**
- * 远程调用获取权要信息的接口
- *
- * @return
- */
- public String getClaimsInfo(GetClaimsInfoParamsDTO getClaimsInfoParamsDTO) throws IOException {
- //String param = new Gson().toJson(getClaimsInfoParamsDTO);
- //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(OPSUrl + "/api/OPSQuery/GetClaimsInfo?cc=" + getClaimsInfoParamsDTO.getCc() + "&number=" + getClaimsInfoParamsDTO.getNumber() + "&kind=" + getClaimsInfoParamsDTO.getKind())
- .get()
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- /**
- * 远程调用获取说明书的接口
- *
- * @return
- */
- public String getDescriptionInfo(GetDescriptionInfoParamsDTO getDescriptionInfoParamsDTO) throws IOException {
- //String param = new Gson().toJson(getDescriptionInfoParamsDTO);
- //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(OPSUrl + "/api/OPSQuery/GetDescriptionInfo?cc=" + getDescriptionInfoParamsDTO.getCc() + "&number=" + getDescriptionInfoParamsDTO.getNumber() + "&kind=" + getDescriptionInfoParamsDTO.getKind())
- .get()
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- /**
- * 远程调用获取Image信息的接口
- *
- * @return
- */
- public String getImagesInfo(PubNo pubNo) throws IOException {
- String pn = pubNo.getCountry() + pubNo.getNumber() + "." + pubNo.getKind();
- //String param = new Gson().toJson(pn);
- //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(OPSUrl + "/api/OPSQuery/GetImagesInfo?Pn=" + pn)
- .get()
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- /**
- * 远程调用获取附件文件流的接口
- *
- * @return
- */
- public byte[] getPatentFile(GetFuTuParamsDTO getFuTuParamsDTO) throws IOException {
- //String param = new Gson().toJson(getFuTuParamsDTO);
- //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(OPSUrl + "/api/OPSQuery/GetPatentFile?link=" + getFuTuParamsDTO.getLink() + "&page=" + getFuTuParamsDTO.getPage() + "&type=" + getFuTuParamsDTO.getType())
- .get()
- .build();
- byte[] buffer = okHttpClient.newCall(request).execute().body().bytes();
- return buffer;
- }
- /**
- * @params 传对象
- * @title 导入专利
- * @description 导入专利
- * @author lrj
- */
- public String importPatents(PatentCell patentCell) throws IOException {
- OkHttpClient httpClient = new OkHttpClient.Builder()
- .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
- .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
- .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
- .build();
- String param = new Gson().toJson(patentCell);
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- Request request = new Request.Builder()
- .url(PASUrl + "/api/v2/system/patentCellTODb")
- .post(requestBody)
- .build();
- return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
- }
- public String importAssoReportPatentNo(Integer reportId, String patentNo, String name, Integer asCompare) throws IOException {
- if (asCompare == null) {
- asCompare = 0;
- }
- OkHttpClient httpClient = new OkHttpClient.Builder()
- .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
- .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
- .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
- .build();
- Request request = new Request.Builder()
- .url(RMSUrl + "/api/report/api/compare/addSingle?reportId=" + reportId + "&patentNo=" + patentNo + "&name=" + name + "&asCompare=" + asCompare)
- .get()
- .build();
- return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
- }
- public String getReportsFromRMS(List<Integer> reportIds) throws IOException {
- String param = new Gson().toJson(reportIds);
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
- OkHttpClient httpClient = new OkHttpClient.Builder()
- .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
- .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
- .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
- .build();
- Request request = new Request.Builder()
- .url(RMSUrl + "/api/report/api/report/getReportsByIds")
- .post(requestBody)
- .build();
- return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
- }
- public String getReportsFromRMS(String token) throws IOException {
- OkHttpClient httpClient = new OkHttpClient.Builder()
- .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
- .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
- .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
- .build();
- Request request = new Request.Builder()
- .url(RMSUrl + "/api/report/api/report/queryReportByPAS")
- .get()
- .addHeader("Cookie", token)
- .build();
- return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
- }
- }
|