123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package cn.cslg.pas.service.permissions;
- import cn.cslg.pas.common.dto.WDLoginDTO;
- import cn.cslg.pas.common.vo.WDLoginVO;
- import cn.cslg.pas.exception.XiaoShiException;
- import com.alibaba.fastjson2.JSONObject;
- import com.google.gson.Gson;
- import okhttp3.MediaType;
- import okhttp3.OkHttpClient;
- import okhttp3.Request;
- import okhttp3.RequestBody;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.util.Objects;
- import java.util.concurrent.TimeUnit;
- @Service
- public class GetReportInfoFromWDService {
- @Value("${WDUrl}")
- private String WDUrl;
- @Value("${WDSYS.account}")
- private String account;
- @Value("${WDSYS.password}")
- private String password;
- /**
- * 从维德系统获取案件基本信息
- * @param caseNo
- * @return
- * @throws IOException
- */
- public String getReportInfoFromWD(String caseNo) throws IOException {
- String token = "";
- String res = this.getTokenByWDLogin();
- if (StringUtils.isNotEmpty(res)) {
- WDLoginVO wdLoginVO = JSONObject.parseObject(res, WDLoginVO.class);
- if (StringUtils.isEmpty(wdLoginVO.getToken())) {
- throw new XiaoShiException("账号未登录");
- }
- token = wdLoginVO.getToken();
- }
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .connectTimeout(60, TimeUnit.SECONDS)
- .writeTimeout(60, TimeUnit.SECONDS)
- .readTimeout(60, TimeUnit.SECONDS)
- .build();
- Request request = new Request.Builder()
- .url(WDUrl + "/api/IPEasy/GetCaseInfo?CaseNo=" + caseNo)
- .addHeader("Authorization", "Bearer " + token)
- .get()
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- //登录维德系统
- public String getTokenByWDLogin() throws IOException {
- WDLoginDTO vo = new WDLoginDTO();
- vo.setName(account);
- vo.setPassword(password);
- String param = new Gson().toJson(vo);
- 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(WDUrl + "/api/account/Login")
- .post(requestBody)
- .build();
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
- }
- }
|