Merge remote-tracking branch 'origin/master'

This commit is contained in:
hzj
2025-03-03 16:08:07 +08:00
44 changed files with 2354 additions and 90 deletions

View File

@@ -0,0 +1,27 @@
package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataHarmRateIFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataHarmRateI", fallbackFactory = DataHarmRateIFeignClientFallbackFactory.class, contextId = "dataHarmRateI")
public interface DataHarmRateIFeignClient {
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataHarmRateIDto> list);
}

View File

@@ -4,7 +4,9 @@ import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataHarmRateVFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -20,4 +22,10 @@ public interface DataHarmRateVFeignClient {
@PostMapping("/getRawData")
HttpResult<List<DataHarmDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataHarmRateVDto> list);
}

View File

@@ -2,9 +2,11 @@ package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataIFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -24,4 +26,10 @@ public interface DataHarmpowerSFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataHarmpowerSDTO> dataHarmpowerSDTOList);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataHarmPowerSDto> data);
}

View File

@@ -5,6 +5,10 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataInharmIFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -19,9 +23,13 @@ import java.util.List;
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataInharmI", fallbackFactory = DataInharmIFeignClientFallbackFactory.class, contextId = "dataInharmI")
public interface DataInharmIFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataInharmIDTO> dataInharmIDTOList);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataInHarmIDto> list);
}

View File

@@ -6,7 +6,10 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataInharmVFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -29,4 +32,10 @@ public interface DataInharmVFeignClient {
@PostMapping("/getRawData")
HttpResult<List<DataHarmDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataInHarmVDto> list);
}

View File

@@ -5,6 +5,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataPltFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -28,4 +29,10 @@ public interface DataPltFeignClient {
@PostMapping("/getRawData")
HttpResult<List<DataPltDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataPltDto> list);
}

View File

@@ -0,0 +1,55 @@
package com.njcn.dataProcess.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataHarmRateIFeignClient;
import com.njcn.dataProcess.api.DataHarmRateVFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class DataHarmRateIFeignClientFallbackFactory implements FallbackFactory<DataHarmRateIFeignClient> {
/**
* 输出远程请求接口异常日志
* @param cause RPC请求异常
*/
@Override
public DataHarmRateIFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if(cause.getCause() instanceof BusinessException){
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = DataProcessingEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataHarmRateIFeignClient() {
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataHarmRateIDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -5,7 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataHarmRateVFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
@@ -41,6 +43,18 @@ public class DataHarmRateVFeignClientFallbackFactory implements FallbackFactory<
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataHarmRateVDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -5,6 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataHarmpowerSFeignClient;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import com.njcn.system.utils.SystemEnumUtil;
import feign.hystrix.FallbackFactory;
@@ -44,6 +47,18 @@ public class DataHarmpowerSFeignClientFallbackFactory implements FallbackFactory
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataHarmPowerSDto> data) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -5,6 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataInharmIFeignClient;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import com.njcn.system.utils.SystemEnumUtil;
import feign.hystrix.FallbackFactory;
@@ -44,6 +47,18 @@ public class DataInharmIFeignClientFallbackFactory implements FallbackFactory<Da
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataInHarmIDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -6,7 +6,9 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataInharmVFeignClient;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
@@ -51,6 +53,18 @@ public class DataInharmVFeignClientFallbackFactory implements FallbackFactory<Da
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataInHarmVDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -6,6 +6,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataPltFeignClient;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
@@ -51,6 +52,18 @@ public class DataPltFeignClientFallbackFactory implements FallbackFactory<DataPl
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取预处理数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataPltDto> list) {
log.error("{}异常,降级处理,异常为:{}","日表存储数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,66 @@
package com.njcn.dataProcess.controller;
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.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.service.IDataHarmRateI;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author xy
* @version 1.0
* @data 2025/3/3 10:00
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/dataHarmRateI")
@Api(tags = "谐波电流含有率")
public class DataHarmRateIController extends BaseController {
@QueryBean
private IDataHarmRateI dataHarmRateIQuery;
@InsertBean
private IDataHarmRateI dataHarmRateIInsert;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataHarmRateIQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataHarmRateIDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataHarmRateIInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -10,7 +10,9 @@ import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.service.IDataHarmRateV;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -63,4 +65,22 @@ public class DataHarmRateVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataHarmRateVQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataHarmRateVDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataHarmRateVInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -9,6 +9,10 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerQDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.service.IDataHarmpowerS;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -52,9 +56,22 @@ public class DataHarmpowerSController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataHarmpowerSQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataHarmPowerSDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataHarmpowerSInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -6,9 +6,12 @@ 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.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.service.IDataInharmI;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -53,9 +56,22 @@ public class DataInharmIController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataInharmIQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataInHarmIDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataInharmIInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -6,11 +6,13 @@ 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.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.service.IDataInharmV;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -64,5 +66,23 @@ public class DataInharmVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataInharmVQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataInHarmVDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataInharmVInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -10,6 +10,7 @@ import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.service.IDataPlt;
import com.njcn.web.controller.BaseController;
@@ -64,5 +65,22 @@ public class DataPltController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataPltQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("关系型数据库插入数据")
public HttpResult<String> addList(@RequestBody List<DataPltDto> list) {
String methodDescribe = getMethodDescribe("addList");
dataPltInsert.addList(list);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
}

View File

@@ -0,0 +1,11 @@
package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmrateI;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* @author xy
*/
public interface DataHarmRateIMapper extends InfluxDbBaseMapper<DataHarmrateI> {
}

View File

@@ -1,14 +0,0 @@
package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* @author xy
*/
public interface DataHarmRateVMapper extends InfluxDbBaseMapper<DataHarmrateV> {
}

View File

@@ -3,12 +3,9 @@ package com.njcn.dataProcess.dao.imapper;
import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.influx.base.InfluxDbBaseMapper;
/**
* @author xy
*/
public interface DataHarmRateVMapper extends InfluxDbBaseMapper<DataHarmrateV> {
}

View File

@@ -0,0 +1,27 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateID;
import java.util.List;
/**
* @author xy
*/
public interface IDataHarmRateI extends IMppService<RStatDataHarmRateID> {
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataHarmRateIDto> list);
}

View File

@@ -1,8 +1,12 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import java.util.List;
@@ -10,7 +14,7 @@ import java.util.List;
* @author xy
*/
public interface
IDataHarmRateV {
IDataHarmRateV extends IMppService<RStatDataHarmRateVD> {
/**
* 获取原始数据
@@ -20,4 +24,15 @@ IDataHarmRateV {
List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam);
void batchInsertion (List<DataHarmrateVDTO> dataHarmrateVDTOList);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataHarmRateVDto> list);
}

View File

@@ -1,6 +1,11 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmPowerSD;
import java.util.List;
@@ -11,6 +16,17 @@ import java.util.List;
* @author clam
* @version V1.0.0
*/
public interface IDataHarmpowerS {
public interface IDataHarmpowerS extends IMppService<RStatDataHarmPowerSD> {
void batchInsertion(List<DataHarmpowerSDTO> dataIDTOList);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataHarmPowerSDto> list);
}

View File

@@ -1,6 +1,11 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmID;
import java.util.List;
@@ -11,7 +16,18 @@ import java.util.List;
* @author clam
* @version V1.0.0
*/
public interface IDataInharmI {
public interface IDataInharmI extends IMppService<RStatDataInHarmID> {
void batchInsertion(List<DataInharmIDTO> dataIDTOList);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataInHarmIDto> list);
}

View File

@@ -1,8 +1,12 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmVD;
import java.util.List;
@@ -13,7 +17,7 @@ import java.util.List;
* @author clam
* @version V1.0.0
*/
public interface IDataInharmV {
public interface IDataInharmV extends IMppService<RStatDataInHarmVD> {
void batchInsertion(List<DataInharmVDTO> dataIDTOList);
@@ -23,4 +27,16 @@ public interface IDataInharmV {
* @return
*/
List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataInHarmVDto> list);
}

View File

@@ -1,9 +1,11 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIDto;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.po.RStatDataPltD;
import java.util.List;
@@ -14,7 +16,7 @@ import java.util.List;
* @author clam
* @version V1.0.0
*/
public interface IDataPlt {
public interface IDataPlt extends IMppService<RStatDataPltD> {
void batchInsertion(List<DataPltDTO> dataPltDTOList);
/**
@@ -23,4 +25,15 @@ public interface IDataPlt {
* @return
*/
List<DataPltDto> getRawData(LineCountEvaluateParam lineParam);
/**
* 获取预处理数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataPltDto> list);
}

View File

@@ -0,0 +1,190 @@
package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataHarmRateIMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateIRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmrateI;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateID;
import com.njcn.dataProcess.service.IDataHarmRateI;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author xy
*/
@Service("InfluxdbDataHarmRateIImpl")
public class InfluxdbDataHarmRateIImpl extends MppServiceImpl<RStatDataHarmRateIRelationMapper, RStatDataHarmRateID> implements IDataHarmRateI {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@Resource
private DataHarmRateIMapper dataHarmRateIMapper;
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataHarmrateI> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataHarmrateI>> lineMap = data.stream().collect(Collectors.groupingBy(DataHarmrateI::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataHarmrateI>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataHarmrateI::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataHarmrateI>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataHarmrateI::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataHarmrateI::getI1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmrateI::getI2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmrateI::getI3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmrateI::getI4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmrateI::getI5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmrateI::getI6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmrateI::getI7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmrateI::getI8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmrateI::getI9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmrateI::getI10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmrateI::getI11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmrateI::getI12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmrateI::getI13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmrateI::getI14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmrateI::getI15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmrateI::getI16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmrateI::getI17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmrateI::getI18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmrateI::getI19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmrateI::getI20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmrateI::getI21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmrateI::getI22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmrateI::getI23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmrateI::getI24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmrateI::getI25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmrateI::getI26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmrateI::getI27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmrateI::getI28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmrateI::getI29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmrateI::getI30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmrateI::getI31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmrateI::getI32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmrateI::getI33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmrateI::getI34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmrateI::getI35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmrateI::getI36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmrateI::getI37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmrateI::getI38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmrateI::getI39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmrateI::getI40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmrateI::getI41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmrateI::getI42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmrateI::getI43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmrateI::getI44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmrateI::getI45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmrateI::getI46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmrateI::getI47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmrateI::getI48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmrateI::getI49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmrateI::getI50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataHarmRateIDto> list) {
}
/**
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataHarmrateI> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataHarmrateI> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataHarmrateI::getLineId, lineList)
.select(DataHarmrateI::getLineId)
.select(DataHarmrateI::getPhasicType)
.select(DataHarmrateI::getValueType)
.select(DataHarmrateI::getQualityFlag)
.between(DataHarmrateI::getTime, startTime, endTime)
.eq(DataHarmrateI::getQualityFlag,"0");
List<DataHarmrateI> list = dataHarmRateIMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataHarmrateI>> lineMap = list.stream().collect(Collectors.groupingBy(DataHarmrateI::getLineId));
//有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{
List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) {
List<DataHarmrateI> filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList());
//1.过滤掉异常数据后还有正常数据,则用正常数据计算
if (CollectionUtil.isNotEmpty(filterList)) {
result.addAll(filterList);
}
//2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的
else {
v.parallelStream().forEach(item -> item.setQualityFlag("1"));
result.addAll(v);
}
}
//没有异常数据,则使用原数据
else {
result.addAll(v);
}
});
}
//没有异常数据,则使用原数据
else {
result.addAll(list);
}
return result;
}
}

View File

@@ -1,14 +1,19 @@
package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataHarmRateVMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper;
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmrateV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import com.njcn.dataProcess.service.IDataHarmRateV;
import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
@@ -19,6 +24,7 @@ import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -28,7 +34,7 @@ import java.util.stream.Collectors;
*/
@Service("InfluxdbDataHarmRateVImpl")
@RequiredArgsConstructor
public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateVRelationMapper, RStatDataHarmRateVD> implements IDataHarmRateV {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@@ -37,7 +43,7 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
@Override
public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) {
List<DataHarmDto> result = new ArrayList<>();
List<DataHarmrateV> list = getMinuteDataI(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime());
List<DataHarmrateV> list = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime());
list.forEach(item->{
DataHarmDto dto = new DataHarmDto();
BeanUtils.copyProperties(item,dto);
@@ -47,18 +53,138 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
return result;
}
@Override
public void batchInsertion(List<DataHarmrateVDTO> dataHarmrateVDTOList) {
int totalCount = dataHarmrateVDTOList.size();
if(totalCount<=0){
return;
}
List<DataHarmrateV> collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
int minSize = Math.min(1200000, collect.size());
List<List<DataHarmrateV>> partition = ListUtils.partition(collect, minSize);
for (List<DataHarmrateV> dataHarmrateVList : partition) {
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList);
dataHarmRateVMapper.insertBatch(sublistAsOriginalListType);
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataHarmrateV> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataHarmrateV>> lineMap = data.stream().collect(Collectors.groupingBy(DataHarmrateV::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataHarmrateV>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataHarmrateV::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataHarmrateV>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataHarmrateV::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataHarmrateV::getV1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmrateV::getV2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmrateV::getV3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmrateV::getV4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmrateV::getV5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmrateV::getV6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmrateV::getV7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmrateV::getV8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmrateV::getV9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmrateV::getV10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmrateV::getV11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmrateV::getV12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmrateV::getV13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmrateV::getV14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmrateV::getV15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmrateV::getV16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmrateV::getV17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmrateV::getV18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmrateV::getV19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmrateV::getV20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmrateV::getV21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmrateV::getV22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmrateV::getV23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmrateV::getV24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmrateV::getV25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmrateV::getV26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmrateV::getV27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmrateV::getV28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmrateV::getV29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmrateV::getV30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmrateV::getV31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmrateV::getV32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmrateV::getV33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmrateV::getV34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmrateV::getV35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmrateV::getV36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmrateV::getV37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmrateV::getV38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmrateV::getV39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmrateV::getV40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmrateV::getV41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmrateV::getV42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmrateV::getV43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmrateV::getV44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmrateV::getV45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmrateV::getV46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmrateV::getV47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmrateV::getV48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmrateV::getV49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmrateV::getV50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataHarmRateVDto> list) {
}
/**
* 按监测点集合、时间条件获取dataI分钟数据
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataHarmrateV> getMinuteDataI(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
public List<DataHarmrateV> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataHarmrateV> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataHarmrateV::getLineId, lineList)
.select(DataHarmrateV::getLineId)
.select(DataHarmrateV::getPhasicType)
@@ -98,27 +224,4 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV {
return result;
}
@Override
public void batchInsertion(List<DataHarmrateVDTO> dataHarmrateVDTOList) {
int totalCount = dataHarmrateVDTOList.size();
if(totalCount<=0){
return;
}
List<DataHarmrateV> collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
int minSize = Math.min(1200000, collect.size());
List<List<DataHarmrateV>> partition = ListUtils.partition(collect, minSize);
for (List<DataHarmrateV> dataHarmrateVList : partition) {
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList);
dataHarmRateVMapper.insertBatch(sublistAsOriginalListType);
}
}
}

View File

@@ -1,15 +1,30 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataHarmpowerSMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmPowerSRelationMapper;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataHarmpowerS;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmPowerSD;
import com.njcn.dataProcess.service.IDataHarmpowerS;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -21,8 +36,9 @@ import java.util.stream.Collectors;
*/
@Service("InfluxdbDataHarmpowerSImpl")
@RequiredArgsConstructor
public class InfluxdbDataHarmpowerSImpl implements IDataHarmpowerS {
public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowerSRelationMapper, RStatDataHarmPowerSD> implements IDataHarmpowerS {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
private final DataHarmpowerSMapper dataHarmpowerSMapper;
@@ -43,4 +59,160 @@ public class InfluxdbDataHarmpowerSImpl implements IDataHarmpowerS {
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataHarmpowerS> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataHarmpowerS>> lineMap = data.stream().collect(Collectors.groupingBy(DataHarmpowerS::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataHarmpowerS>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataHarmpowerS::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataHarmpowerS>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataHarmpowerS::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataHarmpowerS::getS).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataHarmpowerS::getS1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataHarmpowerS::getS2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataHarmpowerS::getS3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataHarmpowerS::getS4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataHarmpowerS::getS5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataHarmpowerS::getS6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataHarmpowerS::getS7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataHarmpowerS::getS8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataHarmpowerS::getS9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataHarmpowerS::getS10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataHarmpowerS::getS11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataHarmpowerS::getS12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataHarmpowerS::getS13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataHarmpowerS::getS14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataHarmpowerS::getS15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataHarmpowerS::getS16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataHarmpowerS::getS17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataHarmpowerS::getS18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataHarmpowerS::getS19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataHarmpowerS::getS20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataHarmpowerS::getS21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataHarmpowerS::getS22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataHarmpowerS::getS23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataHarmpowerS::getS24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataHarmpowerS::getS25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataHarmpowerS::getS26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataHarmpowerS::getS27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataHarmpowerS::getS28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataHarmpowerS::getS29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataHarmpowerS::getS30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataHarmpowerS::getS31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataHarmpowerS::getS32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataHarmpowerS::getS33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataHarmpowerS::getS34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataHarmpowerS::getS35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataHarmpowerS::getS36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataHarmpowerS::getS37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataHarmpowerS::getS38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataHarmpowerS::getS39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataHarmpowerS::getS40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataHarmpowerS::getS41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataHarmpowerS::getS42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataHarmpowerS::getS43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataHarmpowerS::getS44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataHarmpowerS::getS45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataHarmpowerS::getS46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataHarmpowerS::getS47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataHarmpowerS::getS48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataHarmpowerS::getS49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataHarmpowerS::getS50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataHarmPowerSDto> list) {
}
/**
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataHarmpowerS> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataHarmpowerS> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataHarmpowerS::getLineId, lineList)
.select(DataHarmpowerS::getLineId)
.select(DataHarmpowerS::getPhasicType)
.select(DataHarmpowerS::getValueType)
.select(DataHarmpowerS::getS)
.select(DataHarmpowerS::getQualityFlag)
.between(DataHarmpowerS::getTime, startTime, endTime)
.eq(DataHarmpowerS::getQualityFlag,"0");
List<DataHarmpowerS> list = dataHarmpowerSMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataHarmpowerS>> lineMap = list.stream().collect(Collectors.groupingBy(DataHarmpowerS::getLineId));
//有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{
List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) {
List<DataHarmpowerS> filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList());
//1.过滤掉异常数据后还有正常数据,则用正常数据计算
if (CollectionUtil.isNotEmpty(filterList)) {
result.addAll(filterList);
}
//2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的
else {
v.parallelStream().forEach(item -> item.setQualityFlag("1"));
result.addAll(v);
}
}
//没有异常数据,则使用原数据
else {
result.addAll(v);
}
});
}
//没有异常数据,则使用原数据
else {
result.addAll(list);
}
return result;
}
}

View File

@@ -1,15 +1,30 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataInharmIMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmIRelationMapper;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataInharmI;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmID;
import com.njcn.dataProcess.service.IDataInharmI;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -21,9 +36,10 @@ import java.util.stream.Collectors;
*/
@Service("InfluxdbDataInharmIImpl")
@RequiredArgsConstructor
public class InfluxdbDataInharmIImpl implements IDataInharmI {
public class InfluxdbDataInharmIImpl extends MppServiceImpl<RStatDataInHarmIRelationMapper, RStatDataInHarmID> implements IDataInharmI {
private final DataInharmIMapper dataInharmIMapper;
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@Override
@@ -43,4 +59,157 @@ public class InfluxdbDataInharmIImpl implements IDataInharmI {
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataInharmI> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataInharmI>> lineMap = data.stream().collect(Collectors.groupingBy(DataInharmI::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataInharmI>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataInharmI::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataInharmI>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataInharmI::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataInharmI::getI1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataInharmI::getI2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataInharmI::getI3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataInharmI::getI4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataInharmI::getI5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataInharmI::getI6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataInharmI::getI7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataInharmI::getI8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataInharmI::getI9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataInharmI::getI10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataInharmI::getI11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataInharmI::getI12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataInharmI::getI13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataInharmI::getI14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataInharmI::getI15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataInharmI::getI16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataInharmI::getI17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataInharmI::getI18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataInharmI::getI19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataInharmI::getI20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataInharmI::getI21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataInharmI::getI22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataInharmI::getI23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataInharmI::getI24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataInharmI::getI25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataInharmI::getI26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataInharmI::getI27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataInharmI::getI28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataInharmI::getI29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataInharmI::getI30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataInharmI::getI31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataInharmI::getI32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataInharmI::getI33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataInharmI::getI34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataInharmI::getI35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataInharmI::getI36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataInharmI::getI37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataInharmI::getI38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataInharmI::getI39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataInharmI::getI40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataInharmI::getI41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataInharmI::getI42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataInharmI::getI43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataInharmI::getI44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataInharmI::getI45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataInharmI::getI46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataInharmI::getI47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataInharmI::getI48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataInharmI::getI49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataInharmI::getI50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataInHarmIDto> list) {
}
/**
* 按监测点集合、时间条件获取分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
* 需要进行剔除异常数据时,这里会有三种情况判断
* 1.无异常数据,则直接返回集合;
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/
public List<DataInharmI> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) {
List<DataInharmI> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataInharmI::getLineId, lineList)
.select(DataInharmI::getLineId)
.select(DataInharmI::getPhasicType)
.select(DataInharmI::getValueType)
.select(DataInharmI::getQualityFlag)
.between(DataInharmI::getTime, startTime, endTime)
.eq(DataInharmI::getQualityFlag,"0");
List<DataInharmI> list = dataInharmIMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataInharmI>> lineMap = list.stream().collect(Collectors.groupingBy(DataInharmI::getLineId));
//有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{
List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) {
List<DataInharmI> filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList());
//1.过滤掉异常数据后还有正常数据,则用正常数据计算
if (CollectionUtil.isNotEmpty(filterList)) {
result.addAll(filterList);
}
//2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的
else {
v.parallelStream().forEach(item -> item.setQualityFlag("1"));
result.addAll(v);
}
}
//没有异常数据,则使用原数据
else {
result.addAll(v);
}
});
}
//没有异常数据,则使用原数据
else {
result.addAll(list);
}
return result;
}
}

View File

@@ -1,14 +1,20 @@
package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.dao.imapper.DataInharmVMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmVRelationMapper;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataI;
import com.njcn.dataProcess.po.influx.DataInharmV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmVD;
import com.njcn.dataProcess.service.IDataInharmV;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
@@ -19,6 +25,7 @@ import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -33,7 +40,7 @@ import java.util.stream.Collectors;
*/
@Service("InfluxdbDataInharmVImpl")
@RequiredArgsConstructor
public class InfluxdbDataInharmVImpl implements IDataInharmV {
public class InfluxdbDataInharmVImpl extends MppServiceImpl<RStatDataInHarmVRelationMapper, RStatDataInHarmVD> implements IDataInharmV {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@@ -71,6 +78,107 @@ public class InfluxdbDataInharmVImpl implements IDataInharmV {
return result;
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataInharmV> data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataInharmV>> lineMap = data.stream().collect(Collectors.groupingBy(DataInharmV::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataInharmV>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataInharmV::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataInharmV>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataInharmV::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//规定好集合指标参数
List<Double> data12 = valueTypeList.stream().map(DataInharmV::getV1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataInharmV::getV2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataInharmV::getV3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataInharmV::getV4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataInharmV::getV5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataInharmV::getV6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataInharmV::getV7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataInharmV::getV8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataInharmV::getV9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataInharmV::getV10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataInharmV::getV11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataInharmV::getV12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataInharmV::getV13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataInharmV::getV14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataInharmV::getV15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataInharmV::getV16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataInharmV::getV17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataInharmV::getV18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataInharmV::getV19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataInharmV::getV20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataInharmV::getV21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataInharmV::getV22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataInharmV::getV23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataInharmV::getV24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataInharmV::getV25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataInharmV::getV26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataInharmV::getV27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataInharmV::getV28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataInharmV::getV29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataInharmV::getV30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataInharmV::getV31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataInharmV::getV32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataInharmV::getV33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataInharmV::getV34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataInharmV::getV35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataInharmV::getV36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataInharmV::getV37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataInharmV::getV38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataInharmV::getV39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataInharmV::getV40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataInharmV::getV41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataInharmV::getV42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataInharmV::getV43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataInharmV::getV44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataInharmV::getV45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataInharmV::getV46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataInharmV::getV47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataInharmV::getV48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataInharmV::getV49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataInharmV::getV50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data12,data13,data14
,data15,data16,data17,data18,data19,data20,data21,data22,data23,data24
,data25,data26,data27,data28,data29,data30,data31,data32,data33,data34
,data35,data36,data37,data38,data39,data40,data41,data42,data43,data44
,data45,data46,data47,data48,data49,data50,data51,data52,data53,data54
,data55,data56,data57,data58,data59,data60,data61);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataInHarmVDto> list) {
}
/**
* 按监测点集合、时间条件获取dataI分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理

View File

@@ -1,15 +1,17 @@
package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.imapper.DataPltMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataPltRelationMapper;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataI;
import com.njcn.dataProcess.po.influx.DataPlt;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.po.RStatDataPltD;
import com.njcn.dataProcess.service.IDataPlt;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
@@ -18,9 +20,7 @@ import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
*/
@Service("InfluxdbDataPltImpl")
@RequiredArgsConstructor
public class InfluxdbDataPltImpl implements IDataPlt {
public class InfluxdbDataPltImpl extends MppServiceImpl<RStatDataPltRelationMapper, RStatDataPltD> implements IDataPlt {
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@@ -70,6 +70,52 @@ public class InfluxdbDataPltImpl implements IDataPlt {
return result;
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataPlt> data = getMinuteDataPlt(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(data)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataPlt>> lineMap = data.stream().collect(Collectors.groupingBy(DataPlt::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组
Map<String,List<DataPlt>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataPlt::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(null);
//规定好集合指标参数
List<Double> data1 = phasicTypeList.stream().map(DataPlt::getPlt).collect(Collectors.toList());
List<List<Double>> lists = Collections.singletonList(data1);
value.setValueList(lists);
valueTypes.add(value);
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataPltDto> list) {
}
/**
* 按监测点集合、时间条件获取dataI分钟数据
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理

View File

@@ -0,0 +1,48 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateIRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateIDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateID;
import com.njcn.dataProcess.service.IDataHarmRateI;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author xy
*/
@Service("RelationDataHarmRateIImpl")
@RequiredArgsConstructor
public class RelationDataHarmRateIImpl extends MppServiceImpl<RStatDataHarmRateIRelationMapper, RStatDataHarmRateID> implements IDataHarmRateI {
@Resource
private IDataHarmRateI dataHarmRateI;
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataHarmRateIDto> list) {
List<RStatDataHarmRateID> result = new ArrayList<>();
list.forEach(item->{
RStatDataHarmRateID data = new RStatDataHarmRateID();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataHarmRateI.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -1,13 +1,19 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataHarmrateVRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.DataIRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmRateVRelationMapper;
import com.njcn.dataProcess.dto.DataHarmrateVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataHarmrateV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataHarmRateVDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmRateVD;
import com.njcn.dataProcess.service.IDataHarmRateV;
import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
@@ -24,11 +30,13 @@ import java.util.stream.Collectors;
*/
@Service("RelationDataHarmRateVImpl")
@RequiredArgsConstructor
public class RelationDataHarmRateVImpl implements IDataHarmRateV {
public class RelationDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateVRelationMapper, RStatDataHarmRateVD> implements IDataHarmRateV {
@Resource
private DataIRelationMapper dataIRelationMapper;
private final DataHarmrateVRelationMapper dataHarmrateVRelationMapper;
@Resource
private IDataHarmRateV dataHarmRateV;
@Override
public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) {
@@ -62,4 +70,23 @@ public class RelationDataHarmRateVImpl implements IDataHarmRateV {
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataHarmRateVDto> list) {
List<RStatDataHarmRateVD> result = new ArrayList<>();
list.forEach(item->{
RStatDataHarmRateVD data = new RStatDataHarmRateVD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataHarmRateV.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -1,15 +1,25 @@
package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataHarmpowerSRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataHarmPowerSRelationMapper;
import com.njcn.dataProcess.dto.DataHarmpowerSDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataHarmpowerS;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmPowerSDto;
import com.njcn.dataProcess.pojo.po.RStatDataHarmPowerSD;
import com.njcn.dataProcess.service.IDataHarmpowerS;
import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -22,8 +32,12 @@ import java.util.stream.Collectors;
*/
@Service("RelationDataHarmpowerSImpl")
@RequiredArgsConstructor
public class RelationDataHarmpowerSImpl implements IDataHarmpowerS {
public class RelationDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowerSRelationMapper, RStatDataHarmPowerSD> implements IDataHarmpowerS {
private final DataHarmpowerSRelationMapper dataHarmpowerSRelationMapper;
@Resource
private IDataHarmpowerS dataHarmPowerS;
@Override
public void batchInsertion(List<DataHarmpowerSDTO> dataHarmpowerSDTOList) {
int totalCount = dataHarmpowerSDTOList.size();
@@ -49,4 +63,23 @@ public class RelationDataHarmpowerSImpl implements IDataHarmpowerS {
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataHarmPowerSDto> list) {
List<RStatDataHarmPowerSD> result = new ArrayList<>();
list.forEach(item->{
RStatDataHarmPowerSD data = new RStatDataHarmPowerSD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataHarmPowerS.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -1,16 +1,25 @@
package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataInharmIRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmIRelationMapper;
import com.njcn.dataProcess.dto.DataInharmIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataInharmI;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmIDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmID;
import com.njcn.dataProcess.service.IDataInharmI;
import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -21,9 +30,11 @@ import java.util.stream.Collectors;
*/
@Service("RelationDataInharmIImpl")
@RequiredArgsConstructor
public class RelationDataInharmIImpl implements IDataInharmI {
private final DataInharmIRelationMapper dataVInharmIMapper;
public class RelationDataInharmIImpl extends MppServiceImpl<RStatDataInHarmIRelationMapper, RStatDataInHarmID> implements IDataInharmI {
private final DataInharmIRelationMapper dataVInharmIMapper;
@Resource
private IDataInharmI dataInharmI;
@Override
public void batchInsertion(List<DataInharmIDTO> dataInharmIDTOList) {
@@ -50,4 +61,23 @@ public class RelationDataInharmIImpl implements IDataInharmI {
dataVInharmIMapper.insertBatchSomeColumn(dataInharmIList);
}
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataInHarmIDto> list) {
List<RStatDataInHarmID> result = new ArrayList<>();
list.forEach(item->{
RStatDataInHarmID data = new RStatDataInHarmID();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataInharmI.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -1,18 +1,25 @@
package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataVInharmVRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataInHarmVRelationMapper;
import com.njcn.dataProcess.dto.DataInharmVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataInharmV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataInHarmVDto;
import com.njcn.dataProcess.pojo.po.RStatDataInHarmVD;
import com.njcn.dataProcess.service.IDataInharmV;
import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -24,8 +31,11 @@ import java.util.stream.Collectors;
*/
@Service("RelationDataInharmVImpl")
@RequiredArgsConstructor
public class RelationDataInharmVImpl implements IDataInharmV {
public class RelationDataInharmVImpl extends MppServiceImpl<RStatDataInHarmVRelationMapper, RStatDataInHarmVD> implements IDataInharmV {
private final DataVInharmVRelationMapper dataVInharmVRelationMapper;
@Resource
private IDataInharmV dataInHarmV;
@Override
@@ -59,4 +69,23 @@ public class RelationDataInharmVImpl implements IDataInharmV {
public List<DataHarmDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataInHarmVDto> list) {
List<RStatDataInHarmVD> result = new ArrayList<>();
list.forEach(item->{
RStatDataInHarmVD data = new RStatDataInHarmVD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataInHarmV.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -1,18 +1,23 @@
package com.njcn.dataProcess.service.impl.relation;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.DataPltRelationMapper;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataPltRelationMapper;
import com.njcn.dataProcess.dto.DataPltDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataPlt;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.po.RStatDataPltD;
import com.njcn.dataProcess.service.IDataPlt;
import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -26,9 +31,11 @@ import java.util.stream.Collectors;
*/
@Service("RelationDataPltImpl")
@RequiredArgsConstructor
public class RelationDataPltImpl implements IDataPlt {
public class RelationDataPltImpl extends MppServiceImpl<RStatDataPltRelationMapper, RStatDataPltD> implements IDataPlt {
private final DataPltRelationMapper dataPltRelationMapper;
private final IDataPlt dataPlt;
@Override
public void batchInsertion(List<DataPltDTO> dataPltDTOList) {
int totalCount = dataPltDTOList.size();
@@ -59,4 +66,23 @@ public class RelationDataPltImpl implements IDataPlt {
public List<DataPltDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataPltDto> list) {
List<RStatDataPltD> result = new ArrayList<>();
list.forEach(item->{
RStatDataPltD data = new RStatDataPltD();
data.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
data.setPhasicType(item.getPhasicType());
data.setQualityFlag(Integer.valueOf(item.getQualityFlag()));
BeanUtils.copyProperties(item, data);
result.add(data);
});
dataPlt.saveOrUpdateBatchByMultiId(result);
}
}