feat(api): 添加批量插入通信数据功能

- 在CsCommunicateFeignClient中增加insertionList接口方法
- 实现批量插入的fallback处理逻辑
- 在ICsCommunicateService中添加insertionList服务接口
- 完成InfluxdbCsCommunicateServiceImpl中的批量插入实现
- 优化数据处理逻辑,支持运行状态转换和CT/PT计算
- 添加数据排序功能,按项目名、设备名、测点名排序
- 在控制器中增加批量插入数据的REST接口
This commit is contained in:
xy
2026-07-02 19:06:58 +08:00
parent 9f5c273180
commit e629c8b42c
6 changed files with 82 additions and 4 deletions

View File

@@ -1302,7 +1302,6 @@ public class DataServiceImpl implements IDataService {
List<CsLinePO> line2 = linePo.stream().filter(item->item.getClDid()!=0).collect(Collectors.toList());
List<String> lineList2 = line2.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
List<List<String>> partitions = Lists.partition(lineList2, 95);
//表集合
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode("Data").getData();
Map<String, DictData> map = dataList.stream().collect(Collectors.toMap(DictData::getId, v -> v));
@@ -1488,7 +1487,8 @@ public class DataServiceImpl implements IDataService {
if (item2.getLineList() != null && item2.getLineList().contains(item.getLineId())) {
vo.setProjectName(item2.getProjectName());
vo.setDeviceName(item2.getEquipmentName());
vo.setRunStatus(item.getRunStatus());
int runStatus = Objects.equals(item2.getRunStatus(),2) ? 0 : 1;
vo.setRunStatus(runStatus);
break;
}
}
@@ -1953,6 +1953,8 @@ public class DataServiceImpl implements IDataService {
if (item2.getLineList() != null && item2.getLineList().contains(item.getLineId())) {
vo.setProjectName(item2.getProjectName());
vo.setDeviceName(item2.getEquipmentName());
int runStatus = Objects.equals(item2.getRunStatus(),2) ? 0 : 1;
vo.setRunStatus(runStatus);
break;
}
}
@@ -1960,8 +1962,8 @@ public class DataServiceImpl implements IDataService {
vo.setLineType(0);
vo.setPointId(item.getLineId());
vo.setPointName(lineMap.get(item.getLineId()).getName());
Double ct = lineMap.get(item.getLineId()).getCtRatio() / (Objects.isNull(lineMap.get(item.getLineId()).getCt2Ratio())?1.0:lineMap.get(item.getLineId()).getCtRatio());
Double pt = lineMap.get(item.getLineId()).getPtRatio() / (Objects.isNull(lineMap.get(item.getLineId()).getPt2Ratio())?1.0:lineMap.get(item.getLineId()).getPtRatio());
Double ct = Objects.isNull(lineMap.get(item.getLineId()).getCtRatio())?1.0:lineMap.get(item.getLineId()).getCtRatio() / (Objects.isNull(lineMap.get(item.getLineId()).getCt2Ratio())?1.0:lineMap.get(item.getLineId()).getCtRatio());
Double pt = Objects.isNull(lineMap.get(item.getLineId()).getPtRatio())?1.0:lineMap.get(item.getLineId()).getPtRatio() / (Objects.isNull(lineMap.get(item.getLineId()).getPt2Ratio())?1.0:lineMap.get(item.getLineId()).getPtRatio());
List<AppLineDetailVo.targetDetail> children2 = new ArrayList<>();
//指标第二层
List<AppLineDetailVo.targetDetail> finalChildren = children2;
@@ -2050,6 +2052,11 @@ public class DataServiceImpl implements IDataService {
vo.setChildren(children2);
result.add(vo);
});
if (CollUtil.isNotEmpty(result)) {
result.sort(Comparator.comparing(AppLineDetailVo::getProjectName, Comparator.nullsLast(Comparator.naturalOrder()))
.thenComparing(AppLineDetailVo::getDeviceName, Comparator.nullsLast(Comparator.naturalOrder()))
.thenComparing(AppLineDetailVo::getPointName, Comparator.nullsLast(Comparator.naturalOrder())));
}
return result;
}