From e3b86d096f5fef3adb42dec3f9803de9f1840cf1 Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期四, 27 三月 2025 08:45:32 +0800
Subject: [PATCH] 新增计划修正接口

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java   |   50 +++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerRunStateDTO.java              |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/DataApi.java                   |   24 ++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java            |   30 +++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/package-info.java              |    1 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java        |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java                |    8 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/ApiPointValueDTO.java              |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/AlarmMessageRespDTO.java           |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataChartRespVO.java            |    2 
 /dev/null                                                                                      |   42 ----
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartRespVO.java           |    6 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/rpc/config/RpcConfiguration.java |    3 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java      |  289 ++++++++++++++++++++++++++++
 ansteel-biz/src/main/resources/application-dev.yaml                                            |   10 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanChartDTO.java                  |   69 ++++++
 16 files changed, 479 insertions(+), 63 deletions(-)

diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/AnSteelApi.java b/ansteel-api/src/main/java/com/iailab/module/api/mcs/AnSteelApi.java
deleted file mode 100644
index 5775b20..0000000
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/AnSteelApi.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.iailab.module.api.mcs;
-
-import com.iailab.module.api.mcs.dto.PowerRunStateDTO;
-import com.iailab.module.api.mcs.dto.PreDataChartRespVO;
-import com.iailab.module.enums.ApiConstants;
-import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-import java.util.List;
-
-/**
- * @author lirm
- * @Description
- * @createTime 2025年03月17日
- */
-@FeignClient(name = ApiConstants.NAME)
-@Tag(name = "RPC 服务 - 信息接口")
-public interface AnSteelApi {
-
-    String PREFIX = ApiConstants.PREFIX + "/api/mcs";
-
-    @GetMapping(PREFIX + "/power-run-state/list")
-    @Operation(summary = "发电厂机组运行情况")
-    List<PowerRunStateDTO> getPowerRunState();
-
-    @PostMapping(PREFIX + "/predict-data/charts")
-    @Operation(summary = "预测数据图表")
-    PreDataChartRespVO getPreDataChart(@RequestBody PreDataSingleChartReqVO reqVO);
-
-}
\ 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
deleted file mode 100644
index 022aa71..0000000
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java
+++ /dev/null
@@ -1,191 +0,0 @@
-package com.iailab.module.ansteel.api;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.iailab.framework.common.util.date.DateUtils;
-import com.iailab.framework.common.util.object.ConvertUtils;
-import com.iailab.module.ansteel.api.dao.PowerRunStateDao;
-import com.iailab.module.ansteel.common.constant.CommonConstant;
-import com.iailab.module.ansteel.common.enums.PreLineTypeEnum;
-import com.iailab.module.api.mcs.AnSteelApi;
-import com.iailab.module.api.mcs.dto.ApiPointValueDTO;
-import com.iailab.module.api.mcs.dto.PowerRunStateDTO;
-import com.iailab.module.api.mcs.dto.PreDataChartRespVO;
-import com.iailab.module.api.mcs.dto.PreDataViewDTO;
-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.*;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.ObjectUtils;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Slf4j
-@Service
-public class McsServiceImpl implements AnSteelApi {
-
-    @Autowired
-    private DataPointApi dataPointApi;
-
-    @Autowired
-    private McsApi mcsApi;
-
-    @Autowired
-    private PowerRunStateDao powerRunStateDao;
-
-    @Override
-    public List<PowerRunStateDTO> getPowerRunState() {
-        List<PowerRunStateDTO> list = ConvertUtils.sourceToTarget(powerRunStateDao.selectList(new QueryWrapper<>()), PowerRunStateDTO.class);
-        if (!CollectionUtils.isEmpty(list)) {
-            list.stream().map(item -> {
-                StringBuffer sb = new StringBuffer();
-                sb.append(item.getQhRate());
-                sb.append(",");
-                sb.append(item.getFhRate());
-                sb.append(",");
-                sb.append(item.getGasTotal());
-                sb.append(",");
-                sb.append(item.getGasCost());
-                sb.append(",");
-                sb.append(item.getGasSurplus());
-                sb.append(",");
-                sb.append(item.getBfg());
-                sb.append(",");
-                sb.append(item.getLdg());
-                sb.append(",");
-                sb.append(item.getCog());
-                String[] arr = sb.toString().split(",");
-                Map<String, Object> adjValue = dataPointApi.queryPointsRealValue(Arrays.asList(arr));
-                item.setQhRate(ObjectUtils.isEmpty(adjValue.get(arr[0])) ? "0" : new BigDecimal(adjValue.get(arr[0]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setFhRate(ObjectUtils.isEmpty(adjValue.get(arr[1])) ? "0" : new BigDecimal(adjValue.get(arr[1]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setGasTotal(ObjectUtils.isEmpty(adjValue.get(arr[2])) ? "0" : new BigDecimal(adjValue.get(arr[2]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setGasCost(ObjectUtils.isEmpty(adjValue.get(arr[3])) ? "0" : new BigDecimal(adjValue.get(arr[3]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setGasSurplus(ObjectUtils.isEmpty(adjValue.get(arr[4])) ? "0" : new BigDecimal(adjValue.get(arr[4]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setBfg(ObjectUtils.isEmpty(adjValue.get(arr[5])) ? "0" : new BigDecimal(adjValue.get(arr[5]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setLdg(ObjectUtils.isEmpty(adjValue.get(arr[6])) ? "0" : new BigDecimal(adjValue.get(arr[6]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-                item.setCog(ObjectUtils.isEmpty(adjValue.get(arr[7])) ? "0" : new BigDecimal(adjValue.get(arr[7]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
-
-                return item;
-            }).collect(Collectors.toList());
-        }
-        return list;
-    }
-
-    @Override
-    public PreDataChartRespVO getPreDataChart(PreDataSingleChartReqVO reqVO) {
-        Map<String, String> tMap = new HashMap<>();
-        List<ChartParamDTO> list = mcsApi.getChartParamList(reqVO.getChartCode());
-        if (CollectionUtils.isEmpty(list)) {
-            return null;
-        }
-        list.forEach(item -> {
-            tMap.put(item.getParamCode(), item.getParamValue());
-        });
-        String itemCode = tMap.get(CommonConstant.ITEM_CODE);
-        if (itemCode == null) {
-            return null;
-        }
-        String resultStr = tMap.get(CommonConstant.RESULT_STR);
-        if (resultStr == null) {
-            return null;
-        }
-        String resultIndex = tMap.get(CommonConstant.RESULT_INDEX);
-
-        PredictItemVO predictItem = mcsApi.getPredictItemByItemNo(itemCode);
-        if (predictItem == null || predictItem.getLastTime() == null) {
-            return null;
-        }
-        String timeFormat = StringUtils.isBlank(reqVO.getTimeFormat()) ? DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND : reqVO.getTimeFormat();
-        PreLineTypeEnum lineType = tMap.get(CommonConstant.LINE_TYPE) == null ? PreLineTypeEnum.TN : PreLineTypeEnum.getEumByCode(tMap.get(CommonConstant.LINE_TYPE));
-        int lengthLeft = tMap.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_LEFT)).intValue();
-        int lengthRight = tMap.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_RIGHT)).intValue();
-        String trendsDataH = tMap.get(CommonConstant.TRENDSDATA_H) == null ? null : tMap.get(CommonConstant.TRENDSDATA_H);
-        String trendsDataL = tMap.get(CommonConstant.TRENDSDATA_L) == null ? null : tMap.get(CommonConstant.TRENDSDATA_L);
-
-        Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight);
-        Date predictTime = timeArray[0];
-        Date startTime = timeArray[1];
-        Date endTime = timeArray[2];
-
-        PreDataChartRespVO result = ConvertUtils.sourceToTarget(mcsApi.getPreDataSingleChart(reqVO), PreDataChartRespVO.class);
-        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);
-            preDataView.setTrendsDataH(trendsDataHList);
-        }
-        if(trendsDataL != null) {
-            ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
-            pointValueQueryDTO.setPointNo(trendsDataL);
-            List<ApiPointValueDTO> trendsDataLList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class);
-            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)){
-                    preDataView.setPreData(mcsApi.getItemResult(preItemResultReqVO));
-                }else{
-                    preDataView.setPreData(mcsApi.getItemResult(preItemResultReqVO));
-                }
-
-                break;
-            case TL:
-                if(reqVO.getChartCode().equals(CommonConstant.LDG_CHARRCODE)){
-                    preDataView.setPreData(mcsApi.getItemResultLastPoint(preItemResultReqVO));
-                }else{
-                    preDataView.setPreData(mcsApi.getItemResultLastPoint(preItemResultReqVO));
-                }
-                break;
-            default:
-                break;
-        }
-        result.setPreDataView(preDataView);
-        return result;
-    }
-
-    private Date[] calResultTime(PredictItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {
-        Date[] result = new Date[3];
-        Date predictTime = predictItem.getLastTime();
-        Integer granularity = predictItem.getGranularity();
-        Date startTime = startTimeReq;
-        if (startTime == null) {
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(predictItem.getLastTime());
-            calendar.add(Calendar.SECOND, -1 * lengthLeft * granularity);
-            startTime = calendar.getTime();
-        }
-        Date endTime = endTimeReq;
-        if (endTime == null) {
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(predictItem.getLastTime());
-            calendar.add(Calendar.SECOND, lengthRight * granularity);
-            endTime = calendar.getTime();
-        }
-        if (endTime.getTime() <= startTime.getTime()) {
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(startTime);
-            calendar.add(Calendar.SECOND, lengthRight * granularity);
-            endTime = calendar.getTime();
-        }
-        result[0] = predictTime;
-        result[1] = startTime;
-        result[2] = endTime;
-        return result;
-    }
-
-}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java
new file mode 100644
index 0000000..ab1b968
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java
@@ -0,0 +1,50 @@
+package com.iailab.module.ansteel.api.controller.admin;
+
+import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.module.ansteel.api.dto.PlanDataChartReqVO;
+import com.iailab.module.ansteel.api.dto.PowerRunStateDTO;
+import com.iailab.module.ansteel.api.dto.PreDataChartRespVO;
+import com.iailab.module.ansteel.api.service.DataApi;
+import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+import static com.iailab.framework.common.pojo.CommonResult.success;
+
+/**
+ * @author: lirm
+ * @date: 2025/03/17
+ **/
+@RestController
+@RequestMapping("/ansteel/api/mcs")
+public class DataController {
+
+    @Autowired
+    private DataApi dataApi;
+
+    @GetMapping("/power-run-state/list")
+    @Operation(summary = "发电厂机组运行情况")
+    public CommonResult<List<PowerRunStateDTO>> getPowerRunState(@RequestParam Map<String, Object> params) {
+        List<PowerRunStateDTO> list = dataApi.getPowerRunState();
+        return success(list);
+    }
+
+    @PostMapping("/predict-data/charts")
+    @Operation(summary = "预测数据图表")
+    public CommonResult<PreDataChartRespVO> getPreDataChart(@RequestBody PreDataSingleChartReqVO reqVO) {
+        PreDataChartRespVO respVO = dataApi.getPreDataChart(reqVO);
+        return CommonResult.success(respVO);
+    }
+
+    @PostMapping("/plan-data/charts")
+    @Operation(summary = "计划数据图表")
+    public CommonResult<Map<String, Object>> getPlanDataChart(@RequestBody PlanDataChartReqVO reqVO) {
+        Map<String, Object> tMap = dataApi.getPlanDataChart(reqVO);
+        return CommonResult.success(tMap);
+    }
+
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/McsController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/McsController.java
deleted file mode 100644
index 0e47f9c..0000000
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/McsController.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.iailab.module.ansteel.api.controller.admin;
-
-import com.iailab.framework.common.pojo.CommonResult;
-import com.iailab.module.api.mcs.AnSteelApi;
-import com.iailab.module.api.mcs.dto.PowerRunStateDTO;
-import com.iailab.module.api.mcs.dto.PreDataChartRespVO;
-import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Map;
-
-import static com.iailab.framework.common.pojo.CommonResult.success;
-
-/**
- * @author: lirm
- * @date: 2025/03/17
- **/
-@RestController
-@RequestMapping("/ansteel/api/mcs")
-public class McsController {
-
-    @Autowired
-    private AnSteelApi anSteelApi;
-
-    @GetMapping("/power-run-state/list")
-    @Operation(summary = "发电厂机组运行情况")
-    public CommonResult<List<PowerRunStateDTO>> getPowerRunState(@RequestParam Map<String, Object> params) {
-        List<PowerRunStateDTO> list = anSteelApi.getPowerRunState();
-        return success(list);
-    }
-
-    @PostMapping("/predict-data/charts")
-    @Operation(summary = "预测数据图表")
-    public CommonResult<PreDataChartRespVO> getPreDataChart(@RequestBody PreDataSingleChartReqVO reqVO) {
-        PreDataChartRespVO respVO = anSteelApi.getPreDataChart(reqVO);
-        return CommonResult.success(respVO);
-    }
-
-}
\ No newline at end of file
diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/AlarmMessageRespDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/AlarmMessageRespDTO.java
similarity index 97%
rename from ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/AlarmMessageRespDTO.java
rename to ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/AlarmMessageRespDTO.java
index c5a5fca..695f1f2 100644
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/AlarmMessageRespDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/AlarmMessageRespDTO.java
@@ -1,4 +1,4 @@
-package com.iailab.module.api.mcs.dto;
+package com.iailab.module.ansteel.api.dto;
 
 /**
  * @author PanZhibao
diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/ApiPointValueDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/ApiPointValueDTO.java
similarity index 90%
rename from ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/ApiPointValueDTO.java
rename to ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/ApiPointValueDTO.java
index fdcbe4b..c6b9e0d 100644
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/ApiPointValueDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/ApiPointValueDTO.java
@@ -1,4 +1,4 @@
-package com.iailab.module.api.mcs.dto;
+package com.iailab.module.ansteel.api.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanChartDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanChartDTO.java
new file mode 100644
index 0000000..1065ce7
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanChartDTO.java
@@ -0,0 +1,69 @@
+package com.iailab.module.ansteel.api.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年11月03日
+ */
+
+public class PlanChartDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String itemNo;
+
+    private List<String> itemNos;
+
+    private Integer granularity;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date start;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date end;
+
+    public String getItemNo() {
+        return itemNo;
+    }
+
+    public void setItemNo(String itemNo) {
+        this.itemNo = itemNo;
+    }
+
+    public List<String> getItemNos() {
+        return itemNos;
+    }
+
+    public void setItemNos(List<String> itemNos) {
+        this.itemNos = itemNos;
+    }
+
+    public Integer getGranularity() {
+        return granularity;
+    }
+
+    public void setGranularity(Integer granularity) {
+        this.granularity = granularity;
+    }
+
+    public Date getStart() {
+        return start;
+    }
+
+    public void setStart(Date start) {
+        this.start = start;
+    }
+
+    public Date getEnd() {
+        return end;
+    }
+
+    public void setEnd(Date end) {
+        this.end = end;
+    }
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java
new file mode 100644
index 0000000..1e469a0
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java
@@ -0,0 +1,30 @@
+package com.iailab.module.ansteel.api.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author lirm
+ * @Description
+ * @createTime 2025年03月26日
+ */
+@Data
+public class PlanDataChartReqVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "图标编码")
+    private String chartCode;
+
+    @Schema(description = "开始时间")
+    private String startTime;
+
+    @Schema(description = "结束时间")
+    private String endTime;
+
+    @Schema(description = "预测时间")
+    private String predictTime;
+}
\ No newline at end of file
diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartRespVO.java
similarity index 87%
copy from ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java
copy to ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartRespVO.java
index f71e6f1..f541f01 100644
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartRespVO.java
@@ -1,4 +1,4 @@
-package com.iailab.module.api.mcs.dto;
+package com.iailab.module.ansteel.api.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.iailab.module.model.api.mcs.dto.PreDataViewRespDTO;
@@ -15,7 +15,7 @@
  * @createTime 2024年11月18日
  */
 @Data
-public class PreDataChartRespVO implements Serializable {
+public class PlanDataChartRespVO implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @Schema(description = "预测时间")
@@ -35,8 +35,6 @@
 
     @Schema(description = "X轴数据")
     private List<String> categories;
-
-    private PreDataViewRespDTO dataView;
 
     private PreDataViewDTO preDataView;
 
diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PowerRunStateDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerRunStateDTO.java
similarity index 91%
rename from ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PowerRunStateDTO.java
rename to ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerRunStateDTO.java
index 88c5309..3d22b89 100644
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PowerRunStateDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerRunStateDTO.java
@@ -1,4 +1,4 @@
-package com.iailab.module.api.mcs.dto;
+package com.iailab.module.ansteel.api.dto;
 
 import lombok.Data;
 
diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataChartRespVO.java
similarity index 95%
rename from ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java
rename to ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataChartRespVO.java
index f71e6f1..75a48ec 100644
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataChartRespVO.java
@@ -1,4 +1,4 @@
-package com.iailab.module.api.mcs.dto;
+package com.iailab.module.ansteel.api.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.iailab.module.model.api.mcs.dto.PreDataViewRespDTO;
diff --git a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataViewDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
similarity index 88%
rename from ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataViewDTO.java
rename to ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
index f439cb5..bb8c4d5 100644
--- a/ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataViewDTO.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewDTO.java
@@ -1,7 +1,6 @@
-package com.iailab.module.api.mcs.dto;
+package com.iailab.module.ansteel.api.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -81,9 +80,4 @@
     @Schema(description = "历史预测值")
     private List<Object[]> preData;
 
-    @Schema(description = "预警信息")
-    private String alarmMessage;
-
-    @Schema(description = "展示线类型")
-    private String lineType;
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/DataApi.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/DataApi.java
new file mode 100644
index 0000000..1bc0686
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/DataApi.java
@@ -0,0 +1,24 @@
+package com.iailab.module.ansteel.api.service;
+
+import com.iailab.module.ansteel.api.dto.PlanDataChartReqVO;
+import com.iailab.module.ansteel.api.dto.PlanDataChartRespVO;
+import com.iailab.module.ansteel.api.dto.PowerRunStateDTO;
+import com.iailab.module.ansteel.api.dto.PreDataChartRespVO;
+import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author lirm
+ * @Description
+ * @createTime 2025年03月17日
+ */
+public interface DataApi {
+
+    List<PowerRunStateDTO> getPowerRunState();
+
+    PreDataChartRespVO getPreDataChart(PreDataSingleChartReqVO reqVO);
+
+    Map<String, Object> getPlanDataChart(PlanDataChartReqVO reqVO);
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
new file mode 100644
index 0000000..6aaace5
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
@@ -0,0 +1,289 @@
+package com.iailab.module.ansteel.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.iailab.framework.common.util.date.DateUtils;
+import com.iailab.framework.common.util.object.ConvertUtils;
+import com.iailab.module.ansteel.api.dao.PowerRunStateDao;
+import com.iailab.module.ansteel.api.dto.*;
+import com.iailab.module.ansteel.api.service.DataApi;
+import com.iailab.module.ansteel.common.constant.CommonConstant;
+import com.iailab.module.data.api.plan.PlanItemApi;
+import com.iailab.module.data.api.plan.dto.ApiPlanDataDTO;
+import com.iailab.module.data.api.point.DataPointApi;
+import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
+import com.iailab.module.data.common.ApiDataQueryDTO;
+import com.iailab.module.model.api.mcs.McsApi;
+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;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class DataServiceImpl implements DataApi {
+
+    @Autowired
+    private DataPointApi dataPointApi;
+
+    @Autowired
+    private McsApi mcsApi;
+
+    @Autowired
+    private PlanItemApi planItemApi;
+
+    @Autowired
+    private PowerRunStateDao powerRunStateDao;
+
+    @Override
+    public List<PowerRunStateDTO> getPowerRunState() {
+        List<PowerRunStateDTO> list = ConvertUtils.sourceToTarget(powerRunStateDao.selectList(new QueryWrapper<>()), PowerRunStateDTO.class);
+        if (!CollectionUtils.isEmpty(list)) {
+            list.stream().map(item -> {
+                StringBuffer sb = new StringBuffer();
+                sb.append(item.getQhRate());
+                sb.append(",");
+                sb.append(item.getFhRate());
+                sb.append(",");
+                sb.append(item.getGasTotal());
+                sb.append(",");
+                sb.append(item.getGasCost());
+                sb.append(",");
+                sb.append(item.getGasSurplus());
+                sb.append(",");
+                sb.append(item.getBfg());
+                sb.append(",");
+                sb.append(item.getLdg());
+                sb.append(",");
+                sb.append(item.getCog());
+                String[] arr = sb.toString().split(",");
+                Map<String, Object> adjValue = dataPointApi.queryPointsRealValue(Arrays.asList(arr));
+                item.setQhRate(ObjectUtils.isEmpty(adjValue.get(arr[0])) ? "0" : new BigDecimal(adjValue.get(arr[0]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setFhRate(ObjectUtils.isEmpty(adjValue.get(arr[1])) ? "0" : new BigDecimal(adjValue.get(arr[1]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setGasTotal(ObjectUtils.isEmpty(adjValue.get(arr[2])) ? "0" : new BigDecimal(adjValue.get(arr[2]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setGasCost(ObjectUtils.isEmpty(adjValue.get(arr[3])) ? "0" : new BigDecimal(adjValue.get(arr[3]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setGasSurplus(ObjectUtils.isEmpty(adjValue.get(arr[4])) ? "0" : new BigDecimal(adjValue.get(arr[4]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setBfg(ObjectUtils.isEmpty(adjValue.get(arr[5])) ? "0" : new BigDecimal(adjValue.get(arr[5]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setLdg(ObjectUtils.isEmpty(adjValue.get(arr[6])) ? "0" : new BigDecimal(adjValue.get(arr[6]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+                item.setCog(ObjectUtils.isEmpty(adjValue.get(arr[7])) ? "0" : new BigDecimal(adjValue.get(arr[7]).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+
+                return item;
+            }).collect(Collectors.toList());
+        }
+        return list;
+    }
+
+    @Override
+    public PreDataChartRespVO getPreDataChart(PreDataSingleChartReqVO reqVO) {
+        Map<String, String> tMap = new HashMap<>();
+        List<ChartParamDTO> list = mcsApi.getChartParamList(reqVO.getChartCode());
+        if (CollectionUtils.isEmpty(list)) {
+            return null;
+        }
+        list.forEach(item -> {
+            tMap.put(item.getParamCode(), item.getParamValue());
+        });
+        String itemCode = tMap.get(CommonConstant.ITEM_CODE);
+        if (itemCode == null) {
+            return null;
+        }
+        String resultStr = tMap.get(CommonConstant.RESULT_STR);
+        if (resultStr == null) {
+            return null;
+        }
+        String resultIndex = tMap.get(CommonConstant.RESULT_INDEX);
+
+        PredictItemVO predictItem = mcsApi.getPredictItemByItemNo(itemCode);
+        if (predictItem == null || predictItem.getLastTime() == null) {
+            return null;
+        }
+        String timeFormat = StringUtils.isBlank(reqVO.getTimeFormat()) ? DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND : reqVO.getTimeFormat();
+        int lengthLeft = tMap.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_LEFT)).intValue();
+        int lengthRight = tMap.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_RIGHT)).intValue();
+        String trendsDataH = tMap.get(CommonConstant.TRENDSDATA_H) == null ? null : tMap.get(CommonConstant.TRENDSDATA_H);
+        String trendsDataL = tMap.get(CommonConstant.TRENDSDATA_L) == null ? null : tMap.get(CommonConstant.TRENDSDATA_L);
+
+        Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight);
+        Date startTime = timeArray[1];
+        Date endTime = timeArray[2];
+
+        PreDataSingleChartRespVO resultOld = mcsApi.getPreDataSingleChart(reqVO);
+        PreDataChartRespVO result = ConvertUtils.sourceToTarget(resultOld, PreDataChartRespVO.class);
+        PreDataViewDTO preDataView = ConvertUtils.sourceToTarget(resultOld.getDataView(), PreDataViewDTO.class);
+        if(trendsDataH != null) {
+            ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
+            pointValueQueryDTO.setPointNo(trendsDataH);
+            List<ApiPointValueDTO> trendsDataHList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class);
+            List<Object[]> newList = new ArrayList<>();
+            trendsDataHList.forEach(item -> {
+                Object[] dataItem = new Object[2];
+                dataItem[0] = item.getT();
+                dataItem[1] = item.getV();
+                newList.add(dataItem);
+            });
+            preDataView.setTrendsDataH(newList);
+        }
+        if(trendsDataL != null) {
+            ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
+            pointValueQueryDTO.setPointNo(trendsDataL);
+            List<ApiPointValueDTO> trendsDataLList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class);
+            List<Object[]> newList = new ArrayList<>();
+            trendsDataLList.forEach(item -> {
+                Object[] dataItem = new Object[2];
+                dataItem[0] = item.getT();
+                dataItem[1] = item.getV();
+                newList.add(dataItem);
+            });
+            preDataView.setTrendsDataL(newList);
+        }
+        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);
+
+        preDataView.setPreData(resultOld.getDataView().getPreDataL());
+
+        result.setPreDataView(preDataView);
+        return result;
+    }
+
+    private Date[] calResultTime(PredictItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {
+        Date[] result = new Date[3];
+        Date predictTime = predictItem.getLastTime();
+        Integer granularity = predictItem.getGranularity();
+        Date startTime = startTimeReq;
+        if (startTime == null) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(predictItem.getLastTime());
+            calendar.add(Calendar.SECOND, -1 * lengthLeft * granularity);
+            startTime = calendar.getTime();
+        }
+        Date endTime = endTimeReq;
+        if (endTime == null) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(predictItem.getLastTime());
+            calendar.add(Calendar.SECOND, lengthRight * granularity);
+            endTime = calendar.getTime();
+        }
+        if (endTime.getTime() <= startTime.getTime()) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(startTime);
+            calendar.add(Calendar.SECOND, lengthRight * granularity);
+            endTime = calendar.getTime();
+        }
+        result[0] = predictTime;
+        result[1] = startTime;
+        result[2] = endTime;
+        return result;
+    }
+    /**
+     *  查询原始计划、修正计划数据
+     */
+    @Override
+    public Map<String, Object> getPlanDataChart(PlanDataChartReqVO reqVO) {
+        Map<String, Object> result = new HashMap<>(2);
+        Map<String, String> tMap = new HashMap<>();
+        List<ChartParamDTO> list = mcsApi.getChartParamList(reqVO.getChartCode());
+        if (CollectionUtils.isEmpty(list)) {
+            return null;
+        }
+        list.forEach(item -> {
+            tMap.put(item.getParamCode(), item.getParamValue());
+        });
+        String planCode = tMap.get(CommonConstant.PLAN_CODE);
+        if (planCode == null) {
+            return null;
+        }
+
+        Date startTime = DateUtils.parse(reqVO.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+        Date endTime = DateUtils.parse(reqVO.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+        Date predictTime = DateUtils.parse(reqVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+        // 原始计划数据
+        LinkedHashMap<String, List<String[]>> planData = getRealPlanData(planCode, startTime, endTime, predictTime);
+
+        // 修正计划数据
+        LinkedHashMap<String, List<String[]>> predData = new LinkedHashMap<>();
+        predData.put(reqVO.getChartCode(), getPrePlanData(reqVO.getChartCode(), predictTime, endTime));
+        result.put("planData", planData);
+        result.put("predData", predData);
+        return result;
+    }
+
+    //原始计划
+    public LinkedHashMap<String, List<String[]>> getRealPlanData(String planCode, Date startTime, Date endTime, Date predictTime) {
+        LinkedHashMap<String, List<String[]>> result = new LinkedHashMap<>();
+        ApiDataQueryDTO apiDataQueryDTO = new ApiDataQueryDTO();
+        apiDataQueryDTO.setItemNo(planCode);
+        apiDataQueryDTO.setStart(startTime);
+        apiDataQueryDTO.setEnd(endTime);
+        LinkedHashMap<String, List<ApiPlanDataDTO>> planData = planItemApi.queryPlanItemRecordValue(apiDataQueryDTO);
+        planData.forEach((key, value) -> {
+            List<String[]> recods = new ArrayList<>();
+            if (!CollectionUtils.isEmpty(value)) {
+                value.forEach(item -> {
+                    String[] ri = new String[3];
+                    ri[0] = DateUtils.format(DateUtils.parse(item.getStartTime(), DateUtils.DATE_TIME_PATTERN_STRING), "yyyy-MM-dd HH:mm:00");
+                    ri[1] = DateUtils.format(DateUtils.parse(item.getEndTime(), DateUtils.DATE_TIME_PATTERN_STRING), "yyyy-MM-dd HH:mm:00");
+                    ri[2] = "2";
+                    if (DateUtils.parse(item.getStartTime(), "yyyyMMddHHmmss").getTime() < predictTime.getTime()) {
+                        ri[2] = "1";
+                    }
+                    recods.add(ri);
+                });
+            }
+            result.put(key, recods);
+        });
+        return result;
+    }
+
+    //修正计划
+    public List<String[]> getPrePlanData(String charCode, Date startTime, Date endTime) {
+        List<String[]> result = new ArrayList<>();
+        PreDataSingleChartReqVO queryDto = new PreDataSingleChartReqVO();
+        queryDto.setChartCode(charCode);
+        queryDto.setStartTime(startTime);
+        queryDto.setEndTime(startTime);
+        PreDataSingleChartRespVO chartData = mcsApi.getPreDataSingleChart(queryDto);
+        if (CollectionUtils.isEmpty(chartData.getDataView().getPreDataN())) {
+            return result;
+        }
+
+        double lastValue = 0;
+        for (int i = 0; i < chartData.getDataView().getPreDataN().size(); i++) {
+            Object[] dataItem = chartData.getDataView().getPreDataN().get(i);
+            double cv = new BigDecimal(dataItem[1].toString()).doubleValue();
+            if (cv == 1 && cv != lastValue) {
+                String[] sa = new String[3];
+                sa[0] = (String) dataItem[0];
+                sa[1] = getEndTime(chartData.getDataView().getPreDataN(), i);
+                sa[2] = "2";
+                result.add(sa);
+            }
+            lastValue = cv;
+        }
+        return result;
+    }
+
+    private String getEndTime(List<Object[]> preDataN, int startIndex) {
+        String endTime = "";
+        double lastValue = 1;
+        for (int i = startIndex; i < preDataN.size(); i++) {
+            Object[] dataItem = preDataN.get(i);
+            double cv = new BigDecimal(dataItem[1].toString()).doubleValue();
+            if (cv == 0 && cv != lastValue) {
+                return (String) dataItem[0];
+            }
+            lastValue = cv;
+        }
+        return endTime;
+    }
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/package-info.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/package-info.java
new file mode 100644
index 0000000..3763bbd
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/package-info.java
@@ -0,0 +1 @@
+package com.iailab.module.ansteel.api.service;
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
index 0f06e14..338ec1f 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
@@ -38,6 +38,8 @@
 
     String ITEM_CODE = "ITEM_CODE";
 
+    String PLAN_CODE = "PLAN_CODE";
+
     String ALARM_OBJ = "ALARM_OBJ";
 
     String PLAN_ITEM_LIST = "PLAN_ITEM_LIST";
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/rpc/config/RpcConfiguration.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/rpc/config/RpcConfiguration.java
index 2629374..89c7a4b 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/rpc/config/RpcConfiguration.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/framework/rpc/config/RpcConfiguration.java
@@ -1,5 +1,6 @@
 package com.iailab.module.ansteel.framework.rpc.config;
 
+import com.iailab.module.data.api.plan.PlanItemApi;
 import com.iailab.module.data.api.point.DataPointApi;
 import com.iailab.module.infra.api.config.ConfigApi;
 import com.iailab.module.infra.api.db.DataSourceConfigServiceApi;
@@ -12,6 +13,6 @@
 import org.springframework.context.annotation.Configuration;
 
 @Configuration(proxyBeanMethods = false)
-@EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class, DataPointApi.class})
+@EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class, DataPointApi.class, PlanItemApi.class})
 public class RpcConfiguration {
 }
diff --git a/ansteel-biz/src/main/resources/application-dev.yaml b/ansteel-biz/src/main/resources/application-dev.yaml
index ad9a6d7..aa12f9c 100644
--- a/ansteel-biz/src/main/resources/application-dev.yaml
+++ b/ansteel-biz/src/main/resources/application-dev.yaml
@@ -35,7 +35,7 @@
       primary: master
       datasource:
         master:
-          url: jdbc:mysql://172.16.8.100:3306/iailab_fast_tenant_ansteel?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+          url: jdbc:mysql://127.0.0.1:3306/iailab_fast_tenant_ansteel?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
           username: root
           password: 123456
         slave: # 模拟从库,可根据自己需要修改
@@ -57,10 +57,10 @@
   access-log: # 访问日志的配置项
     enable: false
   token:
-    base-url: http://127.0.0.1:48080/admin-api/system
-    tenant-id: 176
-    client-id: ansteel
-    client-secret: ansteel111111111111111
+    base-url: http://127.0.0.1:48080/admin-api #平台接口url,使用时需修改成真实的ip和端口
+    tenant-id: 176 #租户id
+    client-id: ansteel #租户OAuth2客户端id
+    client-secret: q3vY7K9PmFjW1xLbN6rTtZz2cV4B5sD0 #租户OAuth2客户端密钥
     username: ansteel
     password: 123456
 

--
Gitblit v1.9.3