From a440ec3bfaa1363f5841100b8948d852971a2eb1 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期二, 10 十二月 2024 13:19:58 +0800
Subject: [PATCH] MmPredictAlarmConfigService

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java |   90 +++++++++++++-------------------------------
 1 files changed, 27 insertions(+), 63 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java
index b69168a..99455b0 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.iailab.framework.common.util.date.DateUtils;
 import com.iailab.module.model.mcs.pre.dao.MmItemResultDao;
 import com.iailab.module.model.mcs.pre.entity.MmItemResultEntity;
 import com.iailab.module.model.mcs.pre.entity.MmItemResultJsonEntity;
@@ -31,32 +32,6 @@
 
     @Autowired
     private MmItemResultDao mmItemResultDao;
-    
-    @Override
-    public List<MmItemResultEntity> getListByOutputId(String outputid, Map<String, Object> params) {
-
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        Date startDateParam = null;
-        try {
-            startDateParam = sdf.parse((String)params.get("startTime"));
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-        Date endDateParam = null;
-        try {
-            endDateParam = sdf.parse((String)params.get("endTime"));
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-
-        List<MmItemResultEntity> list = mmItemResultDao.selectList(
-                new QueryWrapper<MmItemResultEntity>()
-                        .eq("outputid", outputid)
-                        .between("datatime", startDateParam, endDateParam)
-                        .orderByAsc("datatime")
-        );
-        return list;
-    }
 
     @Override
     public void savePredictValue(Map<String, List<DataValueVO>> predictValueMap, int t, String nIndex, Date predictTime) {
@@ -75,9 +50,9 @@
 
             List<DataValueVO> lastVoList = new ArrayList<>();
             int size = entry.getValue().size();
-            t = t > 0 ? t : 0;
+            t = Math.max(t, 0);
             int n = "n".equals(nIndex) ? size : Integer.parseInt(nIndex);
-            int length = (n - t) > 0 ? (n - t) : 0; //预测完不变的数据长度
+            int length = Math.max((n - t), 0); //预测完不变的数据长度
             if (size >= n) {
                 for (int i = 0; i < (size - length); i ++) {
                     int index = length + i;
@@ -100,7 +75,10 @@
             resultJson.setId(UUID.randomUUID().toString());
             resultJson.setOutputid(entry.getKey());
             resultJson.setPredicttime(predictTime);
-            resultJson.setJsonvalue(JSONArray.toJSONString(entry.getValue()));
+            List<Double> jsonValueList = entry.getValue().stream().map(valueVO -> {
+                return valueVO.getDataValue();
+            }).collect(Collectors.toList());
+            resultJson.setJsonvalue(JSONArray.toJSONString(jsonValueList));
             Map<String, Object> map4 = new HashMap(2);
             map4.put("TABLENAME", "T_MM_ITEM_RESULT_JSON");
             map4.put("entity", resultJson);
@@ -112,41 +90,7 @@
             params.put("STARTTIME", importList.get(0).getDatatime());
             params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime());
             mmItemResultDao.deletePredictValue(params);
-
-
         }
-
-//        Map<String, Object> params = new HashMap(4);
-//        params.put("TABLENAME", T_MM_ITEM_RESULT);
-//        params.put("OUTPUTID", importList.get(0).getOutputid());
-//        params.put("STARTTIME", importList.get(0).getDatatime());
-//        params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime());
-//        mmItemResultDao.deletePredictValue(params);
-
-//        int num1 = importList.size() / max_group_count;
-//        int num2 = importList.size() % max_group_count;
-//        if (num2 != 0) {
-//            num1++;
-//        }
-//
-//        List<MmItemResultEntity> tempList;
-//        //先删除已经存在的数据,再插入新数据
-//        for (int i = 0; i < num1; i++) {
-//            int startIndex = max_group_count * i;
-//            int count = max_group_count;
-//            if (num2!=0 && i == num1 - 1) {
-//                count = num2;
-//            }
-//            tempList = new ArrayList<>();
-//            //获取某个索引范围内的对象集合
-//            for (int j = startIndex; j < startIndex + count; j++) {
-//                tempList.add(importList.get(j));
-//            }
-//            Map<String, Object> map2 = new HashMap<>(2);
-//            map2.put("TABLENAME", T_MM_ITEM_RESULT);
-//            map2.put("list", tempList);
-//            mmItemResultDao.savePredictValue(map2);
-//        }
         mmItemResultDao.insertBatch(importList,max_group_count);
 
         Map<String, Object> map3 = new HashMap<>(2);
@@ -174,4 +118,24 @@
         }).collect(Collectors.toList());
         return result;
     }
+
+    @Override
+    public List<Object[]> getData(String outputid, Date startTime, Date endTime, String timeFormat) {
+        List<Object[]> result = new ArrayList<>();
+        QueryWrapper<MmItemResultEntity> queryWrapper = new QueryWrapper<MmItemResultEntity>()
+                .eq("outputid", outputid)
+                .between("datatime", startTime, endTime)
+                .orderByAsc("datatime");
+        List<MmItemResultEntity> list = mmItemResultDao.selectList(queryWrapper);
+        if (CollectionUtils.isEmpty(list)) {
+            return result;
+        }
+        list.forEach(item -> {
+            Object[] dataItem = new Object[2];
+            dataItem[0] = DateUtils.format(item.getDatatime(), timeFormat);
+            dataItem[1] = item.getDatavalue().setScale(2, BigDecimal.ROUND_HALF_UP);
+            result.add(dataItem);
+        });
+        return result;
+    }
 }

--
Gitblit v1.9.3