liulingling.177216
2024-08-26 349f1cfc5fa77fbc636d542df0d8050fddec48c2
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.dingzhuo.energy.project.benchmarking.service.impl;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.dingzhuo.energy.common.utils.DateUtils;
import com.dingzhuo.energy.common.utils.time.TimeManager;
import com.dingzhuo.energy.common.utils.time.TimeType;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dingzhuo.energy.project.benchmarking.mapper.BenchmarkingManagementMapper;
import com.dingzhuo.energy.project.benchmarking.domain.BenchmarkingManagement;
import com.dingzhuo.energy.project.benchmarking.service.IBenchmarkingManagementService;
 
/**
 * 标杆管理Service业务层处理
 * 
 * @author sys
 * @date 2020-12-21
 */
@Service
public class BenchmarkingManagementServiceImpl implements IBenchmarkingManagementService 
{
    private Logger logger = LogManager.getLogger(BenchmarkingManagementServiceImpl.class);
    @Autowired
    private BenchmarkingManagementMapper benchmarkingManagementMapper;
 
    /**
     * 查询标杆管理
     * 
     * @param indexId 标杆管理ID
     * @return 标杆管理
     */
    @Override
    public BenchmarkingManagement selectBenchmarkingManagementById(String indexId)
    {
        return benchmarkingManagementMapper.selectBenchmarkingManagementById(indexId);
    }
    @Override
    public List<BenchmarkingManagement> selectBenchmarkingList(List<String> indexIds,BenchmarkingManagement benchmarkingManagement)
    {
        if (indexIds.size() !=0) {
            return benchmarkingManagementMapper.selectBenchmarkingList(indexIds,benchmarkingManagement);
        }
        return Collections.emptyList();
    }
    /**
     * 查询标杆管理列表
     * 
     * @param
     * @return 标杆管理
     */
    @Override
    public List<BenchmarkingManagement> selectBenchmarkingManagementList(List<String> indexIds, Date dateTime, TimeType timeType)
    {
        if (indexIds.size() !=0) {
            String timeCode = TimeManager.getTimeCode(dateTime, timeType);
            return  benchmarkingManagementMapper.selectBenchmarkingManagementList(indexIds,timeCode);
        }
        return Collections.emptyList();
    }
 
    /**
     * 新增标杆管理
     * 
     * @param benchmarkingManagement 标杆管理
     * @return 结果
     */
    @Override
    public int insertBenchmarkingManagement(BenchmarkingManagement benchmarkingManagement)
    {
        benchmarkingManagement.setCreateTime(DateUtils.getNowDate());
        return benchmarkingManagementMapper.insertBenchmarkingManagement(benchmarkingManagement);
    }
 
    @Override
    public void save(List<BenchmarkingManagement> datas) {
        List<List<BenchmarkingManagement>> splitDatas = splitList(datas, 100);
        if (splitDatas != null) {
            splitDatas.parallelStream().forEach(dataPart -> {
                dataPart.parallelStream().forEach(dataItem -> {
                    try {
                        benchmarkingManagementMapper.save(dataItem);
                    } catch (Exception singleEx) {
                        logger.error("单个指标数据保存失败!【" + dataItem + "】", singleEx);
                    }
                });
            });
        }
    }
    /**
     * 修改标杆管理
     * 
     * @param benchmarkingManagement 标杆管理
     * @return 结果
     */
    @Override
    public int updateBenchmarkingManagement(BenchmarkingManagement benchmarkingManagement)
    {
        benchmarkingManagement.setUpdateTime(DateUtils.getNowDate());
        return benchmarkingManagementMapper.updateBenchmarkingManagement(benchmarkingManagement);
    }
 
    /**
     * 批量删除标杆管理
     * 
     * @param indexIds 需要删除的标杆管理ID
     * @return 结果
     */
    @Override
    public int deleteBenchmarkingManagementByIds(String[] indexIds)
    {
        return benchmarkingManagementMapper.deleteBenchmarkingManagementByIds(indexIds);
    }
 
    /**
     * 删除标杆管理信息
     * 
     * @param indexId 标杆管理ID
     * @return 结果
     */
    @Override
    public int deleteBenchmarkingManagementById(String indexId)
    {
        return benchmarkingManagementMapper.deleteBenchmarkingManagementById(indexId);
    }
    public static <E> List<List<E>> splitList(List<E> targetList, Integer splitSize) {
        if (targetList == null) {
            return Collections.emptyList();
        }
 
        int size = targetList.size();
        List<List<E>> resultList = new ArrayList<>();
        if (size <= splitSize) {
            resultList.add(targetList);
        } else {
            for (int i = 0; i < size; i += splitSize) {
                //用于限制最后一部分size小于splitSize的list
                int limit = i + splitSize;
                if (limit > size) {
                    limit = size;
                }
                resultList.add(targetList.subList(i, limit));
            }
        }
        return resultList;
    }
}