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);*/
|
}
|
}
|