yangys
2024-05-30 a3686cfa49bf53fb91a2ceb960cf15b3ebdac641
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
package com.qianwen.smartman.modules.mdc.service.impl;
 
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.qianwen.smartman.common.cache.cps.WorkstationCache;
import com.qianwen.smartman.common.utils.CommonUtil;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.modules.cps.message.dto.TelemetryDataResponseDTO;
import com.qianwen.smartman.modules.mdc.constant.CollectConstant;
import com.qianwen.smartman.modules.mdc.dto.NewParamSaveDTO;
import com.qianwen.smartman.modules.mdc.mapper.SuperCollectJsonMapper;
import com.qianwen.smartman.modules.mdc.service.ISuperNewCollectService;
import org.springframework.stereotype.Service;
 
@Service
public class SuperNewCollectServiceImpl implements ISuperNewCollectService {
    private final SuperCollectJsonMapper collectJsonMapper;
    private static final Logger log = LoggerFactory.getLogger(SuperNewCollectServiceImpl.class);
    private static final Map<Integer, String> PROCESS_PARAM_MAP = new HashMap<>();
 
    static {
        PROCESS_PARAM_MAP.put(1, "STATE");
        PROCESS_PARAM_MAP.put(2, "OUTPUT");
        PROCESS_PARAM_MAP.put(3, CollectConstant.ALARM);
        PROCESS_PARAM_MAP.put(4, "PROGRAMNUM");
        PROCESS_PARAM_MAP.put(5, "OUTPUT");
        PROCESS_PARAM_MAP.put(6, CollectConstant.ALARM);
        PROCESS_PARAM_MAP.put(7, CollectConstant.ALARM);
    }
 
    public SuperNewCollectServiceImpl(final SuperCollectJsonMapper collectJsonMapper) {
        this.collectJsonMapper = collectJsonMapper;
    }
 
    
    @Override
    public void insertData(Set<String> workstationIds) {
        List<NewParamSaveDTO> data = workstationIds.stream().map(workstationId -> {
            Map<String, Object> realTimeData = WorkstationCache.getWorkstationAllCollect(workstationId);//实时数据,
            if (Func.isNotEmpty(realTimeData)) {
                int size = realTimeData.size();
                long time = DateUtil.now().getTime();
                Map<String, String> valuesMap = new HashMap<>(size);
                realTimeData.forEach((n, telemetry) -> {
                    if (!n.toUpperCase().contains(CollectConstant.ALARM)) {//去除ALARM数据
                        TelemetryDataResponseDTO dto = (TelemetryDataResponseDTO) telemetry;
                        String v = dto.getV();
                        if (Func.isNotEmpty(v) && v.length() <= CollectConstant.MAX_VALUE.intValue() && !v.contains("timestamp")) {
                            valuesMap.put(n, v);
                        }
                    }
                });
                String value = JSON.toJSONString(valuesMap);
                log.info("采集参数数据: {}", value);
                return NewParamSaveDTO.builder().value(value).ts(Long.valueOf(time)).workstationId(workstationId).build();
            }
            return null;
        }).filter((v0) -> {
            return Func.notNull(v0);
        }).collect(Collectors.toList());
        List<List<NewParamSaveDTO>> groupList = CommonUtil.groupList(data, 10);
        
        groupList.forEach(this.collectJsonMapper::insertValueJson);
        /*
        SuperCollectJsonMapper superCollectJsonMapper = this.collectJsonMapper;
        superCollectJsonMapper.getClass();
        groupList.forEach(this::insertValueJson);*/
    }
}