OutInterfaceService.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.common.model.PatentCell;
  3. import cn.cslg.pas.common.model.dto.GetClaimsInfoParamsDTO;
  4. import cn.cslg.pas.common.model.dto.GetDescriptionInfoParamsDTO;
  5. import cn.cslg.pas.common.model.dto.GetFuTuParamsDTO;
  6. import cn.cslg.pas.common.model.dto.GetSearchBiblioParamsDTO;
  7. import cn.cslg.pas.domain.PubNo;
  8. import com.google.gson.Gson;
  9. import lombok.RequiredArgsConstructor;
  10. import lombok.extern.slf4j.Slf4j;
  11. import okhttp3.MediaType;
  12. import okhttp3.OkHttpClient;
  13. import okhttp3.Request;
  14. import okhttp3.RequestBody;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.stereotype.Service;
  17. import java.io.IOException;
  18. import java.util.List;
  19. import java.util.Objects;
  20. import java.util.concurrent.TimeUnit;
  21. /**
  22. * 调用外部接口的Service类 PCS:权限系统
  23. *
  24. * @Author chenyu
  25. * @Date 2023/4/25
  26. */
  27. @RequiredArgsConstructor
  28. @Slf4j
  29. @Service
  30. public class OutInterfaceService {
  31. @Value("${authorUrl}")
  32. private String PCSUrl;
  33. @Value("${OPSUrl}")
  34. private String OPSUrl;
  35. @Value("${PASUrl}")
  36. private String PASUrl;
  37. @Value("${RMSUrl}")
  38. private String RMSUrl;
  39. /**
  40. * 根据人员名称模糊查询人员ids
  41. *
  42. * @param personName 人员名称
  43. * @return 返回人员ids
  44. */
  45. public String getPersonIdByNamePCS(String personName) throws IOException {
  46. OkHttpClient okHttpClient = new OkHttpClient();
  47. Request request = new Request.Builder()
  48. .url(PCSUrl + "/permission/api/system/getPersonIdByName?personName=" + personName)
  49. .get()
  50. .build();
  51. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  52. }
  53. public String getPersonIdByNamesPCS(List<String> personNames) throws IOException {
  54. String param = new Gson().toJson(personNames);
  55. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  56. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  57. .connectTimeout(60, TimeUnit.SECONDS)
  58. .writeTimeout(60, TimeUnit.SECONDS)
  59. .readTimeout(60, TimeUnit.SECONDS)
  60. .build();
  61. Request request = new Request.Builder()
  62. .url(PCSUrl + "/permission/api/system/getPersonIdByNames")
  63. .post(requestBody)
  64. .build();
  65. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  66. }
  67. /**
  68. * 根据人员ids查询人员列表
  69. *
  70. * @param ids 人员ids
  71. * @return 返回装载着人员列表数据的data的String
  72. */
  73. public String getPersonnelByIdsFromPCS(List<Integer> ids) throws IOException {
  74. String param = new Gson().toJson(ids);
  75. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  76. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  77. .connectTimeout(60, TimeUnit.SECONDS)
  78. .writeTimeout(60, TimeUnit.SECONDS)
  79. .readTimeout(60, TimeUnit.SECONDS)
  80. .build();
  81. Request request = new Request.Builder()
  82. .url(PCSUrl + "/permission/api/system/getPersonnelByIds")
  83. .post(requestBody)
  84. .build();
  85. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  86. }
  87. /**
  88. * 远程调用获取一批专利著录的接口
  89. *
  90. * @return
  91. */
  92. public String getSearchBiblio(GetSearchBiblioParamsDTO getSearchBiblioParamsDTO) throws IOException {
  93. //String param = new Gson().toJson(getSearchBiblioParamsDTO);
  94. //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  95. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  96. .connectTimeout(60, TimeUnit.SECONDS)
  97. .writeTimeout(60, TimeUnit.SECONDS)
  98. .readTimeout(60, TimeUnit.SECONDS)
  99. .build();
  100. Request request = new Request.Builder()
  101. .url(OPSUrl + "/api/OPSQuery/SearchBiblio?query=" + getSearchBiblioParamsDTO.getQuery() + "&start=" + getSearchBiblioParamsDTO.getStart() + "&end=" + getSearchBiblioParamsDTO.getEnd())
  102. .get()
  103. .build();
  104. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  105. }
  106. /**
  107. * 远程调用获取权要信息的接口
  108. *
  109. * @return
  110. */
  111. public String getClaimsInfo(GetClaimsInfoParamsDTO getClaimsInfoParamsDTO) throws IOException {
  112. //String param = new Gson().toJson(getClaimsInfoParamsDTO);
  113. //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  114. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  115. .connectTimeout(60, TimeUnit.SECONDS)
  116. .writeTimeout(60, TimeUnit.SECONDS)
  117. .readTimeout(60, TimeUnit.SECONDS)
  118. .build();
  119. Request request = new Request.Builder()
  120. .url(OPSUrl + "/api/OPSQuery/GetClaimsInfo?cc=" + getClaimsInfoParamsDTO.getCc() + "&number=" + getClaimsInfoParamsDTO.getNumber() + "&kind=" + getClaimsInfoParamsDTO.getKind())
  121. .get()
  122. .build();
  123. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  124. }
  125. /**
  126. * 远程调用获取说明书的接口
  127. *
  128. * @return
  129. */
  130. public String getDescriptionInfo(GetDescriptionInfoParamsDTO getDescriptionInfoParamsDTO) throws IOException {
  131. //String param = new Gson().toJson(getDescriptionInfoParamsDTO);
  132. //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  133. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  134. .connectTimeout(60, TimeUnit.SECONDS)
  135. .writeTimeout(60, TimeUnit.SECONDS)
  136. .readTimeout(60, TimeUnit.SECONDS)
  137. .build();
  138. Request request = new Request.Builder()
  139. .url(OPSUrl + "/api/OPSQuery/GetDescriptionInfo?cc=" + getDescriptionInfoParamsDTO.getCc() + "&number=" + getDescriptionInfoParamsDTO.getNumber() + "&kind=" + getDescriptionInfoParamsDTO.getKind())
  140. .get()
  141. .build();
  142. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  143. }
  144. /**
  145. * 远程调用获取Image信息的接口
  146. *
  147. * @return
  148. */
  149. public String getImagesInfo(PubNo pubNo) throws IOException {
  150. String pn = pubNo.getCountry() + pubNo.getNumber() + "." + pubNo.getKind();
  151. //String param = new Gson().toJson(pn);
  152. //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  153. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  154. .connectTimeout(60, TimeUnit.SECONDS)
  155. .writeTimeout(60, TimeUnit.SECONDS)
  156. .readTimeout(60, TimeUnit.SECONDS)
  157. .build();
  158. Request request = new Request.Builder()
  159. .url(OPSUrl + "/api/OPSQuery/GetImagesInfo?Pn=" + pn)
  160. .get()
  161. .build();
  162. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  163. }
  164. /**
  165. * 远程调用获取附件文件流的接口
  166. *
  167. * @return
  168. */
  169. public byte[] getPatentFile(GetFuTuParamsDTO getFuTuParamsDTO) throws IOException {
  170. //String param = new Gson().toJson(getFuTuParamsDTO);
  171. //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  172. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  173. .connectTimeout(60, TimeUnit.SECONDS)
  174. .writeTimeout(60, TimeUnit.SECONDS)
  175. .readTimeout(60, TimeUnit.SECONDS)
  176. .build();
  177. Request request = new Request.Builder()
  178. .url(OPSUrl + "/api/OPSQuery/GetPatentFile?link=" + getFuTuParamsDTO.getLink() + "&page=" + getFuTuParamsDTO.getPage() + "&type=" + getFuTuParamsDTO.getType())
  179. .get()
  180. .build();
  181. byte[] buffer = okHttpClient.newCall(request).execute().body().bytes();
  182. return buffer;
  183. }
  184. /**
  185. * @params 传对象
  186. * @title 导入专利
  187. * @description 导入专利
  188. * @author lrj
  189. */
  190. public String importPatents(PatentCell patentCell) throws IOException {
  191. OkHttpClient httpClient = new OkHttpClient.Builder()
  192. .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
  193. .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
  194. .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
  195. .build();
  196. String param = new Gson().toJson(patentCell);
  197. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  198. Request request = new Request.Builder()
  199. .url(PASUrl + "/api/v2/system/patentCellTODb")
  200. .post(requestBody)
  201. .build();
  202. return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
  203. }
  204. public String importAssoReportPatentNo(Integer reportId, String patentNo, String name, Integer asCompare) throws IOException {
  205. if (asCompare == null) {
  206. asCompare = 0;
  207. }
  208. OkHttpClient httpClient = new OkHttpClient.Builder()
  209. .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
  210. .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
  211. .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
  212. .build();
  213. Request request = new Request.Builder()
  214. .url(RMSUrl + "/api/report/api/compare/addSingle?reportId=" + reportId + "&patentNo=" + patentNo + "&name=" + name + "&asCompare=" + asCompare)
  215. .get()
  216. .build();
  217. return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
  218. }
  219. public String getReportsFromRMS(List<Integer> reportIds) throws IOException {
  220. String param = new Gson().toJson(reportIds);
  221. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  222. OkHttpClient httpClient = new OkHttpClient.Builder()
  223. .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
  224. .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
  225. .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
  226. .build();
  227. Request request = new Request.Builder()
  228. .url(RMSUrl + "/api/report/api/report/getReportsByIds")
  229. .post(requestBody)
  230. .build();
  231. return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
  232. }
  233. public String getReportsFromRMS(String token) throws IOException {
  234. OkHttpClient httpClient = new OkHttpClient.Builder()
  235. .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
  236. .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
  237. .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
  238. .build();
  239. Request request = new Request.Builder()
  240. .url(RMSUrl + "/api/report/api/report/queryReportByPAS")
  241. .get()
  242. .addHeader("Cookie", token)
  243. .build();
  244. return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
  245. }
  246. }