dengzedong
2025-02-27 6205c22a959fbb3b69735f34af8d3316c4082a5d
提交 | 用户 | 时间
b368e6 1 package com.iailab.module.model.mcs.pre.service.impl;
2
3 import com.alibaba.fastjson.JSONArray;
4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 import com.iailab.framework.common.service.impl.BaseServiceImpl;
977edc 6 import com.iailab.framework.common.util.date.DateUtils;
b368e6 7 import com.iailab.module.model.mcs.pre.dao.MmItemResultJsonDao;
8 import com.iailab.module.model.mcs.pre.entity.MmItemResultJsonEntity;
9 import com.iailab.module.model.mcs.pre.service.MmItemResultJsonService;
10 import org.apache.commons.lang3.StringUtils;
11 import org.springframework.stereotype.Service;
91343d 12 import org.springframework.util.CollectionUtils;
b368e6 13
ca56f2 14 import java.math.BigDecimal;
1c9291 15 import java.util.*;
b368e6 16
17 /**
18  * @author PanZhibao
19  * @Description
20  * @createTime 2024年11月14日
21  */
22 @Service
23 public class MmItemResultJsonServiceImpl extends BaseServiceImpl<MmItemResultJsonDao, MmItemResultJsonEntity>
24         implements MmItemResultJsonService {
25
26     @Override
977edc 27     public List<Object[]> getData(String outputId, Date predictTime, String timeFormat) {
b368e6 28         List<Object[]> result = new ArrayList<>();
29         QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
30         wrapper.eq("outputid", outputId)
c73c87 31                 .eq("predicttime", DateUtils.format(predictTime,timeFormat));
b368e6 32         MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
33         if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
34             return result;
35         }
91343d 36         List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
37         if (CollectionUtils.isEmpty(valueList)) {
38             return result;
39         }
40         Calendar calendar = Calendar.getInstance();
41         calendar.setTime(predictTime);
42         valueList.forEach(value -> {
977edc 43             Object[] dv = {DateUtils.format(calendar.getTime(), timeFormat), value};
91343d 44             calendar.add(Calendar.MINUTE, 1);
45             result.add(dv);
b368e6 46         });
47         return result;
48     }
c4b37d 49
D 50     @Override
ca56f2 51     public List<Object[]> getData(String outputId, Date predictTime, String timeFormat, int scale) {
52         List<Object[]> result = new ArrayList<>();
53         QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
54         wrapper.eq("outputid", outputId)
55                 .eq("predicttime", DateUtils.format(predictTime,timeFormat));
56         MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
57         if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
58             return result;
59         }
60         List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
61         if (CollectionUtils.isEmpty(valueList)) {
62             return result;
63         }
64         Calendar calendar = Calendar.getInstance();
65         calendar.setTime(predictTime);
66         valueList.forEach(value -> {
67             Object[] dv = {DateUtils.format(calendar.getTime(), timeFormat), new BigDecimal(value).setScale(scale, BigDecimal.ROUND_HALF_UP)};
68             calendar.add(Calendar.MINUTE, 1);
69             result.add(dv);
70         });
71         return result;
72     }
73
74     @Override
b3674c 75     public double[] getSimpleData(String outputId, Date predictTime, int predictLength) {
76         double[] result = new double[predictLength];
77         QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
78         wrapper.eq("outputid", outputId)
79                 .eq("predicttime", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
80         MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
81         if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
82             return null;
83         }
84         List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
85         if (CollectionUtils.isEmpty(valueList)) {
86             return result;
87         }
88         for (int i = 0; i < predictLength; i++) {
89             result[i] = valueList.get(i);
90         }
91         return result;
92     }
93
94     @Override
807efb 95     public void insert(List<MmItemResultJsonEntity> resultJsonList) {
D 96         baseDao.insertBatch(resultJsonList);
97     }
1c9291 98
L 99     @Override
100     public void cleanResultJson(Map<String, Date> tMap) {
101         baseDao.cleanResultJson(tMap);
102     }
b368e6 103 }