GetReportInfoFromWDService.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package cn.cslg.pas.service.permissions;
  2. import cn.cslg.pas.common.dto.WDLoginDTO;
  3. import cn.cslg.pas.common.vo.WDLoginVO;
  4. import cn.cslg.pas.exception.XiaoShiException;
  5. import com.alibaba.fastjson2.JSONObject;
  6. import com.google.gson.Gson;
  7. import okhttp3.MediaType;
  8. import okhttp3.OkHttpClient;
  9. import okhttp3.Request;
  10. import okhttp3.RequestBody;
  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("${WDSYS.account}")
  22. private String account;
  23. @Value("${WDSYS.password}")
  24. private String password;
  25. /**
  26. * 从维德系统获取案件基本信息
  27. * @param caseNo
  28. * @return
  29. * @throws IOException
  30. */
  31. public String getReportInfoFromWD(String caseNo) throws IOException {
  32. String token = "";
  33. String res = this.getTokenByWDLogin();
  34. if (StringUtils.isNotEmpty(res)) {
  35. WDLoginVO wdLoginVO = JSONObject.parseObject(res, WDLoginVO.class);
  36. if (StringUtils.isEmpty(wdLoginVO.getToken())) {
  37. throw new XiaoShiException("账号未登录");
  38. }
  39. token = wdLoginVO.getToken();
  40. }
  41. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  42. .connectTimeout(60, TimeUnit.SECONDS)
  43. .writeTimeout(60, TimeUnit.SECONDS)
  44. .readTimeout(60, TimeUnit.SECONDS)
  45. .build();
  46. Request request = new Request.Builder()
  47. .url(WDUrl + "/api/IPEasy/GetCaseInfo?CaseNo=" + caseNo)
  48. .addHeader("Authorization", "Bearer " + token)
  49. .get()
  50. .build();
  51. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  52. }
  53. //登录维德系统
  54. public String getTokenByWDLogin() throws IOException {
  55. WDLoginDTO vo = new WDLoginDTO();
  56. vo.setName(account);
  57. vo.setPassword(password);
  58. String param = new Gson().toJson(vo);
  59. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
  60. OkHttpClient okHttpClient = new OkHttpClient.Builder()
  61. .connectTimeout(60, TimeUnit.SECONDS)
  62. .writeTimeout(60, TimeUnit.SECONDS)
  63. .readTimeout(60, TimeUnit.SECONDS)
  64. .build();
  65. Request request = new Request.Builder()
  66. .url(WDUrl + "/api/account/Login")
  67. .post(requestBody)
  68. .build();
  69. return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
  70. }
  71. }