潘志宝
7 天以前 161f558d30e64d40fe7552da16b4141859aa467e
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
package com.iailab.module.data.point.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
import com.iailab.module.data.common.enums.DataQualityEnum;
import com.iailab.module.data.influxdb.pojo.InfluxPointValueDigPOJO;
import com.iailab.module.data.influxdb.pojo.InfluxPointValuePOJO;
import com.iailab.module.data.influxdb.pojo.InfluxPointValueSimPOJO;
import com.iailab.module.data.point.dao.DaPointCollectStatusDao;
import com.iailab.module.data.point.entity.DaPointCollectStatusEntity;
import com.iailab.module.data.point.service.DaPointCollectStatusService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
 
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年12月13日
 */
@Service
public class DaPointCollectStatusServiceImpl extends BaseServiceImpl<DaPointCollectStatusDao, DaPointCollectStatusEntity>
        implements DaPointCollectStatusService {
 
    public void recordStatus(String pointNo, String collectValue, Date collectTime) {
        QueryWrapper<DaPointCollectStatusEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("point_no", pointNo);
        DaPointCollectStatusEntity entity = baseDao.selectOne(queryWrapper);
        if (entity == null) {
            entity = new DaPointCollectStatusEntity();
            entity.setId(UUID.randomUUID().toString());
            entity.setPointNo(pointNo);
            entity.setCollectValue(collectValue);
            entity.setCollectQuality(DataQualityEnum.getEumByValue(collectValue).getCode());
            entity.setCollectTime(collectTime);
            baseDao.insert(entity);
        } else {
            entity.setCollectValue(collectValue);
            entity.setCollectQuality(DataQualityEnum.getEumByValue(collectValue).getCode());
            entity.setCollectTime(collectTime);
            baseDao.updateById(entity);
        }
 
    }
 
    public void recordStatusList(List<InfluxPointValuePOJO> pointValues, Date collectTime) {
        List<String> listGood = new ArrayList<>();
        List<String> listBad = new ArrayList<>();
        Object collectValue = null;
        for (InfluxPointValuePOJO pointValue : pointValues) {
            if (pointValue instanceof InfluxPointValueSimPOJO) {
                InfluxPointValueSimPOJO pvo = (InfluxPointValueSimPOJO) pointValue;
                collectValue = pvo.getValue();
            } else if (pointValue instanceof InfluxPointValueDigPOJO) {
                InfluxPointValueDigPOJO pvo = (InfluxPointValueDigPOJO) pointValue;
                collectValue = pvo.getValue();
            } else {
                continue;
            }
            switch (DataQualityEnum.getEumByValue(collectValue)) {
                case GOOD:
                    listGood.add(pointValue.getPoint());
                    break;
                case BAD:
                    listBad.add(pointValue.getPoint());
                    break;
                default:
                    break;
            }
        }
        if (!CollectionUtils.isEmpty(listGood)) {
            QueryWrapper<DaPointCollectStatusEntity> queryWrapper = new QueryWrapper<>();
            queryWrapper.in("point_no", listGood);
            DaPointCollectStatusEntity entity = new DaPointCollectStatusEntity();
            entity.setCollectTime(collectTime);
            entity.setCollectQuality(DataQualityEnum.GOOD.getCode());
            baseDao.update(entity, queryWrapper);
        }
        if (!CollectionUtils.isEmpty(listBad)) {
            QueryWrapper<DaPointCollectStatusEntity> queryWrapper = new QueryWrapper<>();
            queryWrapper.in("point_no", listBad);
            DaPointCollectStatusEntity entity = new DaPointCollectStatusEntity();
            entity.setCollectTime(collectTime);
            entity.setCollectQuality(DataQualityEnum.BAD.getCode());
            baseDao.update(entity, queryWrapper);
        }
    }
}