refactor(logs): 重构日志服务相关配置和线路数据分析逻辑

- 将CsLogsPOMapper.xml从cs-device模块迁移至cs-system模块
- 更新CsLogsFeignClient的服务器配置从CS_DEVICE_BOOT到CS_SYSTEM_BOOT
- 优化CsGroupServiceImpl中的设备线路查询逻辑,直接使用敏感用户ID获取线路数据
- 在StableDataServiceImpl中新增电网侧和负荷侧字典常量定义
- 重构线路数据过滤逻辑,按电网侧和负荷侧分别处理数据
- 添加数据分组处理机制,区分治理前后数据并设置相应标识
This commit is contained in:
xy
2026-06-11 21:33:32 +08:00
parent 95d9432298
commit b2e9597839
4 changed files with 76 additions and 54 deletions

View File

@@ -1337,12 +1337,7 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
result.put("before", new ArrayList<>());
result.put("after", new ArrayList<>());
String sensitiveUserId = param.getSensitiveUserId();
List<CsEquipmentDeliveryPO> devList = csLineFeignClient.getDevBySensitiveUser(Collections.singletonList(sensitiveUserId)).getData();
if (CollUtil.isEmpty(devList)) {
return result;
}
List<String> devIds = devList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
List<CsLinePO> linePOList = csLineFeignClient.getLinesByDevList(devIds).getData();
List<CsLinePO> linePOList = csLineFeignClient.getLinesByDevList(Collections.singletonList(sensitiveUserId)).getData();
DictData loadSideDictData = dicDataFeignClient.getDicDataByCode(LOAD_SIDE_DICT_CODE).getData();
DictData gridSideDictData = dicDataFeignClient.getDicDataByCode(GRID_SIDE_DICT_CODE).getData();
CsLinePO gridSideLine = linePOList.stream().filter(linePO -> linePO.getPosition().equals(gridSideDictData.getId())).findFirst().orElse(null);

View File

@@ -28,6 +28,7 @@ import com.njcn.system.api.CsStatisticalSetFeignClient;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.EpdFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.EleEpdPqd;
import lombok.RequiredArgsConstructor;
import org.influxdb.dto.QueryResult;
@@ -63,6 +64,8 @@ public class StableDataServiceImpl implements StableDataService {
private final CsStatisticalSetFeignClient csStatisticalSetFeignClient;
private final InfluxDbParamUtil influxDbParamUtil;
private final EquipmentFeignClient equipmentFeignClient;
private final String GRID_SIDE_DICT_CODE = "Grid_Side";
private final String LOAD_SIDE_DICT_CODE = "Load_Side";
@Override
@@ -251,12 +254,14 @@ public class StableDataServiceImpl implements StableDataService {
if(CollectionUtil.isEmpty(csLinePOList)){
throw new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR);
}
String areaId = dicDataFeignClient.getDicDataByCode(DicDataEnum.OUTPUT_SIDE.getCode()).getData().getId();
Optional.ofNullable(csLinePOList).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
List<CsLinePO> csLinePOList1 = csLinePOList.stream().filter(temp -> Objects.equals(areaId, temp.getPosition())).collect(Collectors.toList());
DictData loadSideDictData = dicDataFeignClient.getDicDataByCode(LOAD_SIDE_DICT_CODE).getData();
DictData gridSideDictData = dicDataFeignClient.getDicDataByCode(GRID_SIDE_DICT_CODE).getData();
CsLinePO gridSideLine = csLinePOList.stream().filter(linePO -> linePO.getPosition().equals(gridSideDictData.getId())).findFirst().orElse(null);
CsLinePO loadSideLine = csLinePOList.stream().filter(linePO -> linePO.getPosition().equals(loadSideDictData.getId())).findFirst().orElse(null);
List<CsLinePO> csLinePOList1 = new ArrayList<>();
csLinePOList1.add(gridSideLine);csLinePOList1.add(loadSideLine);
List<EleEpdPqd> data = csStatisticalSetFeignClient.queryStatisticalSelect(Collections.singletonList(commonStatisticalQueryParam.getStatisticalId())).getData();
if(CollectionUtil.isNotEmpty(data)){
List<CsLinePO> finalCsLinePOList = csLinePOList;
data.forEach(epdPqd->{
String frequency = Optional.ofNullable(commonStatisticalQueryParam.getFrequency()).orElse("");
if(StringUtils.isEmpty(commonStatisticalQueryParam.getFrequency())){
@@ -284,23 +289,45 @@ public class StableDataServiceImpl implements StableDataService {
return commonQueryParam;
}).collect(Collectors.toList());
List<StatisticalDataDTO> deviceRtData = commonService.getDeviceRtDataByTime(commonQueryParams);
List<ThdDataVO> collect1 = deviceRtData.stream().map(temp -> {
if (CollectionUtil.isNotEmpty(deviceRtData)) {
Map<String, List<StatisticalDataDTO> > map = deviceRtData.stream().collect(Collectors.groupingBy(StatisticalDataDTO::getLineId));
map.forEach((key, value) -> {
if (!Objects.isNull(loadSideLine) && Objects.equals(key, loadSideLine.getLineId())) {
List<ThdDataVO> collect1 = value.stream().map(temp -> {
ThdDataVO vo = new ThdDataVO();
vo.setLineId(temp.getLineId());
vo.setPhase(temp.getPhaseType());
String position = finalCsLinePOList.stream().filter(csLinePO -> Objects.equals(csLinePO.getLineId(), vo.getLineId())).collect(Collectors.toList()).get(0).getPosition();
vo.setPosition(position);
vo.setPosition(loadSideLine.getPosition());
vo.setTime(temp.getTime());
vo.setStatMethod(temp.getValueType());
vo.setStatisticalData(Double.valueOf(df.format(temp.getValue())));
vo.setStatisticalIndex(epdPqd.getId());
vo.setUnit(epdPqd.getUnit());
vo.setStatisticalName(epdPqd.getName());
vo.setAnotherName(epdPqd.getShowName());
vo.setAnotherName("治理前");
return vo;
}).collect(Collectors.toList());
result.addAll(collect1);
}
if (!Objects.isNull(gridSideLine) && Objects.equals(key, gridSideLine.getLineId())) {
List<ThdDataVO> collect1 = value.stream().map(temp -> {
ThdDataVO vo = new ThdDataVO();
vo.setLineId(temp.getLineId());
vo.setPhase(temp.getPhaseType());
vo.setPosition(gridSideLine.getPosition());
vo.setTime(temp.getTime());
vo.setStatMethod(temp.getValueType());
vo.setStatisticalData(Double.valueOf(df.format(temp.getValue())));
vo.setStatisticalIndex(epdPqd.getId());
vo.setUnit(epdPqd.getUnit());
vo.setStatisticalName(epdPqd.getName());
vo.setAnotherName("治理后");
return vo;
}).collect(Collectors.toList());
result.addAll(collect1);
}
});
}
});
}
return result;

View File

@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/cslog", fallbackFactory = CsLogsClientFallbackFactory.class,contextId = "cslog")
@FeignClient(value = ServerInfo.CS_SYSTEM_BOOT, path = "/cslog", fallbackFactory = CsLogsClientFallbackFactory.class,contextId = "cslog")
public interface CsLogsFeignClient {
@PostMapping("/add")

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.csdevice.mapper.CsLogsPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.csdevice.pojo.po.CsLogsPO">
<mapper namespace="com.njcn.cssystem.mapper.CsLogsPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.cssystem.pojo.po.CsLogsPO">
<!--@mbg.generated-->
<!--@Table cs_logs-->
<id column="id" jdbcType="VARCHAR" property="id" />