ustcyc
2025-01-07 de5d55508afd27fb2b47e6d4d6fd9984525c222c
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package com.zhitan.model.service.impl;
 
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhitan.common.constant.Constants;
import com.zhitan.common.core.redis.RedisCache;
import com.zhitan.common.utils.StringUtils;
import com.zhitan.model.domain.DaqTemplate;
import com.zhitan.model.mapper.DaqTemplateMapper;
import com.zhitan.model.service.IDaqTemplateService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
 
/**
 * 采集参数模板Service业务层处理
 *
 * @author ruoyi
 * @date 2020-02-08
 */
@Service
public class DaqTemplateServiceImpl implements IDaqTemplateService {
    @Resource
    private RedisCache cache;
    @Autowired
    private DaqTemplateMapper daqTemplateMapper;
 
 
    /**
     * 查询采集参数模板
     *
     * @param id 采集参数模板ID
     * @return 采集参数模板
     */
    @Override
    public DaqTemplate selectDaqTemplateById(String id) {
        return daqTemplateMapper.selectDaqTemplateById(id);
    }
 
    /**
     * 查询采集参数模板列表
     *
     * @param daqTemplate 采集参数模板
     * @return 采集参数模板
     */
    @Override
    public List<DaqTemplate> selectDaqTemplateList(DaqTemplate daqTemplate) {
        return daqTemplateMapper.selectDaqTemplateList(daqTemplate);
    }
 
    /**
     * 新增采集参数模板
     *
     * @param daqTemplate 采集参数模板
     * @return 结果
     */
    @Override
    public int insertDaqTemplate(DaqTemplate daqTemplate) {
        return daqTemplateMapper.insertDaqTemplate(daqTemplate);
    }
 
    /**
     * 修改采集参数模板
     *
     * @param daqTemplate 采集参数模板
     * @return 结果
     */
    @Override
    public int updateDaqTemplate(DaqTemplate daqTemplate) {
        return daqTemplateMapper.updateDaqTemplate(daqTemplate);
    }
 
    /**
     * 批量删除采集参数模板
     *
     * @param ids 需要删除的采集参数模板ID
     * @return 结果
     */
    @Override
    public int deleteDaqTemplateByIds(String[] ids) {
        return daqTemplateMapper.deleteDaqTemplateByIds(ids);
    }
 
    /**
     * 删除采集参数模板信息
     *
     * @param id 采集参数模板ID
     * @return 结果
     */
    @Override
    public int deleteDaqTemplateById(String id) {
        return daqTemplateMapper.deleteDaqTemplateById(id);
    }
 
    @Override
    public boolean dapHasExist(String code, String deviceType) {
        int count = daqTemplateMapper.dapHasExist(code, deviceType);
        return count > 0;
    }
 
    @Override
    public boolean dapHasExist(DaqTemplate daqTemplate) {
        int count = daqTemplateMapper.dapHasExistWhenUpdate(daqTemplate.getId(), daqTemplate.getCode(), daqTemplate.getDeviceType());
        return count > 0;
    }
 
    /**
     * 查询指标模板
     *
     * @return 结果
     */
    @Override
    public List<DaqTemplate> listTemplate() {
        Object cacheObject = cache.getCacheObject(Constants.DAQ_TEMPLATE_KEY);
        if (ObjectUtils.isNotEmpty(cacheObject)) {
            return JSONObject.parseArray(cacheObject.toString(), DaqTemplate.class);
        }
 
        List<DaqTemplate> daqTemplates = daqTemplateMapper.listTemplate();
        if (CollectionUtils.isEmpty(daqTemplates)) {
            return Collections.emptyList();
        }
 
        String jsonString = JSONObject.toJSONString(daqTemplates);
        cache.setCacheObject(Constants.DAQ_TEMPLATE_KEY, jsonString, 6, TimeUnit.HOURS);
        return daqTemplates;
    }
 
    /**
     * 查询指标模板map
     *
     * @return 结果
     */
    @Override
    public Map<String, List<DaqTemplate>> listTemplateMap() {
        Map<String, List<DaqTemplate>> map = new HashMap<>();
        List<DaqTemplate> daqTemplates = this.listTemplate();
 
        if (CollectionUtils.isNotEmpty(daqTemplates)) {
            return daqTemplates.stream().collect(Collectors.groupingBy(DaqTemplate::getCode));
        }
        return map;
    }
 
    @Override
    public Page<DaqTemplate> selectDaqTemplatePage(DaqTemplate daqTemplate, Long pageNum, Long pageSize) {
        LambdaQueryWrapper<DaqTemplate> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(StringUtils.isNotEmpty(daqTemplate.getCode()),DaqTemplate::getCode,daqTemplate.getCode());
        wrapper.like(StringUtils.isNotEmpty(daqTemplate.getName()),DaqTemplate::getName,daqTemplate.getName());
        wrapper.eq(StringUtils.isNotEmpty(daqTemplate.getDeviceType()),DaqTemplate::getDeviceType,daqTemplate.getDeviceType());
        wrapper.orderByDesc(DaqTemplate::getCreateTime);
        Page<DaqTemplate> page = daqTemplateMapper.selectPage(new Page<DaqTemplate>(pageNum, pageSize), wrapper);
        return page;
    }
}