新能源专项分析算法迁移
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
package com.njcn.dataProcess.api;
|
||||
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.constant.ServerInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.dataProcess.api.fallback.DataLimitRateDetailFeignClientFallbackFactory;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.pojo.dto.DataLimitRateDetailDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataLimitRateDto;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -17,7 +21,7 @@ import java.util.List;
|
||||
* @Author: wr
|
||||
* @Date: 2025/3/7 9:30
|
||||
*/
|
||||
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataLimitRateDetail", fallbackFactory = DataLimitRateDetailFeignClientFallbackFactory.class, contextId = "dataLimitRateDetail")
|
||||
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataLimitRateDetail", fallbackFactory = DataLimitRateDetailFeignClientFallbackFactory.class, contextId = "dataLimitRateDetail")
|
||||
public interface DataLimitRateDetailFeignClient {
|
||||
|
||||
@PostMapping("/batchInsertion")
|
||||
@@ -26,4 +30,6 @@ public interface DataLimitRateDetailFeignClient {
|
||||
@PostMapping("/getRawData")
|
||||
HttpResult<List<DataLimitRateDetailDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
|
||||
|
||||
@PostMapping("/getLimitRateDetailTime")
|
||||
HttpResult<List<String>> getLimitRateDetailTime(@RequestParam("id") String id, @RequestParam("time") String time);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
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.RmpEventFeignClientFallbackFactory;
|
||||
import com.njcn.dataProcess.api.fallback.SpThroughFeignClientFallbackFactory;
|
||||
import com.njcn.dataProcess.dto.RmpEventDetailDTO;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.pojo.dto.RActivePowerRangeDto;
|
||||
import com.njcn.dataProcess.pojo.dto.SpThroughDto;
|
||||
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 denghuajun
|
||||
* @version 1.0.0
|
||||
* @date 2022年01月05日 15:11
|
||||
*/
|
||||
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/specialAnalysis", fallbackFactory = SpThroughFeignClientFallbackFactory.class, contextId = "specialAnalysis")
|
||||
public interface SpThroughFeignClient {
|
||||
|
||||
@PostMapping("/batchInsertionThrough")
|
||||
HttpResult<String> batchInsertionThrough(@RequestBody List<SpThroughDto> dtoList);
|
||||
|
||||
@PostMapping("/batchInsertionPower")
|
||||
HttpResult<String> batchInsertionPower(@RequestBody List<RActivePowerRangeDto> dtoList);
|
||||
}
|
||||
@@ -50,6 +50,12 @@ public class DataLimitRateDetailFeignClientFallbackFactory implements FallbackFa
|
||||
log.error("{}异常,降级处理,异常为:{}","获取基础数据",cause.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<List<String>> getLimitRateDetailTime(String id, String time) {
|
||||
log.error("{}异常,降级处理,异常为:{}","根据监测点id获取所有超标时间",cause.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
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.RmpEventDetailFeignClient;
|
||||
import com.njcn.dataProcess.api.SpThroughFeignClient;
|
||||
import com.njcn.dataProcess.dto.RmpEventDetailDTO;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.pojo.dto.RActivePowerRangeDto;
|
||||
import com.njcn.dataProcess.pojo.dto.SpThroughDto;
|
||||
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 denghuajun
|
||||
* @version 1.0.0
|
||||
* @date 2022年01月05日 15:08
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SpThroughFeignClientFallbackFactory implements FallbackFactory<SpThroughFeignClient> {
|
||||
|
||||
|
||||
/**
|
||||
* 输出远程请求接口异常日志
|
||||
* @param cause RPC请求异常
|
||||
*/
|
||||
@Override
|
||||
public SpThroughFeignClient 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 SpThroughFeignClient() {
|
||||
|
||||
@Override
|
||||
public HttpResult<String> batchInsertionThrough(List<SpThroughDto> dtoList) {
|
||||
log.error("{}异常,降级处理,异常为:{}","高低电压穿越批量插入",cause.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<String> batchInsertionPower(List<RActivePowerRangeDto> dtoList) {
|
||||
log.error("{}异常,降级处理,异常为:{}","有功功率批量插入",cause.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,6 @@ public class DataQualifiedDetail {
|
||||
*/
|
||||
private String lineId;
|
||||
|
||||
|
||||
/**
|
||||
* 合格率时间
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
package com.njcn.dataProcess.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 有功功率趋势
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 19:33
|
||||
*/
|
||||
@Data
|
||||
public class RActivePowerRangeDto {
|
||||
|
||||
/**
|
||||
* 监测点ID
|
||||
*/
|
||||
private String lineId;
|
||||
|
||||
/**
|
||||
* 日期(天)
|
||||
*/
|
||||
private LocalDate timeId;
|
||||
|
||||
/**
|
||||
* 0%~10%区间时间Json
|
||||
*/
|
||||
private String minsTime0;
|
||||
|
||||
/**
|
||||
* 0%~10%区间个数
|
||||
*/
|
||||
private Integer minsNum0 = 0;
|
||||
|
||||
/**
|
||||
* 0%~10%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot0 = 0;
|
||||
|
||||
/**
|
||||
* 10%~20%区间时间Json
|
||||
*/
|
||||
private String minsTime1;
|
||||
|
||||
/**
|
||||
* 10%~20%区间个数
|
||||
*/
|
||||
private Integer minsNum1 = 0;
|
||||
|
||||
/**
|
||||
* 10%~20%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot1 = 0;
|
||||
|
||||
/**
|
||||
* 20%~30%区间时间Json
|
||||
*/
|
||||
private String minsTime2;
|
||||
|
||||
/**
|
||||
* 20%~30%区间个数
|
||||
*/
|
||||
private Integer minsNum2 = 0;
|
||||
|
||||
/**
|
||||
* 20%~30%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot2 = 0;
|
||||
|
||||
/**
|
||||
* 30%~40%区间时间Json
|
||||
*/
|
||||
private String minsTime3;
|
||||
|
||||
/**
|
||||
* 30%~40%区间个数
|
||||
*/
|
||||
private Integer minsNum3 = 0;
|
||||
|
||||
/**
|
||||
* 30%~40%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot3 = 0;
|
||||
|
||||
/**
|
||||
* 40%~50%区间时间Json
|
||||
*/
|
||||
private String minsTime4;
|
||||
|
||||
/**
|
||||
* 40%~50%区间个数
|
||||
*/
|
||||
private Integer minsNum4 = 0;
|
||||
|
||||
/**
|
||||
* 40%~50%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot4 = 0;
|
||||
|
||||
/**
|
||||
* 50%~60%区间时间Json
|
||||
*/
|
||||
private String minsTime5;
|
||||
|
||||
/**
|
||||
* 50%~60%区间个数
|
||||
*/
|
||||
private Integer minsNum5 = 0;
|
||||
|
||||
/**
|
||||
* 50%~60%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot5 = 0;
|
||||
|
||||
/**
|
||||
* 60%~70%区间时间Json
|
||||
*/
|
||||
private String minsTime6;
|
||||
|
||||
/**
|
||||
* 60%~70%区间个数
|
||||
*/
|
||||
private Integer minsNum6 = 0;
|
||||
|
||||
/**
|
||||
* 60%~70%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot6 = 0;
|
||||
|
||||
/**
|
||||
* 70%~80%区间时间Json
|
||||
*/
|
||||
private String minsTime7;
|
||||
|
||||
/**
|
||||
* 70%~80%区间个数
|
||||
*/
|
||||
private Integer minsNum7 = 0;
|
||||
|
||||
/**
|
||||
* 70%~80%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot7 = 0;
|
||||
|
||||
/**
|
||||
* 80%~90%区间时间Json
|
||||
*/
|
||||
private String minsTime8;
|
||||
|
||||
/**
|
||||
* 80%~90%区间个数
|
||||
*/
|
||||
private Integer minsNum8 = 0;
|
||||
|
||||
/**
|
||||
* 80%~90%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot8 = 0;
|
||||
|
||||
/**
|
||||
* 90%~100%区间时间Json
|
||||
*/
|
||||
private String minsTime9;
|
||||
|
||||
/**
|
||||
* 90%~100%区间个数
|
||||
*/
|
||||
private Integer minsNum9 = 0;
|
||||
|
||||
/**
|
||||
* 90%~100%区间是否越限
|
||||
*/
|
||||
private Integer isOrNot9 = 0;
|
||||
|
||||
/**
|
||||
* 状态:0-删除 1-正常
|
||||
*/
|
||||
private Integer state;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.njcn.dataProcess.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description: 高低电压穿越 实体类
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 15:55
|
||||
*/
|
||||
@Data
|
||||
public class SpThroughDto {
|
||||
|
||||
/**
|
||||
* 暂降事件ID
|
||||
*/
|
||||
private String eventId;
|
||||
|
||||
/**
|
||||
* 暂降类型(暂升、暂降)
|
||||
*/
|
||||
private String eventType;
|
||||
|
||||
/**
|
||||
* (关联Dic_tree表)变电站类型(风电场、光伏电站)
|
||||
*/
|
||||
private String stationType;
|
||||
|
||||
/**
|
||||
* 是否穿越
|
||||
*/
|
||||
private Integer isOrNot;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
package com.njcn.dataProcess.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import com.njcn.db.bo.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 有功功率趋势
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 19:33
|
||||
*/
|
||||
@Data
|
||||
@TableName("r_active_power_range")
|
||||
public class RActivePowerRange extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 日期(天)
|
||||
*/
|
||||
@MppMultiId
|
||||
@TableField(value = "time_id")
|
||||
private LocalDate timeId;
|
||||
|
||||
|
||||
/**
|
||||
* 监测点ID
|
||||
*/
|
||||
@MppMultiId
|
||||
@TableField(value = "line_id")
|
||||
private String lineId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 0%~10%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time0")
|
||||
private String minsTime0;
|
||||
|
||||
/**
|
||||
* 0%~10%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num0")
|
||||
private Integer minsNum0 = 0;
|
||||
|
||||
/**
|
||||
* 0%~10%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not0")
|
||||
private Integer isOrNot0 = 0;
|
||||
|
||||
/**
|
||||
* 10%~20%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time1")
|
||||
private String minsTime1;
|
||||
|
||||
/**
|
||||
* 10%~20%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num1")
|
||||
private Integer minsNum1 = 0;;
|
||||
|
||||
/**
|
||||
* 10%~20%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not1")
|
||||
private Integer isOrNot1 = 0;
|
||||
|
||||
/**
|
||||
* 20%~30%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time2")
|
||||
private String minsTime2;
|
||||
|
||||
/**
|
||||
* 20%~30%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num2")
|
||||
private Integer minsNum2 = 0;;
|
||||
|
||||
/**
|
||||
* 20%~30%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not2")
|
||||
private Integer isOrNot2 = 0;
|
||||
|
||||
/**
|
||||
* 30%~40%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time3")
|
||||
private String minsTime3;
|
||||
|
||||
/**
|
||||
* 30%~40%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num3")
|
||||
private Integer minsNum3 = 0;;
|
||||
|
||||
/**
|
||||
* 30%~40%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not3")
|
||||
private Integer isOrNot3 = 0;
|
||||
|
||||
/**
|
||||
* 40%~50%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time4")
|
||||
private String minsTime4;
|
||||
|
||||
/**
|
||||
* 40%~50%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num4")
|
||||
private Integer minsNum4 = 0;;
|
||||
|
||||
/**
|
||||
* 40%~50%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not4")
|
||||
private Integer isOrNot4 = 0;
|
||||
|
||||
/**
|
||||
* 50%~60%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time5")
|
||||
private String minsTime5;
|
||||
|
||||
/**
|
||||
* 50%~60%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num5")
|
||||
private Integer minsNum5 = 0;;
|
||||
|
||||
/**
|
||||
* 50%~60%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not5")
|
||||
private Integer isOrNot5 = 0;
|
||||
|
||||
/**
|
||||
* 60%~70%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time6")
|
||||
private String minsTime6;
|
||||
|
||||
/**
|
||||
* 60%~70%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num6")
|
||||
private Integer minsNum6 = 0;;
|
||||
|
||||
/**
|
||||
* 60%~70%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not6")
|
||||
private Integer isOrNot6 = 0;
|
||||
|
||||
/**
|
||||
* 70%~80%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time7")
|
||||
private String minsTime7;
|
||||
|
||||
/**
|
||||
* 70%~80%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num7")
|
||||
private Integer minsNum7 = 0;;
|
||||
|
||||
/**
|
||||
* 70%~80%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not7")
|
||||
private Integer isOrNot7 = 0;
|
||||
|
||||
/**
|
||||
* 80%~90%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time8")
|
||||
private String minsTime8;
|
||||
|
||||
/**
|
||||
* 80%~90%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num8")
|
||||
private Integer minsNum8 = 0;;
|
||||
|
||||
/**
|
||||
* 80%~90%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not8")
|
||||
private Integer isOrNot8 = 0;
|
||||
|
||||
/**
|
||||
* 90%~100%区间时间Json
|
||||
*/
|
||||
@TableField(value = "mins_time9")
|
||||
private String minsTime9;
|
||||
|
||||
/**
|
||||
* 90%~100%区间个数
|
||||
*/
|
||||
@TableField(value = "mins_num9")
|
||||
private Integer minsNum9 = 0;;
|
||||
|
||||
/**
|
||||
* 90%~100%区间是否越限
|
||||
*/
|
||||
@TableField(value = "is_or_not9")
|
||||
private Integer isOrNot9 = 0;
|
||||
|
||||
/**
|
||||
* 状态:0-删除 1-正常
|
||||
*/
|
||||
@TableField(value = "state")
|
||||
private Integer state;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.njcn.dataProcess.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.njcn.db.bo.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description: 高低电压穿越 实体类
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 15:55
|
||||
*/
|
||||
@Data
|
||||
@TableName("sp_through")
|
||||
public class SpThrough extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 暂降事件ID
|
||||
*/
|
||||
private String eventId;
|
||||
|
||||
/**
|
||||
* 暂降类型(暂升、暂降)
|
||||
*/
|
||||
private String eventType;
|
||||
|
||||
/**
|
||||
* (关联PQS_Dictionary表)变电站类型(风电场、光伏电站)
|
||||
*/
|
||||
private String stationType;
|
||||
|
||||
/**
|
||||
* 是否穿越
|
||||
*/
|
||||
private Integer isOrNot;
|
||||
|
||||
/**
|
||||
* 状态:0-删除 1-正常
|
||||
*/
|
||||
private Boolean state;
|
||||
|
||||
/**
|
||||
* 创建时间(自定义)
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@@ -18,10 +18,7 @@ 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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -54,7 +51,14 @@ public class DataLimitRateDetailController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getLimitRateDetailTime")
|
||||
@ApiOperation("根据监测点id获取所有超标时间")
|
||||
public HttpResult< List<String>> getLimitRateDetailTime(@RequestParam("id") String id, @RequestParam("time") String time) {
|
||||
String methodDescribe = getMethodDescribe("getLimitRateDetailTime");
|
||||
List<String> limitRateDetailTime = limitRateDetailInsert.getLimitRateDetailTime(id, time);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, limitRateDetailTime, methodDescribe);
|
||||
}
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getRawData")
|
||||
@ApiOperation("获取原始数据")
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
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.pojo.dto.RActivePowerRangeDto;
|
||||
import com.njcn.dataProcess.pojo.dto.SpThroughDto;
|
||||
import com.njcn.dataProcess.service.IRActivePowerRangeService;
|
||||
import com.njcn.dataProcess.service.ISpThroughService;
|
||||
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 hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/6 19:48
|
||||
*/
|
||||
@Validated
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RestController
|
||||
@RequestMapping("/specialAnalysis")
|
||||
@Api(tags = "有功功率数据获取")
|
||||
public class RActivePowerRangeController extends BaseController {
|
||||
|
||||
@InsertBean
|
||||
private IRActivePowerRangeService irActivePowerRangeService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
|
||||
@PostMapping("/batchInsertionPower")
|
||||
@ApiOperation("有功功率批量插入")
|
||||
public HttpResult<String> batchInsertionPower(@RequestBody List<RActivePowerRangeDto> dtoList) {
|
||||
String methodDescribe = getMethodDescribe("batchInsertionPower");
|
||||
irActivePowerRangeService.batchInsertion(dtoList);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
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.pojo.dto.SpThroughDto;
|
||||
import com.njcn.dataProcess.service.ISpThroughService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/6 19:48
|
||||
*/
|
||||
@Validated
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RestController
|
||||
@RequestMapping("/specialAnalysis")
|
||||
@Api(tags = "高低电压穿越数据获取")
|
||||
public class SpThroughController extends BaseController {
|
||||
|
||||
@InsertBean
|
||||
private ISpThroughService spThroughService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
|
||||
@PostMapping("/batchInsertionThrough")
|
||||
@ApiOperation("高低电压穿越批量插入")
|
||||
public HttpResult<String> batchInsertionThrough(@RequestBody List<SpThroughDto> dtoList) {
|
||||
String methodDescribe = getMethodDescribe("batchInsertionThrough");
|
||||
spThroughService.batchInsertion(dtoList);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.dataProcess.dao.relation.mapper;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.dataProcess.pojo.po.RActivePowerRange;
|
||||
|
||||
/**
|
||||
* 有功功率趋势 Mapper 接口
|
||||
* @author guofeihu
|
||||
* @since 2024-08-20
|
||||
*/
|
||||
public interface RActivePowerRangeMapper extends MppBaseMapper<RActivePowerRange> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.njcn.dataProcess.dao.relation.mapper;
|
||||
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.dataProcess.pojo.po.SpThrough;
|
||||
|
||||
/**
|
||||
* @Description: 高低电压穿越
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 16:03
|
||||
*/
|
||||
public interface SpThroughMapper extends MppBaseMapper<SpThrough> {
|
||||
|
||||
}
|
||||
@@ -15,6 +15,15 @@ import java.util.List;
|
||||
*/
|
||||
public interface IDataLimitRateDetail extends IMppService<RStatLimitRateDetailD> {
|
||||
|
||||
/**
|
||||
* 根据监测点id获取所有超标时间
|
||||
* @param id
|
||||
* @return: java.util.List<java.lang.String>
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/2 10:49
|
||||
*/
|
||||
List<String> getLimitRateDetailTime(String id,String time);
|
||||
|
||||
/**
|
||||
* 批量插入数据
|
||||
* @param limitRateDetailList
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.dataProcess.service;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.dataProcess.pojo.dto.RActivePowerRangeDto;
|
||||
import com.njcn.dataProcess.pojo.po.RActivePowerRange;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 有功功率趋势 服务类
|
||||
* @author guofeihu
|
||||
* @since 2024-08-22
|
||||
*/
|
||||
public interface IRActivePowerRangeService extends IMppService<RActivePowerRange> {
|
||||
|
||||
|
||||
/**
|
||||
* 批量插入数据
|
||||
* @param dtoList
|
||||
* @Author: wr
|
||||
* @Date: 2025/3/14 14:03
|
||||
*/
|
||||
void batchInsertion(List<RActivePowerRangeDto> dtoList);
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.njcn.dataProcess.service;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.dataProcess.pojo.dto.SpThroughDto;
|
||||
import com.njcn.dataProcess.pojo.po.SpThrough;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 高低电压穿越
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 16:09
|
||||
*/
|
||||
public interface ISpThroughService extends IMppService<SpThrough> {
|
||||
|
||||
/**
|
||||
* 批量插入数据
|
||||
* @param dtoList
|
||||
* @Author: wr
|
||||
* @Date: 2025/3/14 14:03
|
||||
*/
|
||||
void batchInsertion(List<SpThroughDto> dtoList);
|
||||
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import com.njcn.dataProcess.service.IDataLimitRateDetail;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -20,6 +21,11 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
public class InfluxdbDataLimitRateDetailImpl extends MppServiceImpl<RStatLimitRateDetailRelationMapper, RStatLimitRateDetailD> implements IDataLimitRateDetail {
|
||||
|
||||
@Override
|
||||
public List<String> getLimitRateDetailTime(String id,String time) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchInsertion(List<DataLimitRateDetailDto> limitRateList) {
|
||||
|
||||
|
||||
@@ -2,20 +2,25 @@ package com.njcn.dataProcess.service.impl.relation;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateDetailRelationMapper;
|
||||
import com.njcn.dataProcess.pojo.dto.AbnormalData;
|
||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||
import com.njcn.dataProcess.pojo.dto.DataLimitRateDetailDto;
|
||||
import com.njcn.dataProcess.pojo.dto.DataQualifiedDetail;
|
||||
import com.njcn.dataProcess.pojo.po.RStatLimitQualifiedD;
|
||||
import com.njcn.dataProcess.pojo.po.RStatLimitRateDetailD;
|
||||
import com.njcn.dataProcess.service.IDataLimitRateDetail;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@@ -28,10 +33,50 @@ import java.util.List;
|
||||
public class RelationDataLimitRateDetailImpl extends MppServiceImpl<RStatLimitRateDetailRelationMapper, RStatLimitRateDetailD> implements IDataLimitRateDetail {
|
||||
|
||||
|
||||
@Override
|
||||
public List<String> getLimitRateDetailTime(String id, String time) {
|
||||
RStatLimitRateDetailD one = this.getOne(new LambdaQueryWrapper<RStatLimitRateDetailD>()
|
||||
.eq(RStatLimitRateDetailD::getLineId, id)
|
||||
.eq(RStatLimitRateDetailD::getTime, time)
|
||||
);
|
||||
if (ObjectUtil.isNotNull(one)) {
|
||||
List<AbnormalData.Json> json = new ArrayList<>();
|
||||
try {
|
||||
// 获取类的Class对象
|
||||
Class<RStatLimitRateDetailD> clazz = RStatLimitRateDetailD.class;
|
||||
// 获取类中声明的所有字段
|
||||
Field[] fields = clazz.getDeclaredFields();
|
||||
// 遍历字段数组
|
||||
for (Field field : fields) {
|
||||
if (!"lineId".equals(field.getName()) && !"time".equals(field.getName())) {
|
||||
field.setAccessible(true);
|
||||
Object o = field.get(one);
|
||||
if (ObjectUtil.isNotNull(o)) {
|
||||
String string = o.toString();
|
||||
json.addAll(JSON.parseArray(string, AbnormalData.Json.class));
|
||||
}
|
||||
}
|
||||
// 获取字段的类型
|
||||
Class<?> fieldType = field.getType();
|
||||
System.out.println("Field name: " + field.getName() + ", Type: " + fieldType.getName());
|
||||
}
|
||||
} catch (SecurityException |IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (CollUtil.isNotEmpty(json)){
|
||||
List<String> times = json.stream().map(AbnormalData.Json::getTime).collect(Collectors.toList());
|
||||
String join = String.join(",", times);
|
||||
String[] split = join.split(",");
|
||||
return Arrays.stream(split).distinct().collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchInsertion(List<DataLimitRateDetailDto> limitRateList) {
|
||||
List<RStatLimitRateDetailD> result = new ArrayList<>();
|
||||
limitRateList.forEach(item->{
|
||||
limitRateList.forEach(item -> {
|
||||
RStatLimitRateDetailD limitRate = new RStatLimitRateDetailD();
|
||||
BeanUtils.copyProperties(item, limitRate);
|
||||
result.add(limitRate);
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.njcn.dataProcess.service.impl.relation;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.dataProcess.dao.relation.mapper.RActivePowerRangeMapper;
|
||||
import com.njcn.dataProcess.pojo.dto.RActivePowerRangeDto;
|
||||
import com.njcn.dataProcess.pojo.po.RActivePowerRange;
|
||||
import com.njcn.dataProcess.service.IRActivePowerRangeService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 有功功率
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 16:03
|
||||
*/
|
||||
@Service("RelationRActivePowerRangeServiceImpl")
|
||||
@RequiredArgsConstructor
|
||||
public class RelationRActivePowerRangeServiceImpl extends MppServiceImpl<RActivePowerRangeMapper, RActivePowerRange> implements IRActivePowerRangeService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsertion(List<RActivePowerRangeDto> dtoList) {
|
||||
List<RActivePowerRange> result = new ArrayList<>();
|
||||
dtoList.forEach(item->{
|
||||
RActivePowerRange powerRange = new RActivePowerRange();
|
||||
BeanUtils.copyProperties(item, powerRange);
|
||||
powerRange.setState(1);
|
||||
result.add(powerRange);
|
||||
});
|
||||
this.saveOrUpdateBatchByMultiId(result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.njcn.dataProcess.service.impl.relation;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.dataProcess.dao.relation.mapper.SpThroughMapper;
|
||||
import com.njcn.dataProcess.pojo.dto.SpThroughDto;
|
||||
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY;
|
||||
import com.njcn.dataProcess.pojo.po.SpThrough;
|
||||
import com.njcn.dataProcess.service.ISpThroughService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 高低电压穿越
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/1 16:03
|
||||
*/
|
||||
@Service("RelationSpThroughServiceImpl")
|
||||
@RequiredArgsConstructor
|
||||
public class RelationSpThroughServiceImpl extends MppServiceImpl<SpThroughMapper, SpThrough> implements ISpThroughService {
|
||||
|
||||
|
||||
@Override
|
||||
public void batchInsertion(List<SpThroughDto> dtoList) {
|
||||
List<String> eventIds = dtoList.stream().map(SpThroughDto::getEventId).distinct().collect(Collectors.toList());
|
||||
List<SpThrough> result = new ArrayList<>();
|
||||
dtoList.forEach(item->{
|
||||
SpThrough limitRate = new SpThrough();
|
||||
BeanUtils.copyProperties(item, limitRate);
|
||||
limitRate.setId(IdUtil.simpleUUID());
|
||||
limitRate.setState(true);
|
||||
result.add(limitRate);
|
||||
});
|
||||
this.remove(new LambdaQueryWrapper<SpThrough>().in(SpThrough::getEventId,eventIds));
|
||||
this.saveBatch(result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user