From 153763807debc575d0ee05e8db7d9ad20a58071b Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期五, 17 一月 2025 17:34:47 +0800
Subject: [PATCH] 电力页面数据绑定接口: 调度模型最新结果查询  动态limit 查询时间范围内预测结果

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java |   95 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 89 insertions(+), 6 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java
index 3a38f00..abe0ee6 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java
@@ -17,6 +17,7 @@
 import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO;
 import com.iailab.module.model.mdk.vo.ItemVO;
 import com.iailab.module.model.mdk.vo.MergeItemVO;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -77,6 +78,34 @@
         return  mmPredictItemDao.selectById(id);
     }
 
+    @Override
+    public List<MmPredictItemRespVO> getDoubleOutPutsByItemNos(List<String> itemNos) {
+        List<Integer> resultType = new ArrayList<Integer>(){{
+           add(3);
+        }};
+        return getOutPutsByItemNosAndResultType(itemNos,resultType);
+    }
+
+    @Override
+    public List<MmPredictItemRespVO> getArrayOutPutsByItemNos(List<String> itemNos) {
+        List<Integer> resultType = new ArrayList<Integer>(){{
+            add(1);
+            add(2);
+        }};
+        return getOutPutsByItemNosAndResultType(itemNos,resultType);
+    }
+
+    public List<MmPredictItemRespVO> getOutPutsByItemNosAndResultType(List<String> itemNos,List<Integer> resultType) {
+        if (CollectionUtils.isEmpty(itemNos) || CollectionUtils.isEmpty(resultType)) {
+            return new ArrayList<>();
+        }
+        Map<String, Object> params = new HashMap(1);
+        params.put("itemNos", itemNos);
+        params.put("resultType", resultType);
+        List<MmPredictItemRespVO> list = mmPredictItemDao.getOutPutsByItemNosAndResultType(params);
+        return list;
+    }
+
     @DSTransactional(rollbackFor = Exception.class)
     @Override
     public void add(MmPredictItemDTO mmPredictItemDto) {
@@ -117,6 +146,14 @@
             MmPredictMergeItemEntity mMmPredictMergeItem = mmPredictItemDto.getMmPredictMergeItem();
             mMmPredictMergeItem.setItemid(predictItem.getId());
             mmPredictMergeItemService.savePredictMergeItem(mMmPredictMergeItem);
+            // 添加一条默认output
+            List<MmItemOutputEntity> mergeItemOutput = new ArrayList<>(1);
+            MmItemOutputEntity entity = new MmItemOutputEntity();
+            entity.setPointid(mmPredictItemDto.getPointId());
+            entity.setResultName(mmPredictItemDto.getMmPredictItem().getItemname());
+            entity.setResultstr("result");
+            mergeItemOutput.add(entity);
+            mmPredictItemDto.setMmItemOutputList(mergeItemOutput);
         }
         mmPredictItemDao.insert(predictItem);
         DmModuleItemEntity dmModuleItem = mmPredictItemDto.getDmModuleItem();
@@ -159,6 +196,19 @@
         } else if (itemType != null && ItemTypeEnum.MERGE_ITEM.getName().equals(itemType.getItemtypename())) {
             MmPredictMergeItemEntity mMmPredictMergeItem = mmPredictItemDto.getMmPredictMergeItem();
             mmPredictMergeItemService.update(mMmPredictMergeItem);
+            // 修改默认output
+            List<MmItemOutputEntity> mmItemOutputList = mmPredictItemDto.getMmItemOutputList();
+            if (CollectionUtils.isEmpty(mmItemOutputList)) {
+                mmItemOutputList = new ArrayList<>(1);
+                MmItemOutputEntity entity = new MmItemOutputEntity();
+                entity.setPointid(mmPredictItemDto.getPointId());
+                entity.setResultName(mmPredictItemDto.getMmPredictItem().getItemname());
+                entity.setResultstr("result");
+                mmItemOutputList.add(entity);
+                mmPredictItemDto.setMmItemOutputList(mmItemOutputList);
+            } else {
+                mmPredictItemDto.getMmItemOutputList().forEach(e -> e.setPointid(mmPredictItemDto.getPointId()));
+            }
         }
         DmModuleItemEntity dmModuleItem = mmPredictItemDto.getDmModuleItem();
         if (!"".equals(dmModuleItem.getId()) && dmModuleItem.getId() != null) {
@@ -166,11 +216,17 @@
         }
         mmItemOutputService.deleteByItemId(predictItem.getId());
         List<MmItemOutputEntity> mmItemOutput = mmPredictItemDto.getMmItemOutputList();
-        mmItemOutput.forEach(e -> {
-            e.setId(UUID.randomUUID().toString());
-            e.setItemid(predictItem.getId());
-        });
-        mmItemOutputService.saveMmItemOutput(mmItemOutput);
+        if (!CollectionUtils.isEmpty(mmItemOutput)) {
+            mmItemOutput.forEach(e -> {
+                // 尽量保存原有id
+                if (StringUtils.isBlank(e.getId())) {
+                    e.setId(UUID.randomUUID().toString());
+                }
+                e.setItemid(predictItem.getId());
+            });
+            mmItemOutputService.saveMmItemOutput(mmItemOutput);
+        }
+
 
         // 清空缓存
         clearCatch();
@@ -208,6 +264,9 @@
             mmPredictItemDto.setMmModelParamList(new ArrayList<>());
             mmPredictItemDto.setMmPredictMergeItem(new MmPredictMergeItemEntity());
             mmPredictItemDto.setMmPredictMergeItem(mmPredictMergeItemService.getByItemid(id));
+            if (!CollectionUtils.isEmpty(mmPredictItemDto.getMmItemOutputList())) {
+                mmPredictItemDto.setPointId(mmPredictItemDto.getMmItemOutputList().get(0).getPointid());
+            }
         }
         return mmPredictItemDto;
     }
@@ -251,7 +310,7 @@
     }
 
     @Override
-    public ItemVO getItemById(String itemId) {
+    public ItemVO getItemByIdFromCache(String itemId) {
         if (StringUtils.isBlank(itemId)) {
             return null;
         }
@@ -268,6 +327,30 @@
     }
 
     @Override
+    public ItemVO getItemById(String itemId) {
+        Map<String, Object> params = new HashMap<>(1);
+        params.put("ITEMID", itemId);
+        List<ItemVO> list = mmPredictItemDao.getItem(params);
+        if (CollectionUtils.isEmpty(list)) {
+            return null;
+        }
+        return list.get(0);
+    }
+
+    @Override
+    public ItemVO getItemByOutPutId(String outPutId) {
+        if (StringUtils.isBlank(outPutId)) {
+            return null;
+        }
+        MmItemOutputEntity outPutById = mmItemOutputService.getOutPutById(outPutId);
+        if (ObjectUtils.isEmpty(outPutById)) {
+            return null;
+        }
+        String itemId = outPutById.getItemid();
+        return getItemByIdFromCache(itemId);
+    }
+
+    @Override
     public MergeItemVO getMergeItemByItemId(String itemId) {
         if (StringUtils.isBlank(itemId)) {
             return null;

--
Gitblit v1.9.3