From dd0a874d305ce4173f6fa89500e5c746bafb7f4d Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期一, 24 三月 2025 16:37:33 +0800 Subject: [PATCH] 接口修改 --- /dev/null | 145 ------------------------------------------------ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java | 28 +++++---- ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java | 5 + 3 files changed, 20 insertions(+), 158 deletions(-) diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java b/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java index 318d4a8..f71e6f1 100644 --- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java +++ b/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java @@ -1,6 +1,7 @@ package com.iailab.module.api.mcs.dto; import com.fasterxml.jackson.annotation.JsonFormat; +import com.iailab.module.model.api.mcs.dto.PreDataViewRespDTO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -35,6 +36,8 @@ @Schema(description = "X轴数据") private List<String> categories; - private PreDataViewDTO dataView; + private PreDataViewRespDTO dataView; + + private PreDataViewDTO preDataView; } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java index 1610651..022aa71 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java @@ -14,10 +14,7 @@ import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; import com.iailab.module.model.api.mcs.McsApi; -import com.iailab.module.model.api.mcs.dto.ChartParamDTO; -import com.iailab.module.model.api.mcs.dto.MmItemOutputDTO; -import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO; -import com.iailab.module.model.api.mcs.dto.PredictItemVO; +import com.iailab.module.model.api.mcs.dto.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -117,40 +114,47 @@ Date endTime = timeArray[2]; PreDataChartRespVO result = ConvertUtils.sourceToTarget(mcsApi.getPreDataSingleChart(reqVO), PreDataChartRespVO.class); - PreDataViewDTO dataView = result.getDataView(); + PreDataViewRespDTO dataView = result.getDataView(); + PreDataViewDTO preDataView = ConvertUtils.sourceToTarget(dataView, PreDataViewDTO.class); if(trendsDataH != null) { ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); pointValueQueryDTO.setPointNo(trendsDataH); List<ApiPointValueDTO> trendsDataHList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class); - dataView.setTrendsDataH(trendsDataHList); + preDataView.setTrendsDataH(trendsDataHList); } if(trendsDataL != null) { ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); pointValueQueryDTO.setPointNo(trendsDataL); List<ApiPointValueDTO> trendsDataLList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class); - dataView.setTrendsDataL(trendsDataLList); + preDataView.setTrendsDataL(trendsDataLList); } MmItemOutputDTO outputDTO = mcsApi.getItemOutputByItemid(predictItem.getId(), resultStr, resultIndex); + + PreItemResultReqVO preItemResultReqVO = new PreItemResultReqVO(); + preItemResultReqVO.setOutputid(outputDTO.getId()); + preItemResultReqVO.setStartTime(startTime); + preItemResultReqVO.setEndTime(endTime); + preItemResultReqVO.setTimeFormat(timeFormat); switch (lineType) { case TN: if(reqVO.getChartCode().equals(CommonConstant.LDG_CHARRCODE)){ - dataView.setPreData(mcsApi.getItemResult(outputDTO.getId(), predictTime, endTime, timeFormat)); + preDataView.setPreData(mcsApi.getItemResult(preItemResultReqVO)); }else{ - dataView.setPreData(mcsApi.getItemResult(outputDTO.getId(), startTime, endTime, timeFormat)); + preDataView.setPreData(mcsApi.getItemResult(preItemResultReqVO)); } break; case TL: if(reqVO.getChartCode().equals(CommonConstant.LDG_CHARRCODE)){ - dataView.setPreData(mcsApi.getItemResultLastPoint(outputDTO.getId(), predictTime, endTime, timeFormat)); + preDataView.setPreData(mcsApi.getItemResultLastPoint(preItemResultReqVO)); }else{ - dataView.setPreData(mcsApi.getItemResultLastPoint(outputDTO.getId(), startTime, endTime, timeFormat)); + preDataView.setPreData(mcsApi.getItemResultLastPoint(preItemResultReqVO)); } break; default: break; } - result.setDataView(dataView); + result.setPreDataView(preDataView); return result; } diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/config/FeignTokenInterceptor.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/config/FeignTokenInterceptor.java deleted file mode 100644 index 2e45c51..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/config/FeignTokenInterceptor.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.iailab.module.ansteel.config; - -import com.iailab.module.ansteel.util.token.IailabClient; -import feign.RequestInterceptor; -import feign.RequestTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpHeaders; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -@Configuration -public class FeignTokenInterceptor implements RequestInterceptor { - - @Autowired - private IailabClient iailabClient; - - @Override - public void apply(RequestTemplate requestTemplate) { - // 从当前请求上下文中获取Token - String token = getTokenFromCurrentRequest(); - - if (token == null) { - // 如果没有获取到Token,从system-server中获取token - token = iailabClient.getToken(); - if (token!= null) { - requestTemplate.header(HttpHeaders.AUTHORIZATION, token); - } - Long tenantId = iailabClient.getTenantId(); - if (tenantId != null) { - requestTemplate.header("tenant-id", String.valueOf(tenantId)); - } - } - } - - private String getTokenFromCurrentRequest() { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (attributes!= null) { - return attributes.getRequest().getHeader(HttpHeaders.AUTHORIZATION); - } - return null; - } -} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/util/token/IailabClient.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/util/token/IailabClient.java deleted file mode 100644 index 974c1cd..0000000 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/util/token/IailabClient.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.iailab.module.ansteel.util.token; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Component; -import org.springframework.util.Assert; -import org.springframework.util.Base64Utils; -import org.springframework.util.ObjectUtils; -import org.springframework.web.client.RestTemplate; - -import java.nio.charset.StandardCharsets; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年11月21日 - */ -@Slf4j -@Component -public class IailabClient { - - /** - * 平台地址 - */ - @Value("${iailab.token.base-url}") - private String BASE_URL; - - /** - * 租户编号 - */ - @Value("${iailab.token.tenant-id}") - private String TENANT_ID; - - /** - * 客户端信息 - */ - @Value("${iailab.token.client-id}") - private String CLIENT_ID; - @Value("${iailab.token.client-secret}") - private String CLIENT_SECRET; - @Value("${iailab.token.username}") - private String USERNAME; - @Value("${iailab.token.password}") - private String PASSWORD; - private static final String GRAND_TYPE = "password"; - private static final String SCOPE = "user.read user.write"; - - - private static final RestTemplate restTemplate = new RestTemplate(); - - // 鉴权token - private String accessToken; - // 刷新token - private String refreshToken; - // 鉴权token过期时间 - private Long expireTime; - - /** - * 用户名密码方式获取平台token - */ - private synchronized void authenticate() { - log.info("获取平台token"); - // 1.1 构建请求头 - HttpHeaders headers = new HttpHeaders(); - addClientHeader(headers); - // 1.2 构建authenticate请求URL - String authenticateUrl = BASE_URL + "/oauth2/token?" - // 密码模式的参数 - + "grant_type=" + GRAND_TYPE - + "&username=" + USERNAME - + "&password=" + PASSWORD - + "&scope=" + SCOPE; - // 2. 执行请求 - ResponseEntity<Map<String, Object>> exchange = restTemplate.exchange( - authenticateUrl, - HttpMethod.POST, - new org.springframework.http.HttpEntity<>(headers), - new ParameterizedTypeReference<Map<String, Object>>() { - }); - Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功"); - log.info(exchange.toString()); - Map<String, Object> authMap = exchange.getBody(); - accessToken = authMap.get("access_token").toString(); - refreshToken = authMap.get("refresh_token").toString(); - expireTime = Long.valueOf(authMap.get("expires_time").toString()); - } - - private synchronized void refreshToken() { - log.info("刷新token"); - // 1.1 构建请求头 - HttpHeaders headers = new HttpHeaders(); - addClientHeader(headers); - // 1.2 构建authenticate请求URL - String authenticateUrl = BASE_URL + "/system/auth/client-refresh-token?refreshToken=" + refreshToken - + "&clientId=" + CLIENT_ID; - // 2. 执行请求 - ResponseEntity<Map<String, Object>> exchange = restTemplate.exchange( - authenticateUrl, - HttpMethod.POST, - new org.springframework.http.HttpEntity<>(headers), - new ParameterizedTypeReference<Map<String, Object>>() { - }); - Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功"); - Map<String, Object> authMap = exchange.getBody(); - //刷新token过期,重新获取token - if (!ObjectUtils.isEmpty(authMap.get("code"))) { - Integer code = Integer.valueOf(authMap.get("code").toString()); - if (code == 401) { - authenticate(); - } - } else { - accessToken = authMap.get("access_token").toString(); - expireTime = Long.valueOf(authMap.get("expires_time").toString()); - } - } - - private void addClientHeader(HttpHeaders headers) { - // client 拼接,需要 BASE64 编码 - String client = CLIENT_ID + ":" + CLIENT_SECRET; - client = Base64Utils.encodeToString(client.getBytes(StandardCharsets.UTF_8)); - headers.add("Authorization", "Basic " + client); - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - headers.set("tenant-id", getTenantId().toString()); - } - - public String getToken() { - //第一次请求或者token过期,需要重新获取token - if(ObjectUtils.isEmpty(accessToken)) { - authenticate(); - } else if (expireTime < System.currentTimeMillis() / 1000) { - refreshToken(); - } - - return accessToken; - } - public Long getTenantId() { - return Long.valueOf(TENANT_ID); - } -} \ No newline at end of file -- Gitblit v1.9.3