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