GetReportInfoFromWDService.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package cn.cslg.wdc.service.common;
  2. import cn.cslg.wdc.common.exception.XiaoShiException;
  3. import cn.cslg.wdc.dto.common.GetBaseInfoByWDDTO;
  4. import cn.cslg.wdc.dto.common.GetCaseInfoByWDDTO;
  5. import cn.cslg.wdc.dto.common.GetPatentActionByWDDTO;
  6. import cn.cslg.wdc.dto.common.WDLoginDTO;
  7. import cn.cslg.wdc.vo.common.WDLoginVO;
  8. import com.alibaba.fastjson2.JSONObject;
  9. import com.google.gson.Gson;
  10. import okhttp3.*;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.stereotype.Service;
  14. import java.io.IOException;
  15. import java.util.Objects;
  16. import java.util.concurrent.TimeUnit;
  17. @Service
  18. public class GetReportInfoFromWDService {
  19. @Value("${WDUrl}")
  20. private String WDUrl;
  21. @Value("${WeiDeUrl}")
  22. private String WeiDeUrl;
  23. @Value("${WDSYS.account}")
  24. private String account;
  25. @Value("${WDSYS.password}")
  26. private String password;
  27. /**
  28. * 从维德系统获取案件基本信息
  29. * @param caseNo
  30. * @return
  31. * @throws IOException
  32. */
  33. public String getReportInfoFromWD(String caseNo) throws IOException {
  34. String token = "";
  35. String res = this.getTokenByWDLogin();
  36. if (StringUtils.isNotEmpty(res)) {
  37. WDLoginVO wdLoginVO = JSONObject.parseObject(res, WDLoginVO.class);
  38. if (StringUtils.isEmpty(wdLoginVO.getToken())) {
  39. throw new XiaoShiException("账号未登录");
  40. }
  41. token = wdLoginVO.getToken();
  42. }
  43. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  44. .connectTimeout(60, TimeUnit.SECONDS)
  45. .writeTimeout(60, TimeUnit.SECONDS)
  46. .readTimeout(60, TimeUnit.SECONDS)
  47. .build();
  48. Request request = new Request.Builder()
  49. .url(WDUrl + "/api/IPEasy/GetCaseInfo?CaseNo=" + caseNo)
  50. .addHeader("Authorization", "Bearer " + token)
  51. .get()
  52. .build();
  53. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  54. }
  55. //登录维德系统
  56. public String getTokenByWDLogin() throws IOException {
  57. WDLoginDTO vo = new WDLoginDTO();
  58. vo.setName(account);
  59. vo.setPassword(password);
  60. String param = new Gson().toJson(vo);
  61. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  62. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  63. .connectTimeout(60, TimeUnit.SECONDS)
  64. .writeTimeout(60, TimeUnit.SECONDS)
  65. .readTimeout(60, TimeUnit.SECONDS)
  66. .build();
  67. Request request = new Request.Builder()
  68. .url(WDUrl + "/api/account/Login")
  69. .post(requestBody)
  70. .build();
  71. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  72. }
  73. /**
  74. * 导出案件列表信息
  75. * @param cookie
  76. * @param uuid
  77. * @param number
  78. * @return
  79. * @throws IOException
  80. */
  81. public byte[] exportFileFromWD(String cookie, String uuid, String number) throws IOException {
  82. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  83. .connectTimeout(60, TimeUnit.SECONDS)
  84. .writeTimeout(60, TimeUnit.SECONDS)
  85. .readTimeout(60, TimeUnit.SECONDS)
  86. .build();
  87. Request request = new Request.Builder()
  88. .url(WeiDeUrl + "/FileHandlerNew.ashx?guid=" + uuid + "&file_size=" + number)
  89. .addHeader("Cookie", cookie)
  90. .get()
  91. .build();
  92. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).bytes();
  93. }
  94. /**
  95. * 获取下载页面
  96. * @param vo
  97. * @return
  98. * @throws IOException
  99. */
  100. public String getPatentActionByWD(GetPatentActionByWDDTO vo,String cookie) throws IOException {
  101. FormBody formBody = new FormBody.Builder()
  102. .add("Call", vo.getCall())
  103. .add("id", vo.getId())
  104. .add("pageSize", vo.getPageSize())
  105. .add("pageIndex", vo.getPageIndex())
  106. .add("_PK", vo.get_PK())
  107. .add("searchKey", vo.getSearchKey())
  108. .add("colsel", vo.getColsel())
  109. .add("log_pagename", vo.getLog_pagename())
  110. .build();
  111. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  112. .connectTimeout(60, TimeUnit.SECONDS)
  113. .writeTimeout(60, TimeUnit.SECONDS)
  114. .readTimeout(60, TimeUnit.SECONDS)
  115. .build();
  116. Request request = new Request.Builder()
  117. .url(WeiDeUrl + "/PatentAction.ashx")
  118. .addHeader("Cookie", cookie)
  119. .post(formBody)
  120. .build();
  121. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  122. }
  123. /**
  124. * 获取下载页面
  125. * @param vo
  126. * @return
  127. * @throws IOException
  128. */
  129. public String getBaseInfoByWD(GetBaseInfoByWDDTO vo, String cookie) throws IOException {
  130. FormBody formBody = new FormBody.Builder()
  131. .add("Call", vo.getCall())
  132. .add("file_no", vo.getFile_no())
  133. .add("file_name", vo.getFile_name())
  134. .add("model", vo.getModel())
  135. .add("log_pagename", vo.getLog_pagename())
  136. .build();
  137. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  138. .connectTimeout(60, TimeUnit.SECONDS)
  139. .writeTimeout(60, TimeUnit.SECONDS)
  140. .readTimeout(60, TimeUnit.SECONDS)
  141. .build();
  142. Request request = new Request.Builder()
  143. .url(WeiDeUrl + "/BaseInfo.ashx")
  144. .addHeader("Cookie", cookie)
  145. .post(formBody)
  146. .build();
  147. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  148. }
  149. /**
  150. * 获取案件处理事项
  151. * @param vo
  152. * @return
  153. * @throws IOException
  154. */
  155. public String getCaseInfoByWD(GetCaseInfoByWDDTO vo, String cookie) throws IOException {
  156. FormBody formBody = new FormBody.Builder()
  157. .add("Call", vo.getCall())
  158. .add("case_id", vo.getCase_id())
  159. .add("Recent", vo.getRecent())
  160. .add("tag", vo.getTag())
  161. .add("nofinish", vo.getNofinish())
  162. .add("proc_stage_pat", vo.getProc_stage_pat())
  163. .add("ctrlproc_class", vo.getCtrlproc_class())
  164. .add("pageSize", vo.getPageSize())
  165. .add("pageIndex", vo.getPageIndex())
  166. .add("_PK", vo.get_PK())
  167. .add("searchKey", vo.getSearchKey())
  168. .add("colsel", vo.getColsel())
  169. .add("log_pagename", vo.getLog_pagename())
  170. .build();
  171. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  172. .connectTimeout(60, TimeUnit.SECONDS)
  173. .writeTimeout(60, TimeUnit.SECONDS)
  174. .readTimeout(60, TimeUnit.SECONDS)
  175. .build();
  176. Request request = new Request.Builder()
  177. .url(WeiDeUrl + "/CaseInfo.ashx")
  178. .addHeader("Cookie", cookie)
  179. .post(formBody)
  180. .build();
  181. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  182. }
  183. }