From 24996ea75ec4ca3b7d154387bfe37ec9dd387255 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 29 五月 2025 14:40:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/admin/StSuggestSnapshotRecordController.java |  139 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 121 insertions(+), 18 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/admin/StSuggestSnapshotRecordController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/admin/StSuggestSnapshotRecordController.java
index b65e5d3..1be57c0 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/admin/StSuggestSnapshotRecordController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/admin/StSuggestSnapshotRecordController.java
@@ -1,40 +1,143 @@
 package com.iailab.module.model.mcs.sche.controller.admin;
 
 import com.iailab.framework.common.pojo.CommonResult;
-import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.module.data.api.ind.IndItemApi;
+import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
+import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
+import com.iailab.module.data.api.plan.PlanItemApi;
+import com.iailab.module.data.api.point.DataPointApi;
+import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
+import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
+import com.iailab.module.data.common.ApiDataQueryDTO;
+import com.iailab.module.data.common.ApiDataValueDTO;
+import com.iailab.module.model.api.mcs.McsApi;
+import com.iailab.module.model.api.mcs.dto.PreDataBarLineReqVO;
+import com.iailab.module.model.api.mcs.dto.PreDataBarLineRespVO;
+import com.iailab.module.model.common.enums.DataCategoryEnum;
+import com.iailab.module.model.common.utils.DateUtils;
 import com.iailab.module.model.mcs.sche.service.StSuggestSnapshotRecordService;
-import com.iailab.module.model.mcs.sche.vo.StSuggestSnapshotRecordChartReqVO;
 import com.iailab.module.model.mcs.sche.vo.StSuggestSnapshotRecordRespVO;
-import com.iailab.module.model.mcs.sche.vo.StSuggestSnapshotRecordSaveReqVO;
+import com.mysql.cj.util.TimeUtil;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
+import static com.iailab.module.model.common.utils.DateUtils.DATE_TIME_PATTERN;
 
+/**
+ * @author Jay
+ */
+@Tag(name = "调度建议快照")
+@RestController
+@RequestMapping("/model/suggest/snapshot/record")
 public class StSuggestSnapshotRecordController {
 
     @Autowired
     private StSuggestSnapshotRecordService stSuggestSnapshotRecordService;
 
-    @PostMapping("/create")
-    public CommonResult<Boolean> create(@Valid @RequestBody StSuggestSnapshotRecordSaveReqVO createReqVO) {
-        stSuggestSnapshotRecordService.create(createReqVO);
-        return success(true);
+    @Autowired
+    private DataPointApi dataPointApi;
+
+    @Autowired
+    private IndItemApi indItemApi;
+
+    @Autowired
+    private PlanItemApi planItemApi;
+
+    @Autowired
+    private McsApi mcsApi;
+
+
+    @GetMapping("/list")
+    @Parameter(name = "operationId", description = "操作id", required = true, example = "1024")
+    public CommonResult<List<StSuggestSnapshotRecordRespVO>> getListByOperationId(@RequestParam("operationId") String operationId) {
+        return success(stSuggestSnapshotRecordService.getListByOperationId(operationId));
     }
 
-    @PutMapping("/update")
-    public CommonResult<Boolean> update(@Valid @RequestBody StSuggestSnapshotRecordSaveReqVO updateReqVO) {
-        stSuggestSnapshotRecordService.update(updateReqVO);
-        return success(true);
-    }
+    @PostMapping("/getChartData")
+    public CommonResult<List<StSuggestSnapshotRecordRespVO>> getChartData(@RequestBody List<StSuggestSnapshotRecordRespVO> reqList){
+        reqList.forEach(item -> {
+            List<Object[]> dataList = new ArrayList<>();
+            if(DataCategoryEnum.DATAPOINT.getCode().equals(item.getDataType())){
+                ApiPointValueQueryDTO queryDTO = new ApiPointValueQueryDTO();
+                queryDTO.setPointNo(item.getDataNo());
+                queryDTO.setStart(item.getStartTime());
+                queryDTO.setEnd(item.getEndTime());
+                List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(queryDTO);
+                if (valueList != null && !valueList.isEmpty()){
+                    for (ApiPointValueDTO apiPointValueDTO : valueList) {
+                        Object[] data = new Object[2];
+                        data[0] = DateUtils.format(new Date(String.valueOf(apiPointValueDTO.getT())), DATE_TIME_PATTERN);
+                        data[1] = apiPointValueDTO.getV();
+                        dataList.add(data);
+                    }
+                }
+            } else if (DataCategoryEnum.IND.getCode().equals(item.getDataType())) {
+                ApiIndItemQueryDTO queryDTO = new ApiIndItemQueryDTO();
+                queryDTO.setItemNo(item.getDataNo());
+                queryDTO.setStart(item.getStartTime());
+                queryDTO.setEnd(item.getEndTime());
+                List<ApiIndItemValueDTO> valueList = indItemApi.queryIndItemHistoryValue(queryDTO);
+                if (valueList != null && !valueList.isEmpty()){
+                    for (ApiIndItemValueDTO apiIndItemValueDTO : valueList) {
+                        Object[] data = new Object[2];
+                        data[0] = DateUtils.format(new Date(apiIndItemValueDTO.getDataTime()), DATE_TIME_PATTERN);
+                        data[1] = apiIndItemValueDTO.getDataValue();
+                        dataList.add(data);
+                    }
+                }
+            } else if (DataCategoryEnum.PLAN.getCode().equals(item.getDataType())) {
+                ApiDataQueryDTO queryDTO = new ApiDataQueryDTO();
+                queryDTO.setItemNo(item.getDataNo());
+                queryDTO.setStart(item.getStartTime());
+                queryDTO.setEnd(item.getEndTime());
+                List<ApiDataValueDTO> valueList = planItemApi.queryPlanItemHistoryValue(queryDTO);
+                if (valueList != null && !valueList.isEmpty()){
+                    for (ApiDataValueDTO apiDataValueDTO : valueList) {
+                        Object[] data = new Object[2];
+                        data[0] = DateUtils.format(apiDataValueDTO.getDataTime(), DATE_TIME_PATTERN);
+                        data[1] = apiDataValueDTO.getDataValue();
+                        dataList.add(data);
+                    }
+                }
+            } else if (DataCategoryEnum.PREDICT_ITEM_N.getCode().equals(item.getDataType())) {
+                dataList = getPreDataList(item, "N");
+            }else if (DataCategoryEnum.PREDICT_ITEM_L.getCode().equals(item.getDataType())) {
+                dataList = getPreDataList(item, "L");
+            }else if (DataCategoryEnum.PREDICT_ITEM_C.getCode().equals(item.getDataType())) {
+                dataList = getPreDataList(item, "C");
+            }
+            item.setDataList(dataList);
 
-    @DeleteMapping("/delete")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    public CommonResult<Boolean> deleteTenant(@RequestParam("id") String id) {
-        stSuggestSnapshotRecordService.delete(id);
-        return success(true);
+        });
+        return success(reqList);
+    }
+    private List<Object[]> getPreDataList(StSuggestSnapshotRecordRespVO resVo, String type){
+        List<Object[]> dataList = new ArrayList<>();
+        PreDataBarLineReqVO reqVO  = new PreDataBarLineReqVO();
+        List<String> outIds = new ArrayList<>();
+        outIds.add(resVo.getDataNo());
+        reqVO.setOutIds(outIds);
+        reqVO.setStartTime(resVo.getStartTime());
+        reqVO.setEndTime(resVo.getEndTime());
+        PreDataBarLineRespVO result = mcsApi.getPreDataCharts(reqVO);
+        if (result == null || result.getDataViewList() == null || result.getDataViewList().isEmpty()){
+            return dataList;
+        }
+        if ("N".equals(type) && result.getDataViewList().get(0).getPreDataN()!=null){
+            dataList = result.getDataViewList().get(0).getPreDataN();
+        }else if ("L".equals(type) && result.getDataViewList().get(0).getPreDataL()!=null){
+            dataList = result.getDataViewList().get(0).getPreDataL();
+        }else if ("C".equals(type) && result.getDataViewList().get(0).getCurData()!=null){
+            dataList = result.getDataViewList().get(0).getCurData();
+        }
+        return dataList;
     }
 }

--
Gitblit v1.9.3