refactor(data-process): 重构数据处理服务依赖注入和数据获取逻辑

- 将 PqReasonableRangeFeignClient 替换为 IPqReasonableRangeService 接口
- 统一使用本地服务接口替代远程调用,优化性能
- 移除废弃的 WlMinuteData 方法和相关设备线路查询逻辑
- 标准化时间相关的导入包,只保留必要的类
- 清理未使用的资源注入和函数式编程相关导入
- 简化数据获取流程,统一使用 getMinuteData 方法
This commit is contained in:
xy
2026-05-20 14:08:49 +08:00
parent 5d4e461ef0
commit 7f6172d0ad
27 changed files with 252 additions and 1178 deletions

View File

@@ -0,0 +1,91 @@
package com.njcn.algorithm.controller;
import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto;
import com.njcn.algorithm.service.line.IPqReasonableRangeService;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.enums.DeviceOperate;
import com.njcn.dataProcess.param.DataCleanParam;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author xy
* @since 2025-02-13
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/pqReasonableRange")
@Api(tags = "数据清洗标准库")
public class PqReasonableRangeController extends BaseController {
@Resource
private IPqReasonableRangeService pqReasonableRangeService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getData")
@ApiOperation("按条件获取数据合理范围")
public HttpResult<List<PqReasonableRangeDto>> getData(@RequestBody DataCleanParam param) {
String methodDescribe = getMethodDescribe("getData");
List<PqReasonableRangeDto> list = pqReasonableRangeService.getReasonableRangeList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/save")
@ApiOperation("新增数据合理范围")
public HttpResult<String> save(@RequestBody @Validated PqReasonableRangeDto dto) {
String methodDescribe = getMethodDescribe("save");
boolean result = pqReasonableRangeService.savePqReasonableRange(dto);
if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "新增成功", methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "新增失败", methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE)
@PostMapping("/update")
@ApiOperation("更新数据合理范围")
public HttpResult<String> update(@RequestBody @Validated PqReasonableRangeDto dto) {
String methodDescribe = getMethodDescribe("update");
boolean result = pqReasonableRangeService.updatePqReasonableRange(dto);
if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "更新成功", methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "更新失败", methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/delete")
@ApiOperation("删除数据合理范围")
@DeviceLog(operateType = DeviceOperate.DELETE)
public HttpResult<String> delete(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("delete");
boolean result = pqReasonableRangeService.deletePqReasonableRange(id);
if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "删除成功", methodDescribe);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "删除失败", methodDescribe);
}
}

View File

@@ -0,0 +1,15 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.PqReasonableRange;
/**
* <p>
* Mapper 接口
* </p>
*
* @author xy
* @since 2025-02-13
*/
public interface PqReasonableRangeMapper extends BaseMapper<PqReasonableRange> {
}

View File

@@ -1,7 +1,7 @@
package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.dataProcess.pojo.dto.PqReasonableRangeDto;
import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import com.njcn.system.pojo.po.DictData;

View File

@@ -0,0 +1,33 @@
package com.njcn.algorithm.service.line;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto;
import com.njcn.algorithm.pojo.po.PqReasonableRange;
import com.njcn.dataProcess.param.DataCleanParam;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author xy
* @since 2025-02-13
*/
public interface IPqReasonableRangeService extends IService<PqReasonableRange> {
/**
* 根据条件获取稳态指标正常范围数据
* @param param
* @return
*/
List<PqReasonableRangeDto> getReasonableRangeList(DataCleanParam param);
boolean savePqReasonableRange(PqReasonableRangeDto dto);
boolean updatePqReasonableRange(PqReasonableRangeDto dto);
boolean deletePqReasonableRange(String id);
}

View File

@@ -3,8 +3,10 @@ package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto;
import com.njcn.algorithm.service.line.FlowAsyncService;
import com.njcn.algorithm.service.line.IDataCleanService;
import com.njcn.algorithm.service.line.IPqReasonableRangeService;
import com.njcn.algorithm.utils.MemorySizeUtil;
import com.njcn.dataProcess.api.*;
import com.njcn.dataProcess.dto.RmpEventDetailDTO;
@@ -33,7 +35,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.time.*;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
@@ -80,7 +84,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
@Resource
private PqDataVerifyFeignClient pqDataVerifyFeignClient;
@Resource
private PqReasonableRangeFeignClient pqReasonableRangeFeignClient;
private IPqReasonableRangeService pqReasonableRangeService;
@Resource
private LineFeignClient lineFeignClient;
@Resource
@@ -644,7 +648,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
DataCleanParam param = new DataCleanParam();
param.setSystemType(DataCleanEnum.Pqs.getCode());
// param.setDataSource(DataCleanEnum.InfluxDB.getCode());
List<PqReasonableRangeDto> list = pqReasonableRangeFeignClient.getData(param).getData();
List<PqReasonableRangeDto> list = pqReasonableRangeService.getReasonableRangeList(param);
if (CollUtil.isNotEmpty(list)) {
pqReasonableRangeDtoMap = list.stream().collect(Collectors.groupingBy(PqReasonableRangeDto::getInfluxdbTableName));
}
@@ -662,7 +666,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
if (ObjectUtil.isNotNull(tableName)) {
param.setTableName(tableName);
}
List<PqReasonableRangeDto> list = pqReasonableRangeFeignClient.getData(param).getData();
List<PqReasonableRangeDto> list = pqReasonableRangeService.getReasonableRangeList(param);
if (CollUtil.isNotEmpty(list)) {
pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
}

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto;
import com.njcn.algorithm.service.line.FlowAsyncService;
import com.njcn.dataProcess.api.*;
import com.njcn.dataProcess.dto.DataCleanJsonDTO;
@@ -92,7 +93,7 @@ public class FlowAsyncServiceImpl implements FlowAsyncService {
@Override
@Async("asyncExecutor")
public void lineDataClean(LineDetailVO.Detail line, Map<String, List<PqReasonableRangeDto>> map, String dataDate,DictData dip,DictData rise,int size,int i) {
public void lineDataClean(LineDetailVO.Detail line, Map<String, List<PqReasonableRangeDto>> map, String dataDate, DictData dip, DictData rise, int size, int i) {
LineDetailVO.Detail item = line;
List<Map<String, Object>> resultData = new ArrayList<>();
Set<String> allTimeSet = new HashSet<>();

View File

@@ -0,0 +1,80 @@
package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.PqReasonableRangeMapper;
import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto;
import com.njcn.algorithm.pojo.po.PqReasonableRange;
import com.njcn.algorithm.service.line.IPqReasonableRangeService;
import com.njcn.dataProcess.param.DataCleanParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author xy
* @since 2025-02-13
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class PqReasonableRangeServiceImpl extends ServiceImpl<PqReasonableRangeMapper, PqReasonableRange> implements IPqReasonableRangeService {
@Override
public List<PqReasonableRangeDto> getReasonableRangeList(DataCleanParam param) {
List<PqReasonableRangeDto> result = new ArrayList<>();
LambdaQueryWrapper<PqReasonableRange> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PqReasonableRange::getBelongingSystem,param.getSystemType());
if(StrUtil.isNotBlank(param.getDataSource())){
queryWrapper.eq(PqReasonableRange::getDataSource,param.getDataSource());
}
if(StrUtil.isNotBlank(param.getTableName())){
queryWrapper.eq(PqReasonableRange::getInfluxdbTableName,param.getTableName());
}
queryWrapper.eq(PqReasonableRange::getState,1);
List<PqReasonableRange> list = this.list(queryWrapper);
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{
PqReasonableRangeDto dto = new PqReasonableRangeDto();
BeanUtils.copyProperties(item,dto);
result.add(dto);
});
}
return result;
}
@Override
public boolean savePqReasonableRange(PqReasonableRangeDto dto) {
PqReasonableRange entity = new PqReasonableRange();
BeanUtils.copyProperties(dto, entity);
entity.setState(1);
return this.save(entity);
}
@Override
public boolean updatePqReasonableRange(PqReasonableRangeDto dto) {
PqReasonableRange entity = new PqReasonableRange();
BeanUtils.copyProperties(dto, entity);
return this.updateById(entity);
}
@Override
public boolean deletePqReasonableRange(String id) {
PqReasonableRange entity = this.getById(id);
if (entity != null) {
entity.setState(0);
return this.updateById(entity);
}
return false;
}
}