refactor(device): 重构设备监测点信息缓存逻辑并优化数据处理

- 引入 DeviceMessageFeignClient 替代原有的 Redis 缓存监测点信息逻辑
- 移除 CsDeviceServiceImpl 中重复的监测点信息缓存代码,统一调用远程服务
- 将 phase 默认值从 "M" 修改为 "T",更新所有相关数据处理逻辑
- 优化 RtServiceImpl 中 CT 和 PT 变比计算逻辑,支持双变比处理
- 更新实时数据分析中的相别标识符,从 "M" 改为 "T"
- 在 StatServiceImpl 中完善数据标签处理和质量标志设置逻辑
This commit is contained in:
xy
2026-05-20 14:16:36 +08:00
parent 6983cd39fe
commit 2eeabddf5c
6 changed files with 76 additions and 139 deletions

View File

@@ -399,7 +399,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setStatMethod(apf.getStatMethod()); eleEpdPqdParam.setStatMethod(apf.getStatMethod());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(apf.getPhase())){ if (Objects.isNull(apf.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(apf.getPhase()); eleEpdPqdParam.setPhase(apf.getPhase());
} }
@@ -433,7 +433,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setEventType(evt.getEventType()); eleEpdPqdParam.setEventType(evt.getEventType());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(evt.getPhase())){ if (Objects.isNull(evt.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(evt.getPhase()); eleEpdPqdParam.setPhase(evt.getPhase());
} }
@@ -494,7 +494,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
//告警code到时候推送给用户告警码+事件时间 //告警code到时候推送给用户告警码+事件时间
eleEpdPqdParam.setDefaultValue(alm.getCode()); eleEpdPqdParam.setDefaultValue(alm.getCode());
if (Objects.isNull(alm.getPhase())){ if (Objects.isNull(alm.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(alm.getPhase()); eleEpdPqdParam.setPhase(alm.getPhase());
} }
@@ -521,7 +521,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setTranRule(sts.getTranRule()); eleEpdPqdParam.setTranRule(sts.getTranRule());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(sts.getPhase())){ if (Objects.isNull(sts.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(sts.getPhase()); eleEpdPqdParam.setPhase(sts.getPhase());
} }
@@ -553,7 +553,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setDefaultValue(parm.getDefaultValue()); eleEpdPqdParam.setDefaultValue(parm.getDefaultValue());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(parm.getPhase())){ if (Objects.isNull(parm.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(parm.getPhase()); eleEpdPqdParam.setPhase(parm.getPhase());
} }
@@ -582,7 +582,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setUnit(set.getUnit()); eleEpdPqdParam.setUnit(set.getUnit());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(set.getPhase())){ if (Objects.isNull(set.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(set.getPhase()); eleEpdPqdParam.setPhase(set.getPhase());
} }
@@ -614,7 +614,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setMinNum(ctrl.getMinNum()); eleEpdPqdParam.setMinNum(ctrl.getMinNum());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(ctrl.getPhase())){ if (Objects.isNull(ctrl.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(ctrl.getPhase()); eleEpdPqdParam.setPhase(ctrl.getPhase());
} }
@@ -638,7 +638,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setSort(epd.getIdx()); eleEpdPqdParam.setSort(epd.getIdx());
eleEpdPqdParam.setType(epd.getType()); eleEpdPqdParam.setType(epd.getType());
if (Objects.isNull(epd.getPhase())){ if (Objects.isNull(epd.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(epd.getPhase()); eleEpdPqdParam.setPhase(epd.getPhase());
} }
@@ -674,7 +674,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setSort(pqd.getIdx()); eleEpdPqdParam.setSort(pqd.getIdx());
eleEpdPqdParam.setType(pqd.getType()); eleEpdPqdParam.setType(pqd.getType());
if (Objects.isNull(pqd.getPhase())){ if (Objects.isNull(pqd.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(pqd.getPhase()); eleEpdPqdParam.setPhase(pqd.getPhase());
} }
@@ -710,7 +710,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setSort(bmd.getIdx()); eleEpdPqdParam.setSort(bmd.getIdx());
eleEpdPqdParam.setType(bmd.getType()); eleEpdPqdParam.setType(bmd.getType());
if (Objects.isNull(bmd.getPhase())){ if (Objects.isNull(bmd.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(bmd.getPhase()); eleEpdPqdParam.setPhase(bmd.getPhase());
} }
@@ -741,7 +741,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setTranFlag(di.getTranFlag()); eleEpdPqdParam.setTranFlag(di.getTranFlag());
eleEpdPqdParam.setTranRule(di.getTranRule()); eleEpdPqdParam.setTranRule(di.getTranRule());
if (Objects.isNull(di.getPhase())){ if (Objects.isNull(di.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(di.getPhase()); eleEpdPqdParam.setPhase(di.getPhase());
} }
@@ -767,7 +767,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setCurSts(dto.getCurSts()); eleEpdPqdParam.setCurSts(dto.getCurSts());
eleEpdPqdParam.setCtlSts(dto.getCtlSts()); eleEpdPqdParam.setCtlSts(dto.getCtlSts());
if (Objects.isNull(dto.getPhase())){ if (Objects.isNull(dto.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(dto.getPhase()); eleEpdPqdParam.setPhase(dto.getPhase());
} }
@@ -797,7 +797,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setUnit(inSet.getUnit()); eleEpdPqdParam.setUnit(inSet.getUnit());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
if (Objects.isNull(inSet.getPhase())){ if (Objects.isNull(inSet.getPhase())){
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
} else { } else {
eleEpdPqdParam.setPhase(inSet.getPhase()); eleEpdPqdParam.setPhase(inSet.getPhase());
} }
@@ -820,7 +820,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
eleEpdPqdParam.setShowName(wave.getName()); eleEpdPqdParam.setShowName(wave.getName());
eleEpdPqdParam.setSort(wave.getIdx()); eleEpdPqdParam.setSort(wave.getIdx());
eleEpdPqdParam.setDataType(id); eleEpdPqdParam.setDataType(id);
eleEpdPqdParam.setPhase("M"); eleEpdPqdParam.setPhase("T");
eleEpdPqdParam.setClassId(classId); eleEpdPqdParam.setClassId(classId);
EleEpdPqd po = epdFeignClient.add(eleEpdPqdParam).getData(); EleEpdPqd po = epdFeignClient.add(eleEpdPqdParam).getData();
if (CollectionUtil.isNotEmpty(wave.getParam())){ if (CollectionUtil.isNotEmpty(wave.getParam())){
@@ -1025,91 +1025,91 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
List<ApfDto> apfList = templateDto.getApfDto(); List<ApfDto> apfList = templateDto.getApfDto();
ApfDto apfDto = apfList.get(idx); ApfDto apfDto = apfList.get(idx);
name = apfDto.getName(); name = apfDto.getName();
phase = apfDto.getPhase() == null ? "M":apfDto.getPhase(); phase = apfDto.getPhase() == null ? "T":apfDto.getPhase();
break; break;
case DataModel.EVT: case DataModel.EVT:
log.info("查询evt字典数据"); log.info("查询evt字典数据");
List<EvtDto> evtList = templateDto.getEvtDto(); List<EvtDto> evtList = templateDto.getEvtDto();
EvtDto evtDto = evtList.get(idx); EvtDto evtDto = evtList.get(idx);
name = evtDto.getName(); name = evtDto.getName();
phase = evtDto.getPhase() == null ? "M":evtDto.getPhase(); phase = evtDto.getPhase() == null ? "T":evtDto.getPhase();
break; break;
case DataModel.ALM: case DataModel.ALM:
log.info("查询alm字典数据"); log.info("查询alm字典数据");
List<AlmDto> almList = templateDto.getAlmDto(); List<AlmDto> almList = templateDto.getAlmDto();
AlmDto almDto = almList.get(idx); AlmDto almDto = almList.get(idx);
name = almDto.getName(); name = almDto.getName();
phase = almDto.getPhase() == null ? "M":almDto.getPhase(); phase = almDto.getPhase() == null ? "T":almDto.getPhase();
break; break;
case DataModel.STS: case DataModel.STS:
log.info("查询sts字典数据"); log.info("查询sts字典数据");
List<StsDto> stsList = templateDto.getStsDto(); List<StsDto> stsList = templateDto.getStsDto();
StsDto stsDto = stsList.get(idx); StsDto stsDto = stsList.get(idx);
name = stsDto.getName(); name = stsDto.getName();
phase = stsDto.getPhase() == null ? "M":stsDto.getPhase(); phase = stsDto.getPhase() == null ? "T":stsDto.getPhase();
break; break;
case DataModel.PARM: case DataModel.PARM:
log.info("查询parm字典数据"); log.info("查询parm字典数据");
List<ParmDto> parmList = templateDto.getParmDto(); List<ParmDto> parmList = templateDto.getParmDto();
ParmDto parmDto = parmList.get(idx); ParmDto parmDto = parmList.get(idx);
name = parmDto.getName(); name = parmDto.getName();
phase = parmDto.getPhase() == null ? "M":parmDto.getPhase(); phase = parmDto.getPhase() == null ? "T":parmDto.getPhase();
break; break;
case DataModel.SET: case DataModel.SET:
log.info("查询set字典数据"); log.info("查询set字典数据");
List<SetDto> setList = templateDto.getSetDto(); List<SetDto> setList = templateDto.getSetDto();
SetDto setDto = setList.get(idx); SetDto setDto = setList.get(idx);
name = setDto.getName(); name = setDto.getName();
phase = setDto.getPhase() == null ? "M":setDto.getPhase(); phase = setDto.getPhase() == null ? "T":setDto.getPhase();
break; break;
case DataModel.CTRL: case DataModel.CTRL:
log.info("查询ctrl字典数据"); log.info("查询ctrl字典数据");
List<CtrlDto> ctrlList = templateDto.getCtrlDto(); List<CtrlDto> ctrlList = templateDto.getCtrlDto();
CtrlDto ctrlDto = ctrlList.get(idx); CtrlDto ctrlDto = ctrlList.get(idx);
name = ctrlDto.getName(); name = ctrlDto.getName();
phase = ctrlDto.getPhase() == null ? "M":ctrlDto.getPhase(); phase = ctrlDto.getPhase() == null ? "T":ctrlDto.getPhase();
break; break;
case DataModel.EPD: case DataModel.EPD:
log.info("查询epd字典数据"); log.info("查询epd字典数据");
List<EpdPqdDto> epdList = templateDto.getEpdDto(); List<EpdPqdDto> epdList = templateDto.getEpdDto();
EpdPqdDto epdDto = epdList.get(idx); EpdPqdDto epdDto = epdList.get(idx);
name = epdDto.getName(); name = epdDto.getName();
phase = epdDto.getPhase() == null ? "M":epdDto.getPhase(); phase = epdDto.getPhase() == null ? "T":epdDto.getPhase();
break; break;
case DataModel.PQD: case DataModel.PQD:
log.info("查询pqd字典数据"); log.info("查询pqd字典数据");
List<EpdPqdDto> pqdList = templateDto.getPqdDto(); List<EpdPqdDto> pqdList = templateDto.getPqdDto();
EpdPqdDto pqdDto = pqdList.get(idx); EpdPqdDto pqdDto = pqdList.get(idx);
name = pqdDto.getName(); name = pqdDto.getName();
phase = pqdDto.getPhase() == null ? "M":pqdDto.getPhase(); phase = pqdDto.getPhase() == null ? "T":pqdDto.getPhase();
break; break;
case DataModel.BMD: case DataModel.BMD:
log.info("查询bmd字典数据"); log.info("查询bmd字典数据");
List<BmdDto> bmdList = templateDto.getBmdDto(); List<BmdDto> bmdList = templateDto.getBmdDto();
BmdDto bmdDto = bmdList.get(idx); BmdDto bmdDto = bmdList.get(idx);
name = bmdDto.getName(); name = bmdDto.getName();
phase = bmdDto.getPhase() == null ? "M":bmdDto.getPhase(); phase = bmdDto.getPhase() == null ? "T":bmdDto.getPhase();
break; break;
case DataModel.DI: case DataModel.DI:
log.info("查询di字典数据"); log.info("查询di字典数据");
List<DiDto> diList = templateDto.getDiDto(); List<DiDto> diList = templateDto.getDiDto();
DiDto diDto = diList.get(idx); DiDto diDto = diList.get(idx);
name = diDto.getName(); name = diDto.getName();
phase = diDto.getPhase() == null ? "M":diDto.getPhase(); phase = diDto.getPhase() == null ? "T":diDto.getPhase();
break; break;
case DataModel.DO: case DataModel.DO:
log.info("查询do字典数据"); log.info("查询do字典数据");
List<DoDto> doList = templateDto.getDoDto(); List<DoDto> doList = templateDto.getDoDto();
DoDto doDto = doList.get(idx); DoDto doDto = doList.get(idx);
name = doDto.getName(); name = doDto.getName();
phase = doDto.getPhase() == null ? "M":doDto.getPhase(); phase = doDto.getPhase() == null ? "T":doDto.getPhase();
break; break;
case DataModel.INSET: case DataModel.INSET:
log.info("查询inset字典数据"); log.info("查询inset字典数据");
List<InSetDto> inSetList = templateDto.getInSetDto(); List<InSetDto> inSetList = templateDto.getInSetDto();
InSetDto inSetDto = inSetList.get(idx); InSetDto inSetDto = inSetList.get(idx);
name = inSetDto.getName(); name = inSetDto.getName();
phase = inSetDto.getPhase() == null ? "M":inSetDto.getPhase(); phase = inSetDto.getPhase() == null ? "T":inSetDto.getPhase();
break; break;
default: default:
break; break;
@@ -1119,7 +1119,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
log.info("指标名称:"+name+",数据类型:"+id+",相别:"+phase); log.info("指标名称:"+name+",数据类型:"+id+",相别:"+phase);
throw new BusinessException(AccessResponseEnum.DICT_MISSING); throw new BusinessException(AccessResponseEnum.DICT_MISSING);
} }
// M 代表没有数据,因为influxDB要录入数据此字段是主键给个默认值 // T 代表没有数据,因为influxDB要录入数据此字段是主键给个默认值
if (!Objects.isNull(eleEpdPqd.getHarmStart()) && !Objects.isNull(eleEpdPqd.getHarmEnd())){ if (!Objects.isNull(eleEpdPqd.getHarmStart()) && !Objects.isNull(eleEpdPqd.getHarmEnd())){
if (Objects.equals(eleEpdPqd.getHarmStart(),1)){ if (Objects.equals(eleEpdPqd.getHarmStart(),1)){
for (int i = eleEpdPqd.getHarmStart(); i <= eleEpdPqd.getHarmEnd(); i++) { for (int i = eleEpdPqd.getHarmStart(); i <= eleEpdPqd.getHarmEnd(); i++) {
@@ -1142,7 +1142,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
CsDataArray.setDataId(eleEpdPqd.getId()); CsDataArray.setDataId(eleEpdPqd.getId());
CsDataArray.setName(eleEpdPqd.getName() + "_" + i); CsDataArray.setName(eleEpdPqd.getName() + "_" + i);
CsDataArray.setAnotherName((i-0.5) + "" +eleEpdPqd.getShowName()); CsDataArray.setAnotherName((i-0.5) + "" +eleEpdPqd.getShowName());
CsDataArray.setStatMethod("M"); CsDataArray.setStatMethod("T");
CsDataArray.setDataType(eleEpdPqd.getType()); CsDataArray.setDataType(eleEpdPqd.getType());
CsDataArray.setPhase(eleEpdPqd.getPhase()); CsDataArray.setPhase(eleEpdPqd.getPhase());
list.add(CsDataArray); list.add(CsDataArray);
@@ -1169,7 +1169,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
CsDataArray.setDataId(eleEpdPqd.getId()); CsDataArray.setDataId(eleEpdPqd.getId());
CsDataArray.setName(eleEpdPqd.getName() + "_" + i); CsDataArray.setName(eleEpdPqd.getName() + "_" + i);
CsDataArray.setAnotherName(i + "" +eleEpdPqd.getShowName()); CsDataArray.setAnotherName(i + "" +eleEpdPqd.getShowName());
CsDataArray.setStatMethod("M"); CsDataArray.setStatMethod("T");
CsDataArray.setDataType(eleEpdPqd.getType()); CsDataArray.setDataType(eleEpdPqd.getType());
CsDataArray.setPhase(eleEpdPqd.getPhase()); CsDataArray.setPhase(eleEpdPqd.getPhase());
list.add(CsDataArray); list.add(CsDataArray);
@@ -1196,7 +1196,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
CsDataArray.setDataId(eleEpdPqd.getId()); CsDataArray.setDataId(eleEpdPqd.getId());
CsDataArray.setName(eleEpdPqd.getName()); CsDataArray.setName(eleEpdPqd.getName());
CsDataArray.setAnotherName(eleEpdPqd.getShowName()); CsDataArray.setAnotherName(eleEpdPqd.getShowName());
CsDataArray.setStatMethod("M"); CsDataArray.setStatMethod("T");
CsDataArray.setDataType(eleEpdPqd.getType()); CsDataArray.setDataType(eleEpdPqd.getType());
CsDataArray.setPhase(eleEpdPqd.getPhase()); CsDataArray.setPhase(eleEpdPqd.getPhase());
list.add(CsDataArray); list.add(CsDataArray);

View File

@@ -86,6 +86,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
private final UserFeignClient userFeignClient; private final UserFeignClient userFeignClient;
private final EngineeringFeignClient engineeringFeignClient; private final EngineeringFeignClient engineeringFeignClient;
private final AppProjectFeignClient appProjectFeignClient; private final AppProjectFeignClient appProjectFeignClient;
private final DeviceMessageFeignClient deviceMessageFeignClient;
@Override @Override
@Transactional(rollbackFor = {Exception.class}) @Transactional(rollbackFor = {Exception.class})
@@ -289,22 +290,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
csLineService.saveBatch(csLinePoList); csLineService.saveBatch(csLinePoList);
redisUtil.saveByKeyWithExpire("accessLineInfo:" + devAccessParam.getNDid(),csLinePoList,30L); redisUtil.saveByKeyWithExpire("accessLineInfo:" + devAccessParam.getNDid(),csLinePoList,30L);
//缓存监测点信息 //缓存监测点信息
Map<Integer,String> map = new HashMap<>(); deviceMessageFeignClient.getLineInfo(devAccessParam.getNDid(),csLinePoList);
for (CsLinePO item : csLinePoList) {
if (Objects.isNull(item.getPosition())){
map.put(item.getClDid(),item.getLineId());
} else {
DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData();
if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){
map.put(0,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){
map.put(1,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){
map.put(2,item.getLineId());
}
}
}
redisUtil.saveByKey(AppRedisKey.LINE_POSITION+devAccessParam.getNDid(),map);
//4.监测点拓扑图表录入关系 //4.监测点拓扑图表录入关系
appLineTopologyDiagramService.saveBatch(appLineTopologyDiagramPoList); appLineTopologyDiagramService.saveBatch(appLineTopologyDiagramPoList);
//5.绑定装置和人的关系 //5.绑定装置和人的关系
@@ -477,22 +463,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
csLineService.saveBatch(csLinePoList); csLineService.saveBatch(csLinePoList);
redisUtil.saveByKeyWithExpire("accessLineInfo:" + nDid,csLinePoList,30L); redisUtil.saveByKeyWithExpire("accessLineInfo:" + nDid,csLinePoList,30L);
//缓存监测点信息 //缓存监测点信息
Map<Integer,String> map = new HashMap<>(); deviceMessageFeignClient.getLineInfo(nDid,csLinePoList);
for (CsLinePO item : csLinePoList) {
if (Objects.isNull(item.getPosition())){
map.put(item.getClDid(),item.getLineId());
} else {
DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData();
if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){
map.put(0,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){
map.put(1,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){
map.put(2,item.getLineId());
}
}
}
redisUtil.saveByKey(AppRedisKey.LINE_POSITION+nDid,map);
//4.生成装置和模板的关系表 //4.生成装置和模板的关系表
CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm(); CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm();
csDevModelRelationAddParm.setDevId(vo.getId()); csDevModelRelationAddParm.setDevId(vo.getId());
@@ -635,23 +606,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
csLineService.saveBatch(csLinePoList); csLineService.saveBatch(csLinePoList);
redisUtil.saveByKeyWithExpire("accessLineInfo:" + nDid,csLinePoList,30L); redisUtil.saveByKeyWithExpire("accessLineInfo:" + nDid,csLinePoList,30L);
//缓存监测点信息 //缓存监测点信息
//缓存监测点信息 deviceMessageFeignClient.getLineInfo(nDid,csLinePoList);
Map<Integer,String> map = new HashMap<>();
for (CsLinePO item : csLinePoList) {
if (Objects.isNull(item.getPosition())){
map.put(item.getClDid(),item.getLineId());
} else {
DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData();
if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){
map.put(0,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){
map.put(1,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){
map.put(2,item.getLineId());
}
}
}
redisUtil.saveByKey(AppRedisKey.LINE_POSITION+nDid,map);
//4.生成装置和模板的关系表 //4.生成装置和模板的关系表
CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm(); CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm();
csDevModelRelationAddParm.setDevId(vo.getId()); csDevModelRelationAddParm.setDevId(vo.getId());
@@ -934,32 +889,9 @@ public class CsDeviceServiceImpl implements ICsDeviceService {
csDevModelRelationService.addRelation(po); csDevModelRelationService.addRelation(po);
modelMap.put(item.getType(), item.getModelId()); modelMap.put(item.getType(), item.getModelId());
} }
List<CsLinePO> lineList;
Object object = redisUtil.getObjectByKey("accessLineInfo:" + nDid); Object object = redisUtil.getObjectByKey("accessLineInfo:" + nDid);
if (Objects.isNull(object)) { if (Objects.isNull(object)) {
Map<Integer,String> map = new HashMap<>(); deviceMessageFeignClient.getLineInfo(nDid,null);
lineList = csLineFeignClient.findByNdid(nDid).getData();
for (CsLinePO item : lineList) {
if (item.getClDid() == 0) {
updateLineIds(modelMap.get(0), item.getClDid(), nDid);
} else {
updateLineIds(modelMap.get(1), item.getClDid(), nDid);
}
//缓存监测点信息
if (Objects.isNull(item.getPosition())){
map.put(item.getClDid(),item.getLineId());
} else {
DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData();
if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){
map.put(0,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){
map.put(1,item.getLineId());
} else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){
map.put(2,item.getLineId());
}
}
}
redisUtil.saveByKey(AppRedisKey.LINE_POSITION+nDid,map);
} }
publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(getJson(mid,TypeEnum.TYPE_5.getCode())), 1, false); publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(getJson(mid,TypeEnum.TYPE_5.getCode())), 1, false);
result = true; result = true;

View File

@@ -78,6 +78,8 @@ public class RtServiceImpl implements IRtService {
AppAutoDataMessage.DataArray item = appAutoDataMessage.getMsg().getDataArray().get(0); AppAutoDataMessage.DataArray item = appAutoDataMessage.getMsg().getDataArray().get(0);
//获取设备类型 //获取设备类型
CsEquipmentDeliveryPO po1 =equipmentFeignClient.getDevByLineId(lineId).getData(); CsEquipmentDeliveryPO po1 =equipmentFeignClient.getDevByLineId(lineId).getData();
Float ct = po.getCtRatio().floatValue() / (po.getCt2Ratio() == null ? 1.0f:po.getCt2Ratio().floatValue());
Float pt = po.getPtRatio().floatValue() / (po.getPt2Ratio() == null ? 1.0f:po.getPt2Ratio().floatValue());
//fixme 这边先根据数据集的名称来返回对应实体,这边感觉不太合适,后期有好方案再调整 //fixme 这边先根据数据集的名称来返回对应实体,这边感觉不太合适,后期有好方案再调整
//基础数据 //基础数据
if (dataSet.getName().contains("Ds$Pqd$Rt$Basic$")) { if (dataSet.getName().contains("Ds$Pqd$Rt$Basic$")) {
@@ -88,8 +90,8 @@ public class RtServiceImpl implements IRtService {
BaseRealDataSet baseRealDataSet = assembleData(dataArrayList,item,po.getConType(),po1.getDevAccessMethod()); BaseRealDataSet baseRealDataSet = assembleData(dataArrayList,item,po.getConType(),po1.getDevAccessMethod());
baseRealDataSet.setUserId(userId); baseRealDataSet.setUserId(userId);
baseRealDataSet.setLineId(lineId); baseRealDataSet.setLineId(lineId);
baseRealDataSet.setPt(po.getPtRatio().floatValue()); baseRealDataSet.setPt(pt);
baseRealDataSet.setCt(po.getCtRatio().floatValue()); baseRealDataSet.setCt(ct);
baseRealDataSet.setDataLevel(dataSet.getDataLevel()); baseRealDataSet.setDataLevel(dataSet.getDataLevel());
long timestamp = item.getDataTimeSec() - 8*3600; long timestamp = item.getDataTimeSec() - 8*3600;
baseRealDataSet.setDataTime(getTime(timestamp)); baseRealDataSet.setDataTime(getTime(timestamp));
@@ -104,8 +106,8 @@ public class RtServiceImpl implements IRtService {
BaseRealDataSet baseRealDataSet = assembleData(dataArrayList,item,po.getConType(),po1.getDevAccessMethod()); BaseRealDataSet baseRealDataSet = assembleData(dataArrayList,item,po.getConType(),po1.getDevAccessMethod());
baseRealDataSet.setUserId(userId); baseRealDataSet.setUserId(userId);
baseRealDataSet.setLineId(lineId); baseRealDataSet.setLineId(lineId);
baseRealDataSet.setPt(po.getPtRatio().floatValue()); baseRealDataSet.setPt(pt);
baseRealDataSet.setCt(po.getCtRatio().floatValue()); baseRealDataSet.setCt(ct);
baseRealDataSet.setDataLevel(dataSet.getDataLevel()); baseRealDataSet.setDataLevel(dataSet.getDataLevel());
long timestamp = item.getDataTimeSec(); long timestamp = item.getDataTimeSec();
baseRealDataSet.setDataTime(getTime(timestamp)); baseRealDataSet.setDataTime(getTime(timestamp));
@@ -123,8 +125,8 @@ public class RtServiceImpl implements IRtService {
HarmRealDataSet harmRealDataSet = harmData(dataArrayList,item,dataSet.getDataLevel(),po.getCtRatio()); HarmRealDataSet harmRealDataSet = harmData(dataArrayList,item,dataSet.getDataLevel(),po.getCtRatio());
harmRealDataSet.setUserId(userId); harmRealDataSet.setUserId(userId);
harmRealDataSet.setLineId(lineId); harmRealDataSet.setLineId(lineId);
harmRealDataSet.setPt(po.getPtRatio().floatValue()); harmRealDataSet.setPt(pt);
harmRealDataSet.setCt(po.getCtRatio().floatValue()); harmRealDataSet.setCt(ct);
harmRealDataSet.setDataLevel(dataSet.getDataLevel()); harmRealDataSet.setDataLevel(dataSet.getDataLevel());
if (ObjectUtil.isNotNull(po.getLineNo())) { if (ObjectUtil.isNotNull(po.getLineNo())) {
timestamp = item.getDataTimeSec(); timestamp = item.getDataTimeSec();
@@ -223,9 +225,9 @@ public class RtServiceImpl implements IRtService {
public BaseRealDataSet channelData(Map<String,Float> map,Integer conType) { public BaseRealDataSet channelData(Map<String,Float> map,Integer conType) {
BaseRealDataSet baseRealDataSet = new BaseRealDataSet(); BaseRealDataSet baseRealDataSet = new BaseRealDataSet();
//频率 //频率
baseRealDataSet.setFreq(map.get("Pq_FreqM")); baseRealDataSet.setFreq(map.get("Pq_FreqT"));
//频率偏差 //频率偏差
baseRealDataSet.setFreqDev(map.get("Pq_FreqDevM")); baseRealDataSet.setFreqDev(map.get("Pq_FreqDevT"));
//判断监测点的接线方式,不同接线方式电压有效值取值不同 //判断监测点的接线方式,不同接线方式电压有效值取值不同
//星型-相电压 角形、V型-线电压 //星型-相电压 角形、V型-线电压
//电压有效值 //电压有效值
@@ -295,43 +297,43 @@ public class RtServiceImpl implements IRtService {
baseRealDataSet.setIThdB(map.get("Pq_ThdIB")); baseRealDataSet.setIThdB(map.get("Pq_ThdIB"));
baseRealDataSet.setIThdC(map.get("Pq_ThdIC")); baseRealDataSet.setIThdC(map.get("Pq_ThdIC"));
//电压不平衡度 //电压不平衡度
baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUM")); baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUT"));
//电流不平衡度 //电流不平衡度
baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIM")); baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIT"));
//有功功率 //有功功率
baseRealDataSet.setPA(map.get("Pq_PA")); baseRealDataSet.setPA(map.get("Pq_PA"));
baseRealDataSet.setPB(map.get("Pq_PB")); baseRealDataSet.setPB(map.get("Pq_PB"));
baseRealDataSet.setPC(map.get("Pq_PC")); baseRealDataSet.setPC(map.get("Pq_PC"));
baseRealDataSet.setPTot(map.get("Pq_TotPM")); baseRealDataSet.setPTot(map.get("Pq_TotPT"));
//无功功率 //无功功率
baseRealDataSet.setQA(map.get("Pq_QA")); baseRealDataSet.setQA(map.get("Pq_QA"));
baseRealDataSet.setQB(map.get("Pq_QB")); baseRealDataSet.setQB(map.get("Pq_QB"));
baseRealDataSet.setQC(map.get("Pq_QC")); baseRealDataSet.setQC(map.get("Pq_QC"));
baseRealDataSet.setQTot(map.get("Pq_TotQM")); baseRealDataSet.setQTot(map.get("Pq_TotQT"));
//视在功率 //视在功率
baseRealDataSet.setSA(map.get("Pq_SA")); baseRealDataSet.setSA(map.get("Pq_SA"));
baseRealDataSet.setSB(map.get("Pq_SB")); baseRealDataSet.setSB(map.get("Pq_SB"));
baseRealDataSet.setSC(map.get("Pq_SC")); baseRealDataSet.setSC(map.get("Pq_SC"));
baseRealDataSet.setSTot(map.get("Pq_TotSM")); baseRealDataSet.setSTot(map.get("Pq_TotST"));
//视在功率因数 //视在功率因数
baseRealDataSet.setPfA(map.get("Pq_PFA")); baseRealDataSet.setPfA(map.get("Pq_PFA"));
baseRealDataSet.setPfB(map.get("Pq_PFB")); baseRealDataSet.setPfB(map.get("Pq_PFB"));
baseRealDataSet.setPfC(map.get("Pq_PFC")); baseRealDataSet.setPfC(map.get("Pq_PFC"));
baseRealDataSet.setPfTot(map.get("Pq_TotPFM")); baseRealDataSet.setPfTot(map.get("Pq_TotPFT"));
//位移功率因数 //位移功率因数
baseRealDataSet.setDpfA(map.get("Pq_DFA")); baseRealDataSet.setDpfA(map.get("Pq_DFA"));
baseRealDataSet.setDpfB(map.get("Pq_DFB")); baseRealDataSet.setDpfB(map.get("Pq_DFB"));
baseRealDataSet.setDpfC(map.get("Pq_DFC")); baseRealDataSet.setDpfC(map.get("Pq_DFC"));
baseRealDataSet.setDpfTot(map.get("Pq_TotDFM")); baseRealDataSet.setDpfTot(map.get("Pq_TotDFT"));
return baseRealDataSet; return baseRealDataSet;
} }
public BaseRealDataSet channelData2(Map<String,Float> map) { public BaseRealDataSet channelData2(Map<String,Float> map) {
BaseRealDataSet baseRealDataSet = new BaseRealDataSet(); BaseRealDataSet baseRealDataSet = new BaseRealDataSet();
//频率 //频率
baseRealDataSet.setFreq(map.get("Pq_FreqM")); baseRealDataSet.setFreq(map.get("Pq_FreqT"));
//频率偏差 //频率偏差
baseRealDataSet.setFreqDev(map.get("Pq_FreqDevM")); baseRealDataSet.setFreqDev(map.get("Pq_FreqDevT"));
//判断监测点的接线方式,不同接线方式电压有效值取值不同 //判断监测点的接线方式,不同接线方式电压有效值取值不同
//星型-相电压 角形、V型-线电压 //星型-相电压 角形、V型-线电压
//电压有效值 //电压有效值
@@ -371,34 +373,34 @@ public class RtServiceImpl implements IRtService {
baseRealDataSet.setIThdB(map.get("Pq_ThdIB")); baseRealDataSet.setIThdB(map.get("Pq_ThdIB"));
baseRealDataSet.setIThdC(map.get("Pq_ThdIC")); baseRealDataSet.setIThdC(map.get("Pq_ThdIC"));
//电压不平衡度 //电压不平衡度
baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUM")); baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUT"));
//电流不平衡度 //电流不平衡度
baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIM")); baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIT"));
//有功功率 //有功功率
baseRealDataSet.setPA(map.get("Pq_PA")); baseRealDataSet.setPA(map.get("Pq_PA"));
baseRealDataSet.setPB(map.get("Pq_PB")); baseRealDataSet.setPB(map.get("Pq_PB"));
baseRealDataSet.setPC(map.get("Pq_PC")); baseRealDataSet.setPC(map.get("Pq_PC"));
baseRealDataSet.setPTot(map.get("Pq_TotPM")); baseRealDataSet.setPTot(map.get("Pq_TotPT"));
//无功功率 //无功功率
baseRealDataSet.setQA(map.get("Pq_QA")); baseRealDataSet.setQA(map.get("Pq_QA"));
baseRealDataSet.setQB(map.get("Pq_QB")); baseRealDataSet.setQB(map.get("Pq_QB"));
baseRealDataSet.setQC(map.get("Pq_QC")); baseRealDataSet.setQC(map.get("Pq_QC"));
baseRealDataSet.setQTot(map.get("Pq_TotQM")); baseRealDataSet.setQTot(map.get("Pq_TotQT"));
//视在功率 //视在功率
baseRealDataSet.setSA(map.get("Pq_SA")); baseRealDataSet.setSA(map.get("Pq_SA"));
baseRealDataSet.setSB(map.get("Pq_SB")); baseRealDataSet.setSB(map.get("Pq_SB"));
baseRealDataSet.setSC(map.get("Pq_SC")); baseRealDataSet.setSC(map.get("Pq_SC"));
baseRealDataSet.setSTot(map.get("Pq_TotSM")); baseRealDataSet.setSTot(map.get("Pq_TotST"));
//视在功率因数 //视在功率因数
baseRealDataSet.setPfA(map.get("Pq_PFA")); baseRealDataSet.setPfA(map.get("Pq_PFA"));
baseRealDataSet.setPfB(map.get("Pq_PFB")); baseRealDataSet.setPfB(map.get("Pq_PFB"));
baseRealDataSet.setPfC(map.get("Pq_PFC")); baseRealDataSet.setPfC(map.get("Pq_PFC"));
baseRealDataSet.setPfTot(map.get("Pq_TotPFM")); baseRealDataSet.setPfTot(map.get("Pq_TotPFT"));
//位移功率因数 //位移功率因数
baseRealDataSet.setDpfA(map.get("Pq_DFA")); baseRealDataSet.setDpfA(map.get("Pq_DFA"));
baseRealDataSet.setDpfB(map.get("Pq_DFB")); baseRealDataSet.setDpfB(map.get("Pq_DFB"));
baseRealDataSet.setDpfC(map.get("Pq_DFC")); baseRealDataSet.setDpfC(map.get("Pq_DFC"));
baseRealDataSet.setDpfTot(map.get("Pq_TotDFM")); baseRealDataSet.setDpfTot(map.get("Pq_TotDFT"));
return baseRealDataSet; return baseRealDataSet;
} }

View File

@@ -11,6 +11,7 @@ import com.njcn.access.utils.ChannelObjectUtil;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.PubUtils; import com.njcn.common.utils.PubUtils;
import com.njcn.csdevice.api.CsCommunicateFeignClient; import com.njcn.csdevice.api.CsCommunicateFeignClient;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.DataArrayFeignClient; import com.njcn.csdevice.api.DataArrayFeignClient;
import com.njcn.csdevice.api.DeviceMessageFeignClient; import com.njcn.csdevice.api.DeviceMessageFeignClient;
import com.njcn.csdevice.pojo.dto.PqsCommunicateDto; import com.njcn.csdevice.pojo.dto.PqsCommunicateDto;
@@ -61,6 +62,7 @@ public class StatServiceImpl implements IStatService {
private final CsDeviceFeignClient csDeviceFeignClient; private final CsDeviceFeignClient csDeviceFeignClient;
private final DeviceMessageFeignClient deviceMessageFeignClient; private final DeviceMessageFeignClient deviceMessageFeignClient;
private final CsCommunicateFeignClient csCommunicateFeignClient; private final CsCommunicateFeignClient csCommunicateFeignClient;
private final CsLineFeignClient csLineFeignClient;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@@ -82,7 +84,7 @@ public class StatServiceImpl implements IStatService {
String lineId = null; String lineId = null;
Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appAutoDataMessage.getId()); Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appAutoDataMessage.getId());
if (Objects.isNull(object1)){ if (Objects.isNull(object1)){
deviceMessageFeignClient.getLineInfo(appAutoDataMessage.getId()); deviceMessageFeignClient.getLineInfo(appAutoDataMessage.getId(),null);
} }
//获取当前设备信息判断装置型号,来筛选监测点 //获取当前设备信息判断装置型号,来筛选监测点
List<CsEquipmentDeliveryPO> poList = channelObjectUtil.objectToList(redisUtil.getObjectByKey(AppRedisKey.DEVICE_LIST),CsEquipmentDeliveryPO.class); List<CsEquipmentDeliveryPO> poList = channelObjectUtil.objectToList(redisUtil.getObjectByKey(AppRedisKey.DEVICE_LIST),CsEquipmentDeliveryPO.class);
@@ -109,6 +111,7 @@ public class StatServiceImpl implements IStatService {
//获取当前设备信息 //获取当前设备信息
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
Map<String,String> map = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.ELE_EPD_PQD)), Map.class);
List<String> recordList = new ArrayList<>(); List<String> recordList = new ArrayList<>();
for (AppAutoDataMessage.DataArray item : list) { for (AppAutoDataMessage.DataArray item : list) {
switch (item.getDataAttr()) { switch (item.getDataAttr()) {
@@ -141,7 +144,7 @@ public class StatServiceImpl implements IStatService {
} else { } else {
dataArrayList = objectToList(object); dataArrayList = objectToList(object);
} }
List<String> result = assembleData(lineId,dataArrayList,item,appAutoDataMessage.getMsg().getClDid(),dataArrayParam.getStatMethod(),po.getProcess(),code,po.getDevAccessMethod()); List<String> result = assembleData(lineId,dataArrayList,item,appAutoDataMessage.getMsg().getClDid(),dataArrayParam.getStatMethod(),po.getProcess(),code,po.getDevAccessMethod(),map);
recordList.addAll(result); recordList.addAll(result);
//获取时间 //获取时间
boolean timeFlag = Objects.equals(DicDataEnum.DEV_CLD.getCode(), code) && Objects.equals(po.getDevAccessMethod(), "CLD"); boolean timeFlag = Objects.equals(DicDataEnum.DEV_CLD.getCode(), code) && Objects.equals(po.getDevAccessMethod(), "CLD");
@@ -190,7 +193,7 @@ public class StatServiceImpl implements IStatService {
/** /**
* influxDB数据组装 * influxDB数据组装
*/ */
public List<String> assembleData(String lineId,List<CsDataArray> dataArrayList,AppAutoDataMessage.DataArray item,Integer clDid,String statMethod,Integer process,String devType,String accessMethod) { public List<String> assembleData(String lineId,List<CsDataArray> dataArrayList,AppAutoDataMessage.DataArray item,Integer clDid,String statMethod,Integer process,String devType,String accessMethod, Map<String,String> map) {
List<String> records = new ArrayList<String>(); List<String> records = new ArrayList<String>();
List<Float> floats = PubUtils.byteArrayToFloatList(Base64.getDecoder().decode(item.getData())); List<Float> floats = PubUtils.byteArrayToFloatList(Base64.getDecoder().decode(item.getData()));
if (CollectionUtil.isEmpty(floats)){ if (CollectionUtil.isEmpty(floats)){
@@ -199,14 +202,10 @@ public class StatServiceImpl implements IStatService {
if (!Objects.equals(dataArrayList.size(),floats.size())){ if (!Objects.equals(dataArrayList.size(),floats.size())){
throw new BusinessException(StatResponseEnum.ARRAY_DATA_NOT_MATCH); throw new BusinessException(StatResponseEnum.ARRAY_DATA_NOT_MATCH);
} }
Map<String,String> map = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.ELE_EPD_PQD)), Map.class);
boolean flag = Objects.equals(DicDataEnum.DEV_CLD.getCode(), devType) && Objects.equals(accessMethod, "CLD"); boolean flag = Objects.equals(DicDataEnum.DEV_CLD.getCode(), devType) && Objects.equals(accessMethod, "CLD");
//fixme 捂脸设备上送的是北京时间,时序数据库录入时 需要utc时间减去8小时 //fixme 捂脸设备上送的是北京时间,时序数据库录入时 需要utc时间减去8小时
long originalTimeSec = flag ? item.getDataTimeSec() : item.getDataTimeSec() - 8 * 3600; long originalTimeSec = flag ? item.getDataTimeSec() : item.getDataTimeSec() - 8 * 3600;
if (originalTimeSec < 0) {
System.out.println("originalTimeSec==:" + originalTimeSec);
}
for (int i = 0; i < dataArrayList.size(); i++) { for (int i = 0; i < dataArrayList.size(); i++) {
String tableName = map.get(dataArrayList.get(i).getName()); String tableName = map.get(dataArrayList.get(i).getName());
@@ -227,7 +226,11 @@ public class StatServiceImpl implements IStatService {
tags.put(InfluxDBTableConstant.LINE_ID,lineId); tags.put(InfluxDBTableConstant.LINE_ID,lineId);
tags.put(InfluxDBTableConstant.PHASIC_TYPE,dataArrayList.get(i).getPhase()); tags.put(InfluxDBTableConstant.PHASIC_TYPE,dataArrayList.get(i).getPhase());
tags.put(InfluxDBTableConstant.VALUE_TYPE,statMethod.toUpperCase()); tags.put(InfluxDBTableConstant.VALUE_TYPE,statMethod.toUpperCase());
if (Objects.isNull(item.getDataTag())) {
tags.put(InfluxDBTableConstant.QUALITY_FLAG,"0"); tags.put(InfluxDBTableConstant.QUALITY_FLAG,"0");
} else {
tags.put(InfluxDBTableConstant.QUALITY_FLAG,String.valueOf(item.getDataTag()));
}
Map<String,Object> fields = new HashMap<>(); Map<String,Object> fields = new HashMap<>();
//这边特殊处理如果数据为3.14159则将数据置为null //这边特殊处理如果数据为3.14159则将数据置为null
if (Objects.isNull(dataArrayList.get(i).getInfluxDbName())) { if (Objects.isNull(dataArrayList.get(i).getInfluxDbName())) {
@@ -237,7 +240,6 @@ public class StatServiceImpl implements IStatService {
} }
fields.put(InfluxDBTableConstant.CL_DID,clDid.toString()); fields.put(InfluxDBTableConstant.CL_DID,clDid.toString());
fields.put(InfluxDBTableConstant.PROCESS,process.toString()); fields.put(InfluxDBTableConstant.PROCESS,process.toString());
fields.put(InfluxDBTableConstant.IS_ABNORMAL,item.getDataTag());
Point point = influxDbUtils.pointBuilder(tableName, adjustedTimeSec, TimeUnit.SECONDS, tags, fields); Point point = influxDbUtils.pointBuilder(tableName, adjustedTimeSec, TimeUnit.SECONDS, tags, fields);
BatchPoints batchPoints = BatchPoints.database(influxDbUtils.getDbName()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); BatchPoints batchPoints = BatchPoints.database(influxDbUtils.getDbName()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build();
@@ -258,4 +260,5 @@ public class StatServiceImpl implements IStatService {
} }
return urlList; return urlList;
} }
} }

View File

@@ -51,7 +51,7 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService {
List<WaveTimeDto> list = new ArrayList<>(); List<WaveTimeDto> list = new ArrayList<>();
Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId()); Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId());
if (Objects.isNull(object1)){ if (Objects.isNull(object1)){
deviceMessageFeignClient.getLineInfo(appEventMessage.getId()); deviceMessageFeignClient.getLineInfo(appEventMessage.getId(),null);
} }
//获取装置id //获取装置id
String deviceId = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData().getId(); String deviceId = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData().getId();

View File

@@ -96,7 +96,7 @@ public class EventServiceImpl implements IEventService {
} }
//判断监测点是否存在 //判断监测点是否存在
if (Objects.isNull(object1)){ if (Objects.isNull(object1)){
deviceMessageFeignClient.getLineInfo(appEventMessage.getId()); deviceMessageFeignClient.getLineInfo(appEventMessage.getId(),null);
} }
//获取装置id //获取装置id
CsEquipmentDeliveryPO po = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData(); CsEquipmentDeliveryPO po = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData();