潘志宝
8 天以前 b81a99285eed387c386e5220844d61dbcb424855
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.iailab.module.model.mcs.pre.service.impl;
 
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.model.mcs.pre.dao.MmItemResultJsonDao;
import com.iailab.module.model.mcs.pre.entity.MmItemResultJsonEntity;
import com.iailab.module.model.mcs.pre.service.MmItemResultJsonService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
 
import java.math.BigDecimal;
import java.util.*;
 
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年11月14日
 */
@Service
public class MmItemResultJsonServiceImpl extends BaseServiceImpl<MmItemResultJsonDao, MmItemResultJsonEntity>
        implements MmItemResultJsonService {
 
    @Override
    public List<Object[]> getData(String outputId, Date predictTime, String timeFormat) {
        List<Object[]> result = new ArrayList<>();
        QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
        wrapper.eq("outputid", outputId)
                .eq("predicttime", DateUtils.format(predictTime,timeFormat));
        MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
        if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
            return result;
        }
        List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
        if (CollectionUtils.isEmpty(valueList)) {
            return result;
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(predictTime);
        valueList.forEach(value -> {
            calendar.add(Calendar.MINUTE, 1);
            Object[] dv = {DateUtils.format(calendar.getTime(), timeFormat), value};
            result.add(dv);
        });
        return result;
    }
 
    @Override
    public List<Object[]> getData(String outputId, Date predictTime, String timeFormat, int scale) {
        List<Object[]> result = new ArrayList<>();
        QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
        wrapper.eq("outputid", outputId)
                .eq("predicttime", DateUtils.format(predictTime,timeFormat));
        MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
        if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
            return result;
        }
        List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
        if (CollectionUtils.isEmpty(valueList)) {
            return result;
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(predictTime);
        valueList.forEach(value -> {
            calendar.add(Calendar.MINUTE, 1);
            Object[] dv = {DateUtils.format(calendar.getTime(), timeFormat), new BigDecimal(value).setScale(scale, BigDecimal.ROUND_HALF_UP)};
            result.add(dv);
        });
        return result;
    }
 
    @Override
    public List<Object[]> getData(String outputId, Date predictTime, String timeFormat, int scale, Boolean isT1, Object curReal) {
        List<Object[]> result = new ArrayList<>();
        QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
        wrapper.eq("outputid", outputId)
                .eq("predicttime", DateUtils.format(predictTime,timeFormat));
        MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
        if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
            return result;
        }
        List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
        if (CollectionUtils.isEmpty(valueList)) {
            return result;
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(predictTime);
        if (isT1) {
            Object[] v0 = new Object[2];
            v0[0] = DateUtils.format(calendar.getTime(), timeFormat);
            v0[1] = curReal;
            result.add(v0);
            calendar.add(Calendar.MINUTE, 1);
        }
 
        valueList.forEach(value -> {
            Object[] dv = {DateUtils.format(calendar.getTime(), timeFormat), new BigDecimal(value).setScale(scale, BigDecimal.ROUND_HALF_UP)};
            calendar.add(Calendar.MINUTE, 1);
            result.add(dv);
        });
        return result;
    }
 
    @Override
    public double[] getSimpleData(String outputId, Date predictTime, int predictLength) {
        double[] result = new double[predictLength];
        QueryWrapper<MmItemResultJsonEntity> wrapper = new QueryWrapper<>();
        wrapper.eq("outputid", outputId)
                .eq("predicttime", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
        MmItemResultJsonEntity data = baseDao.selectOne(wrapper);
        if (data == null || StringUtils.isBlank(data.getJsonvalue())) {
            return null;
        }
        List<Double> valueList = JSONArray.parseArray(data.getJsonvalue(), Double.class);
        if (CollectionUtils.isEmpty(valueList)) {
            return result;
        }
        for (int i = 0; i < predictLength; i++) {
            result[i] = valueList.get(i);
        }
        return result;
    }
 
    @Override
    public void insert(List<MmItemResultJsonEntity> resultJsonList) {
        baseDao.insertBatch(resultJsonList);
    }
 
    @Override
    public void cleanResultJson(Map<String, Date> tMap) {
        baseDao.cleanResultJson(tMap);
    }
}