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

View File

@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
/** /**
* @author xy * @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 { public interface CsLogsFeignClient {
@PostMapping("/add") @PostMapping("/add")

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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"> <mapper namespace="com.njcn.cssystem.mapper.CsLogsPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.csdevice.pojo.po.CsLogsPO"> <resultMap id="BaseResultMap" type="com.njcn.cssystem.pojo.po.CsLogsPO">
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table cs_logs--> <!--@Table cs_logs-->
<id column="id" jdbcType="VARCHAR" property="id" /> <id column="id" jdbcType="VARCHAR" property="id" />