14 Commits

Author SHA1 Message Date
ae09cc1996 提交一次接线图实时调试 2025-12-19 16:13:49 +08:00
efdb1781da 提交一次接线图实时调试 2025-12-19 09:56:53 +08:00
贾同学
46aef0d97f feat(report): 按创建时间倒序排列报表模板 2025-12-09 11:06:36 +08:00
贾同学
5539c8fed5 Merge remote-tracking branch 'origin/master' 2025-12-09 09:00:34 +08:00
贾同学
10d93c260c fix(service): 修复测点限值信息缺失的处理逻辑 2025-12-09 09:00:13 +08:00
cdf
4ee100a72b 暂降监测点报告接口迁移(后续需要合并代码) 2025-12-09 08:57:18 +08:00
贾同学
958f1858fc feat(event): 新增暂降方向统计接口 2025-12-05 15:01:37 +08:00
贾同学
791aac26c0 refactor(cs-device): 重命名OverLimitClient及相关类名
- 将OverLimitClient重命名为CsOverLimitClient
- 将OverLimitFallbackFactory重命名为CsOverLimitFallbackFactory
- 更新相关引用类名以匹配新命名
- 修改RStatLimitRateDetailDServiceImpl中的客户端注入名称
2025-12-05 11:05:36 +08:00
cdf
3526926034 稳态报告接口迁移(后续需要合并代码) 2025-12-05 09:51:23 +08:00
cdf
3753544e5f Merge remote-tracking branch 'origin/master'
# Conflicts:
#	cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java
2025-12-05 09:13:20 +08:00
cdf
e6df543f1d 稳态报告接口迁移(后续需要合并代码) 2025-12-05 09:12:28 +08:00
贾同学
f86a3c4167 模块迁移 2025-12-04 10:22:51 +08:00
cdf
29681d200d 自定义报表动态数据库切换 2025-12-04 09:44:06 +08:00
贾同学
9ff0f40349 feat(cs-device): 新增线路参数与容量字段支持
- 在 CsLineParam 中新增 monitorObj、govern 和 monitorUser 字段
- 在 CsLinePO 中新增 shortCircuitCapacity、devCapacity、basicCapacity 和 protocolCapacity 字段
- 更新 CsLinePOServiceImpl 中的更新逻辑以支持新字段写入
2025-12-03 13:48:01 +08:00
154 changed files with 17632 additions and 141 deletions

View File

@@ -9,6 +9,7 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.api.fallback.CsLineClientFallbackFactory;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.LineDetailDataVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
@@ -71,4 +72,7 @@ public interface CsLineFeignClient {
@PostMapping("/list")
HttpResult<List<CsLinePO>> list(@RequestBody CsLinePO param);
@PostMapping("/getLineDetailData")
HttpResult<LineDetailDataVO> getLineDetailData(@RequestParam("id") String id);
}

View File

@@ -0,0 +1,39 @@
package com.njcn.csdevice.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csdevice.api.fallback.CsOverLimitFallbackFactory;
import com.njcn.csdevice.pojo.po.Overlimit;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
/**
* 监测点数据完整性
* @author cdf
* @date 2023/6/7
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT,
path = "/overLimit",
fallbackFactory = CsOverLimitFallbackFactory.class,contextId = "overLimit")
public interface CsOverLimitClient {
/**
*
* @author cdf
* @date 2023/6/7
*/
@PostMapping("/getOverLimitByLineIds")
HttpResult<List<Overlimit>> getOverLimitByLineIds(@RequestBody List<String> lineIds);
/**
*
* @author cdf
* @date 2023/6/7
*/
@PostMapping("/getLimitMapsByLineIds")
HttpResult<List<Map<String, Object>>> getLimitMapsByLineIds(@RequestBody List<String> lineIds);
}

View File

@@ -6,10 +6,12 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.LineDetailDataVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -116,6 +118,12 @@ public class CsLineClientFallbackFactory implements FallbackFactory<CsLineFeignC
log.error("{}异常,降级处理,异常为:{}","查询监测点列表异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<LineDetailDataVO> getLineDetailData(@RequestParam("id") String id) {
log.error("{}异常,降级处理,异常为:{}","查询监测点详情异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,49 @@
package com.njcn.csdevice.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.csdevice.api.CsOverLimitClient;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.device.biz.utils.DeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* 告警管理熔断降级
* @author yzh
* @date 2022/9/19
*/
@Slf4j
@Component
public class CsOverLimitFallbackFactory implements FallbackFactory<CsOverLimitClient> {
@Override
public CsOverLimitClient create(Throwable throwable) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (throwable.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) throwable.getCause();
exceptionEnum = DeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsOverLimitClient() {
@Override
public HttpResult<List<Overlimit>> getOverLimitByLineIds(List<String> lineIds) {
log.error("{}异常,降级处理,异常为:{}", "监测点限值", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<Map<String, Object>>> getLimitMapsByLineIds(List<String> lineIds) {
log.error("{}异常,降级处理,异常为:{}", "获取监测点限值map", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -109,22 +109,36 @@ public class CsLineParam extends BaseEntity {
/**
* 短路容量
*/
private Integer shortCircuitCapacity;
private Double shortCircuitCapacity;
/**
* 设备容量
*/
private Integer devCapacity;
private Double devCapacity;
/**
* 基准容量
*/
private Integer basicCapacity;
private Double basicCapacity;
/**
* 协议容量
*/
private Integer protocolCapacity;
private Double protocolCapacity;
/**
* 监测对象类型
*/
private String monitorObj;
/**
* 是否治理(0:未治理 1:已治理)
*/
private Integer govern;
/**
* 敏感用户ID
*/
private String monitorUser;

View File

@@ -136,6 +136,30 @@ public class CsLinePO extends BaseEntity {
@TableField(value = "monitor_user")
private String monitorUser;
/**
* 短路容量
*/
@TableField(value = "short_circuit_capacity")
private Double shortCircuitCapacity;
/**
* 设备容量
*/
@TableField(value = "dev_capacity")
private Double devCapacity;
/**
* 基准容量
*/
@TableField(value = "basic_capacity")
private Double basicCapacity;
/**
* 协议容量
*/
@TableField(value = "protocol_capacity")
private Double protocolCapacity;
/**
* 治理报告文件路径
*/

View File

@@ -0,0 +1,953 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.device.biz.utils.COverlimit;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author cdf
* @since 2022-01-04
*/
@Data
@TableName("pq_overlimit")
public class Overlimit implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 监测点序号
*/
private String id;
/**
* 频率限值
*/
private Float freqDev;
/**
* 电压波动
*/
private Float voltageFluctuation;
/**
* 电压上偏差限值
*/
private Float voltageDev;
/**
* 电压下偏差限值
*/
private Float uvoltageDev;
/**
* 三相电压不平衡度限值
*/
private Float ubalance;
/**
* 短时电压不平衡度限值
*/
private Float shortUbalance;
/**
* 闪变限值
*/
private Float flicker;
/**
* 电压总谐波畸变率限值
*/
private Float uaberrance;
/**
* 负序电流限值
*/
private Float iNeg;
/**
* 2次谐波电压限值
*/
@TableField("uharm_2")
private Float uharm2;
/**
* 3次谐波电压限值
*/
@TableField("uharm_3")
private Float uharm3;
/**
* 4次谐波电压限值
*/
@TableField("uharm_4")
private Float uharm4;
/**
* 5次谐波电压限值
*/
@TableField("uharm_5")
private Float uharm5;
/**
* 6次谐波电压限值
*/
@TableField("uharm_6")
private Float uharm6;
/**
* 7次谐波电压限值
*/
@TableField("uharm_7")
private Float uharm7;
/**
* 8次谐波电压限值
*/
@TableField("uharm_8")
private Float uharm8;
/**
* 9次谐波电压限值
*/
@TableField("uharm_9")
private Float uharm9;
/**
* 10次谐波电压限值
*/
@TableField("uharm_10")
private Float uharm10;
/**
* 11次谐波电压限值
*/
@TableField("uharm_11")
private Float uharm11;
/**
* 12次谐波电压限值
*/
@TableField("uharm_12")
private Float uharm12;
/**
* 13次谐波电压限值
*/
@TableField("uharm_13")
private Float uharm13;
/**
* 14次谐波电压限值
*/
@TableField("uharm_14")
private Float uharm14;
/**
* 15次谐波电压限值
*/
@TableField("uharm_15")
private Float uharm15;
/**
* 16次谐波电压限值
*/
@TableField("uharm_16")
private Float uharm16;
/**
* 17次谐波电压限值
*/
@TableField("uharm_17")
private Float uharm17;
/**
* 18次谐波电压限值
*/
@TableField("uharm_18")
private Float uharm18;
/**
* 19次谐波电压限值
*/
@TableField("uharm_19")
private Float uharm19;
/**
* 20次谐波电压限值
*/
@TableField("uharm_20")
private Float uharm20;
/**
* 21次谐波电压限值
*/
@TableField("uharm_21")
private Float uharm21;
/**
* 22次谐波电压限值
*/
@TableField("uharm_22")
private Float uharm22;
/**
* 23次谐波电压限值
*/
@TableField("uharm_23")
private Float uharm23;
/**
* 24次谐波电压限值
*/
@TableField("uharm_24")
private Float uharm24;
/**
* 25次谐波电压限值
*/
@TableField("uharm_25")
private Float uharm25;
/**
* 2次谐波电压限值
*/
@TableField("uharm_26")
private Float uharm26;
/**
* 3次谐波电压限值
*/
@TableField("uharm_27")
private Float uharm27;
/**
* 4次谐波电压限值
*/
@TableField("uharm_28")
private Float uharm28;
/**
* 5次谐波电压限值
*/
@TableField("uharm_29")
private Float uharm29;
/**
* 6次谐波电压限值
*/
@TableField("uharm_30")
private Float uharm30;
/**
* 7次谐波电压限值
*/
@TableField("uharm_31")
private Float uharm31;
/**
* 8次谐波电压限值
*/
@TableField("uharm_32")
private Float uharm32;
/**
* 9次谐波电压限值
*/
@TableField("uharm_33")
private Float uharm33;
/**
* 10次谐波电压限值
*/
@TableField("uharm_34")
private Float uharm34;
/**
* 11次谐波电压限值
*/
@TableField("uharm_35")
private Float uharm35;
/**
* 12次谐波电压限值
*/
@TableField("uharm_36")
private Float uharm36;
/**
* 13次谐波电压限值
*/
@TableField("uharm_37")
private Float uharm37;
/**
* 14次谐波电压限值
*/
@TableField("uharm_38")
private Float uharm38;
/**
* 15次谐波电压限值
*/
@TableField("uharm_39")
private Float uharm39;
/**
* 16次谐波电压限值
*/
@TableField("uharm_40")
private Float uharm40;
/**
* 17次谐波电压限值
*/
@TableField("uharm_41")
private Float uharm41;
/**
* 18次谐波电压限值
*/
@TableField("uharm_42")
private Float uharm42;
/**
* 19次谐波电压限值
*/
@TableField("uharm_43")
private Float uharm43;
/**
* 20次谐波电压限值
*/
@TableField("uharm_44")
private Float uharm44;
/**
* 21次谐波电压限值
*/
@TableField("uharm_45")
private Float uharm45;
/**
* 22次谐波电压限值
*/
@TableField("uharm_46")
private Float uharm46;
/**
* 23次谐波电压限值
*/
@TableField("uharm_47")
private Float uharm47;
/**
* 24次谐波电压限值
*/
@TableField("uharm_48")
private Float uharm48;
/**
* 25次谐波电压限值
*/
@TableField("uharm_49")
private Float uharm49;
/**
* 50次谐波电压限值
*/
@TableField("uharm_50")
private Float uharm50;
/**
* 2次谐波电流限值
*/
@TableField("iharm_2")
private Float iharm2;
/**
* 3次谐波电流限值
*/
@TableField("iharm_3")
private Float iharm3;
/**
* 4次谐波电流限值
*/
@TableField("iharm_4")
private Float iharm4;
/**
* 5次谐波电流限值
*/
@TableField("iharm_5")
private Float iharm5;
/**
* 6次谐波电流限值
*/
@TableField("iharm_6")
private Float iharm6;
/**
* 7次谐波电流限值
*/
@TableField("iharm_7")
private Float iharm7;
/**
* 8次谐波电流限值
*/
@TableField("iharm_8")
private Float iharm8;
/**
* 9次谐波电流限值
*/
@TableField("iharm_9")
private Float iharm9;
/**
* 10次谐波电流限值
*/
@TableField("iharm_10")
private Float iharm10;
/**
* 11次谐波电流限值
*/
@TableField("iharm_11")
private Float iharm11;
/**
* 12次谐波电流限值
*/
@TableField("iharm_12")
private Float iharm12;
/**
* 13次谐波电流限值
*/
@TableField("iharm_13")
private Float iharm13;
/**
* 14次谐波电流限值
*/
@TableField("iharm_14")
private Float iharm14;
/**
* 15次谐波电流限值
*/
@TableField("iharm_15")
private Float iharm15;
/**
* 16次谐波电流限值
*/
@TableField("iharm_16")
private Float iharm16;
/**
* 17次谐波电流限值
*/
@TableField("iharm_17")
private Float iharm17;
/**
* 18次谐波电流限值
*/
@TableField("iharm_18")
private Float iharm18;
/**
* 19次谐波电流限值
*/
@TableField("iharm_19")
private Float iharm19;
/**
* 20次谐波电流限值
*/
@TableField("iharm_20")
private Float iharm20;
/**
* 21次谐波电流限值
*/
@TableField("iharm_21")
private Float iharm21;
/**
* 22次谐波电流限值
*/
@TableField("iharm_22")
private Float iharm22;
/**
* 23次谐波电流限值
*/
@TableField("iharm_23")
private Float iharm23;
/**
* 24次谐波电流限值
*/
@TableField("iharm_24")
private Float iharm24;
/**
* 25次谐波电流限值
*/
@TableField("iharm_25")
private Float iharm25;
/**
* 2次谐波电压限值
*/
@TableField("iharm_26")
private Float iharm26;
/**
* 3次谐波电压限值
*/
@TableField("iharm_27")
private Float iharm27;
/**
* 4次谐波电压限值
*/
@TableField("iharm_28")
private Float iharm28;
/**
* 5次谐波电压限值
*/
@TableField("iharm_29")
private Float iharm29;
/**
* 6次谐波电压限值
*/
@TableField("iharm_30")
private Float iharm30;
/**
* 7次谐波电压限值
*/
@TableField("iharm_31")
private Float iharm31;
/**
* 8次谐波电压限值
*/
@TableField("iharm_32")
private Float iharm32;
/**
* 9次谐波电压限值
*/
@TableField("iharm_33")
private Float iharm33;
/**
* 10次谐波电压限值
*/
@TableField("iharm_34")
private Float iharm34;
/**
* 11次谐波电压限值
*/
@TableField("iharm_35")
private Float iharm35;
/**
* 12次谐波电压限值
*/
@TableField("iharm_36")
private Float iharm36;
/**
* 13次谐波电压限值
*/
@TableField("iharm_37")
private Float iharm37;
/**
* 14次谐波电压限值
*/
@TableField("iharm_38")
private Float iharm38;
/**
* 15次谐波电压限值
*/
@TableField("iharm_39")
private Float iharm39;
/**
* 16次谐波电压限值
*/
@TableField("iharm_40")
private Float iharm40;
/**
* 17次谐波电压限值
*/
@TableField("iharm_41")
private Float iharm41;
/**
* 18次谐波电压限值
*/
@TableField("iharm_42")
private Float iharm42;
/**
* 19次谐波电压限值
*/
@TableField("iharm_43")
private Float iharm43;
/**
* 20次谐波电压限值
*/
@TableField("iharm_44")
private Float iharm44;
/**
* 21次谐波电压限值
*/
@TableField("iharm_45")
private Float iharm45;
/**
* 22次谐波电压限值
*/
@TableField("iharm_46")
private Float iharm46;
/**
* 23次谐波电压限值
*/
@TableField("iharm_47")
private Float iharm47;
/**
* 24次谐波电压限值
*/
@TableField("iharm_48")
private Float iharm48;
/**
* 25次谐波电压限值
*/
@TableField("iharm_49")
private Float iharm49;
/**
* 50次谐波电压限值
*/
@TableField("iharm_50")
private Float iharm50;
/**
* 0.5次间谐波电压限值
*/
@TableField("inuharm_1")
private Float inuharm1;
/**
* 1.5次间谐波电压限值
*/
@TableField("inuharm_2")
private Float inuharm2;
/**
* 2.5次间谐波电压限值
*/
@TableField("inuharm_3")
private Float inuharm3;
/**
* 3.5次间谐波电压限值
*/
@TableField("inuharm_4")
private Float inuharm4;
/**
* 4.5次间谐波电压限值
*/
@TableField("inuharm_5")
private Float inuharm5;
/**
* 5.5次间谐波电压限值
*/
@TableField("inuharm_6")
private Float inuharm6;
/**
* 6.5次间谐波电压限值
*/
@TableField("inuharm_7")
private Float inuharm7;
/**
* 7.5次间谐波电压限值
*/
@TableField("inuharm_8")
private Float inuharm8;
/**
* 8.5次间谐波电压限值
*/
@TableField("inuharm_9")
private Float inuharm9;
/**
* 9.5次间谐波电压限值
*/
@TableField("inuharm_10")
private Float inuharm10;
/**
* 10.5次间谐波电压限值
*/
@TableField("inuharm_11")
private Float inuharm11;
/**
* 11.5次间谐波电压限值
*/
@TableField("inuharm_12")
private Float inuharm12;
/**
* 12.5次间谐波电压限值
*/
@TableField("inuharm_13")
private Float inuharm13;
/**
* 13.5次间谐波电压限值
*/
@TableField("inuharm_14")
private Float inuharm14;
/**
* 14.5次间谐波电压限值
*/
@TableField("inuharm_15")
private Float inuharm15;
/**
* 15.5次间谐波电压限值
*/
@TableField("inuharm_16")
private Float inuharm16;
public Overlimit(){}
public Overlimit(String lineId, String scaTmp, float fDLRL, float fJZRL, float fXYRL, float fSBRL){
float[] fLimit = COverlimit.GetOverLimit(scaTmp, fDLRL, fJZRL, fXYRL, fSBRL);
this.id=lineId;
this.freqDev=fLimit[0];
this.voltageDev=fLimit[1];
this.ubalance=fLimit[2];
this.flicker=fLimit[3];
this.uaberrance=fLimit[4];
this.uharm2=fLimit[5];
this.uharm3=fLimit[6];
this.uharm4=fLimit[7];
this.uharm5=fLimit[8];
this.uharm6=fLimit[9];
this.uharm7=fLimit[10];
this.uharm8=fLimit[11];
this.uharm9=fLimit[12];
this.uharm10=fLimit[13];
this.uharm11=fLimit[14];
this.uharm12=fLimit[15];
this.uharm13=fLimit[16];
this.uharm14=fLimit[17];
this.uharm15=fLimit[18];
this.uharm16=fLimit[19];
this.uharm17=fLimit[20];
this.uharm18=fLimit[21];
this.uharm19=fLimit[22];
this.uharm20=fLimit[23];
this.uharm21=fLimit[24];
this.uharm22=fLimit[25];
this.uharm23=fLimit[26];
this.uharm24=fLimit[27];
this.uharm25=fLimit[28];
this.iharm2=fLimit[29];
this.iharm3=fLimit[30];
this.iharm4=fLimit[31];
this.iharm5=fLimit[32];
this.iharm6=fLimit[33];
this.iharm7=fLimit[34];
this.iharm8=fLimit[35];
this.iharm9=fLimit[36];
this.iharm10=fLimit[37];
this.iharm11=fLimit[38];
this.iharm12=fLimit[39];
this.iharm13=fLimit[40];
this.iharm14=fLimit[41];
this.iharm15=fLimit[42];
this.iharm16=fLimit[43];
this.iharm17=fLimit[44];
this.iharm18=fLimit[45];
this.iharm19=fLimit[46];
this.iharm20=fLimit[47];
this.iharm21=fLimit[48];
this.iharm22=fLimit[49];
this.iharm23=fLimit[50];
this.iharm24=fLimit[51];
this.iharm25=fLimit[52];
this.uvoltageDev=fLimit[53];
this.iNeg=fLimit[54];
this.inuharm1=fLimit[55];
this.inuharm2=fLimit[56];
this.inuharm3=fLimit[57];
this.inuharm4=fLimit[58];
this.inuharm5=fLimit[59];
this.inuharm6=fLimit[60];
this.inuharm7=fLimit[61];
this.inuharm8=fLimit[62];
this.inuharm9=fLimit[63];
this.inuharm10=fLimit[64];
this.inuharm11=fLimit[65];
this.inuharm12=fLimit[66];
this.inuharm13=fLimit[67];
this.inuharm14=fLimit[68];
this.inuharm15=fLimit[69];
this.inuharm16=fLimit[70];
}
public void buildIHarm(Float[] iHarmTem){
this.iharm2= iHarmTem[0];
this.iharm4= iHarmTem[2];
this.iharm6= iHarmTem[4];
this.iharm8= iHarmTem[6];
this.iharm10= iHarmTem[8];
this.iharm12= iHarmTem[10];
this.iharm14= iHarmTem[12];
this.iharm16= iHarmTem[14];
this.iharm18= iHarmTem[16];
this.iharm20= iHarmTem[18];
this.iharm22= iHarmTem[20];
this.iharm24= iHarmTem[22];
this.iharm26= iHarmTem[24];
this.iharm28= iHarmTem[26];
this.iharm30= iHarmTem[28];
this.iharm32= iHarmTem[30];
this.iharm34= iHarmTem[32];
this.iharm36= iHarmTem[34];
this.iharm38= iHarmTem[36];
this.iharm40= iHarmTem[38];
this.iharm42= iHarmTem[40];
this.iharm44= iHarmTem[42];
this.iharm46= iHarmTem[44];
this.iharm48= iHarmTem[46];
this.iharm50= iHarmTem[48];
this.iharm3= iHarmTem[1];
this.iharm5= iHarmTem[3];
this.iharm7= iHarmTem[5];
this.iharm9= iHarmTem[7];
this.iharm11= iHarmTem[9];
this.iharm13= iHarmTem[11];
this.iharm15= iHarmTem[13];
this.iharm17= iHarmTem[15];
this.iharm19= iHarmTem[17];
this.iharm21= iHarmTem[19];
this.iharm23= iHarmTem[21];
this.iharm25= iHarmTem[23];
this.iharm27= iHarmTem[25];
this.iharm29= iHarmTem[27];
this.iharm31= iHarmTem[29];
this.iharm33= iHarmTem[31];
this.iharm35= iHarmTem[33];
this.iharm37= iHarmTem[35];
this.iharm39= iHarmTem[37];
this.iharm41= iHarmTem[39];
this.iharm43= iHarmTem[41];
this.iharm45= iHarmTem[43];
this.iharm47= iHarmTem[45];
this.iharm49= iHarmTem[47];
}
public void buildUharm(Float resultEven,Float resultOdd){
this.uharm2=resultEven;
this.uharm4=resultEven;
this.uharm6=resultEven;
this.uharm8=resultEven;
this.uharm10=resultEven;
this.uharm12=resultEven;
this.uharm14=resultEven;
this.uharm16=resultEven;
this.uharm18=resultEven;
this.uharm20=resultEven;
this.uharm22=resultEven;
this.uharm24=resultEven;
this.uharm26=resultEven;
this.uharm28=resultEven;
this.uharm30=resultEven;
this.uharm32=resultEven;
this.uharm34=resultEven;
this.uharm36=resultEven;
this.uharm38=resultEven;
this.uharm40=resultEven;
this.uharm42=resultEven;
this.uharm44=resultEven;
this.uharm46=resultEven;
this.uharm48=resultEven;
this.uharm50=resultEven;
this.uharm3=resultOdd;
this.uharm5=resultOdd;
this.uharm7=resultOdd;
this.uharm9=resultOdd;
this.uharm11=resultOdd;
this.uharm13=resultOdd;
this.uharm15=resultOdd;
this.uharm17=resultOdd;
this.uharm19=resultOdd;
this.uharm21=resultOdd;
this.uharm23=resultOdd;
this.uharm25=resultOdd;
this.uharm27=resultOdd;
this.uharm29=resultOdd;
this.uharm31=resultOdd;
this.uharm33=resultOdd;
this.uharm35=resultOdd;
this.uharm37=resultOdd;
this.uharm39=resultOdd;
this.uharm41=resultOdd;
this.uharm43=resultOdd;
this.uharm45=resultOdd;
this.uharm47=resultOdd;
this.uharm49=resultOdd;
}
}

View File

@@ -0,0 +1,135 @@
package com.njcn.csdevice.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author denghuajun
* @date 2022/2/23
* 监测点信息
*/
@Data
@ApiModel
public class LineDetailDataVO {
private String lineId;
@ApiModelProperty(name = "id",value = "监测点序号")
private Integer id;
@ApiModelProperty(name = "lineName",value = "监测点名称")
private String lineName;
@ApiModelProperty(name = "areaName",value = "工程名称")
private String areaName;
@ApiModelProperty(name = "gdName",value = "单位")
private String gdName;
@ApiModelProperty(name = "bdName",value = "部门")
private String bdName;
@ApiModelProperty(name = "scale",value = "电压等级")
private String scale;
@ApiModelProperty(name = "manufacturer",value = "厂家")
private String manufacturer;
@ApiModelProperty(name = "devId",value = "终端Id")
private String devId;
@ApiModelProperty(name = "devName",value = "终端名称")
private String devName;
@ApiModelProperty(name = "ip",value = "网络参数")
private String ip;
@ApiModelProperty(name = "runFlag",value = "终端运行状态")
private String runFlag;
@ApiModelProperty(name = "comFlag",value = "通讯状态")
private String comFlag;
@ApiModelProperty(name = "loadType",value = "干扰源类型")
private String loadType;
@ApiModelProperty(name = "businessType",value = "行业类型")
private String businessType;
@ApiModelProperty(name = "objName",value = "监测点对象名称")
private String objName;
@ApiModelProperty(name = "ptType",value = "接线方式")
private String ptType;
@ApiModelProperty(name = "pt",value = "PT变比")
private String pt;
@ApiModelProperty(name = "ct",value = "CT变比")
private String ct;
@ApiModelProperty(name = "standardCapacity",value = "基准容量MVA")
private Float standardCapacity;
@ApiModelProperty(name = "shortCapacity",value = "最小短路容量MVA")
private Float shortCapacity;
@ApiModelProperty(name = "devCapacity",value = "供电设备容量MVA")
private Float devCapacity;
@ApiModelProperty(name = "dealCapacity",value = "用户协议容量MVA")
private Float dealCapacity;
@ApiModelProperty(name = "powerFlag",value = "电网标志0-电网侧1-非电网侧)")
private Integer powerFlag;
/**
* 测量间隔1-10分钟
*/
@ApiModelProperty(name = "timeInterval",value = "测量间隔1-10分钟")
private Integer timeInterval;
/**
* 监测点拥有者
*/
@ApiModelProperty(name = "owner",value = "监测点拥有者")
private String owner;
/**
* 拥有者职务
*/
@ApiModelProperty(name = "ownerDuty",value = "拥有者职务")
private String ownerDuty;
/**
* 拥有者联系方式
*/
@ApiModelProperty(name = "ownerTel",value = "拥有者联系方式")
private String ownerTel;
/**
* 接线图
*/
@ApiModelProperty(name = "wiringDiagram",value = "接线图")
private String wiringDiagram;
@ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别0单相,1三相默认三相")
private Integer ptPhaseType;
@ApiModelProperty(name = "投运日期")
private LocalDate loginTime;
@ApiModelProperty(name = "最新数据时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
@ApiModelProperty(name = "监测对象信息ID")
private String objId;
@ApiModelProperty(name = "对象类型大类")
private String bigObjType;
}

View File

@@ -0,0 +1,120 @@
package com.njcn.csdevice.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author denghuajun
* @date 2022/2/23
*
*/
@Data
@ApiModel
public class LineOverLimitVO {
@ApiModelProperty(name = "freqDev",value = "频率限值")
private Float freqDev;
@ApiModelProperty(name = "voltageDev",value = "电压上偏差限值")
private Float voltageDev;
@ApiModelProperty(name = "uvoltageDev",value = "电压下偏差限值")
private Float uvoltageDev;
@ApiModelProperty(name = "ubalance",value = "三相电压不平衡度限值")
private Float ubalance;
@ApiModelProperty(name = "iNeg",value = "负序电流")
private Float iNeg;
@ApiModelProperty(name = "flicker",value = "长时闪变限值")
private Float flicker;
@ApiModelProperty(name = "uaberrance",value = "电压总谐波畸变率限值")
private Float uaberrance;
@ApiModelProperty(name = "oddHarm",value = "奇次谐波含有率限值")
private Float oddHarm;
@ApiModelProperty(name = "evenHarm",value = "偶次谐波含有率限值")
private Float evenHarm;
@ApiModelProperty(name = "iharm2",value = "2次谐波电流幅值限值")
private Float iharm2;
@ApiModelProperty(name = "iharm3",value = "3次谐波电流幅值限值")
private Float iharm3;
@ApiModelProperty(name = "iharm4",value = "4次谐波电流幅值限值")
private Float iharm4;
@ApiModelProperty(name = "iharm5",value = "5次谐波电流幅值限值")
private Float iharm5;
@ApiModelProperty(name = "iharm6",value = "6次谐波电流幅值限值")
private Float iharm6;
@ApiModelProperty(name = "iharm7",value = "7次谐波电流幅值限值")
private Float iharm7;
@ApiModelProperty(name = "iharm8",value = "8次谐波电流幅值限值")
private Float iharm8;
@ApiModelProperty(name = "iharm9",value = "9次谐波电流幅值限值")
private Float iharm9;
@ApiModelProperty(name = "iharm10",value = "10次谐波电流幅值限值")
private Float iharm10;
@ApiModelProperty(name = "iharm11",value = "11次谐波电流幅值限值")
private Float iharm11;
@ApiModelProperty(name = "iharm12",value = "12次谐波电流幅值限值")
private Float iharm12;
@ApiModelProperty(name = "iharm13",value = "13次谐波电流幅值限值")
private Float iharm13;
@ApiModelProperty(name = "iharm14",value = "14次谐波电流幅值限值")
private Float iharm14;
@ApiModelProperty(name = "iharm15",value = "15次谐波电流幅值限值")
private Float iharm15;
@ApiModelProperty(name = "iharm16",value = "16次谐波电流幅值限值")
private Float iharm16;
@ApiModelProperty(name = "iharm17",value = "17次谐波电流幅值限值")
private Float iharm17;
@ApiModelProperty(name = "iharm18",value = "18次谐波电流幅值限值")
private Float iharm18;
@ApiModelProperty(name = "iharm19",value = "19次谐波电流幅值限值")
private Float iharm19;
@ApiModelProperty(name = "iharm20",value = "20次谐波电流幅值限值")
private Float iharm20;
@ApiModelProperty(name = "iharm21",value = "21次谐波电流幅值限值")
private Float iharm21;
@ApiModelProperty(name = "iharm22",value = "22次谐波电流幅值限值")
private Float iharm22;
@ApiModelProperty(name = "iharm23",value = "23次谐波电流幅值限值")
private Float iharm23;
@ApiModelProperty(name = "iharm24",value = "24次谐波电流幅值限值")
private Float iharm24;
@ApiModelProperty(name = "iharm25",value = "25次谐波电流幅值限值")
private Float iharm25;
@ApiModelProperty(name = "inUharm",value = "0.5-1.5次间谐波电压幅值限值")
private Float inUharm;
@ApiModelProperty(name = "inUharm16",value = "2.5-15.5次间谐波电压幅值限值")
private Float inUharm16;
}

View File

@@ -0,0 +1,383 @@
package com.njcn.csdevice.utils;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.device.biz.enums.RunFlagEnum;
import com.njcn.system.enums.DicDataEnum;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Objects;
/**
* pqs
* 限值计算工具类
*
* @author cdf
* @date 2023/5/15
*/
public class COverlimitUtil {
/**
* 谐波电流系数
*/
private static final double[][] ARR = {
{78, 62, 39, 62, 26, 44, 19, 21, 16, 28, 13, 24, 11, 12, 9.7, 18, 8.6, 16, 7.8, 8.9, 7.1, 14, 6.5, 12, 6.0, 6.9, 5.6, 11, 5.2, 10, 4.9, 5.6, 4.6, 8.9, 4.3, 8.4, 4.1, 4.8, 3.9, 7.6, 3.7, 7.2, 3.5, 4.1, 3.4, 6.6, 3.3, 6.3, 3.1},
{43, 34, 21, 34, 14, 24, 11, 11, 8.5, 16, 7.1, 13, 6.1, 6.8, 5.3, 10, 4.7, 9, 4.3, 4.9, 3.9, 7.4, 3.6, 6.8, 3.3, 3.8, 3.1, 5.9, 2.9, 5.5, 2.7, 3.1, 2.5, 4.9, 2.4, 4.6, 2.3, 2.6, 2.2, 4.1, 2.0, 4.0, 2.0, 2.3, 1.9, 3.6, 1.8, 3.5, 1.7},
{26, 20, 13, 20, 8.5, 15, 6.4, 6.8, 5.1, 9.3, 4.3, 7.9, 3.7, 4.1, 3.2, 6, 2.8, 5.4, 2.6, 2.9, 2.3, 4.5, 2.1, 4.1, 2.0, 2.2, 1.9, 3.4, 1.7, 3.2, 1.6, 1.8, 1.5, 2.9, 1.4, 2.7, 1.4, 1.5, 1.3, 2.4, 1.2, 2.3, 1.2, 1.3, 1.1, 2.1, 1.1, 2.0, 1.0},
{15, 12, 7.7, 12, 5.1, 8.8, 3.8, 4.1, 3.1, 5.6, 2.6, 4.7, 2.2, 2.5, 1.9, 3.6, 1.7, 3.2, 1.5, 1.8, 1.4, 2.7, 1.3, 2.5, 1.2, 1.3, 1.1, 2.1, 1.0, 1.9, 0.9, 1.1, 0.9, 1.7, 0.8, 1.6, 0.8, 0.9, 0.8, 1.5, 0.7, 1.4, 0.7, 0.8, 0.7, 1.3, 0.6, 1.2, 0.6},
{16, 13, 8.1, 13, 5.4, 9.3, 4.1, 4.3, 3.3, 5.9, 2.7, 5, 2.3, 2.6, 2, 3.8, 1.8, 3.4, 1.6, 1.9, 1.5, 2.8, 1.4, 2.6, 1.2, 1.4, 1.1, 2.2, 1.1, 2.1, 1.0, 1.2, 0.9, 1.9, 0.9, 1.8, 0.8, 1.0, 0.8, 1.6, 0.8, 1.5, 0.7, 0.9, 0.7, 1.4, 0.7, 1.3, 0.6},
{12, 9.6, 6, 9.6, 4, 6.8, 3, 3.2, 2.4, 4.3, 2, 3.7, 1.7, 1.9, 1.5, 2.8, 1.3, 2.5, 1.2, 1.4, 1.1, 2.1, 1, 1.9, 0.9, 1.1, 0.9, 1.7, 0.8, 1.5, 0.8, 0.9, 0.7, 1.4, 0.7, 1.3, 0.6, 0.7, 0.6, 1.2, 0.6, 1.1, 0.5, 0.6, 0.5, 1.0, 0.5, 1.0, 0.5}
};
/**
* 计算监测点限值
* @param voltageLevel 电压等级10kV = 10 220kV = 220
* @param protocolCapacity 协议容量
* @param devCapacity 设备容量
* @param shortCapacity 短路容量
* @param powerFlag 0.用户侧 1.电网侧
* @param lineType 0.主网 1.配网 需要注意配网目前没有四种容量,谐波电流幅值限值,负序电流限值无法计算默认-3.14159
*/
public static Overlimit globalAssemble(Float voltageLevel, Float protocolCapacity, Float devCapacity,
Float shortCapacity, Integer powerFlag, Integer lineType) {
Overlimit overlimit = new Overlimit();
voltageDeviation(overlimit,voltageLevel);
frequency(overlimit);
voltageFluctuation(overlimit,voltageLevel);
voltageFlicker(overlimit,voltageLevel);
totalHarmonicDistortion(overlimit,voltageLevel);
uHarm(overlimit,voltageLevel);
threeVoltageUnbalance(overlimit);
interharmonicCurrent(overlimit,voltageLevel);
if(Objects.equals(lineType, RunFlagEnum.PW_FLAG.getStatus())) {
//配网
Float[] iHarmTem = new Float[49];
for (int i = 0; i <= 48; i++) {
iHarmTem[i] = -3.14159f;
}
overlimit.buildIHarm(iHarmTem);
overlimit.setINeg(-3.14159f);
}else {
//主网
iHarm(overlimit, voltageLevel, protocolCapacity, devCapacity, shortCapacity);
negativeSequenceCurrent(overlimit, voltageLevel, shortCapacity);
}
return overlimit;
}
/**
* 电压偏差限值
*
*/
public static void voltageDeviation(Overlimit overlimit,Float voltageLevel) {
float voltageDev = 3.14159f,uvoltageDev = 3.14159f;
if(voltageLevel <= Float.parseFloat(DicDataEnum.V220.getCode())){
voltageDev = 7.0f;
uvoltageDev=-10.0f;
}else if(voltageLevel>Float.parseFloat(DicDataEnum.V220.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV20.getCode())){
voltageDev = 7.0f;
uvoltageDev=-7.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV20.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV35.getCode())){
voltageDev = 7.0f;
uvoltageDev=-7.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV35.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV66.getCode())){
voltageDev = 10.0f;
uvoltageDev=-10.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV66.getCode())&&voltageLevel<=Float.parseFloat(DicDataEnum.KV110.getCode())){
voltageDev = 7.0f;
uvoltageDev=-3.0f;
}else if(voltageLevel>Float.parseFloat(DicDataEnum.KV110.getCode())){
voltageDev = 10.0f;
uvoltageDev=-10.0f;
}
overlimit.setVoltageDev(voltageDev);
overlimit.setUvoltageDev(uvoltageDev);
}
/**
* 频率偏差
* 默认限值±0.2Hz(即:-0.2 Hz≤限值≤0.2 Hz
*/
public static void frequency(Overlimit overlimit) {
overlimit.setFreqDev(0.2f);
}
/**
* 电压波动
* 对LV、MV0≤限值≤3%对HV0≤限值≤2.5%。
* LV、MV、HV的定义
* 低压LV UN≤1kV
* 中压MV 1kVUN≤35kV
* 高压HV 35kVUN≤220kV
* 超高压EHV220kVUN参照HV执行
*/
public static void voltageFluctuation(Overlimit overlimit, Float voltageLevel) {
if (voltageLevel < Float.parseFloat(DicDataEnum.KV35.getCode())) {
overlimit.setVoltageFluctuation(3.0f);
} else {
overlimit.setVoltageFluctuation(2.5f);
}
}
/**
* 电压闪变
* ≤110kV 1
* 110kV 0.8
*/
public static void voltageFlicker(Overlimit overlimit, Float voltageLevel) {
if (voltageLevel <= Float.parseFloat(DicDataEnum.KV110.getCode())) {
overlimit.setFlicker(1.0f);
} else {
overlimit.setFlicker(0.8f);
}
}
/**
* 总谐波电压畸变率
*
*
*/
public static void totalHarmonicDistortion(Overlimit overlimit, Float voltageLevel) {
float result = 3.14159f;
if (voltageLevel < Float.parseFloat(DicDataEnum.KV6.getCode())) {
result = 5.0f;
} else if(voltageLevel >= Float.parseFloat(DicDataEnum.KV6.getCode()) && voltageLevel <= Float.parseFloat(DicDataEnum.KV20.getCode())){
result = 4.0f;
} else if(voltageLevel >= Float.parseFloat(DicDataEnum.KV35.getCode()) && voltageLevel <= Float.parseFloat(DicDataEnum.KV66.getCode())){
result = 3.0f;
} else if(voltageLevel >= Float.parseFloat(DicDataEnum.KV110.getCode()) && voltageLevel <= Float.parseFloat(DicDataEnum.KV1000.getCode())){
result = 2.0f;
}
overlimit.setUaberrance(result);
}
/**
* 谐波电压含有率
*/
public static void uHarm(Overlimit overlimit, Float voltageLevel) {
float resultOdd = 3.14159f,resultEven = 3.14159f;
if (voltageLevel < Float.parseFloat(DicDataEnum.KV6.getCode())) {
resultOdd = 4.0f;
resultEven = 2.0f;
} else if(voltageLevel >= Float.parseFloat(DicDataEnum.KV6.getCode()) && voltageLevel <= Float.parseFloat(DicDataEnum.KV20.getCode())){
resultOdd = 3.2f;
resultEven = 1.6f;
} else if(voltageLevel >= Float.parseFloat(DicDataEnum.KV35.getCode()) && voltageLevel <= Float.parseFloat(DicDataEnum.KV66.getCode())){
resultOdd = 2.4f;
resultEven = 1.2f;
} else if(voltageLevel >= Float.parseFloat(DicDataEnum.KV110.getCode()) && voltageLevel <= Float.parseFloat(DicDataEnum.KV1000.getCode())){
resultOdd = 1.6f;
resultEven = 0.8f;
}
overlimit.buildUharm(resultEven,resultOdd);
}
/**
* 负序电压不平衡(三相电压不平衡度)
*
*/
public static void threeVoltageUnbalance(Overlimit overlimit) {
overlimit.setUbalance(2.0f);
overlimit.setShortUbalance(4.0f);
}
/*---------------------------------谐波电流限值start-----------------------------------*/
/**
* 谐波电流限值
*/
public static void iHarm(Overlimit overlimit, Float voltageLevel,Float protocolCapacity,Float devCapacity,Float shortCapacity) {
float calCap = shortCapacity/getDlCapByVoltageLevel(voltageLevel);
//24谐波电流幅值
Float[] iHarmTem = new Float[49];
for (int i = 0; i <= 48; i++) {
float inHarm = iHarmCalculate(i+2,voltageLevel,protocolCapacity,devCapacity,calCap);
iHarmTem[i] = inHarm;
}
overlimit.buildIHarm(iHarmTem);
}
/**
* @Description: iHarmCalculate
* @Param: protocolCapacity 协议容量 devCapacity设备容量 calCap 短路容量
* @return: float
* @Author: clam
* @Date: 2024/2/4
*/
private static float iHarmCalculate(int nHarm, Float voltageLevel,float protocolCapacity, float devCapacity,float calCap) {
double tag = calCap*getHarmTag(nHarm,voltageLevel);
Double limit = getHarmonicLimit(nHarm,tag,new BigDecimal(String.valueOf(devCapacity)).doubleValue(),new BigDecimal(String.valueOf(protocolCapacity)).doubleValue());
BigDecimal bigDecimal = BigDecimal.valueOf(limit).setScale(4,RoundingMode.HALF_UP);
return bigDecimal.floatValue();
}
/**
* 电流谐波限值
*/
private static Double getHarmTag(Integer iCount, Float voltageLevel) {
int x, y;
if (voltageLevel < DicDataEnum.KV6.getValue()) {
x = 0;
} else if (voltageLevel<DicDataEnum.KV10.getValue()) {
x = 1;
} else if (voltageLevel<DicDataEnum.KV35.getValue()) {
x = 2;
} else if (voltageLevel<DicDataEnum.KV66.getValue()) {
x = 3;
} else if (voltageLevel<DicDataEnum.KV110.getValue()) {
x = 4;
} else {
x = 5;
}
y = iCount - 2;
return ARR[x][y];
}
/**
* 相位叠加系数的取值
*/
public static Double getHarmonicLimit(Integer times, double iTag, double supply, double user) {
if (supply == 0) {
return 0.0;
}
double coefficient = 2.0;
if (times == 3) {
coefficient = 1.1;
} else if (times == 5) {
coefficient = 1.2;
} else if (times == 7) {
coefficient = 1.4;
} else if (times == 11) {
coefficient = 1.8;
} else if (times == 13) {
coefficient = 1.9;
}
BigDecimal bd = new BigDecimal(iTag * Math.pow((user / supply), (1 / coefficient)));
bd = bd.setScale(6, RoundingMode.HALF_UP);
return Double.parseDouble(bd.toString());
}
/**
* 根据电压等级获取基准短路容量
*/
public static float getDlCapByVoltageLevel(Float voltageLevel){
float capValue;
if(voltageLevel< DicDataEnum.KV06.getValue()){
capValue = 10;
}else if(voltageLevel<DicDataEnum.KV20.getValue()){
capValue = 100;
}else if(voltageLevel<DicDataEnum.KV35.getValue()){
capValue = 200;
}else if(voltageLevel<DicDataEnum.KV66.getValue()){
capValue = 250;
}else if(voltageLevel<DicDataEnum.KV110.getValue()){
capValue = 500;
}else if(voltageLevel<DicDataEnum.KV220.getValue()){
capValue = 750;
}else if(voltageLevel<DicDataEnum.KV330.getValue()){
capValue = 2000;
}else if(voltageLevel<DicDataEnum.KV500.getValue()){
capValue = 3000;
}else if(voltageLevel<DicDataEnum.KV750.getValue()){
capValue = 4500;
}else if(voltageLevel<DicDataEnum.KV1000.getValue()){
capValue = 7000;
}else {
capValue = 9000;
}
return capValue;
}
/*---------------------------------谐波电流限值end-----------------------------------*/
/**
* 间谐波电压含有率
*/
public static void interharmonicCurrent(Overlimit overlimit,Float voltageLevel){
float aValue,bValue;
if(voltageLevel <= DicDataEnum.KV1.getValue()){
aValue = 0.2f;bValue = 0.5f;
}else {
aValue = 0.16f;bValue = 0.4f;
}
overlimit.setInuharm1(aValue);
overlimit.setInuharm2(aValue);
overlimit.setInuharm3(bValue);
overlimit.setInuharm4(bValue);
overlimit.setInuharm5(bValue);
overlimit.setInuharm6(bValue);
overlimit.setInuharm7(bValue);
overlimit.setInuharm8(bValue);
overlimit.setInuharm9(bValue);
overlimit.setInuharm10(bValue);
overlimit.setInuharm11(bValue);
overlimit.setInuharm12(bValue);
overlimit.setInuharm13(bValue);
overlimit.setInuharm14(bValue);
overlimit.setInuharm15(bValue);
overlimit.setInuharm16(bValue);
}
/**
* 负序电流限值
*/
public static void negativeSequenceCurrent(Overlimit overlimit,Float voltageLevel,Float shortCapacity){
double v = (0.013*shortCapacity*1000)/(getUl(voltageLevel)*Math.sqrt(3));
overlimit.setINeg((float) v);
}
/**
* 获取额定线电压
*/
private static float getUl(Float voltageLevel){
float value;
if(voltageLevel<DicDataEnum.KV6.getValue()){
value = 0.4f;
}else if(voltageLevel<DicDataEnum.KV10.getValue()){
value = 6.3f;
}else if(voltageLevel<DicDataEnum.KV20.getValue()){
value = 10.5f;
}else if(voltageLevel<DicDataEnum.KV35.getValue()){
value = 21.0f;
}else if(voltageLevel<DicDataEnum.KV66.getValue()){
value = 36.5f;
}else if(voltageLevel<DicDataEnum.KV110.getValue()){
value = 69.0f;
}else if(voltageLevel<DicDataEnum.KV220.getValue()){
value = 115.5f;
}else if(voltageLevel<DicDataEnum.KV330.getValue()){
value = 230.0f;
}else {
value = 345.0f;
}
return value;
}
public static void main(String[] args) {
System.out.println("sss");
float aa = iHarmCalculate(9,500f,10,10,0.002222222222f);
System.out.println(aa);
}
}

View File

@@ -0,0 +1,104 @@
package com.njcn.csdevice.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.csdevice.pojo.vo.LineOverLimitVO;
import com.njcn.csdevice.service.IOverLimitService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "监测点限值信息查询")
public class PQOverlimitController extends BaseController {
private final IOverLimitService overLimitService;
// -------- 3个重复的代码 ----------
/**
* 来源于CommTerminalController的getOverLimitData
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/commTerminal/getOverLimitData")
@ApiOperation("根据监测点id获取越限数值")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<Overlimit> getOverLimitDataTerminal(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getOverLimitData");
Overlimit result = overLimitService.getOverLimitDataById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/line/getOverLimitData")
@ApiOperation("根据监测点id获取越限数值")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<Overlimit> getOverLimitData(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getOverLimitData");
Overlimit result = overLimitService.getOverLimitDataById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/line/getLineOverLimitData")
@ApiOperation("根据监测点id获取越限详情")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<LineOverLimitVO> getLineOverLimitData(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getLineOverLimitData");
LineOverLimitVO result = overLimitService.getLineOverLimitDataById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/overLimit/getOverLimitByLineIds")
@ApiOperation("监测点集合获取限值")
@ApiImplicitParam(name = "lineIds", value = "监测点ids", required = true)
@ApiIgnore
public HttpResult<List<Overlimit>> getOverLimitByLineIds(@RequestBody List<String> lineIds){
String methodDescribe = getMethodDescribe("getOverLimitByLineIds");
List<Overlimit> overLimitList= overLimitService.list(new LambdaQueryWrapper<Overlimit>().in(Overlimit::getId,lineIds));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, overLimitList, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/commTerminal/getOverLimitDataByIds")
@ApiOperation("根据监测点id集合获取越限数值")
@ApiImplicitParam(name = "ids", value = "监测点id集合", required = true)
public HttpResult<List<Overlimit>> getOverLimitDataByIds(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("getOverLimitDataByIds");
List<Overlimit> result = overLimitService.listByIds(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/overLimit/getLimitMapsByLineIds")
@ApiOperation("监测点集合获取限值")
@ApiImplicitParam(name = "lineIds", value = "监测点ids", required = true)
@ApiIgnore
public HttpResult<List<Map<String, Object>>> getLimitMapsByLineIds(@RequestBody List<String> lineIds){
String methodDescribe = getMethodDescribe("getLimitMapsByLineIds");
List<Map<String, Object>> overLimitList= overLimitService.listMaps(new LambdaQueryWrapper<Overlimit>().in(Overlimit::getId,lineIds));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, overLimitList, methodDescribe);
}
}

View File

@@ -11,10 +11,11 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.mapper.OverlimitMapper;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.LineDetailDataVO;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.csdevice.pojo.vo.PqSensitiveUserLineVO;
import com.njcn.csdevice.service.CsLinePOService;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.csdevice.utils.COverlimitUtil;
import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.*;
@@ -302,4 +303,14 @@ public class CslineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, url, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLineDetailData")
@ApiOperation("根据监测点id获取监测点详情")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<LineDetailDataVO> getLineDetailData(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getLineDetailData");
LineDetailDataVO result = csLinePOService.getLineDetailData(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -3,7 +3,7 @@ package com.njcn.csdevice.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.csdevice.pojo.po.Overlimit;
import org.apache.ibatis.annotations.Mapper;

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.overlimit.mapper.OverlimitMapper">
<select id="getAllLineOverLimit" resultType="com.njcn.device.biz.pojo.po.Overlimit">
select f.* from pq_line a
inner join pq_line_detail b on a.id = b.id
inner join pq_line c on a.pid = c.id
inner join pq_line d on c.pid = d.id
inner join pq_device e on d.id = e.id
inner join pq_overlimit f on a.id=f.id
where e.dev_data_type in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and e.run_flag = 0
and e.dev_model = 1
</select>
</mapper>

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.LineDetailDataVO;
import com.njcn.csdevice.pojo.vo.PqSensitiveUserLineVO;
import com.njcn.web.pojo.param.BaseParam;
import org.springframework.web.multipart.MultipartFile;
@@ -11,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
*
*
* Description:
* Date: 2023/5/18 14:01【需求编号】
*
@@ -83,4 +84,11 @@ public interface CsLinePOService extends IService<CsLinePO>{
Page<PqSensitiveUserLineVO> getSensitiveUserLineList(BaseParam param);
boolean uploadReport(MultipartFile file, String lineId);
String getReportUrl(String lineId);
/**
* 获取监测点详情
* @param id 监测点id
* @return 结果
*/
LineDetailDataVO getLineDetailData(String id);
}

View File

@@ -0,0 +1,28 @@
package com.njcn.csdevice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.csdevice.pojo.vo.LineOverLimitVO;
/**
* <p>
* 越限表实体
* </p>
*
* @author hongawen
* @since 2023-03-28
*/
public interface IOverLimitService extends IService<Overlimit> {
Overlimit getOverLimitDataById(String id);
/**
* 获取监测点越限详情
* @param id 监测点id
* @return 结果
*/
LineOverLimitVO getLineOverLimitDataById(String id);
}

View File

@@ -1,21 +0,0 @@
package com.njcn.csdevice.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.njcn.device.biz.pojo.po.Overlimit;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.OverlimitMapper;
import com.njcn.csdevice.service.impl.OverlimitService;
/**
*
* Description:
* Date: 2024/10/22 14:14【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@DS("sjzx")
public class OverlimitServiceImpl extends ServiceImpl<OverlimitMapper, Overlimit> implements OverlimitService{
}

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -37,7 +38,6 @@ import com.njcn.csharmonic.constant.HarmonicConstant;
import com.njcn.csharmonic.param.*;
import com.njcn.csharmonic.pojo.vo.ThdDataTdVO;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.dto.EventDataSetDTO;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
@@ -942,13 +942,16 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
CsLinePO finalCsLinePO = csLineFeignClient.getById(fittingDataQueryParam.getLineId()).getData();
CsDataSet csDataSet = csDataSetMapper.selectOne(new LambdaQueryWrapper<CsDataSet>().eq(CsDataSet::getId,finalCsLinePO.getDataSetId()));
if(Objects.isNull(csDataSet) || StrUtil.isBlank(csDataSet.getDataLevel())){
throw new BusinessException("当前测点数据集主要信息缺失,请联系管理员排查(测点表里面数据集id缺失)");
throw new BusinessException("当前测点数据集主要信息缺失请联系管理员排查(测点表里面数据集id缺失)");
}
Double ct = finalCsLinePO.getCtRatio();
Double pt = finalCsLinePO.getPtRatio();
// String position = finalCsLinePO.getPosition();
Overlimit overlimit = overlimitMapper.selectById(finalCsLinePO.getLineId());
JSONObject entries = JSONUtil.parseObj(overlimit);
if (Objects.isNull(overlimit)) {
throw new BusinessException("当前测点限值信息缺失,请联系管理员排查");
}
JSONObject entries = JSONUtil.parseObj(overlimit, new JSONConfig().setIgnoreNullValue(false));
if(CollectionUtil.isNotEmpty(fittingDataQueryParam.getList())) {
for (FittingDataQueryParam param : fittingDataQueryParam.getList()) {
String dictCode = dictTreeFeignClient.queryById(param.getStatisticalId()).getData().getCode();

View File

@@ -13,17 +13,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.access.api.CsLineLatestDataFeignClient;
import com.njcn.access.pojo.po.CsLineLatestData;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.PubUtils;
import com.njcn.csdevice.mapper.*;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.*;
import com.njcn.csdevice.pojo.vo.LineDetailDataVO;
import com.njcn.csdevice.pojo.vo.PqSensitiveUserLineVO;
import com.njcn.csdevice.service.*;
import com.njcn.csdevice.service.CsDevModelService;
import com.njcn.csdevice.service.CsLinePOService;
import com.njcn.csdevice.service.ICsDataSetService;
import com.njcn.csharmonic.api.PqSensitiveUserFeignClient;
import com.njcn.csharmonic.pojo.po.PqSensitiveUser;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.system.api.DicDataFeignClient;
@@ -35,6 +36,7 @@ import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.pojo.param.BaseParam;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -48,7 +50,7 @@ import java.util.Map;
import java.util.stream.Collectors;
/**
*
*
* Description:
* Date: 2023/5/18 14:01【需求编号】
*
@@ -194,7 +196,15 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
.set(CsLinePO::getCtRatio,param.getCtRatio())
.set(CsLinePO::getCt2Ratio,param.getCt2Ratio())
.set(CsLinePO::getVolGrade,param.getVolGrade())
.set(CsLinePO::getRunStatus,param.getRunStatus());
.set(CsLinePO::getRunStatus,param.getRunStatus())
.set(CsLinePO::getBasicCapacity,param.getBasicCapacity())
.set(CsLinePO::getDevCapacity,param.getDevCapacity())
.set(CsLinePO::getProtocolCapacity,param.getProtocolCapacity())
.set(CsLinePO::getShortCircuitCapacity,param.getShortCircuitCapacity())
.set(CsLinePO::getMonitorObj,param.getMonitorObj())
.set(CsLinePO::getMonitorObj,param.getMonitorObj())
.set(CsLinePO::getGovern,param.getGovern())
.set(CsLinePO::getMonitorUser,param.getMonitorUser());
this.update(lambdaUpdateWrapper);
//修改台账树中监测点的名称
@@ -379,6 +389,40 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
}
@Override
public LineDetailDataVO getLineDetailData(String id) {
if (StringUtils.isEmpty(id)) {
return new LineDetailDataVO();
} else {
CsLinePO csLinePO = this.baseMapper.selectOne(new LambdaQueryWrapper<CsLinePO>().eq(CsLinePO::getLineId,id));
LineDetailDataVO lineDetailDataVO = new LineDetailDataVO();
//lineDetailDataVO.setScale(dicDataFeignClient.getDicDataById(voltageMapper.selectById(voId).getScale()).getData().getName());
//Device device = deviceMapper.selectById(devId);
//lineDetailDataVO.setComFlag(PubUtils.comFlag(device.getComFlag()));
//lineDetailDataVO.setRunFlag(PubUtils.lineRunFlag(lineDetail.getRunFlag()));
//lineDetailDataVO.setIp(device.getIp());
//lineDetailDataVO.setLoginTime(device.getLoginTime());
//lineDetailDataVO.setDevId(device.getId());
//lineDetailDataVO.setBusinessType(dicDataFeignClient.getDicDataById(lineDetail.getBusinessType()).getData().getName());
//lineDetailDataVO.setLoadType(dicDataFeignClient.getDicDataById(lineDetail.getLoadType()).getData().getName());
lineDetailDataVO.setObjName(csLinePO.getMonitorUser());
lineDetailDataVO.setLineId(csLinePO.getLineId());
lineDetailDataVO.setPtType(PubUtils.ptType(csLinePO.getConType()));
//lineDetailDataVO.setPt(lineDetail.getPt1() + "/" + lineDetail.getPt2());
//lineDetailDataVO.setCt(lineDetail.getCt1() + "/" + lineDetail.getCt2());
lineDetailDataVO.setDealCapacity(csLinePO.getProtocolCapacity().floatValue());
lineDetailDataVO.setDevCapacity(csLinePO.getDevCapacity().floatValue());
lineDetailDataVO.setShortCapacity(csLinePO.getShortCircuitCapacity().floatValue());
lineDetailDataVO.setStandardCapacity(csLinePO.getBasicCapacity().floatValue());
lineDetailDataVO.setTimeInterval(csLinePO.getLineInterval());
return lineDetailDataVO;
}
}
private String getRunStatusDescription(Integer runStatus) {
// 0运行1检修2停运3调试4退运
switch (runStatus) {

View File

@@ -22,10 +22,9 @@ import com.njcn.csdevice.pojo.po.*;
import com.njcn.csdevice.pojo.vo.CldLedgerVo;
import com.njcn.csdevice.pojo.vo.DeviceInfo;
import com.njcn.csdevice.service.*;
import com.njcn.csdevice.utils.COverlimitUtil;
import com.njcn.csharmonic.api.EventFeignClient;
import com.njcn.csharmonic.pojo.po.CsEventPO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.mq.message.BZEventMessage;
import com.njcn.mq.template.BZEventMessageTemplate;
import com.njcn.redis.pojo.enums.AppRedisKey;

View File

@@ -0,0 +1,42 @@
package com.njcn.csdevice.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.OverlimitMapper;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.csdevice.pojo.vo.LineOverLimitVO;
import com.njcn.csdevice.service.IOverLimitService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* pqs
*
* @author cdf
* @date 2023/6/7
*/
@Service
@RequiredArgsConstructor
public class OverLimitServiceImpl extends ServiceImpl<OverlimitMapper, Overlimit> implements IOverLimitService {
@Override
public Overlimit getOverLimitDataById(String id) {
return this.baseMapper.selectById(id);
}
@Override
public LineOverLimitVO getLineOverLimitDataById(String id) {
//根据监测点id查询所在监测点的限值表数据
Overlimit overlimit = this.baseMapper.selectById(id);
LineOverLimitVO lineOverLimitVO = new LineOverLimitVO();
BeanUtil.copyProperties(overlimit, lineOverLimitVO);
lineOverLimitVO.setOddHarm(overlimit.getUharm3());
lineOverLimitVO.setEvenHarm(overlimit.getUharm2());
lineOverLimitVO.setInUharm(overlimit.getInuharm1());
lineOverLimitVO.setInUharm16(overlimit.getInuharm16());
return lineOverLimitVO;
}
}

View File

@@ -1,17 +0,0 @@
package com.njcn.csdevice.service.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.biz.pojo.po.Overlimit;
/**
*
* Description:
* Date: 2024/10/22 14:14【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface OverlimitService extends IService<Overlimit>{
}

View File

@@ -18,27 +18,24 @@ import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.constant.DataParam;
import com.njcn.csdevice.enums.LineBaseEnum;
import com.njcn.csdevice.mapper.CsDataSetMapper;
import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper;
import com.njcn.csdevice.mapper.CsLinePOMapper;
import com.njcn.csdevice.mapper.WlRecordMapper;
import com.njcn.csdevice.param.WlRecordPageParam;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.param.WlRecordParam;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.po.Overlimit;
import com.njcn.csdevice.pojo.po.WlRecord;
import com.njcn.csdevice.pojo.vo.RecordAllDevTreeVo;
import com.njcn.csdevice.pojo.vo.RecordTreeVo;
import com.njcn.csdevice.pojo.vo.RecordVo;
import com.njcn.csdevice.service.IOverLimitService;
import com.njcn.csdevice.service.IWlRecordService;
import com.njcn.csdevice.util.InfluxDbParamUtil;
import com.njcn.csdevice.utils.DataChangeUtil;
import com.njcn.csdevice.utils.COverlimitUtil;
import com.njcn.csdevice.utils.StringUtil;
import com.njcn.csharmonic.constant.HarmonicConstant;
import com.njcn.csharmonic.param.CommonStatisticalQueryParam;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.influx.imapper.CommonMapper;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
@@ -62,7 +59,6 @@ import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -93,10 +89,7 @@ public class WlRecordServiceImpl extends ServiceImpl<WlRecordMapper, WlRecord> i
private final InfluxDbParamUtil influxDbParamUtil;
private final CsLinePOMapper csLinePOMapper;
private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper;
private final OverlimitService overlimitService;
private final IOverLimitService overlimitService;
private final DicDataFeignClient dicDataFeignClient;
private final DecimalFormat df = new DecimalFormat(DataParam.DecimalFormatStr);

View File

@@ -51,6 +51,17 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-oss</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-poi</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@@ -0,0 +1,9 @@
package com.njcn.csharmonic.annotaion;
import java.lang.annotation.*;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface HarCurrent {
}

View File

@@ -0,0 +1,9 @@
package com.njcn.csharmonic.annotaion;
import java.lang.annotation.*;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface HarVoltage {
}

View File

@@ -0,0 +1,11 @@
package com.njcn.csharmonic.annotaion;
import java.lang.annotation.*;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface InterharVoltage {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.csharmonic.pojo.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Description:
* Date: 2025/09/18 下午 2:00【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RealTimeDataDTO {
private Integer code;
private String message;
private Integer type =1;
// private List<RealTimeDataVo> realTimeDataVoList;
}

View File

@@ -0,0 +1,49 @@
package com.njcn.csharmonic.pojo.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/6/14 20:07
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ZuTaiNewDTO {
private List<DiagramElement> json;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class DiagramElement{
private String id;
private String title;
private String keyId;
private String type;
private boolean resize;
private boolean rotate;
private boolean lock;
private boolean active;
private boolean hide;
private String tag;
private boolean use_proportional_scaling;
private String lineId;
private List<String> lineList;
private String lineName;
@JsonProperty("UID")
private List<List<String>> uid;
@JsonProperty("UIDNames")
private List<String> uidNames;
private List<String> unit;
}
}

View File

@@ -0,0 +1,112 @@
package com.njcn.csharmonic.pojo.dto.eventReport;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author denghuajun
* @version 1.0.0
* @date 2022年04月07日 08:59
*/
@Data
@Measurement(name = "pqs_eventdetail")
//@TableName("r_mp_event_detail")
public class EventDetail {
@ApiModelProperty(name = "eventId",value ="暂态事件id")
private String eventId;
@Column(name = "line_id")
private String lineId;
@Column(name = "time")
@ApiModelProperty(value = "开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS",timezone = "GMT+8")
private LocalDateTime startTime;
@Column(name = "event_describe")
@ApiModelProperty(value = "事件描述")
private String eventDescribe;
@Column(name = "wave_type")
@ApiModelProperty(value = "统计类型")
private String eventType;
@Column(name = "persist_time")
@ApiModelProperty(value = "持续时间,单位秒")
private Double duration;
@Column(name = "event_value")
@ApiModelProperty(value = "特征幅值")
private Double featureAmplitude;
@Column(name = "event_reason")
@ApiModelProperty(value = "暂降原因Event_Reason")
private String advanceReason;
@Column(name = "event_type")
@ApiModelProperty(value = "暂降类型Event_Type")
private String advanceType;
@Column(name = "eventass_index")
private String eventassIndex;
@Column(name = "dq_time")
private Integer dqTime;
@Column(name = "deal_time")
private String dealTime;
@Column(name = "deal_flag")
private Integer dealFlag;
@Column(name = "num")
private Integer num;
@Column(name = "file_flag")
private Integer fileFlag;
@Column(name = "first_time")
private String firstTime;
@Column(name = "first_type")
private String firstType;
@Column(name = "first_ms")
private Integer firstMs;
@Column(name = "wave_name")
@ApiModelProperty(value = "波形路径")
private String wavePath;
@Column(name = "energy")
private Double energy;
@Column(name = "severity")
private Double severity;
@Column(name = "sagsource")
private String sagSource;
@Column(name = "create_time")
private String createTime;
private String lineName;
private BigDecimal lat;
private BigDecimal lng;
private String gdName;
private String subName;
}

View File

@@ -0,0 +1,81 @@
package com.njcn.csharmonic.pojo.dto.report;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import java.time.Instant;
/**
* data_v influxDB别名映射表
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/27 15:27
*/
@Data
@Measurement(name = "data_i")
public class DataI {
@Column(name = "time")
private Instant time;
@Column(name = "phasic_type")
private String phaseType;
@Column(name = "value_type")
private String valueType;
@Column(name = "rms")
private Double rms;
@Column(name = "line_id")
private String lineId;
@Column(name = "freq_max")
private Double frepMAX;
@Column(name = "freq_min")
private Double frepMIN;
@Column(name = "rms_max")
private Double rmsMAX;
@Column(name = "rms_min")
private Double rmsMIN;
@Column(name = "rms_lvr_max")
private Double rmsLvrMAX;
@Column(name = "rms_lvr_min")
private Double rmsLvrMIN;
@Column(name = "v_thd_max")
private Double vThdMAX;
@Column(name = "v_thd_min")
private Double vThdMIN;
@Column(name = "v_unbalance_max")
private Double vUnbalanceMAX;
@Column(name = "v_unbalance_min")
private Double vUnbalanceMIN;
@Column(name = "freq_count")
private Integer freqCount;
@Column(name = "rms_count")
private Integer rmsCount;
@Column(name = "rms_lvr_count")
private Integer rmsLvrCount;
@Column(name = "v_thd_count")
private Integer vThdCount;
@Column(name = "v_unbalance_count")
private Integer vUnbalanceCount;
}

View File

@@ -0,0 +1,35 @@
package com.njcn.csharmonic.pojo.dto.report;
public enum EnumPass {
MAX(1, "使用最大值与国标限值比较,判断指标是否合格"),
MIN(2, "使用最小值与国标限值比较,判断指标是否合格"),
MEAN(3, "使用平均值与国标限值比较,判断指标是否合格"),
CP95(4, "使用CP95值与国标限值比较判断指标是否合格"),
DEFAULT(5, "不作比较"),
PASS(0, "合格"),
FPYVALUE(98, "合格率限值"),
FPYV(1, "UHARM_0_OVERTIME"),
FPYI(2, "IHARM_0_OVERTIME"),
FPYVOLTAGE(3, "VOLTAGE_DEV_OVERTIME"),
FPYTHREE(4, "UBALANCE_OVERTIME"),
FPYTHDV(5, "UABERRANCE_OVERTIME"),
FPYRATE(6, "FREQ_DEV_OVERTIME"),
FPYFLICKER(7, "FLICKER_OVERTIME"),
NOPASS(-1, "不合格");
private Integer code;
private String describe;
EnumPass(Integer code, String describe) {
this.code = code;
this.describe = describe;
}
public Integer getCode() {
return code;
}
public String getDescribe() {
return describe;
}
}

View File

@@ -0,0 +1,20 @@
package com.njcn.csharmonic.pojo.dto.report;
import com.njcn.device.biz.pojo.po.Overlimit;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class OverLimitInfo implements Serializable {
private static final long serialVersionUID = 7466469972886414616L;
private List<Overlimit> overLimitRate;
private Double count;
private Double pltCount;
private Double pstCount;
private List<String> list;
private String mode;
}

View File

@@ -0,0 +1,24 @@
package com.njcn.csharmonic.pojo.dto.report;
import lombok.Data;
/**
* @author wr
* @description
* @date 2023/4/12 11:40
*/
@Data
public class Pass {
private Float overLimit;
private Integer code;
public Pass(Float overLimit) {
this.code = EnumPass.DEFAULT.getCode();
this.overLimit = overLimit;
}
public Pass(Float overLimit, Integer code) {
this.overLimit = overLimit;
this.code = code;
}
}

View File

@@ -0,0 +1,17 @@
package com.njcn.csharmonic.pojo.dto.report;
import com.njcn.csharmonic.pojo.vo.report.ReportValue;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ReportTarget implements Serializable {
private static final long serialVersionUID = -6931764660060228127L;
private List<ReportValue> list;
private Float overLimit; //指标的国标限值
private Integer pass;
}

View File

@@ -0,0 +1,9 @@
package com.njcn.csharmonic.pojo.param;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class LimitCalendarQueryParam extends TotalLimitStatisticsParam {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.csharmonic.pojo.param;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class LimitExtentDayQueryParam {
@ApiModelProperty(value = "发生时间")
@NotBlank(message = "发生日期不能为空")
@DateTimeStrValid(message = "发生日期格式出错")
private String time;
@ApiModelProperty(value = "监测点id")
@NotBlank(message = "监测点id不能为空")
private String lineId;
@ApiModelProperty(value = "指标编码")
@NotBlank(message = "指标编码不能为空")
private String code;
}

View File

@@ -0,0 +1,9 @@
package com.njcn.csharmonic.pojo.param;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class LimitExtentQueryParam extends TotalLimitStatisticsParam {
}

View File

@@ -0,0 +1,9 @@
package com.njcn.csharmonic.pojo.param;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class LimitProbabilityQueryParam extends MainLineStatLimitRateDetailsQueryParam {
}

View File

@@ -0,0 +1,35 @@
package com.njcn.csharmonic.pojo.param;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MainLineQueryParam {
@ApiModelProperty("关键词")
private String keywords;
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String searchBeginTime;
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String searchEndTime;
@ApiModelProperty(value = "页码", example = "1")
private int pageNum = 1;
@ApiModelProperty(value = "每页记录数", example = "10")
private int pageSize = 10;
}

View File

@@ -0,0 +1,23 @@
package com.njcn.csharmonic.pojo.param;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class MainLineStatLimitRateDetailsQueryParam {
@NotBlank(message = "监测点ID不可为空")
@ApiModelProperty("监测点ID")
private String lineId;
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String searchBeginTime;
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String searchEndTime;
}

View File

@@ -0,0 +1,27 @@
package com.njcn.csharmonic.pojo.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* pqs
*
* @author cdf
* @date 2024/2/28
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RStatLimitQueryParam {
private List<String> ids;
private String date;
private String endDate;
}

View File

@@ -0,0 +1,39 @@
package com.njcn.csharmonic.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import java.util.List;
/**
* <功能描述>
*
* @author 1754607820@qq.com
* @createTime: 2022-10-18
*/
@Data
public class StatSubstationBizBaseParam extends StatisticsBizBaseParam {
@ApiModelProperty(value = "ids集合", required = true)
private List<String> ids;
@ApiModelProperty(value = "是否是国网监测点信息", required = true)
private Integer isUpToGrid;
@ApiModelProperty("页码")
private Integer pageNum;
@ApiModelProperty("页面尺寸")
private Integer pageSize;
/**
* 0-电网侧
* 1-非电网侧
*/
@ApiModelProperty("电网侧标识")
@Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
private Integer powerFlag;
}

View File

@@ -0,0 +1,9 @@
package com.njcn.csharmonic.pojo.param;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class TotalLimitStatisticsDetailsQueryParam extends MainLineStatLimitRateDetailsQueryParam {
}

View File

@@ -0,0 +1,19 @@
package com.njcn.csharmonic.pojo.param;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class TotalLimitStatisticsParam {
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String searchBeginTime;
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String searchEndTime;
}

View File

@@ -0,0 +1,75 @@
package com.njcn.csharmonic.pojo.param.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月16日 19:37
*/
@Data
public class ExportParam implements Serializable {
@ApiModelProperty(name = "lineId",value = "监测点ID")
private String lineId;
@ApiModelProperty(name = "searchBeginTime",value = "开始时间")
private String searchBeginTime;
@ApiModelProperty(name = "searchEndTime",value = "结束时间")
private String searchEndTime;
@ApiModelProperty(name = "lineName",value = "监测点名称")
private String lineName;
@ApiModelProperty(name = "xq",value = "监测点详情",example = "true")
private boolean xq;
@ApiModelProperty(name = "lb",value = "暂降事件列表",example = "true")
private boolean lb;
@ApiModelProperty(name = "mdbg",value = "暂降密度表格",example = "false")
private boolean mdbg;
@ApiModelProperty(name = "mdtx",value = "暂降密度图形",example = "false")
private boolean mdtx;
@ApiModelProperty(name = "sjdITIC",value = "暂降时间点ITIC",example = "false")
private boolean sjdITIC;
@ApiModelProperty(name = "sjdF47",value = "暂降时间点F47",example = "false")
private boolean sjdF47;
@ApiModelProperty(name = "glfbfz",value = "概率分布暂降赋值",example = "false")
private boolean glfbfz;
@ApiModelProperty(name = "glfbsj",value = "概率分布持续时间",example = "false")
private boolean glfbsj;
@ApiModelProperty(name = "tjbg",value = "月份统计表格",example = "false")
private boolean tjbg;
@ApiModelProperty(name = "tjtx",value = "月份统计图形",example = "false")
private boolean tjtx;
@ApiModelProperty(name = "yybg",value = "暂降原因表格",example = "false")
private boolean yybg;
@ApiModelProperty(name = "yytx",value = "暂降原因图形",example = "false")
private boolean yytx;
@ApiModelProperty(name = "lxbg",value = "暂降类型表格",example = "false")
private boolean lxbg;
@ApiModelProperty(name = "lxtx",value = "暂降类型图形",example = "false")
private boolean lxtx;
@ApiModelProperty(name = "flag",value = "标识")
private Integer flag;
@ApiModelProperty(name = "type",value = "系统区分(0:pq 1:pms)")
private Integer type;
}

View File

@@ -0,0 +1,36 @@
package com.njcn.csharmonic.pojo.param.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月01日 15:35
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StatisticsParam implements Serializable {
@NotBlank(message = "没有监测点ID")
@ApiModelProperty(name = "lineIndex",value = "监测点ID")
private String lineIndex;
@NotBlank(message = "没有开始时间")
@ApiModelProperty(name = "startTime",value = "开始时间")
private String startTime;
@NotBlank(message = "没有结束时间")
@ApiModelProperty(name = "endTime",value = "结束时间")
private String endTime;
@ApiModelProperty(name = "flag",value = "标识")
private Integer flag;
}

View File

@@ -0,0 +1,36 @@
package com.njcn.csharmonic.pojo.param.report;
import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* pqs
*
* @author cdf
* @date 2022/8/26
*/
@Data
public class ReportQueryParam {
@ApiModelProperty(name = "lineId",value = "监测点id")
private String lineId;
@ApiModelProperty(name = "startTime",value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String startTime;
@ApiModelProperty(name = "endTime",value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String endTime;
@ApiModelProperty(name = "b",value = "判断时间是否是当天true 当天 false不是当天")
private Boolean b ;
@ApiModelProperty(name = "lineId",value = "95条数取值")
private double count;
}

View File

@@ -0,0 +1,20 @@
package com.njcn.csharmonic.pojo.po;
import lombok.Data;
import java.io.Serializable;
@Data
public class CsPageUser implements Serializable {
/**
* 组态界面ID
*/
private String pageId;
/**
* 用户ID
*/
private String userId;
}

View File

@@ -0,0 +1,614 @@
package com.njcn.csharmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.csharmonic.annotaion.HarCurrent;
import com.njcn.csharmonic.annotaion.HarVoltage;
import com.njcn.csharmonic.annotaion.InterharVoltage;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_limit_rate_d")
public class RStatLimitRateDPO {
/**
* 监测点ID合格率的变电站/装置/母线/线路序号
*/
@MppMultiId
@TableField(value = "my_index")
@ApiModelProperty(value = "监测点ID合格率的变电站/装置/母线/线路序号")
private String lineId;
/**
* 数据类型,A表示A相B表示B相,C表示C相,M表示ABC三项总和T表示总
*/
@MppMultiId
@TableField(value = "phasic_type")
@ApiModelProperty(value = "数据类型,'A'表示A相'B'表示B相,'C'表示C相,''M'表示ABC三项总和T'表示总")
private String phasicType;
/**
* 合格率时间
*/
@MppMultiId
@TableField(value = "time_id")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "合格率时间")
private LocalDate time;
/**
* 总计算次数
*/
@TableField(value = "all_time")
@ApiModelProperty(value = "总计算次数")
private Integer allTime;
/**
* 闪变越限次数
*/
@TableField(value = "flicker_overtime")
@ApiModelProperty(value = "闪变越限次数")
private Integer flickerOvertime;
/**
* 闪变总计算次数
*/
@TableField(value = "flicker_all_time")
@ApiModelProperty(value = "闪变总计算次数")
private Integer flickerAllTime;
/**
* 频率偏差越限次数
*/
@TableField(value = "freq_dev_overtime")
@ApiModelProperty(value = "频率偏差越限次数")
private Integer freqDevOvertime;
/**
* 电压偏差越限次数
*/
@TableField(value = "voltage_dev_overtime")
@ApiModelProperty(value = "电压偏差越限次数")
private Integer voltageDevOvertime;
/**
* 三相电压不平衡度越限次数
*/
@TableField(value = "ubalance_overtime")
@ApiModelProperty(value = "三相电压不平衡度越限次数")
private Integer ubalanceOvertime;
/**
* 电压谐波畸变率越限次数
*/
@TableField(value = "uaberrance_overtime")
@ApiModelProperty(value = "电压谐波畸变率越限次数")
private Integer uaberranceOvertime;
/**
* 负序电流限值次数
*/
@TableField(value = "i_neg_overtime")
@ApiModelProperty(value = "负序电流限值次数")
private Integer iNegOvertime;
/**
* 2次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_2_overtime")
@ApiModelProperty(value = "2次电压谐波含有率越限次数")
private Integer uharm2Overtime;
/**
* 3次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_3_overtime")
@ApiModelProperty(value = "3次电压谐波含有率越限次数")
private Integer uharm3Overtime;
/**
* 4次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_4_overtime")
@ApiModelProperty(value = "4次电压谐波含有率越限次数")
private Integer uharm4Overtime;
/**
* 5次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_5_overtime")
@ApiModelProperty(value = "5次电压谐波含有率越限次数")
private Integer uharm5Overtime;
/**
* 6次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_6_overtime")
@ApiModelProperty(value = "6次电压谐波含有率越限次数")
private Integer uharm6Overtime;
/**
* 7次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_7_overtime")
@ApiModelProperty(value = "7次电压谐波含有率越限次数")
private Integer uharm7Overtime;
/**
* 8次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_8_overtime")
@ApiModelProperty(value = "8次电压谐波含有率越限次数")
private Integer uharm8Overtime;
/**
* 9次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_9_overtime")
@ApiModelProperty(value = "9次电压谐波含有率越限次数")
private Integer uharm9Overtime;
/**
* 10次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_10_overtime")
@ApiModelProperty(value = "10次电压谐波含有率越限次数")
private Integer uharm10Overtime;
/**
* 11次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_11_overtime")
@ApiModelProperty(value = "11次电压谐波含有率越限次数")
private Integer uharm11Overtime;
/**
* 12次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_12_overtime")
@ApiModelProperty(value = "12次电压谐波含有率越限次数")
private Integer uharm12Overtime;
/**
* 13次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_13_overtime")
@ApiModelProperty(value = "13次电压谐波含有率越限次数")
private Integer uharm13Overtime;
/**
* 14次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_14_overtime")
@ApiModelProperty(value = "14次电压谐波含有率越限次数")
private Integer uharm14Overtime;
/**
* 15次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_15_overtime")
@ApiModelProperty(value = "15次电压谐波含有率越限次数")
private Integer uharm15Overtime;
/**
* 16次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_16_overtime")
@ApiModelProperty(value = "16次电压谐波含有率越限次数")
private Integer uharm16Overtime;
/**
* 17次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_17_overtime")
@ApiModelProperty(value = "17次电压谐波含有率越限次数")
private Integer uharm17Overtime;
/**
* 18次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_18_overtime")
@ApiModelProperty(value = "18次电压谐波含有率越限次数")
private Integer uharm18Overtime;
/**
* 19次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_19_overtime")
@ApiModelProperty(value = "19次电压谐波含有率越限次数")
private Integer uharm19Overtime;
/**
* 20次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_20_overtime")
@ApiModelProperty(value = "20次电压谐波含有率越限次数")
private Integer uharm20Overtime;
/**
* 21次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_21_overtime")
@ApiModelProperty(value = "21次电压谐波含有率越限次数")
private Integer uharm21Overtime;
/**
* 22次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_22_overtime")
@ApiModelProperty(value = "22次电压谐波含有率越限次数")
private Integer uharm22Overtime;
/**
* 23次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_23_overtime")
@ApiModelProperty(value = "23次电压谐波含有率越限次数")
private Integer uharm23Overtime;
/**
* 24次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_24_overtime")
@ApiModelProperty(value = "24次电压谐波含有率越限次数")
private Integer uharm24Overtime;
/**
* 25次电压谐波含有率越限次数
*/
@HarVoltage
@TableField(value = "uharm_25_overtime")
@ApiModelProperty(value = "25次电压谐波含有率越限次数")
private Integer uharm25Overtime;
/**
* 2次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_2_overtime")
@ApiModelProperty(value = "2次电流谐波幅值越限次数")
private Integer iharm2Overtime;
/**
* 3次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_3_overtime")
@ApiModelProperty(value = "3次电流谐波幅值越限次数")
private Integer iharm3Overtime;
/**
* 4次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_4_overtime")
@ApiModelProperty(value = "4次电流谐波幅值越限次数")
private Integer iharm4Overtime;
/**
* 5次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_5_overtime")
@ApiModelProperty(value = "5次电流谐波幅值越限次数")
private Integer iharm5Overtime;
/**
* 6次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_6_overtime")
@ApiModelProperty(value = "6次电流谐波幅值越限次数")
private Integer iharm6Overtime;
/**
* 7次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_7_overtime")
@ApiModelProperty(value = "7次电流谐波幅值越限次数")
private Integer iharm7Overtime;
/**
* 8次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_8_overtime")
@ApiModelProperty(value = "8次电流谐波幅值越限次数")
private Integer iharm8Overtime;
/**
* 9次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_9_overtime")
@ApiModelProperty(value = "9次电流谐波幅值越限次数")
private Integer iharm9Overtime;
/**
* 10次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_10_overtime")
@ApiModelProperty(value = "10次电流谐波幅值越限次数")
private Integer iharm10Overtime;
/**
* 11次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_11_overtime")
@ApiModelProperty(value = "11次电流谐波幅值越限次数")
private Integer iharm11Overtime;
/**
* 12次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_12_overtime")
@ApiModelProperty(value = "12次电流谐波幅值越限次数")
private Integer iharm12Overtime;
/**
* 13次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_13_overtime")
@ApiModelProperty(value = "13次电流谐波幅值越限次数")
private Integer iharm13Overtime;
/**
* 14次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_14_overtime")
@ApiModelProperty(value = "14次电流谐波幅值越限次数")
private Integer iharm14Overtime;
/**
* 15次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_15_overtime")
@ApiModelProperty(value = "15次电流谐波幅值越限次数")
private Integer iharm15Overtime;
/**
* 16次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_16_overtime")
@ApiModelProperty(value = "16次电流谐波幅值越限次数")
private Integer iharm16Overtime;
/**
* 17次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_17_overtime")
@ApiModelProperty(value = "17次电流谐波幅值越限次数")
private Integer iharm17Overtime;
/**
* 18次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_18_overtime")
@ApiModelProperty(value = "18次电流谐波幅值越限次数")
private Integer iharm18Overtime;
/**
* 19次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_19_overtime")
@ApiModelProperty(value = "19次电流谐波幅值越限次数")
private Integer iharm19Overtime;
/**
* 20次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_20_overtime")
@ApiModelProperty(value = "20次电流谐波幅值越限次数")
private Integer iharm20Overtime;
/**
* 21次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_21_overtime")
@ApiModelProperty(value = "21次电流谐波幅值越限次数")
private Integer iharm21Overtime;
/**
* 22次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_22_overtime")
@ApiModelProperty(value = "22次电流谐波幅值越限次数")
private Integer iharm22Overtime;
/**
* 23次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_23_overtime")
@ApiModelProperty(value = "23次电流谐波幅值越限次数")
private Integer iharm23Overtime;
/**
* 24次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_24_overtime")
@ApiModelProperty(value = "24次电流谐波幅值越限次数")
private Integer iharm24Overtime;
/**
* 25次电流谐波幅值越限次数
*/
@HarCurrent
@TableField(value = "iharm_25_overtime")
@ApiModelProperty(value = "25次电流谐波幅值越限次数")
private Integer iharm25Overtime;
/**
* 0.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_1_overtime")
@InterharVoltage
@ApiModelProperty(value = "0.5次间谐波电压限值次数")
private Integer inuharm1Overtime;
/**
* 1.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_2_overtime")
@ApiModelProperty(value = "1.5次间谐波电压限值次数")
private Integer inuharm2Overtime;
/**
* 2.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_3_overtime")
@ApiModelProperty(value = "2.5次间谐波电压限值次数")
private Integer inuharm3Overtime;
/**
* 3.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_4_overtime")
@ApiModelProperty(value = "3.5次间谐波电压限值次数")
private Integer inuharm4Overtime;
/**
* 4.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_5_overtime")
@ApiModelProperty(value = "4.5次间谐波电压限值次数")
private Integer inuharm5Overtime;
/**
* 5.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_6_overtime")
@ApiModelProperty(value = "5.5次间谐波电压限值次数")
private Integer inuharm6Overtime;
/**
* 6.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_7_overtime")
@ApiModelProperty(value = "6.5次间谐波电压限值次数")
private Integer inuharm7Overtime;
/**
* 7.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_8_overtime")
@ApiModelProperty(value = "7.5次间谐波电压限值次数")
private Integer inuharm8Overtime;
/**
* 8.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_9_overtime")
@ApiModelProperty(value = "8.5次间谐波电压限值次数")
private Integer inuharm9Overtime;
/**
* 9.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_10_overtime")
@ApiModelProperty(value = "9.5次间谐波电压限值次数")
private Integer inuharm10Overtime;
/**
* 10.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_11_overtime")
@ApiModelProperty(value = "10.5次间谐波电压限值次数")
private Integer inuharm11Overtime;
/**
* 11.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_12_overtime")
@ApiModelProperty(value = "11.5次间谐波电压限值次数")
private Integer inuharm12Overtime;
/**
* 12.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_13_overtime")
@ApiModelProperty(value = "12.5次间谐波电压限值次数")
private Integer inuharm13Overtime;
/**
* 13.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_14_overtime")
@ApiModelProperty(value = "13.5次间谐波电压限值次数")
private Integer inuharm14Overtime;
/**
* 14.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_15_overtime")
@ApiModelProperty(value = "14.5次间谐波电压限值次数")
private Integer inuharm15Overtime;
/**
* 15.5次间谐波电压限值次数
*/
@InterharVoltage
@TableField(value = "inuharm_16_overtime")
@ApiModelProperty(value = "15.5次间谐波电压限值次数")
private Integer inuharm16Overtime;
}

View File

@@ -0,0 +1,594 @@
package com.njcn.csharmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.csharmonic.annotaion.HarCurrent;
import com.njcn.csharmonic.annotaion.HarVoltage;
import com.njcn.csharmonic.annotaion.InterharVoltage;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_limit_rate_detail_d")
public class RStatLimitRateDetailDPO {
/**
* 合格率时间
*/
@MppMultiId
@TableField(value = "time_id")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "合格率时间")
private LocalDate time;
/**
* 监测点ID合格率的变电站/装置/母线/线路序号
*/
@MppMultiId
@TableField(value = "my_index")
@ApiModelProperty(value = "监测点ID合格率的变电站/装置/母线/线路序号")
private String lineId;
/**
* 频率偏差越限数据
*/
@TableField(value = "freq_dev_overtime")
@ApiModelProperty(value = "频率偏差越限数据")
private String freqDevOvertime;
/**
* 电压偏差越限数据
*/
@TableField(value = "voltage_dev_overtime")
@ApiModelProperty(value = "电压偏差越限数据")
private String voltageDevOvertime;
/**
* 三相电压不平衡度越限数据
*/
@TableField(value = "ubalance_overtime")
@ApiModelProperty(value = "三相电压不平衡度越限数据")
private String ubalanceOvertime;
/**
* 闪变越限数据
*/
@TableField(value = "flicker_overtime")
@ApiModelProperty(value = "闪变越限数据")
private String flickerOvertime;
/**
* 电压谐波畸变率越限数据
*/
@TableField(value = "uaberrance_overtime")
@ApiModelProperty(value = "电压谐波畸变率越限数据")
private String uaberranceOvertime;
/**
* 负序电流限值数据
*/
@TableField(value = "i_neg_overtime")
@ApiModelProperty(value = "负序电流限值数据")
private String iNegOvertime;
/**
* 2次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_2_overtime")
@ApiModelProperty(value = "2次电压谐波含有率越限数据")
private String uharm2Overtime;
/**
* 3次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_3_overtime")
@ApiModelProperty(value = "3次电压谐波含有率越限数据")
private String uharm3Overtime;
/**
* 4次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_4_overtime")
@ApiModelProperty(value = "4次电压谐波含有率越限数据")
private String uharm4Overtime;
/**
* 5次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_5_overtime")
@ApiModelProperty(value = "5次电压谐波含有率越限数据")
private String uharm5Overtime;
/**
* 6次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_6_overtime")
@ApiModelProperty(value = "6次电压谐波含有率越限数据")
private String uharm6Overtime;
/**
* 7次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_7_overtime")
@ApiModelProperty(value = "7次电压谐波含有率越限数据")
private String uharm7Overtime;
/**
* 8次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_8_overtime")
@ApiModelProperty(value = "8次电压谐波含有率越限数据")
private String uharm8Overtime;
/**
* 9次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_9_overtime")
@ApiModelProperty(value = "9次电压谐波含有率越限数据")
private String uharm9Overtime;
/**
* 10次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_10_overtime")
@ApiModelProperty(value = "10次电压谐波含有率越限数据")
private String uharm10Overtime;
/**
* 11次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_11_overtime")
@ApiModelProperty(value = "11次电压谐波含有率越限数据")
private String uharm11Overtime;
/**
* 12次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_12_overtime")
@ApiModelProperty(value = "12次电压谐波含有率越限数据")
private String uharm12Overtime;
/**
* 13次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_13_overtime")
@ApiModelProperty(value = "13次电压谐波含有率越限数据")
private String uharm13Overtime;
/**
* 14次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_14_overtime")
@ApiModelProperty(value = "14次电压谐波含有率越限数据")
private String uharm14Overtime;
/**
* 15次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_15_overtime")
@ApiModelProperty(value = "15次电压谐波含有率越限数据")
private String uharm15Overtime;
/**
* 16次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_16_overtime")
@ApiModelProperty(value = "16次电压谐波含有率越限数据")
private String uharm16Overtime;
/**
* 17次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_17_overtime")
@ApiModelProperty(value = "17次电压谐波含有率越限数据")
private String uharm17Overtime;
/**
* 18次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_18_overtime")
@ApiModelProperty(value = "18次电压谐波含有率越限数据")
private String uharm18Overtime;
/**
* 19次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_19_overtime")
@ApiModelProperty(value = "19次电压谐波含有率越限数据")
private String uharm19Overtime;
/**
* 20次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_20_overtime")
@ApiModelProperty(value = "20次电压谐波含有率越限数据")
private String uharm20Overtime;
/**
* 21次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_21_overtime")
@ApiModelProperty(value = "21次电压谐波含有率越限数据")
private String uharm21Overtime;
/**
* 22次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_22_overtime")
@ApiModelProperty(value = "22次电压谐波含有率越限数据")
private String uharm22Overtime;
/**
* 23次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_23_overtime")
@ApiModelProperty(value = "23次电压谐波含有率越限数据")
private String uharm23Overtime;
/**
* 24次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_24_overtime")
@ApiModelProperty(value = "24次电压谐波含有率越限数据")
private String uharm24Overtime;
/**
* 25次电压谐波含有率越限数据
*/
@HarVoltage
@TableField(value = "uharm_25_overtime")
@ApiModelProperty(value = "25次电压谐波含有率越限数据")
private String uharm25Overtime;
/**
* 2次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_2_overtime")
@ApiModelProperty(value = "2次电流谐波幅值越限数据")
private String iharm2Overtime;
/**
* 3次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_3_overtime")
@ApiModelProperty(value = "3次电流谐波幅值越限数据")
private String iharm3Overtime;
/**
* 4次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_4_overtime")
@ApiModelProperty(value = "4次电流谐波幅值越限数据")
private String iharm4Overtime;
/**
* 5次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_5_overtime")
@ApiModelProperty(value = "5次电流谐波幅值越限数据")
private String iharm5Overtime;
/**
* 6次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_6_overtime")
@ApiModelProperty(value = "6次电流谐波幅值越限数据")
private String iharm6Overtime;
/**
* 7次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_7_overtime")
@ApiModelProperty(value = "7次电流谐波幅值越限数据")
private String iharm7Overtime;
/**
* 8次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_8_overtime")
@ApiModelProperty(value = "8次电流谐波幅值越限数据")
private String iharm8Overtime;
/**
* 9次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_9_overtime")
@ApiModelProperty(value = "9次电流谐波幅值越限数据")
private String iharm9Overtime;
/**
* 10次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_10_overtime")
@ApiModelProperty(value = "10次电流谐波幅值越限数据")
private String iharm10Overtime;
/**
* 11次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_11_overtime")
@ApiModelProperty(value = "11次电流谐波幅值越限数据")
private String iharm11Overtime;
/**
* 12次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_12_overtime")
@ApiModelProperty(value = "12次电流谐波幅值越限数据")
private String iharm12Overtime;
/**
* 13次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_13_overtime")
@ApiModelProperty(value = "13次电流谐波幅值越限数据")
private String iharm13Overtime;
/**
* 14次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_14_overtime")
@ApiModelProperty(value = "14次电流谐波幅值越限数据")
private String iharm14Overtime;
/**
* 15次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_15_overtime")
@ApiModelProperty(value = "15次电流谐波幅值越限数据")
private String iharm15Overtime;
/**
* 16次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_16_overtime")
@ApiModelProperty(value = "16次电流谐波幅值越限数据")
private String iharm16Overtime;
/**
* 17次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_17_overtime")
@ApiModelProperty(value = "17次电流谐波幅值越限数据")
private String iharm17Overtime;
/**
* 18次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_18_overtime")
@ApiModelProperty(value = "18次电流谐波幅值越限数据")
private String iharm18Overtime;
/**
* 19次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_19_overtime")
@ApiModelProperty(value = "19次电流谐波幅值越限数据")
private String iharm19Overtime;
/**
* 20次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_20_overtime")
@ApiModelProperty(value = "20次电流谐波幅值越限数据")
private String iharm20Overtime;
/**
* 21次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_21_overtime")
@ApiModelProperty(value = "21次电流谐波幅值越限数据")
private String iharm21Overtime;
/**
* 22次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_22_overtime")
@ApiModelProperty(value = "22次电流谐波幅值越限数据")
private String iharm22Overtime;
/**
* 23次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_23_overtime")
@ApiModelProperty(value = "23次电流谐波幅值越限数据")
private String iharm23Overtime;
/**
* 24次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_24_overtime")
@ApiModelProperty(value = "24次电流谐波幅值越限数据")
private String iharm24Overtime;
/**
* 25次电流谐波幅值越限数据
*/
@HarCurrent
@TableField(value = "iharm_25_overtime")
@ApiModelProperty(value = "25次电流谐波幅值越限数据")
private String iharm25Overtime;
/**
* 0.5次间谐波电压限值数据
*/
@TableField(value = "inuharm_1_overtime")
@InterharVoltage
@ApiModelProperty(value = "0.5次间谐波电压限值数据")
private String inuharm1Overtime;
/**
* 1.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_2_overtime")
@ApiModelProperty(value = "1.5次间谐波电压限值数据")
private String inuharm2Overtime;
/**
* 2.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_3_overtime")
@ApiModelProperty(value = "2.5次间谐波电压限值数据")
private String inuharm3Overtime;
/**
* 3.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_4_overtime")
@ApiModelProperty(value = "3.5次间谐波电压限值数据")
private String inuharm4Overtime;
/**
* 4.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_5_overtime")
@ApiModelProperty(value = "4.5次间谐波电压限值数据")
private String inuharm5Overtime;
/**
* 5.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_6_overtime")
@ApiModelProperty(value = "5.5次间谐波电压限值数据")
private String inuharm6Overtime;
/**
* 6.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_7_overtime")
@ApiModelProperty(value = "6.5次间谐波电压限值数据")
private String inuharm7Overtime;
/**
* 7.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_8_overtime")
@ApiModelProperty(value = "7.5次间谐波电压限值数据")
private String inuharm8Overtime;
/**
* 8.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_9_overtime")
@ApiModelProperty(value = "8.5次间谐波电压限值数据")
private String inuharm9Overtime;
/**
* 9.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_10_overtime")
@ApiModelProperty(value = "9.5次间谐波电压限值数据")
private String inuharm10Overtime;
/**
* 10.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_11_overtime")
@ApiModelProperty(value = "10.5次间谐波电压限值数据")
private String inuharm11Overtime;
/**
* 11.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_12_overtime")
@ApiModelProperty(value = "11.5次间谐波电压限值数据")
private String inuharm12Overtime;
/**
* 12.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_13_overtime")
@ApiModelProperty(value = "12.5次间谐波电压限值数据")
private String inuharm13Overtime;
/**
* 13.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_14_overtime")
@ApiModelProperty(value = "13.5次间谐波电压限值数据")
private String inuharm14Overtime;
/**
* 14.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_15_overtime")
@ApiModelProperty(value = "14.5次间谐波电压限值数据")
private String inuharm15Overtime;
/**
* 15.5次间谐波电压限值数据
*/
@InterharVoltage
@TableField(value = "inuharm_16_overtime")
@ApiModelProperty(value = "15.5次间谐波电压限值数据")
private String inuharm16Overtime;
}

View File

@@ -0,0 +1,44 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/27 15:20
*/
@Data
@TableName(value = "r_stat_asses_d")
public class RStatAssesDPO implements Serializable {
@MppMultiId
@TableField(value = "time_id")
private Date time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@TableField(value = "vu_dev")
private Double vuDev;
@TableField(value = "freq_dev")
private Double freqDev;
@TableField(value = "data_plt")
private Double dataPlt;
@TableField(value = "v_unbalance_cp95")
private Double vUnbalanceCp95;
@TableField(value = "v_thd_cp95")
private Double vThdCp95;
}

View File

@@ -0,0 +1,120 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/27 15:20
*/
@Data
@TableName(value = "r_stat_comasses_d")
public class RStatComassesDPO implements Serializable {
@MppMultiId
@TableField(value = "time_id")
private Date time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@TableField(value = "freq_dev1")
private Double freqDev1;
@TableField(value = "freq_dev2")
private Double freqDev2;
@TableField(value = "freq_dev3")
private Double freqDev3;
@TableField(value = "freq_dev4")
private Double freqDev4;
@TableField(value = "freq_dev5")
private Double freqDev5;
@TableField(value = "vu_dev1")
private Double vuDev1;
@TableField(value = "vu_dev2")
private Double vuDev2;
@TableField(value = "vu_dev3")
private Double vuDev3;
@TableField(value = "vu_dev4")
private Double vuDev4;
@TableField(value = "vu_dev5")
private Double vuDev5;
@TableField(value = "data_plt1")
private Double dataPst1;
@TableField(value = "data_plt2")
private Double dataPst2;
@TableField(value = "data_plt3")
private Double dataPst3;
@TableField(value = "data_plt4")
private Double dataPst4;
@TableField(value = "data_plt5")
private Double dataPst5;
@TableField(value = "v_unbalance1")
private Double vUnbalance1;
@TableField(value = "v_unbalance2")
private Double vUnbalance2;
@TableField(value = "v_unbalance3")
private Double vUnbalance3;
@TableField(value = "v_unbalance4")
private Double vUnbalance4;
@TableField(value = "v_unbalance5")
private Double vUnbalance5;
@TableField(value = "v_thd1")
private Double vThd1;
@TableField(value = "v_thd2")
private Double vThd2;
@TableField(value = "v_thd3")
private Double vThd3;
@TableField(value = "v_thd4")
private Double vThd4;
@TableField(value = "v_thd5")
private Double vThd5;
@TableField(value = "event1")
private Double event1;
@TableField(value = "event2")
private Double event2;
@TableField(value = "event3")
private Double event3;
@TableField(value = "event4")
private Double event4;
@TableField(value = "event5")
private Double event5;
}

View File

@@ -0,0 +1,50 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/22 19:07
*/
@Data
@TableName(value = "r_stat_data_flicker_d")
public class RStatDataFlickerDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "fluc")
private Double fluc;
@TableField(value = "plt")
private Double plt;
@TableField(value = "pst")
private Double pst;
}

View File

@@ -0,0 +1,46 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 11:21
*/
@Data
@TableName(value = "r_stat_data_fluc_d")
public class RStatDataFlucDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "fluc")
private Double fluc;
@TableField(value = "fluccf")
private Double fluccf;
}

View File

@@ -0,0 +1,190 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 11:39
*/
@Data
@TableName(value = "r_stat_data_harmphasic_i_d")
public class RStatDataHarmphasicIDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "i_1")
private Double i1;
@TableField(value = "i_2")
private Double i2;
@TableField(value = "i_3")
private Double i3;
@TableField(value = "i_4")
private Double i4;
@TableField(value = "i_5")
private Double i5;
@TableField(value = "i_6")
private Double i6;
@TableField(value = "i_7")
private Double i7;
@TableField(value = "i_8")
private Double i8;
@TableField(value = "i_9")
private Double i9;
@TableField(value = "i_10")
private Double i10;
@TableField(value = "i_11")
private Double i11;
@TableField(value = "i_12")
private Double i12;
@TableField(value = "i_13")
private Double i13;
@TableField(value = "i_14")
private Double i14;
@TableField(value = "i_15")
private Double i15;
@TableField(value = "i_16")
private Double i16;
@TableField(value = "i_17")
private Double i17;
@TableField(value = "i_18")
private Double i18;
@TableField(value = "i_19")
private Double i19;
@TableField(value = "i_20")
private Double i20;
@TableField(value = "i_21")
private Double i21;
@TableField(value = "i_22")
private Double i22;
@TableField(value = "i_23")
private Double i23;
@TableField(value = "i_24")
private Double i24;
@TableField(value = "i_25")
private Double i25;
@TableField(value = "i_26")
private Double i26;
@TableField(value = "i_27")
private Double i27;
@TableField(value = "i_28")
private Double i28;
@TableField(value = "i_29")
private Double i29;
@TableField(value = "i_30")
private Double i30;
@TableField(value = "i_31")
private Double i31;
@TableField(value = "i_32")
private Double i32;
@TableField(value = "i_33")
private Double i33;
@TableField(value = "i_34")
private Double i34;
@TableField(value = "i_35")
private Double i35;
@TableField(value = "i_36")
private Double i36;
@TableField(value = "i_37")
private Double i37;
@TableField(value = "i_38")
private Double i38;
@TableField(value = "i_39")
private Double i39;
@TableField(value = "i_40")
private Double i40;
@TableField(value = "i_41")
private Double i41;
@TableField(value = "i_42")
private Double i42;
@TableField(value = "i_43")
private Double i43;
@TableField(value = "i_44")
private Double i44;
@TableField(value = "i_45")
private Double i45;
@TableField(value = "i_46")
private Double i46;
@TableField(value = "i_47")
private Double i47;
@TableField(value = "i_48")
private Double i48;
@TableField(value = "i_49")
private Double i49;
@TableField(value = "i_50")
private Double i50;
}

View File

@@ -0,0 +1,190 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 11:39
*/
@Data
@TableName(value = "r_stat_data_harmphasic_v_d")
public class RStatDataHarmphasicVDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "v_1")
private Double v1;
@TableField(value = "v_2")
private Double v2;
@TableField(value = "v_3")
private Double v3;
@TableField(value = "v_4")
private Double v4;
@TableField(value = "v_5")
private Double v5;
@TableField(value = "v_6")
private Double v6;
@TableField(value = "v_7")
private Double v7;
@TableField(value = "v_8")
private Double v8;
@TableField(value = "v_9")
private Double v9;
@TableField(value = "v_10")
private Double v10;
@TableField(value = "v_11")
private Double v11;
@TableField(value = "v_12")
private Double v12;
@TableField(value = "v_13")
private Double v13;
@TableField(value = "v_14")
private Double v14;
@TableField(value = "v_15")
private Double v15;
@TableField(value = "v_16")
private Double v16;
@TableField(value = "v_17")
private Double v17;
@TableField(value = "v_18")
private Double v18;
@TableField(value = "v_19")
private Double v19;
@TableField(value = "v_20")
private Double v20;
@TableField(value = "v_21")
private Double v21;
@TableField(value = "v_22")
private Double v22;
@TableField(value = "v_23")
private Double v23;
@TableField(value = "v_24")
private Double v24;
@TableField(value = "v_25")
private Double v25;
@TableField(value = "v_26")
private Double v26;
@TableField(value = "v_27")
private Double v27;
@TableField(value = "v_28")
private Double v28;
@TableField(value = "v_29")
private Double v29;
@TableField(value = "v_30")
private Double v30;
@TableField(value = "v_31")
private Double v31;
@TableField(value = "v_32")
private Double v32;
@TableField(value = "v_33")
private Double v33;
@TableField(value = "v_34")
private Double v34;
@TableField(value = "v_35")
private Double v35;
@TableField(value = "v_36")
private Double v36;
@TableField(value = "v_37")
private Double v37;
@TableField(value = "v_38")
private Double v38;
@TableField(value = "v_39")
private Double v39;
@TableField(value = "v_40")
private Double v40;
@TableField(value = "v_41")
private Double v41;
@TableField(value = "v_42")
private Double v42;
@TableField(value = "v_43")
private Double v43;
@TableField(value = "v_44")
private Double v44;
@TableField(value = "v_45")
private Double v45;
@TableField(value = "v_46")
private Double v46;
@TableField(value = "v_47")
private Double v47;
@TableField(value = "v_48")
private Double v48;
@TableField(value = "v_49")
private Double v49;
@TableField(value = "v_50")
private Double v50;
}

View File

@@ -0,0 +1,199 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 13:31
*/
@Data
@TableName(value = "r_stat_data_harmpower_p_d")
public class RStatDataHarmpowerPDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "df")
private Double df;
@TableField(value = "pf")
private Double pf;
@TableField(value = "p")
private Double p;
@TableField(value = "p_1")
private Double p1;
@TableField(value = "p_2")
private Double p2;
@TableField(value = "p_3")
private Double p3;
@TableField(value = "p_4")
private Double p4;
@TableField(value = "p_5")
private Double p5;
@TableField(value = "p_6")
private Double p6;
@TableField(value = "p_7")
private Double p7;
@TableField(value = "p_8")
private Double p8;
@TableField(value = "p_9")
private Double p9;
@TableField(value = "p_10")
private Double p10;
@TableField(value = "p_11")
private Double p11;
@TableField(value = "p_12")
private Double p12;
@TableField(value = "p_13")
private Double p13;
@TableField(value = "p_14")
private Double p14;
@TableField(value = "p_15")
private Double p15;
@TableField(value = "p_16")
private Double p16;
@TableField(value = "p_17")
private Double p17;
@TableField(value = "p_18")
private Double p18;
@TableField(value = "p_19")
private Double p19;
@TableField(value = "p_20")
private Double p20;
@TableField(value = "p_21")
private Double p21;
@TableField(value = "p_22")
private Double p22;
@TableField(value = "p_23")
private Double p23;
@TableField(value = "p_24")
private Double p24;
@TableField(value = "p_25")
private Double p25;
@TableField(value = "p_26")
private Double p26;
@TableField(value = "p_27")
private Double p27;
@TableField(value = "p_28")
private Double p28;
@TableField(value = "p_29")
private Double p29;
@TableField(value = "p_30")
private Double p30;
@TableField(value = "p_31")
private Double p31;
@TableField(value = "p_32")
private Double p32;
@TableField(value = "p_33")
private Double p33;
@TableField(value = "p_34")
private Double p34;
@TableField(value = "p_35")
private Double p35;
@TableField(value = "p_36")
private Double p36;
@TableField(value = "p_37")
private Double p37;
@TableField(value = "p_38")
private Double p38;
@TableField(value = "p_39")
private Double p39;
@TableField(value = "p_40")
private Double p40;
@TableField(value = "p_41")
private Double p41;
@TableField(value = "p_42")
private Double p42;
@TableField(value = "p_43")
private Double p43;
@TableField(value = "p_44")
private Double p44;
@TableField(value = "p_45")
private Double p45;
@TableField(value = "p_46")
private Double p46;
@TableField(value = "p_47")
private Double p47;
@TableField(value = "p_48")
private Double p48;
@TableField(value = "p_49")
private Double p49;
@TableField(value = "p_50")
private Double p50;
}

View File

@@ -0,0 +1,193 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 13:31
*/
@Data
@TableName(value = "r_stat_data_harmpower_q_d")
public class RStatDataHarmpowerQDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "q")
private Double q;
@TableField(value = "q_1")
private Double q1;
@TableField(value = "q_2")
private Double q2;
@TableField(value = "q_3")
private Double q3;
@TableField(value = "q_4")
private Double q4;
@TableField(value = "q_5")
private Double q5;
@TableField(value = "q_6")
private Double q6;
@TableField(value = "q_7")
private Double q7;
@TableField(value = "q_8")
private Double q8;
@TableField(value = "q_9")
private Double q9;
@TableField(value = "q_10")
private Double q10;
@TableField(value = "q_11")
private Double q11;
@TableField(value = "q_12")
private Double q12;
@TableField(value = "q_13")
private Double q13;
@TableField(value = "q_14")
private Double q14;
@TableField(value = "q_15")
private Double q15;
@TableField(value = "q_16")
private Double q16;
@TableField(value = "q_17")
private Double q17;
@TableField(value = "q_18")
private Double q18;
@TableField(value = "q_19")
private Double q19;
@TableField(value = "q_20")
private Double q20;
@TableField(value = "q_21")
private Double q21;
@TableField(value = "q_22")
private Double q22;
@TableField(value = "q_23")
private Double q23;
@TableField(value = "q_24")
private Double q24;
@TableField(value = "q_25")
private Double q25;
@TableField(value = "q_26")
private Double q26;
@TableField(value = "q_27")
private Double q27;
@TableField(value = "q_28")
private Double q28;
@TableField(value = "q_29")
private Double q29;
@TableField(value = "q_30")
private Double q30;
@TableField(value = "q_31")
private Double q31;
@TableField(value = "q_32")
private Double q32;
@TableField(value = "q_33")
private Double q33;
@TableField(value = "q_34")
private Double q34;
@TableField(value = "q_35")
private Double q35;
@TableField(value = "q_36")
private Double q36;
@TableField(value = "q_37")
private Double q37;
@TableField(value = "q_38")
private Double q38;
@TableField(value = "q_39")
private Double q39;
@TableField(value = "q_40")
private Double q40;
@TableField(value = "q_41")
private Double q41;
@TableField(value = "q_42")
private Double q42;
@TableField(value = "q_43")
private Double q43;
@TableField(value = "q_44")
private Double q44;
@TableField(value = "q_45")
private Double q45;
@TableField(value = "q_46")
private Double q46;
@TableField(value = "q_47")
private Double q47;
@TableField(value = "q_48")
private Double q48;
@TableField(value = "q_49")
private Double q49;
@TableField(value = "q_50")
private Double q50;
}

View File

@@ -0,0 +1,193 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 13:31
*/
@Data
@TableName(value = "r_stat_data_harmpower_s_d")
public class RStatDataHarmpowerSDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "s")
private Double s;
@TableField(value = "s_1")
private Double s1;
@TableField(value = "s_2")
private Double s2;
@TableField(value = "s_3")
private Double s3;
@TableField(value = "s_4")
private Double s4;
@TableField(value = "s_5")
private Double s5;
@TableField(value = "s_6")
private Double s6;
@TableField(value = "s_7")
private Double s7;
@TableField(value = "s_8")
private Double s8;
@TableField(value = "s_9")
private Double s9;
@TableField(value = "s_10")
private Double s10;
@TableField(value = "s_11")
private Double s11;
@TableField(value = "s_12")
private Double s12;
@TableField(value = "s_13")
private Double s13;
@TableField(value = "s_14")
private Double s14;
@TableField(value = "s_15")
private Double s15;
@TableField(value = "s_16")
private Double s16;
@TableField(value = "s_17")
private Double s17;
@TableField(value = "s_18")
private Double s18;
@TableField(value = "s_19")
private Double s19;
@TableField(value = "s_20")
private Double s20;
@TableField(value = "s_21")
private Double s21;
@TableField(value = "s_22")
private Double s22;
@TableField(value = "s_23")
private Double s23;
@TableField(value = "s_24")
private Double s24;
@TableField(value = "s_25")
private Double s25;
@TableField(value = "s_26")
private Double s26;
@TableField(value = "s_27")
private Double s27;
@TableField(value = "s_28")
private Double s28;
@TableField(value = "s_29")
private Double s29;
@TableField(value = "s_30")
private Double s30;
@TableField(value = "s_31")
private Double s31;
@TableField(value = "s_32")
private Double s32;
@TableField(value = "s_33")
private Double s33;
@TableField(value = "s_34")
private Double s34;
@TableField(value = "s_35")
private Double s35;
@TableField(value = "s_36")
private Double s36;
@TableField(value = "s_37")
private Double s37;
@TableField(value = "s_38")
private Double s38;
@TableField(value = "s_39")
private Double s39;
@TableField(value = "s_40")
private Double s40;
@TableField(value = "s_41")
private Double s41;
@TableField(value = "s_42")
private Double s42;
@TableField(value = "s_43")
private Double s43;
@TableField(value = "s_44")
private Double s44;
@TableField(value = "s_45")
private Double s45;
@TableField(value = "s_46")
private Double s46;
@TableField(value = "s_47")
private Double s47;
@TableField(value = "s_48")
private Double s48;
@TableField(value = "s_49")
private Double s49;
@TableField(value = "s_50")
private Double s50;
}

View File

@@ -0,0 +1,191 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:18
*/
@Data
@TableName(value = "r_stat_data_harmrate_i_d")
public class RStatDataHarmrateIDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "i_1")
private Double i1;
@TableField(value = "i_2")
private Double i2;
@TableField(value = "i_3")
private Double i3;
@TableField(value = "i_4")
private Double i4;
@TableField(value = "i_5")
private Double i5;
@TableField(value = "i_6")
private Double i6;
@TableField(value = "i_7")
private Double i7;
@TableField(value = "i_8")
private Double i8;
@TableField(value = "i_9")
private Double i9;
@TableField(value = "i_10")
private Double i10;
@TableField(value = "i_11")
private Double i11;
@TableField(value = "i_12")
private Double i12;
@TableField(value = "i_13")
private Double i13;
@TableField(value = "i_14")
private Double i14;
@TableField(value = "i_15")
private Double i15;
@TableField(value = "i_16")
private Double i16;
@TableField(value = "i_17")
private Double i17;
@TableField(value = "i_18")
private Double i18;
@TableField(value = "i_19")
private Double i19;
@TableField(value = "i_20")
private Double i20;
@TableField(value = "i_21")
private Double i21;
@TableField(value = "i_22")
private Double i22;
@TableField(value = "i_23")
private Double i23;
@TableField(value = "i_24")
private Double i24;
@TableField(value = "i_25")
private Double i25;
@TableField(value = "i_26")
private Double i26;
@TableField(value = "i_27")
private Double i27;
@TableField(value = "i_28")
private Double i28;
@TableField(value = "i_29")
private Double i29;
@TableField(value = "i_30")
private Double i30;
@TableField(value = "i_31")
private Double i31;
@TableField(value = "i_32")
private Double i32;
@TableField(value = "i_33")
private Double i33;
@TableField(value = "i_34")
private Double i34;
@TableField(value = "i_35")
private Double i35;
@TableField(value = "i_36")
private Double i36;
@TableField(value = "i_37")
private Double i37;
@TableField(value = "i_38")
private Double i38;
@TableField(value = "i_39")
private Double i39;
@TableField(value = "i_40")
private Double i40;
@TableField(value = "i_41")
private Double i41;
@TableField(value = "i_42")
private Double i42;
@TableField(value = "i_43")
private Double i43;
@TableField(value = "i_44")
private Double i44;
@TableField(value = "i_45")
private Double i45;
@TableField(value = "i_46")
private Double i46;
@TableField(value = "i_47")
private Double i47;
@TableField(value = "i_48")
private Double i48;
@TableField(value = "i_49")
private Double i49;
@TableField(value = "i_50")
private Double i50;
}

View File

@@ -0,0 +1,191 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:18
*/
@Data
@TableName(value = "r_stat_data_harmrate_v_d")
public class RStatDataHarmrateVDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "v_1")
private Double v1;
@TableField(value = "v_2")
private Double v2;
@TableField(value = "v_3")
private Double v3;
@TableField(value = "v_4")
private Double v4;
@TableField(value = "v_5")
private Double v5;
@TableField(value = "v_6")
private Double v6;
@TableField(value = "v_7")
private Double v7;
@TableField(value = "v_8")
private Double v8;
@TableField(value = "v_9")
private Double v9;
@TableField(value = "v_10")
private Double v10;
@TableField(value = "v_11")
private Double v11;
@TableField(value = "v_12")
private Double v12;
@TableField(value = "v_13")
private Double v13;
@TableField(value = "v_14")
private Double v14;
@TableField(value = "v_15")
private Double v15;
@TableField(value = "v_16")
private Double v16;
@TableField(value = "v_17")
private Double v17;
@TableField(value = "v_18")
private Double v18;
@TableField(value = "v_19")
private Double v19;
@TableField(value = "v_20")
private Double v20;
@TableField(value = "v_21")
private Double v21;
@TableField(value = "v_22")
private Double v22;
@TableField(value = "v_23")
private Double v23;
@TableField(value = "v_24")
private Double v24;
@TableField(value = "v_25")
private Double v25;
@TableField(value = "v_26")
private Double v26;
@TableField(value = "v_27")
private Double v27;
@TableField(value = "v_28")
private Double v28;
@TableField(value = "v_29")
private Double v29;
@TableField(value = "v_30")
private Double v30;
@TableField(value = "v_31")
private Double v31;
@TableField(value = "v_32")
private Double v32;
@TableField(value = "v_33")
private Double v33;
@TableField(value = "v_34")
private Double v34;
@TableField(value = "v_35")
private Double v35;
@TableField(value = "v_36")
private Double v36;
@TableField(value = "v_37")
private Double v37;
@TableField(value = "v_38")
private Double v38;
@TableField(value = "v_39")
private Double v39;
@TableField(value = "v_40")
private Double v40;
@TableField(value = "v_41")
private Double v41;
@TableField(value = "v_42")
private Double v42;
@TableField(value = "v_43")
private Double v43;
@TableField(value = "v_44")
private Double v44;
@TableField(value = "v_45")
private Double v45;
@TableField(value = "v_46")
private Double v46;
@TableField(value = "v_47")
private Double v47;
@TableField(value = "v_48")
private Double v48;
@TableField(value = "v_49")
private Double v49;
@TableField(value = "v_50")
private Double v50;
}

View File

@@ -0,0 +1,209 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:29
*/
@Data
@TableName(value = "r_stat_data_i_d")
public class RStatDataIDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "i_neg")
private Double iNeg;
@TableField(value = "i_pos")
private Double iPos;
@TableField(value = "i_thd")
private Double iThd;
@TableField(value = "i_unbalance")
private Double iUnbalance;
@TableField(value = "i_zero")
private Double iZero;
@TableField(value = "rms")
private Double rms;
@TableField(value = "i_1")
private Double i1;
@TableField(value = "i_2")
private Double i2;
@TableField(value = "i_3")
private Double i3;
@TableField(value = "i_4")
private Double i4;
@TableField(value = "i_5")
private Double i5;
@TableField(value = "i_6")
private Double i6;
@TableField(value = "i_7")
private Double i7;
@TableField(value = "i_8")
private Double i8;
@TableField(value = "i_9")
private Double i9;
@TableField(value = "i_10")
private Double i10;
@TableField(value = "i_11")
private Double i11;
@TableField(value = "i_12")
private Double i12;
@TableField(value = "i_13")
private Double i13;
@TableField(value = "i_14")
private Double i14;
@TableField(value = "i_15")
private Double i15;
@TableField(value = "i_16")
private Double i16;
@TableField(value = "i_17")
private Double i17;
@TableField(value = "i_18")
private Double i18;
@TableField(value = "i_19")
private Double i19;
@TableField(value = "i_20")
private Double i20;
@TableField(value = "i_21")
private Double i21;
@TableField(value = "i_22")
private Double i22;
@TableField(value = "i_23")
private Double i23;
@TableField(value = "i_24")
private Double i24;
@TableField(value = "i_25")
private Double i25;
@TableField(value = "i_26")
private Double i26;
@TableField(value = "i_27")
private Double i27;
@TableField(value = "i_28")
private Double i28;
@TableField(value = "i_29")
private Double i29;
@TableField(value = "i_30")
private Double i30;
@TableField(value = "i_31")
private Double i31;
@TableField(value = "i_32")
private Double i32;
@TableField(value = "i_33")
private Double i33;
@TableField(value = "i_34")
private Double i34;
@TableField(value = "i_35")
private Double i35;
@TableField(value = "i_36")
private Double i36;
@TableField(value = "i_37")
private Double i37;
@TableField(value = "i_38")
private Double i38;
@TableField(value = "i_39")
private Double i39;
@TableField(value = "i_40")
private Double i40;
@TableField(value = "i_41")
private Double i41;
@TableField(value = "i_42")
private Double i42;
@TableField(value = "i_43")
private Double i43;
@TableField(value = "i_44")
private Double i44;
@TableField(value = "i_45")
private Double i45;
@TableField(value = "i_46")
private Double i46;
@TableField(value = "i_47")
private Double i47;
@TableField(value = "i_48")
private Double i48;
@TableField(value = "i_49")
private Double i49;
@TableField(value = "i_50")
private Double i50;
}

View File

@@ -0,0 +1,191 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:36
*/
@Data
@TableName(value = "r_stat_data_inharm_i_d")
public class RStatDataInharmIDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "i_1")
private Double i1;
@TableField(value = "i_2")
private Double i2;
@TableField(value = "i_3")
private Double i3;
@TableField(value = "i_4")
private Double i4;
@TableField(value = "i_5")
private Double i5;
@TableField(value = "i_6")
private Double i6;
@TableField(value = "i_7")
private Double i7;
@TableField(value = "i_8")
private Double i8;
@TableField(value = "i_9")
private Double i9;
@TableField(value = "i_10")
private Double i10;
@TableField(value = "i_11")
private Double i11;
@TableField(value = "i_12")
private Double i12;
@TableField(value = "i_13")
private Double i13;
@TableField(value = "i_14")
private Double i14;
@TableField(value = "i_15")
private Double i15;
@TableField(value = "i_16")
private Double i16;
@TableField(value = "i_17")
private Double i17;
@TableField(value = "i_18")
private Double i18;
@TableField(value = "i_19")
private Double i19;
@TableField(value = "i_20")
private Double i20;
@TableField(value = "i_21")
private Double i21;
@TableField(value = "i_22")
private Double i22;
@TableField(value = "i_23")
private Double i23;
@TableField(value = "i_24")
private Double i24;
@TableField(value = "i_25")
private Double i25;
@TableField(value = "i_26")
private Double i26;
@TableField(value = "i_27")
private Double i27;
@TableField(value = "i_28")
private Double i28;
@TableField(value = "i_29")
private Double i29;
@TableField(value = "i_30")
private Double i30;
@TableField(value = "i_31")
private Double i31;
@TableField(value = "i_32")
private Double i32;
@TableField(value = "i_33")
private Double i33;
@TableField(value = "i_34")
private Double i34;
@TableField(value = "i_35")
private Double i35;
@TableField(value = "i_36")
private Double i36;
@TableField(value = "i_37")
private Double i37;
@TableField(value = "i_38")
private Double i38;
@TableField(value = "i_39")
private Double i39;
@TableField(value = "i_40")
private Double i40;
@TableField(value = "i_41")
private Double i41;
@TableField(value = "i_42")
private Double i42;
@TableField(value = "i_43")
private Double i43;
@TableField(value = "i_44")
private Double i44;
@TableField(value = "i_45")
private Double i45;
@TableField(value = "i_46")
private Double i46;
@TableField(value = "i_47")
private Double i47;
@TableField(value = "i_48")
private Double i48;
@TableField(value = "i_49")
private Double i49;
@TableField(value = "i_50")
private Double i50;
}

View File

@@ -0,0 +1,191 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:36
*/
@Data
@TableName(value = "r_stat_data_inharm_v_d")
public class RStatDataInharmVDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "v_1")
private Double v1;
@TableField(value = "v_2")
private Double v2;
@TableField(value = "v_3")
private Double v3;
@TableField(value = "v_4")
private Double v4;
@TableField(value = "v_5")
private Double v5;
@TableField(value = "v_6")
private Double v6;
@TableField(value = "v_7")
private Double v7;
@TableField(value = "v_8")
private Double v8;
@TableField(value = "v_9")
private Double v9;
@TableField(value = "v_10")
private Double v10;
@TableField(value = "v_11")
private Double v11;
@TableField(value = "v_12")
private Double v12;
@TableField(value = "v_13")
private Double v13;
@TableField(value = "v_14")
private Double v14;
@TableField(value = "v_15")
private Double v15;
@TableField(value = "v_16")
private Double v16;
@TableField(value = "v_17")
private Double v17;
@TableField(value = "v_18")
private Double v18;
@TableField(value = "v_19")
private Double v19;
@TableField(value = "v_20")
private Double v20;
@TableField(value = "v_21")
private Double v21;
@TableField(value = "v_22")
private Double v22;
@TableField(value = "v_23")
private Double v23;
@TableField(value = "v_24")
private Double v24;
@TableField(value = "v_25")
private Double v25;
@TableField(value = "v_26")
private Double v26;
@TableField(value = "v_27")
private Double v27;
@TableField(value = "v_28")
private Double v28;
@TableField(value = "v_29")
private Double v29;
@TableField(value = "v_30")
private Double v30;
@TableField(value = "v_31")
private Double v31;
@TableField(value = "v_32")
private Double v32;
@TableField(value = "v_33")
private Double v33;
@TableField(value = "v_34")
private Double v34;
@TableField(value = "v_35")
private Double v35;
@TableField(value = "v_36")
private Double v36;
@TableField(value = "v_37")
private Double v37;
@TableField(value = "v_38")
private Double v38;
@TableField(value = "v_39")
private Double v39;
@TableField(value = "v_40")
private Double v40;
@TableField(value = "v_41")
private Double v41;
@TableField(value = "v_42")
private Double v42;
@TableField(value = "v_43")
private Double v43;
@TableField(value = "v_44")
private Double v44;
@TableField(value = "v_45")
private Double v45;
@TableField(value = "v_46")
private Double v46;
@TableField(value = "v_47")
private Double v47;
@TableField(value = "v_48")
private Double v48;
@TableField(value = "v_49")
private Double v49;
@TableField(value = "v_50")
private Double v50;
}

View File

@@ -0,0 +1,44 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:46
*/
@Data
@TableName(value = "r_stat_data_plt_d")
public class RStatDataPltDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "plt")
private Double plt;
}

View File

@@ -0,0 +1,224 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/3/24 14:29
*/
@Data
@TableName(value = "r_stat_data_v_d")
public class RStatDataVDPO implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phaseType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "freq")
private Double freq;
@TableField(value = "freq_dev")
private Double freqDev;
@TableField(value = "rms")
private Double rms;
@TableField(value = "rms_lvr")
private Double rmsLvr;
@TableField(value = "v_neg")
private Double vNeg;
@TableField(value = "v_pos")
private Double vPos;
@TableField(value = "v_thd")
private Double vThd;
@TableField(value = "v_unbalance")
private Double vUnbalance;
@TableField(value = "v_zero")
private Double vZero;
@TableField(value = "vl_dev")
private Double vlDev;
@TableField(value = "vu_dev")
private Double vuDev;
@TableField(value = "v_1")
private Double v1;
@TableField(value = "v_2")
private Double v2;
@TableField(value = "v_3")
private Double v3;
@TableField(value = "v_4")
private Double v4;
@TableField(value = "v_5")
private Double v5;
@TableField(value = "v_6")
private Double v6;
@TableField(value = "v_7")
private Double v7;
@TableField(value = "v_8")
private Double v8;
@TableField(value = "v_9")
private Double v9;
@TableField(value = "v_10")
private Double v10;
@TableField(value = "v_11")
private Double v11;
@TableField(value = "v_12")
private Double v12;
@TableField(value = "v_13")
private Double v13;
@TableField(value = "v_14")
private Double v14;
@TableField(value = "v_15")
private Double v15;
@TableField(value = "v_16")
private Double v16;
@TableField(value = "v_17")
private Double v17;
@TableField(value = "v_18")
private Double v18;
@TableField(value = "v_19")
private Double v19;
@TableField(value = "v_20")
private Double v20;
@TableField(value = "v_21")
private Double v21;
@TableField(value = "v_22")
private Double v22;
@TableField(value = "v_23")
private Double v23;
@TableField(value = "v_24")
private Double v24;
@TableField(value = "v_25")
private Double v25;
@TableField(value = "v_26")
private Double v26;
@TableField(value = "v_27")
private Double v27;
@TableField(value = "v_28")
private Double v28;
@TableField(value = "v_29")
private Double v29;
@TableField(value = "v_30")
private Double v30;
@TableField(value = "v_31")
private Double v31;
@TableField(value = "v_32")
private Double v32;
@TableField(value = "v_33")
private Double v33;
@TableField(value = "v_34")
private Double v34;
@TableField(value = "v_35")
private Double v35;
@TableField(value = "v_36")
private Double v36;
@TableField(value = "v_37")
private Double v37;
@TableField(value = "v_38")
private Double v38;
@TableField(value = "v_39")
private Double v39;
@TableField(value = "v_40")
private Double v40;
@TableField(value = "v_41")
private Double v41;
@TableField(value = "v_42")
private Double v42;
@TableField(value = "v_43")
private Double v43;
@TableField(value = "v_44")
private Double v44;
@TableField(value = "v_45")
private Double v45;
@TableField(value = "v_46")
private Double v46;
@TableField(value = "v_47")
private Double v47;
@TableField(value = "v_48")
private Double v48;
@TableField(value = "v_49")
private Double v49;
@TableField(value = "v_50")
private Double v50;
}

View File

@@ -0,0 +1,469 @@
package com.njcn.csharmonic.pojo.po.day;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_limit_target_d")
public class RStatLimitTargetDPO{
/**
* 监测点ID合格率的变电站/装置/母线/线路序号
*/
@MppMultiId
@TableField(value = "my_index")
private String lineId;
/**
* 数据类型,A表示A相B表示B相,C表示C相,M表示ABC三项总和T表示总
*/
@MppMultiId
@TableField(value = "phasic_type")
private String phasicType;
/**
* 合格率时间
*/
@MppMultiId
@TableField(value = "time_id")
private LocalDate time;
/**
* 总计算次数
*/
@TableField(value = "all_time")
private Integer allTime;
/**
* 闪变总计算次数
*/
@TableField(value = "flicker_all_time")
private Integer flickerAllTime;
/**
* 闪变越限次数
*/
@TableField(value = "flicker_overtime")
private Integer flickerOvertime;
/**
* 频率偏差越限次数
*/
@TableField(value = "freq_dev_overtime")
private Integer freqDevOvertime;
/**
* 电压偏差越限次数
*/
@TableField(value = "voltage_dev_overtime")
private Integer voltageDevOvertime;
/**
* 电压不平衡度越限次数
*/
@TableField(value = "ubalance_overtime")
private Integer ubalanceOvertime;
/**
* 电压谐波畸变率越限次数
*/
@TableField(value = "uaberrance_overtime")
private Integer uaberranceOvertime;
/**
* 负序电流限值次数
*/
@TableField(value = "i_neg_overtime")
private Integer iNegOvertime;
/**
* 2次电压谐波含有率越限次数
*/
@TableField(value = "uharm_2_overtime")
private Integer uharm2Overtime;
/**
* 3次电压谐波含有率越限次数
*/
@TableField(value = "uharm_3_overtime")
private Integer uharm3Overtime;
/**
* 4次电压谐波含有率越限次数
*/
@TableField(value = "uharm_4_overtime")
private Integer uharm4Overtime;
/**
* 5次电压谐波含有率越限次数
*/
@TableField(value = "uharm_5_overtime")
private Integer uharm5Overtime;
/**
* 6次电压谐波含有率越限次数
*/
@TableField(value = "uharm_6_overtime")
private Integer uharm6Overtime;
/**
* 7次电压谐波含有率越限次数
*/
@TableField(value = "uharm_7_overtime")
private Integer uharm7Overtime;
/**
* 8次电压谐波含有率越限次数
*/
@TableField(value = "uharm_8_overtime")
private Integer uharm8Overtime;
/**
* 9次电压谐波含有率越限次数
*/
@TableField(value = "uharm_9_overtime")
private Integer uharm9Overtime;
/**
* 10次电压谐波含有率越限次数
*/
@TableField(value = "uharm_10_overtime")
private Integer uharm10Overtime;
/**
* 11次电压谐波含有率越限次数
*/
@TableField(value = "uharm_11_overtime")
private Integer uharm11Overtime;
/**
* 12次电压谐波含有率越限次数
*/
@TableField(value = "uharm_12_overtime")
private Integer uharm12Overtime;
/**
* 13次电压谐波含有率越限次数
*/
@TableField(value = "uharm_13_overtime")
private Integer uharm13Overtime;
/**
* 14次电压谐波含有率越限次数
*/
@TableField(value = "uharm_14_overtime")
private Integer uharm14Overtime;
/**
* 15次电压谐波含有率越限次数
*/
@TableField(value = "uharm_15_overtime")
private Integer uharm15Overtime;
/**
* 16次电压谐波含有率越限次数
*/
@TableField(value = "uharm_16_overtime")
private Integer uharm16Overtime;
/**
* 17次电压谐波含有率越限次数
*/
@TableField(value = "uharm_17_overtime")
private Integer uharm17Overtime;
/**
* 18次电压谐波含有率越限次数
*/
@TableField(value = "uharm_18_overtime")
private Integer uharm18Overtime;
/**
* 19次电压谐波含有率越限次数
*/
@TableField(value = "uharm_19_overtime")
private Integer uharm19Overtime;
/**
* 20次电压谐波含有率越限次数
*/
@TableField(value = "uharm_20_overtime")
private Integer uharm20Overtime;
/**
* 21次电压谐波含有率越限次数
*/
@TableField(value = "uharm_21_overtime")
private Integer uharm21Overtime;
/**
* 22次电压谐波含有率越限次数
*/
@TableField(value = "uharm_22_overtime")
private Integer uharm22Overtime;
/**
* 23次电压谐波含有率越限次数
*/
@TableField(value = "uharm_23_overtime")
private Integer uharm23Overtime;
/**
* 24次电压谐波含有率越限次数
*/
@TableField(value = "uharm_24_overtime")
private Integer uharm24Overtime;
/**
* 25次电压谐波含有率越限次数
*/
@TableField(value = "uharm_25_overtime")
private Integer uharm25Overtime;
/**
* 2次电流谐波幅值越限次数
*/
@TableField(value = "iharm_2_overtime")
private Integer iharm2Overtime;
/**
* 3次电流谐波幅值越限次数
*/
@TableField(value = "iharm_3_overtime")
private Integer iharm3Overtime;
/**
* 4次电流谐波幅值越限次数
*/
@TableField(value = "iharm_4_overtime")
private Integer iharm4Overtime;
/**
* 5次电流谐波幅值越限次数
*/
@TableField(value = "iharm_5_overtime")
private Integer iharm5Overtime;
/**
* 6次电流谐波幅值越限次数
*/
@TableField(value = "iharm_6_overtime")
private Integer iharm6Overtime;
/**
* 7次电流谐波幅值越限次数
*/
@TableField(value = "iharm_7_overtime")
private Integer iharm7Overtime;
/**
* 8次电流谐波幅值越限次数
*/
@TableField(value = "iharm_8_overtime")
private Integer iharm8Overtime;
/**
* 9次电流谐波幅值越限次数
*/
@TableField(value = "iharm_9_overtime")
private Integer iharm9Overtime;
/**
* 10次电流谐波幅值越限次数
*/
@TableField(value = "iharm_10_overtime")
private Integer iharm10Overtime;
/**
* 11次电流谐波幅值越限次数
*/
@TableField(value = "iharm_11_overtime")
private Integer iharm11Overtime;
/**
* 12次电流谐波幅值越限次数
*/
@TableField(value = "iharm_12_overtime")
private Integer iharm12Overtime;
/**
* 13次电流谐波幅值越限次数
*/
@TableField(value = "iharm_13_overtime")
private Integer iharm13Overtime;
/**
* 14次电流谐波幅值越限次数
*/
@TableField(value = "iharm_14_overtime")
private Integer iharm14Overtime;
/**
* 15次电流谐波幅值越限次数
*/
@TableField(value = "iharm_15_overtime")
private Integer iharm15Overtime;
/**
* 16次电流谐波幅值越限次数
*/
@TableField(value = "iharm_16_overtime")
private Integer iharm16Overtime;
/**
* 17次电流谐波幅值越限次数
*/
@TableField(value = "iharm_17_overtime")
private Integer iharm17Overtime;
/**
* 18次电流谐波幅值越限次数
*/
@TableField(value = "iharm_18_overtime")
private Integer iharm18Overtime;
/**
* 19次电流谐波幅值越限次数
*/
@TableField(value = "iharm_19_overtime")
private Integer iharm19Overtime;
/**
* 20次电流谐波幅值越限次数
*/
@TableField(value = "iharm_20_overtime")
private Integer iharm20Overtime;
/**
* 21次电流谐波幅值越限次数
*/
@TableField(value = "iharm_21_overtime")
private Integer iharm21Overtime;
/**
* 22次电流谐波幅值越限次数
*/
@TableField(value = "iharm_22_overtime")
private Integer iharm22Overtime;
/**
* 23次电流谐波幅值越限次数
*/
@TableField(value = "iharm_23_overtime")
private Integer iharm23Overtime;
/**
* 24次电流谐波幅值越限次数
*/
@TableField(value = "iharm_24_overtime")
private Integer iharm24Overtime;
/**
* 25次电流谐波幅值越限次数
*/
@TableField(value = "iharm_25_overtime")
private Integer iharm25Overtime;
/**
* 0.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_1_overtime")
private Integer inuharm1Overtime;
/**
* 1.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_2_overtime")
private Integer inuharm2Overtime;
/**
* 2.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_3_overtime")
private Integer inuharm3Overtime;
/**
* 3.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_4_overtime")
private Integer inuharm4Overtime;
/**
* 4.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_5_overtime")
private Integer inuharm5Overtime;
/**
* 5.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_6_overtime")
private Integer inuharm6Overtime;
/**
* 6.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_7_overtime")
private Integer inuharm7Overtime;
/**
* 7.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_8_overtime")
private Integer inuharm8Overtime;
/**
* 8.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_9_overtime")
private Integer inuharm9Overtime;
/**
* 9.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_10_overtime")
private Integer inuharm10Overtime;
/**
* 10.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_11_overtime")
private Integer inuharm11Overtime;
/**
* 11.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_12_overtime")
private Integer inuharm12Overtime;
/**
* 12.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_13_overtime")
private Integer inuharm13Overtime;
/**
* 13.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_14_overtime")
private Integer inuharm14Overtime;
/**
* 14.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_15_overtime")
private Integer inuharm15Overtime;
/**
* 15.5次间谐波电压限值次数
*/
@TableField(value = "inuharm_16_overtime")
private Integer inuharm16Overtime;
}

View File

@@ -42,6 +42,9 @@ public class CsRtDataVO {
@ApiModelProperty("指标显示名称")
private String statisticalName;
@ApiModelProperty("指标单位")
private String unit;
@ApiModelProperty("指标名称")
private String target;

View File

@@ -0,0 +1,49 @@
package com.njcn.csharmonic.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 组态下事件描述实体
*/
@Data
public class CsWarnDescVO implements Serializable {
/**
* id
*/
private String id;
/**
* 名称,比如监测点名称
*/
private String name;
/**
* 发生时间
*/
private String timeId;
/**
* 事件描述eventDesc
*/
private String eventDesc;
/**
* 持续时间
*/
private Double persistTime;
/**
* 暂降幅值
*/
private Double amplitude;
}

View File

@@ -0,0 +1,23 @@
package com.njcn.csharmonic.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.List;
@Data
public class LimitCalendarVO {
@ApiModelProperty("发生日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate time;
@ApiModelProperty("越限项")
private List<String> items;
@ApiModelProperty("越限程度, 0:无 1:一般超过限值80%以下2:严重超过限值80%以上)")
private int status;
}

View File

@@ -0,0 +1,49 @@
package com.njcn.csharmonic.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
@Data
public class LimitExtentVO {
@ApiModelProperty("指标编码")
private String code;
@ApiModelProperty("指标名称")
private String name;
@ApiModelProperty("越限最大值")
private float maxValue;
@ApiModelProperty("国际限值")
private float internationalValue;
@ApiModelProperty("越限程度")
private float extent;
@ApiModelProperty("发生日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate time;
@ApiModelProperty(value = "监测点ID合格率的变电站/装置/母线/线路序号")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
public float getExtent() {
if (internationalValue == 0) {
return 0.00F;
}
if (maxValue == 0) {
return 0.00F;
}
if (maxValue < internationalValue) {
return 0.00F;
}
return (maxValue - internationalValue) / internationalValue * 100;
}
}

View File

@@ -0,0 +1,22 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class LimitProbabilityVO {
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("指标名称")
private String indexName;
@ApiModelProperty("指标编码")
private String indexCode;
@ApiModelProperty("越限程度档级对应次数")
private List<Map<Integer, Integer>> extentGrades;
}

View File

@@ -0,0 +1,21 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class LimitTimeProbabilityVO {
@ApiModelProperty("时间段")
private String timePeriod;
@ApiModelProperty("次数")
private int times;
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("指标名称")
private String indexName;
@ApiModelProperty("指标编码")
private String indexCode;
}

View File

@@ -0,0 +1,11 @@
package com.njcn.csharmonic.pojo.vo;
import com.njcn.csharmonic.pojo.po.RStatLimitRateDPO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class MainLineStatLimitRateDetailsVO extends RStatLimitRateDPO {
@ApiModelProperty("监测点名称")
private String lineName;
}

View File

@@ -0,0 +1,21 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class MainLineVO implements Serializable {
@ApiModelProperty("监测点ID")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("监测对象类型")
private String objType;
@ApiModelProperty("是否治理")
private String govern;
@ApiModelProperty("主要存在的电能质量问题")
private String problems;
}

View File

@@ -0,0 +1,145 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2022/5/9 11:23
*/
@Data
public class MonitorOverLimitVO {
@ApiModelProperty("监测点id")
private String id;
@ApiModelProperty("省公司")
private String provinceCompany;
@ApiModelProperty("地市公司")
private String cityCompany;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("干扰源类型")
private String loadType;
@ApiModelProperty("监测点对象名称")
private String lineObjectName;
@ApiModelProperty("监测点电压等级")
private String lineScale;
@ApiModelProperty("厂家")
private String manufacturer;
@ApiModelProperty("变电站名称")
private String subName;
@ApiModelProperty("变电站电压等级")
private String subScale;
@ApiModelProperty("超标天数")
private Integer overDay;
@ApiModelProperty("频率偏差超标天数")
private Integer freqOverDay;
@ApiModelProperty("电压偏差超标天数")
private Integer volDevOverDay;
@ApiModelProperty("谐波电压超标天数")
private Integer harmVolOverDay;
@ApiModelProperty("电压总谐波畸变率超标天数")
private Integer volDisOverDay;
@ApiModelProperty("谐波电压含有率超标天数")
private Integer volContainOverDay;
@ApiModelProperty("谐波电流超标天数")
private Integer harmCurOverDay;
/**
*各次谐波电压含有率
*/
@ApiModelProperty("3次")
private Integer overVolThreeTimes;
@ApiModelProperty("5次")
private Integer overVolFiveTimes;
@ApiModelProperty("7次")
private Integer overVolSevenTimes;
@ApiModelProperty("11次")
private Integer overVolElevenTimes;
@ApiModelProperty("13次")
private Integer overVolThirteenTimes;
@ApiModelProperty("23次")
private Integer overVolTwentyThreeTimes;
@ApiModelProperty("25次")
private Integer overVolTwentyFiveTimes;
@ApiModelProperty("其他次")
private Integer overVolOtherTimes;
/**
*各次谐波电流含量
*/
@ApiModelProperty("3次")
private Integer overCurThreeTimes;
@ApiModelProperty("5次")
private Integer overCurFiveTimes;
@ApiModelProperty("7次")
private Integer overCurSevenTimes;
@ApiModelProperty("11次")
private Integer overCurElevenTimes;
@ApiModelProperty("13次")
private Integer overCurThirteenTimes;
@ApiModelProperty("23次")
private Integer overCurTwentyThreeTimes;
@ApiModelProperty("25次")
private Integer overCurTwentyFiveTimes;
@ApiModelProperty("其他次")
private Integer overCurOtherTimes;
@ApiModelProperty("间谐波电压含有率超标天数")
private Integer intHarmOverDay;
@ApiModelProperty("三相电压不平衡度超标天数")
private Integer threeUnbalance;
@ApiModelProperty("负序电流超标天数")
private Integer negativeOverDay;
@ApiModelProperty("闪变超标天数")
private Integer flickerOverDay;
@ApiModelProperty("监测点编号")
private String monitorNumber;
@Data
public static class DataVO {
private static final long serialVersionUID = 1L;
@ApiModelProperty("日期")
private String time;
@ApiModelProperty("数据")
private Double data;
}
}

View File

@@ -0,0 +1,34 @@
package com.njcn.csharmonic.pojo.vo;
import lombok.Data;
/**
* <功能描述>
*
* @author wr
* @createTime: 2023-04-03
*/
@Data
public class RStatLimitRateDVO {
private static final long serialVersionUID = 1L;
private Integer alltime;
private Integer frequency;
private Integer uBalance;
private Integer iNeg;
private Integer harmElec;
private Integer harmVoltage;
private Integer flicker;
private Integer allFlicker;
private Integer voltageDeviation;
private Integer inUharm;
}

View File

@@ -0,0 +1,207 @@
package com.njcn.csharmonic.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
@Data
public class TotalLimitStatisticsDetailsVO {
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty(value = "监测点ID合格率的变电站/装置/母线/线路序号")
private String lineId;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "合格率时间")
private LocalDate time;
@ApiModelProperty(value = "总计算次数")
private Integer allTime;
@ApiModelProperty(value = "闪变越限次数")
private Integer flickerOvertime;
@ApiModelProperty(value = "频率偏差越限")
private double freqDevOvertime;
@ApiModelProperty(value = "电压偏差越限")
private double voltageDevOvertime;
@ApiModelProperty(value = "三相电压不平衡度越限")
private double ubalanceOvertime;
@ApiModelProperty(value = "电压谐波畸变率越限")
private double uaberranceOvertime;
@ApiModelProperty(value = "负序电流限值")
private double iNegOvertime;
@ApiModelProperty(value = "2次电压谐波含有率越限")
private double uharm2Overtime;
@ApiModelProperty(value = "3次电压谐波含有率越限")
private double uharm3Overtime;
@ApiModelProperty(value = "4次电压谐波含有率越限")
private double uharm4Overtime;
@ApiModelProperty(value = "5次电压谐波含有率越限")
private double uharm5Overtime;
@ApiModelProperty(value = "6次电压谐波含有率越限")
private double uharm6Overtime;
@ApiModelProperty(value = "7次电压谐波含有率越限")
private double uharm7Overtime;
@ApiModelProperty(value = "8次电压谐波含有率越限")
private double uharm8Overtime;
@ApiModelProperty(value = "9次电压谐波含有率越限")
private double uharm9Overtime;
@ApiModelProperty(value = "10次电压谐波含有率越限")
private double uharm10Overtime;
@ApiModelProperty(value = "11次电压谐波含有率越限")
private double uharm11Overtime;
@ApiModelProperty(value = "12次电压谐波含有率越限")
private double uharm12Overtime;
@ApiModelProperty(value = "13次电压谐波含有率越限")
private double uharm13Overtime;
@ApiModelProperty(value = "14次电压谐波含有率越限")
private double uharm14Overtime;
@ApiModelProperty(value = "15次电压谐波含有率越限")
private double uharm15Overtime;
@ApiModelProperty(value = "16次电压谐波含有率越限")
private double uharm16Overtime;
@ApiModelProperty(value = "17次电压谐波含有率越限")
private double uharm17Overtime;
@ApiModelProperty(value = "18次电压谐波含有率越限")
private double uharm18Overtime;
@ApiModelProperty(value = "19次电压谐波含有率越限")
private double uharm19Overtime;
@ApiModelProperty(value = "20次电压谐波含有率越限")
private double uharm20Overtime;
@ApiModelProperty(value = "21次电压谐波含有率越限")
private double uharm21Overtime;
@ApiModelProperty(value = "22次电压谐波含有率越限")
private double uharm22Overtime;
@ApiModelProperty(value = "23次电压谐波含有率越限")
private double uharm23Overtime;
@ApiModelProperty(value = "24次电压谐波含有率越限")
private double uharm24Overtime;
@ApiModelProperty(value = "25次电压谐波含有率越限")
private double uharm25Overtime;
@ApiModelProperty(value = "2次电流谐波幅值越限")
private double iharm2Overtime;
@ApiModelProperty(value = "3次电流谐波幅值越限")
private double iharm3Overtime;
@ApiModelProperty(value = "4次电流谐波幅值越限")
private double iharm4Overtime;
@ApiModelProperty(value = "5次电流谐波幅值越限")
private double iharm5Overtime;
@ApiModelProperty(value = "6次电流谐波幅值越限")
private double iharm6Overtime;
@ApiModelProperty(value = "7次电流谐波幅值越限")
private double iharm7Overtime;
@ApiModelProperty(value = "8次电流谐波幅值越限")
private double iharm8Overtime;
@ApiModelProperty(value = "9次电流谐波幅值越限")
private double iharm9Overtime;
@ApiModelProperty(value = "10次电流谐波幅值越限")
private double iharm10Overtime;
@ApiModelProperty(value = "11次电流谐波幅值越限")
private double iharm11Overtime;
@ApiModelProperty(value = "12次电流谐波幅值越限")
private double iharm12Overtime;
@ApiModelProperty(value = "13次电流谐波幅值越限")
private double iharm13Overtime;
@ApiModelProperty(value = "14次电流谐波幅值越限")
private double iharm14Overtime;
@ApiModelProperty(value = "15次电流谐波幅值越限")
private double iharm15Overtime;
@ApiModelProperty(value = "16次电流谐波幅值越限")
private double iharm16Overtime;
@ApiModelProperty(value = "17次电流谐波幅值越限")
private double iharm17Overtime;
@ApiModelProperty(value = "18次电流谐波幅值越限")
private double iharm18Overtime;
@ApiModelProperty(value = "19次电流谐波幅值越限")
private double iharm19Overtime;
@ApiModelProperty(value = "20次电流谐波幅值越限")
private double iharm20Overtime;
@ApiModelProperty(value = "21次电流谐波幅值越限")
private double iharm21Overtime;
@ApiModelProperty(value = "22次电流谐波幅值越限")
private double iharm22Overtime;
@ApiModelProperty(value = "23次电流谐波幅值越限")
private double iharm23Overtime;
@ApiModelProperty(value = "24次电流谐波幅值越限")
private double iharm24Overtime;
@ApiModelProperty(value = "25次电流谐波幅值越限")
private double iharm25Overtime;
}

View File

@@ -0,0 +1,15 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class TotalLimitStatisticsVO extends TotalLimitTotalStatisticsVO {
@ApiModelProperty("监测点ID")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
}

View File

@@ -0,0 +1,19 @@
package com.njcn.csharmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class TotalLimitTotalStatisticsVO {
@ApiModelProperty("闪变越限占比")
private double flicker;
@ApiModelProperty("谐波电压越限占比")
private double uharm;
@ApiModelProperty("谐波电流越限占比")
private double iharm;
@ApiModelProperty("电压偏差越限占比")
private double voltageDev;
@ApiModelProperty("三相不平衡越限占比")
private double ubalance;
}

View File

@@ -0,0 +1,48 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* DISDIP表格
* @author xxy
* @version 1.0.0
* @date 2022年08月01日 15:46
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DISDIPVO implements Serializable {
@ApiModelProperty(name = "name",value = "剩余电压/持续时间")
private String name;
@ApiModelProperty(name = "twentyMs",value = "20ms")
private String twentyMs;
@ApiModelProperty(name = "oneHundredMs",value = "100ms")
private String oneHundredMs;
@ApiModelProperty(name = "fiveHundredMs",value = "500ms")
private String fiveHundredMs;
@ApiModelProperty(name = "oneS",value = "1s")
private String oneS;
@ApiModelProperty(name = "threeS",value = "3s")
private String threeS;
@ApiModelProperty(name = "twentyS",value = "20s")
private String twentyS;
@ApiModelProperty(name = "sixtyS",value = "60s")
private String sixtyS;
@ApiModelProperty(name = "oneEightyS",value = "180s")
private String oneEightyS;
}

View File

@@ -0,0 +1,47 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月01日 16:09
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IEC28VO implements Serializable {
@ApiModelProperty(name = "name",value = "剩余电压/持续时间")
private String name;
@ApiModelProperty(name = "q",value = "0.01~0.1s")
private String q;
@ApiModelProperty(name = "w",value = "0.1~0.25s")
private String w;
@ApiModelProperty(name = "e",value = "0.25~0.5s")
private String e;
@ApiModelProperty(name = "r",value = "0.5~1s")
private String r;
@ApiModelProperty(name = "t",value = "1~3s")
private String t;
@ApiModelProperty(name = "y",value = "3~20s")
private String y;
@ApiModelProperty(name = "u",value = "20~60s")
private String u;
@ApiModelProperty(name = "i",value = "60~180s")
private String i;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* IEC411
* @author xxy
* @version 1.0.0
* @date 2022年08月01日 16:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IEC411VO implements Serializable {
@ApiModelProperty(name = "name",value = "剩余电压/持续时间")
private String name;
@ApiModelProperty(name = "tenTwentyMs",value = "10~20ms")
private String tenTwentyMs;
@ApiModelProperty(name = "twentyOneHundredMs",value = "20~100ms")
private String twentyOneHundredMs;
@ApiModelProperty(name = "zeroPiontOneTwoS",value = "0.1~0.2s")
private String zeroPiontOneTwoS;
@ApiModelProperty(name = "zeroPiontTwoFiveS",value = "0.2~0.5s")
private String zeroPiontTwoFiveS;
@ApiModelProperty(name = "zeroPiontFive1S",value = "0.5~1s")
private String zeroPiontFive1S;
@ApiModelProperty(name = "greater1S",value = ">1s")
private String greater1S;
}

View File

@@ -0,0 +1,33 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月03日 15:31
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProbabilityVO implements Serializable {
@ApiModelProperty(name = "eventvalue")
private List<String> eventvalue;
@ApiModelProperty(name = "pereventvalue")
private List<String> pereventvalue;
@ApiModelProperty(name = "persisttime")
private List<String> persisttime;
@ApiModelProperty(name = "sisttime")
private List<String> sisttime;
}

View File

@@ -0,0 +1,31 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月03日 09:03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ReasonsVO implements Serializable {
@ApiModelProperty(name = "reason",value = "原因")
private String reason;
@ApiModelProperty(name = "times",value = "次数")
private Integer times;
@ApiModelProperty(name = "rate",value = "占比")
private String rate;
}

View File

@@ -0,0 +1,43 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import com.njcn.csharmonic.pojo.dto.eventReport.EventDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月02日 16:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StatisticVO implements Serializable {
@ApiModelProperty(name = "cityName",value = "城市名称")
private String cityName;
@ApiModelProperty(name = "detail")
private List<EventDetail> detail;
@ApiModelProperty(name = "f47")
private String f47;
@ApiModelProperty(name = "itic")
private String itic;
@ApiModelProperty(name = "reason")
private List<ReasonsVO> reason;
@ApiModelProperty(name = "totalTimes")
private Integer totalTimes;
@ApiModelProperty(name = "types")
private List<TypesVO> types;
}

View File

@@ -0,0 +1,41 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月02日 10:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TimeVO implements Serializable {
@ApiModelProperty(name = "amounts")
private String amounts;
@ApiModelProperty(name = "handledTimes")
private String handledTimes;
@ApiModelProperty(name = "days",value = "天数")
private String day;
@ApiModelProperty(name = "month",value = "月份")
private String month;
@ApiModelProperty(name = "times")
private String times;
@ApiModelProperty(name = "year",value = "年份")
private String year;
@ApiModelProperty(name = "fulltime",value = "时间全称")
private String fulltime;
}

View File

@@ -0,0 +1,27 @@
package com.njcn.csharmonic.pojo.vo.eventReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author xxy
* @version 1.0.0
* @date 2022年08月03日 09:07
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TypesVO implements Serializable {
@ApiModelProperty(name = "type",value = "类型")
private String type;
@ApiModelProperty(name = "times",value = "次数")
private Integer times;
}

View File

@@ -0,0 +1,75 @@
package com.njcn.csharmonic.pojo.vo.report;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author wr
* @description
* @date 2023/4/10 15:36
*/
@NoArgsConstructor
public class ReportValue implements Serializable {
private String phaseType; //A(AB)相B(BC)相C(CA)相T总功
private Float fmaxValue; //最大值
private Float minValue; //最小值
private Float meanValue; //平均值
private Float cp95Value; //CP95值
public String getPhaseType() {
return phaseType;
}
public Float getFmaxValue() {
return fmaxValue;
}
public Float getMinValue() {
return minValue;
}
public Float getMeanValue() {
return meanValue;
}
public Float getCp95Value() {
return cp95Value;
}
public void setPhaseType(String phaseType) {
this.phaseType = phaseType;
}
public void setFmaxValue(Float fmaxValue) {
this.fmaxValue = transData(fmaxValue);
}
public void setMinValue(Float minValue) {
this.minValue = transData(minValue);
}
public void setMeanValue(Float meanValue) {
this.meanValue = transData(meanValue);
}
public void setCp95Value(Float cp95Value) {
this.cp95Value = transData(cp95Value);
}
public ReportValue(String phaseType, Float maxValue, Float minValue, Float meanValue, Float cp95Value) {
this.phaseType = phaseType;
this.fmaxValue = transData(maxValue);
this.minValue = transData(minValue);
this.meanValue = transData(meanValue);
this.cp95Value = transData(cp95Value);
}
private Float transData(Float f) {
if (f == null) {
return f;
}
float f1 = (float) (Math.round(f.floatValue() * 100)) / 100;
return new Float(f1);
}
}

View File

@@ -0,0 +1,350 @@
package com.njcn.csharmonic.utils.eventReport;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import java.io.File;
import java.io.FileOutputStream;
import java.math.BigInteger;
import java.util.Calendar;
public class WordUtils {
public static void main(String[] args)throws Exception {
// 空白文档
XWPFDocument document= new XWPFDocument();
//把文档写进本地系统
FileOutputStream out = new FileOutputStream(new File("create_table.docx"));
//设定标题格式
setHeadingStyle(document);
//添加标题
XWPFParagraph titleParagraph = document.createParagraph();
setParagraphStyle(titleParagraph);
addLine(titleParagraph,11);
//设置段落居中
titleParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun titleParagraphRun = titleParagraph.createRun();
addParagraph(titleParagraphRun,"宋体",15,"000000","四川省供电公司",true);
addLine(titleParagraph,3);
XWPFRun titleParagraphBigRun = titleParagraph.createRun();
addParagraph(titleParagraphBigRun,"宋体",36,"000000","电压暂降事件分析报告",true);
addLine(titleParagraph,19);
XWPFRun titleParagraphDateRun = titleParagraph.createRun();
addParagraph(titleParagraphDateRun,"宋体",14,"000000","日期: 2018年1月3号",true);
titleParagraph.setPageBreak(true);
//段落
XWPFParagraph statisticsParagraph = document.createParagraph();
setParagraphStyle(statisticsParagraph);
//段前分页
statisticsParagraph.setPageBreak(true);
statisticsParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun statisticsRun = statisticsParagraph.createRun();
addParagraph(statisticsRun,"宋体",24,"000000","电压暂降事件分析报告",false);
XWPFParagraph introductionParagraph= document.createParagraph();
setParagraphStyle(introductionParagraph);
introductionParagraph.setStyle("标题 1");
introductionParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun introductionRun = introductionParagraph.createRun();
addParagraph(introductionRun,"宋体",15,"000000","1. 引言",true);
XWPFParagraph introductionContentParagraph = document.createParagraph();
// 首行缩进---段落
setParagraphStyle(introductionContentParagraph);
introductionContentParagraph.setAlignment(ParagraphAlignment.LEFT);
introductionContentParagraph.setIndentationFirstLine(200);
XWPFRun introductionContentRun=introductionContentParagraph.createRun();
addParagraph(introductionContentRun,"宋体",11,"000000","对所选中区间内电压暂降事件进行分析,能够直观清晰查看相应的暂降事件信息。",false);
XWPFParagraph objectParagraph=document.createParagraph();
setParagraphStyle(objectParagraph);
objectParagraph.setStyle("标题 1");
objectParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun objectRun= objectParagraph.createRun();
addParagraph(objectRun,"宋体",15,"000000","2. 报告分析对象:",true);
XWPFParagraph objectContentParagraph = document.createParagraph();
setParagraphStyle(objectContentParagraph);
objectContentParagraph.setAlignment(ParagraphAlignment.LEFT);
objectContentParagraph.setIndentationFirstLine(200);
XWPFRun objectContentRun = objectContentParagraph.createRun();
addParagraph(objectContentRun,"宋体",11,"000000","成都供电公司—>锦江区变电站—>锦江2号。",false);
XWPFParagraph timeParagraph = document.createParagraph();
timeParagraph.setStyle("标题 1");
timeParagraph.setAlignment(ParagraphAlignment.LEFT);
setParagraphStyle(timeParagraph);
XWPFRun timeRun = timeParagraph.createRun();
addParagraph(timeRun,"宋体",15,"000000","3. 报告分析时间:",true);
XWPFParagraph timeContentParagraph = document.createParagraph();
setParagraphStyle(timeContentParagraph);
timeContentParagraph.setAlignment(ParagraphAlignment.LEFT);
timeContentParagraph.setIndentationFirstLine(200);
XWPFRun timeContentRun = timeContentParagraph.createRun();
addParagraph(timeContentRun,"宋体",11,"000000","2017年12月21日至2017年12月30日。",false);
XWPFParagraph summaeParagraph = document.createParagraph();
setParagraphStyle(summaeParagraph);
summaeParagraph.setStyle("标题 1");
summaeParagraph.setAlignment(ParagraphAlignment.LEFT);
XWPFRun summaeRun = summaeParagraph.createRun();
addParagraph(summaeRun,"宋体",15,"000000","4. 汇总信息:",true);
XWPFParagraph summaeTableParagraph = document.createParagraph();
setParagraphStyle(summaeTableParagraph);
summaeTableParagraph.setStyle("标题 2");
summaeTableParagraph.setAlignment(ParagraphAlignment.LEFT);
summaeTableParagraph.setIndentationFirstLine(200);
XWPFRun summaeTableRun = summaeTableParagraph.createRun();
addParagraph(summaeTableRun,"宋体",11,"000000","4.1 表格",false);
//工作经历表格
XWPFTable summaTable = document.createTable();
//列宽自动分割
CTTblWidth summaTableWidth = summaTable.getCTTbl().addNewTblPr().addNewTblW();
summaTableWidth.setType(STTblWidth.DXA);
summaTableWidth.setW(BigInteger.valueOf(9072));
//表格第一行
XWPFTableRow summaTableRowOne = summaTable.getRow(0);
XWPFParagraph excelParagraph= document.createParagraph();
setParagraphStyle(excelParagraph);
excelParagraph.setAlignment(ParagraphAlignment.CENTER);
excelParagraph.setVerticalAlignment(TextAlignment.CENTER);
setExcelHeadContent(excelParagraph,summaTableRowOne,"序号","暂降发生时刻","暂降幅值(%)","持续时间(ms)","暂降类型","暂降原因","严重度");
//表格第二行
XWPFTableRow summaTableRowTwo = summaTable.createRow();
setExcelContent(excelParagraph,summaTableRowTwo,"1","2017-11-24 14:26:56.490","9","20","未识别","未明","0.91");
//表格第三行
XWPFTableRow summaTableRowThree = summaTable.createRow();
setExcelContent(excelParagraph,summaTableRowThree,"2","2017-11-24 14:25:46.472","15","19","未识别","未明","0.85");
XWPFParagraph summaePicParagraph = document.createParagraph();
summaePicParagraph.setStyle("标题 2");
summaePicParagraph.setAlignment(ParagraphAlignment.LEFT);
summaePicParagraph.setIndentationFirstLine(200);
XWPFRun summaePicRun = summaePicParagraph.createRun();
addParagraph(summaePicRun,"宋体",11,"000000","4.2 ITIC曲线",false);
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
//添加页眉
CTP ctpHeader = CTP.Factory.newInstance();
CTR ctrHeader = ctpHeader.addNewR();
CTText ctHeader = ctrHeader.addNewT();
String headerText = "Java POI create MS word file.";
ctHeader.setStringValue(headerText);
XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
//设置为右对齐
headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
XWPFParagraph[] parsHeader = new XWPFParagraph[1];
parsHeader[0] = headerParagraph;
policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
//添加页脚
CTP ctpFooter = CTP.Factory.newInstance();
CTR ctrFooter = ctpFooter.addNewR();
CTText ctFooter = ctrFooter.addNewT();
String footerText = "http://blog.csdn.net/zhouseawater";
ctFooter.setStringValue(footerText);
XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
headerParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFParagraph[] parsFooter = new XWPFParagraph[1];
parsFooter[0] = footerParagraph;
policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
document.write(out);
out.close();
}
public static void setParagraphStyle(XWPFParagraph paragraph){
paragraph.setSpacingBefore(100);
paragraph.setSpacingAfter(100);
}
/**
* 返回指定格式的段落 居中型
* @param document 文档对象
*/
public static XWPFParagraph getCenterParagraph(XWPFDocument document){
XWPFParagraph paragraph = document.createParagraph();
setParagraphStyle(paragraph);
paragraph.setAlignment(ParagraphAlignment.CENTER);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
return paragraph;
}
/**
* 返回指定格式的段落 居左型
* @param document 文档对象
*/
public static XWPFParagraph getLeftParagraph(XWPFDocument document){
XWPFParagraph paragraph = document.createParagraph();
setParagraphStyle(paragraph);
paragraph.setAlignment(ParagraphAlignment.LEFT);
return paragraph;
}
/**
* 添加换行符
* @param paragraph 指定段落
* @param amount 行数
* */
public static void addLine(XWPFParagraph paragraph,Integer amount){
XWPFRun run = paragraph.createRun();
run.setFontSize(11);
for(int i=0;i<amount;i++){
run.addCarriageReturn();
}
}
/**
* 添加段落文本
* @param run 文本执行对象
* @param fontFamily 字体类型
* @param fontSize 字体大小
* @param backgroundColor 字体颜色
* @param bold 是否加粗
*/
public static void addParagraph(XWPFRun run,String fontFamily,Integer fontSize,String backgroundColor,String message,boolean bold){
run.setText(message);
run.setColor(backgroundColor);
run.setFontSize(fontSize);
run.setFontFamily(fontFamily);
run.setBold(bold);
}
/**
* 增加自定义标题样式。这里用的是stackoverflow的源码
*
* @param docxDocument 目标文档
* @param strStyleId 样式名称
* @param headingLevel 样式级别
*/
public static void addCustomHeadingStyle(XWPFDocument docxDocument, String strStyleId, int headingLevel) {
CTStyle ctStyle = CTStyle.Factory.newInstance();
ctStyle.setStyleId(strStyleId);
CTString styleName = CTString.Factory.newInstance();
styleName.setVal(strStyleId);
ctStyle.setName(styleName);
CTDecimalNumber indentNumber = CTDecimalNumber.Factory.newInstance();
indentNumber.setVal(BigInteger.valueOf(headingLevel));
// lower number > style is more prominent in the formats bar
ctStyle.setUiPriority(indentNumber);
CTOnOff onoffnull = CTOnOff.Factory.newInstance();
ctStyle.setUnhideWhenUsed(onoffnull);
// style shows up in the formats bar
ctStyle.setQFormat(onoffnull);
// style defines a heading of the given level
CTPPr ppr = CTPPr.Factory.newInstance();
ppr.setOutlineLvl(indentNumber);
ctStyle.setPPr(ppr);
XWPFStyle style = new XWPFStyle(ctStyle);
// is a null op if already defined
XWPFStyles styles = docxDocument.createStyles();
style.setType(STStyleType.PARAGRAPH);
styles.addStyle(style);
}
/**
* 设置文档中标题格式
* */
public static void setHeadingStyle(XWPFDocument document){
addCustomHeadingStyle(document, "标题 1", 1);
addCustomHeadingStyle(document, "标题 2", 2);
addCustomHeadingStyle(document, "标题 3", 3);
addCustomHeadingStyle(document, "标题 4", 4);
addCustomHeadingStyle(document, "标题 5", 5);
addCustomHeadingStyle(document, "标题 6", 6);
addCustomHeadingStyle(document, "标题 7", 7);
}
/**
* 给表格添加一行数据
* @param paragraph 段落对象
* @param row 行对象
* @param data 不定长度的数据
*/
public static void setExcelContent(XWPFParagraph paragraph, XWPFTableRow row,String... data){
for (int i=0;i<data.length;i++){
XWPFRun run =paragraph.createRun();
run.setFontFamily("宋体");
run.setText(data[i]);
row.getCell(i).setParagraph(paragraph);
paragraph.removeRun(0);
}
}
/**
* 添加表头标题一行数据
* @param paragraph 段落对象
* @param row 行对象
* @param data 不定长度的数据
*/
public static void setExcelHeadContent(XWPFParagraph paragraph, XWPFTableRow row,String... data){
XWPFRun run= paragraph.createRun();
run.setFontFamily("宋体");
run.setBold(true);
run.setText(data[0]);
row.getCell(0).setParagraph(paragraph);
paragraph.removeRun(0);
for(int i=1;i<data.length;i++){
XWPFRun run1 =paragraph.createRun();
run1.setFontFamily("宋体");
run1.setBold(true);
run1.setText(data[i]);
row.addNewTableCell().setParagraph(paragraph);
paragraph.removeRun(0);
}
}
/**
* 获取当前的日期
* @return
*/
public static String getRightNow(){
Calendar rightNow = Calendar.getInstance();
Integer year = rightNow.get(Calendar.YEAR);
Integer month = rightNow.get(Calendar.MONTH)+1;
Integer day = rightNow.get(rightNow.DAY_OF_MONTH);
return year+""+month+""+day+"";
}
}

View File

@@ -0,0 +1,142 @@
package com.njcn.csharmonic.utils.report;
/**
* @author hongawen
* @date: 2020/8/20 13:36
*/
public class ClearPathUtil {
/**
* 针对漏洞,新增的特殊字符替换的扫描方法
*/
public static String cleanString(String str) {
if (str == null) {
return null;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); ++i) {
sb.append(cleanChar(str.charAt(i)));
}
return sb.toString();
}
private static char cleanChar(char ch) {
// 0 - 9
for (int i = 48; i < 58; ++i) {
if (ch == i) {
return (char) i;
}
}
// 'A' - 'Z'
for (int i = 65; i < 91; ++i) {
if (ch == i) {
return (char) i;
}
}
// 'a' - 'z'
for (int i = 97; i < 123; ++i) {
if (ch == i) {
return (char) i;
}
}
// other valid characters
switch (ch) {
case '/':
return '/';
case '.':
return '.';
case '-':
return '-';
case '_':
return '_';
case ',':
return ',';
case ' ':
return ' ';
case '!':
return '!';
case '@':
return '@';
case '#':
return '#';
case '$':
return '$';
case '%':
return '%';
case '^':
return '^';
case '&':
return '&';
case '*':
return '*';
case '(':
return '(';
case ')':
return ')';
case '+':
return '+';
case '=':
return '=';
case ':':
return ':';
case ';':
return ';';
case '?':
return '?';
case '"':
return '"';
case '<':
return '<';
case '>':
return '>';
case '`':
return '`';
case '\\':
return '/';
case 'I':
return 'I';
case 'Ⅱ':
return 'Ⅱ';
case 'Ⅲ':
return 'Ⅲ';
case 'Ⅳ':
return 'Ⅳ';
case '':
return '';
case 'Ⅵ':
return 'Ⅵ';
case 'Ⅶ':
return 'Ⅶ';
case 'Ⅷ':
return 'Ⅷ';
case 'Ⅸ':
return 'Ⅸ';
case 'V':
return 'V';
case 'X':
return 'X';
case '':
return '';
default:
if (isChineseChar(ch)) {
return ch;
}
return '%';
}
}
// 根据Unicode编码判断中文汉字和符号
private static boolean isChineseChar(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION;
}
}

View File

@@ -0,0 +1,83 @@
package com.njcn.csharmonic.utils.report;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlToken;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;
import java.io.IOException;
import java.io.InputStream;
@Slf4j
public class CustomXWPFDocument extends XWPFDocument {
// 日志记录
public CustomXWPFDocument(InputStream in) throws IOException {
super(in);
}
public CustomXWPFDocument() {
super();
}
public CustomXWPFDocument(OPCPackage pkg) throws IOException {
super(pkg);
}
/**
* @param id
* @param width
* 宽
* @param height
* 高
* @param paragraph
* 段落
*/
public void createPicture(int id, int width, int height,String blipId, XWPFParagraph paragraph) {
final int EMU = 9525;
width *= EMU;
height *= EMU;
// String blipId = getAllPictures().get(id).getPackageRelationship().getId();
CTInline inline = paragraph.createRun().getCTR().addNewDrawing().addNewInline();
String picXml = "" + "<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">"
+ " <a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">"
+ " <pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">"
+ " <pic:nvPicPr>" + " <pic:cNvPr id=\"" + id + "\" name=\"Generated\"/>"
+ " <pic:cNvPicPr/>" + " </pic:nvPicPr>" + " <pic:blipFill>"
+ " <a:blip r:embed=\"" + blipId
+ "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"
+ " <a:stretch>" + " <a:fillRect/>" + " </a:stretch>"
+ " </pic:blipFill>" + " <pic:spPr>" + " <a:xfrm>"
+ " <a:off x=\"0\" y=\"0\"/>" + " <a:ext cx=\"" + width + "\" cy=\""
+ height + "\"/>" + " </a:xfrm>" + " <a:prstGeom prst=\"rect\">"
+ " <a:avLst/>" + " </a:prstGeom>" + " </pic:spPr>"
+ " </pic:pic>" + " </a:graphicData>" + "</a:graphic>";
inline.addNewGraphic().addNewGraphicData();
XmlToken xmlToken = null;
try {
xmlToken = XmlToken.Factory.parse(picXml);
} catch (XmlException xe) {
log.error("生成报表发生异常,异常是"+xe.getMessage());
}
inline.set(xmlToken);
inline.setDistT(0);
inline.setDistB(0);
inline.setDistL(0);
inline.setDistR(0);
CTPositiveSize2D extent = inline.addNewExtent();
extent.setCx(width);
extent.setCy(height);
CTNonVisualDrawingProps docPr = inline.addNewDocPr();
docPr.setId(id);
docPr.setName("图片" + id);
docPr.setDescr("测试");
}
}

View File

@@ -0,0 +1,28 @@
package com.njcn.csharmonic.utils.report;
import java.math.BigDecimal;
/**
* @author hongawen(创建) -----denghuajun移植使用
* @Date: 2018/8/27 11:29
*/
public class FloatUtils {
/**
* 保留传入进来的float的两位小数四舍五入的方式
*
* @param data Float参数
*/
public static float get2Float(Float data) {
if (data == null || data.isNaN() || data.isInfinite()) {
return 0f;
}
int scale = 2;//设置位数
int roundingMode = 4;//表示四舍五入,可以选择其他舍值方式,例如去尾,等等.
BigDecimal bd = new BigDecimal(data);
bd = bd.setScale(scale, roundingMode);
data = bd.floatValue();
return data;
}
}

View File

@@ -0,0 +1,224 @@
package com.njcn.csharmonic.utils.report;
import cn.hutool.core.util.ObjectUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author wr
* @description
* @date 2023/4/10 17:39
*/
@Slf4j
public class PubUtils {
public static boolean createFile(String destFileName) {
File file = new File(destFileName);
if (file.exists()) {
log.warn("创建单个文件" + destFileName + "失败,目标文件已存在!");
return false;
}
if (destFileName.endsWith(File.separator)) {
log.warn("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
return false;
}
//判断目标文件所在的目录是否存在
if (!file.getParentFile().exists()) {
//如果目标文件所在的目录不存在,则创建父目录
log.warn("目标文件所在目录不存在,准备创建它!");
if (!file.getParentFile().mkdirs()) {
log.warn("创建目标文件所在目录失败!");
return false;
}
}
//创建目标文件
try {
if (file.createNewFile()) {
log.warn("创建单个文件" + destFileName + "成功!");
return true;
} else {
log.warn("创建单个文件" + destFileName + "失败!");
return false;
}
} catch (IOException e) {
log.warn("创建单个文件" + destFileName + "失败!" + e.getMessage());
return false;
}
}
/**
* 读取配置文件
*
* @param cl 类名字
* @param strPropertiesName 配置文件名称
*/
public static Properties readProperties(ClassLoader cl, String strPropertiesName) {
Properties pros = new Properties();
InputStream in = null;
try {
in = cl.getResourceAsStream(strPropertiesName);
pros.load(in);
} catch (Exception e) {
log.error("读取配置文件失败失败:" + e.getMessage());
} finally {
if (in != null) {
PubUtils.safeClose(in, "安全关闭读取配置文件失败,异常为:");
}
}
return pros;
}
/**
* 安全关闭InputStream
*
* @param s
*/
public static void safeClose(InputStream s, String strError) {
if (s != null) {
try {
s.close();
} catch (IOException e) {
log.error(strError + e.toString());
}
}
}
public static Double dataLimits(Double data) {
if (ObjectUtil.isNotNull(data)) {
return data > 100 ? 100 : data;
}
return data;
}
@SneakyThrows
public static List<String> getIntervalTime(String startTime, String endTime) {
List<String> times = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Date start = sdf.parse(startTime);
Date end = sdf.parse(endTime);
// 同月
if (start.getTime() == end.getTime()) {
String time = startTime.substring(0, 7);
times.add(time);
} else if (start.getYear() == end.getYear()) {
// 同年
int startM = start.getMonth() + 1;
int endM = end.getMonth() + 1;
int temp = endM - startM;
for (int i = 0; i <= temp; i++) {
String time = start.getYear() + 1900 + "";
int month = startM + i;
if (month < 10) {
time = time + "-0" + month;
} else {
time = time + "-" + month;
}
times.add(time);
}
} else {
// 不同年!!!!这里忽略了年份之间跨年的情况
int startY = start.getYear() + 1900;
int startM = start.getMonth() + 1;
int endY = end.getYear() + 1900;
int endM = end.getMonth() + 1;
int tempS = 12 - startM;
// 连续的年份
if (endY - startY == 1) {
// 第一年的时间获取
for (int i = 0; i <= tempS; i++) {
int month = startM + i;
String time = startY + "-";
if (month < 10) {
time = time + "0" + month;
} else {
time = time + month;
}
times.add(time);
}
// 第二年的时间获取
for (int i = 1; i <= endM; i++) {
String time = endY + "-";
if (i < 10) {
time = time + "0" + i;
} else {
time = time + i;
}
times.add(time);
}
} else {
// 不连续的年份
// 第一年的时间获取
for (int i = 0; i <= tempS; i++) {
int month = startM + i;
String time = startY + "-";
if (month < 10) {
time = time + "0" + month;
} else {
time = time + month;
}
times.add(time);
}
int tempY = endY - startY;
// 中间年份的时间
for (int i = 1; i < tempY; i++) {
for (int j = 1; j <= 12; j++) {
String time = startY + i + "-";
if (j < 10) {
time = time + "0" + j;
} else {
time = time + j;
}
times.add(time);
}
}
// 最后一年的时间获取
for (int i = 1; i <= endM; i++) {
String time = endY + "-";
if (i < 10) {
time = time + "0" + i;
} else {
time = time + i;
}
times.add(time);
}
}
}
return times;
}
@SneakyThrows
public static List<String> getIntervalDateTime(Integer startTime, int beginDay, Integer endTime, Integer dd) {
List<String> list = new ArrayList<>();
Calendar calendar = Calendar.getInstance(Locale.CHINA);
calendar.set(startTime, endTime - 1, 1);
//年份
int year = calendar.get(Calendar.YEAR);
//月份
int month = calendar.get(Calendar.MONTH) + 1;
for (int i = beginDay; i <= dd; i++) {
String date = null;
if (month < 10 && i < 10) {
date = year + "-0" + month + "-0" + i;
}
if (month < 10 && i >= 10) {
date = year + "-0" + month + "-" + i;
}
if (month >= 10 && i < 10) {
date = year + "-" + month + "-0" + i;
}
if (month >= 10 && i >= 10) {
date = year + "-" + month + "-" + i;
}
list.add(date);
}
return list;
}
}

View File

@@ -0,0 +1,30 @@
package com.njcn.csharmonic.utils.report;
/**
* 数据公共工具类
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/14 - 10:07
*/
public class PublicDataUtils {
/**
* 功能:下划线命名转驼峰命名
* 将下划线替换为空格,将字符串根据空格分割成数组,再将每个单词首字母大写
* @param s
* @return
*/
public static String underCamel(String s)
{
String separator = "_";
String under="";
s = s.toLowerCase().replace(separator, " ");
String sarr[]=s.split(" ");
for(int i=0;i<sarr.length;i++)
{
String w=sarr[i].substring(0,1).toUpperCase()+sarr[i].substring(1);
under +=w;
}
return under;
}
}

View File

@@ -0,0 +1,25 @@
package com.njcn.csharmonic.utils.report;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.lang.reflect.Type;
import java.sql.Timestamp;
@Component
public class TimestampAsLongSerializer implements ObjectSerializer {
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
if (object instanceof Timestamp) {
Timestamp timestamp = (Timestamp) object;
// 将Timestamp转换为时间戳毫秒数
long time = timestamp.getTime();
serializer.write(time);
} else {
serializer.write(object);
}
}
}

View File

@@ -0,0 +1,427 @@
package com.njcn.csharmonic.utils.report;
import cn.hutool.core.collection.CollUtil;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xwpf.usermodel.*;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
import org.springframework.util.FileCopyUtils;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.*;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Slf4j
@Component
@RequiredArgsConstructor
public class WordUtil2 {
private final ResourceLoader resourceLoader;
private final FileStorageUtil fileStorageUtil;
public void getWord(String path, Map<String, Object> params, String fileName,List<List<String[]>> tableList, HttpServletResponse response)
throws Exception {
byte[] docBytes = null;
path = ClearPathUtil.cleanString(path);
InputStream is = null;
CustomXWPFDocument doc = null;
//读取报告模板
try {
Resource resource = resourceLoader.getResource("classpath:" + path);
if (!resource.exists()) {
throw new FileNotFoundException("模板文件未找到: " + path);
}
is = resource.getInputStream();
doc = new CustomXWPFDocument(is);
if(CollUtil.isNotEmpty(tableList)){
this.replaceInTable(doc, params,tableList);
}else{
this.replaceInTable(doc, params);
}
// 替换表格里面的变量
this.replaceInPara(doc, params); // 替换文本里面的变量
} catch (IOException e) {
getError("获取报告模板异常,原因为:" + e);
} finally {
if (null != is) {
is.close();
}
}
try {
ServletOutputStream outputStream = response.getOutputStream();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.setContentType("application/octet-stream;charset=UTF-8");
doc.write(outputStream);
outputStream.close();
} catch (Exception e) {
getError("输出稳态报告异常,原因为:" + e);
} finally {
if (doc != null) {
doc.close();
}
}
}
// 辅助方法:字节数组转十六进制(便于打印排查)
private static String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02X ", b));
}
return sb.toString().trim();
}
public InputStream getReportFile(String path, Map<String, Object> params, List<List<String[]>> tableList)
throws Exception {
path = ClearPathUtil.cleanString(path);
InputStream inStream = null,in = null;
CustomXWPFDocument doc = null;
//读取报告模板
try {
inStream = new ClassPathResource(path).getInputStream();
doc = new CustomXWPFDocument(inStream);
this.replaceInTable(doc,params,tableList);
this.replaceInPara(doc, params);
} catch (IOException e) {
getError("获取报告模板异常,原因为:" + e);
} finally {
if (null != inStream) {
inStream.close();
}
}
try {
//临时缓冲区
ByteArrayOutputStream out = new ByteArrayOutputStream();
doc.write(out);
byte[] docByteAry = out.toByteArray();
in = new ByteArrayInputStream(docByteAry);
out.close();
} catch (Exception e) {
getError("输出稳态报告异常,原因为:" + e);
} finally {
if (doc != null) {
doc.close();
}
}
return in;
}
public String getReportFileUrl(String path,String fileName,List<List<String[]>> tableList, Map<String, Object> params)
throws Exception {
path = ClearPathUtil.cleanString(path);
InputStream inStream = null,in = null;
CustomXWPFDocument doc = null;
//读取报告模板
try {
inStream = new ClassPathResource(path).getInputStream();;
doc = new CustomXWPFDocument(inStream);
if(CollUtil.isNotEmpty(tableList)){
this.replaceInTable(doc, params,tableList);
}else{
this.replaceInTable(doc, params);
}
this.replaceInPara(doc, params); // 替换文本里面的变量
//临时缓冲区
ByteArrayOutputStream out = new ByteArrayOutputStream();
doc.write(out);
byte[] docByteAry = out.toByteArray();
in = new ByteArrayInputStream(docByteAry);
out.close();
} catch (IOException e) {
getError("获取报告模板异常,原因为:" + e);
} finally {
if (null != inStream) {
inStream.close();
}
if (doc != null) {
doc.close();
}
}
//上传文件服务器
return fileStorageUtil.uploadStreamSpecifyName(in, OssPath.ONLINE_REPORT, fileName);
}
private static void getError(String e) {
log.error(e);
}
/**
* 替换段落里面的变量
*
* @param doc 要替换的文档
* @param params 参数
*/
private void replaceInPara(CustomXWPFDocument doc, Map<String, Object> params) {
Iterator<XWPFParagraph> iterator = doc.getParagraphsIterator();
List<XWPFParagraph> paragraphList = new ArrayList<>();
XWPFParagraph para;
while (iterator.hasNext()) {
para = iterator.next();
paragraphList.add(para);
}
processParagraphs(paragraphList, params, doc);
}
private void replaceInTable(CustomXWPFDocument doc, Map<String, Object> params) {
Iterator<XWPFTable> it = doc.getTablesIterator();
while (it.hasNext()) {
XWPFTable table = it.next();
List<XWPFTableRow> rows = table.getRows();
for (XWPFTableRow row : rows) {
List<XWPFTableCell> cells = row.getTableCells();
for (XWPFTableCell cell : cells) {
List<XWPFParagraph> paragraphListTable = cell.getParagraphs();
processParagraphs(paragraphListTable, params, doc);
}
}
}
}
public static void processParagraphs(List<XWPFParagraph> paragraphList, Map<String, Object> param,
CustomXWPFDocument doc) {
if (paragraphList != null && paragraphList.size() > 0) {
for (XWPFParagraph paragraph : paragraphList) {
List<XWPFRun> runs = paragraph.getRuns();
if (runs.size() > 0) {
for (XWPFRun run : runs) {
String bflag = "";
String text = run.getText(0);
if (text != null) {
boolean isSetText = false;
for (Entry<String, Object> entry : param.entrySet()) {
String key = entry.getKey();
if (text.indexOf(key) != -1) {
isSetText = true;
Object value = entry.getValue();
if (value instanceof String) {// 文本替换
text = text.replace(key, value.toString());
} else if (value instanceof Map) {// 图片替换
text = text.replace(key, "");
Map pic = (Map) value;
int width = Integer.parseInt(pic.get("width").toString());
int height = Integer.parseInt(pic.get("height").toString());
int picType = getPictureType(pic.get("type").toString());
byte[] byteArray = (byte[]) pic.get("content");
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(byteArray);
try {
String s = doc.addPictureData(byteInputStream, picType);
doc.createPicture(doc.getAllPictures().size() - 1, width, height,
s,paragraph);
bflag = "break";
} catch (Exception e) {
getError("文本替换发生异常,异常是" + e.getMessage());
}
}
}
}
if (isSetText) {
run.setText(text, 0);
}
}
if (bflag == "break") {
break;
}
}
}
}
}
}
/**
* 替换段落里面的变量
*
* @param para 要替换的段落
* @param params 参数
*/
private void replaceInPara(XWPFParagraph para, Map<String, Object> params, CustomXWPFDocument doc) {
List<XWPFRun> runs;
Matcher matcher;
// if (this.matcher(para.getParagraphText()).find()) {
runs = para.getRuns();
int start = -1;
int end = -1;
String str = "";
for (int i = 0; i < runs.size(); i++) {
XWPFRun run = runs.get(i);
String runText = run.toString();
if ('$' == runText.charAt(0) && '{' == runText.charAt(1)) {
start = i;
}
if ((start != -1)) {
str += runText;
}
if ('}' == runText.charAt(runText.length() - 1)) {
if (start != -1) {
end = i;
break;
}
}
}
for (int i = start; i <= end; i++) {
para.removeRun(i);
i--;
end--;
}
for (Entry<String, Object> entry : params.entrySet()) {
String key = entry.getKey();
if (str.indexOf(key) != -1) {
Object value = entry.getValue();
if (value instanceof String) {
str = str.replace(key, value.toString());
para.createRun().setText(str, 0);
break;
} else if (value instanceof Map) {
str = str.replace(key, "");
Map pic = (Map) value;
int width = Integer.parseInt(pic.get("width").toString());
int height = Integer.parseInt(pic.get("height").toString());
int picType = getPictureType(pic.get("type").toString());
byte[] byteArray = (byte[]) pic.get("content");
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(byteArray);
try {
// int ind = doc.addPicture(byteInputStream,picType);
// doc.createPicture(ind, width , height,para);
String s = doc.addPictureData(byteInputStream, picType);
doc.createPicture(doc.getAllPictures().size() - 1, width, height,s, para);
para.createRun().setText(str, 0);
break;
} catch (Exception e) {
getError("文件替换发生异常,异常是" + e.getMessage());
}
}
}
}
// }
}
/**
* 为表格插入数据,行数不够添加新行
*
* @param table 需要插入数据的表格
* @param tableList 插入数据集合
*/
private static void insertTable(XWPFTable table, List<String[]> tableList) {
//删除占位符行数
table.removeRow(1);
if (CollUtil.isNotEmpty(tableList)) {
// 创建行,根据需要插入的数据添加新行,不处理表头
for (int i = 0; i < tableList.size(); i++) {
XWPFTableRow row = table.createRow();
List<XWPFTableCell> cells = row.getTableCells();
for (int j = 0; j < cells.size(); j++) {
String s = tableList.get(i)[j];
XWPFTableCell cell = cells.get(j);
cell.removeParagraph(0);
XWPFParagraph paragraph = cell.addParagraph();
paragraph.setAlignment(ParagraphAlignment.CENTER);
// 在段落中添加文本
XWPFRun run = paragraph.createRun();
run.setText(s);
}
}
}
}
/**
* 替换表格里面的变量
*
* @param doc 要替换的文档
* @param tableList 存放数据顺序要与表格一致
* @param params 参数
*/
private void replaceInTable(CustomXWPFDocument doc, Map<String, Object> params, List<List<String[]>> tableList) {
Iterator<XWPFTable> iterator = doc.getTablesIterator();
XWPFTable table;
List<XWPFTableRow> rows;
List<XWPFTableCell> cells;
List<XWPFParagraph> paras;
Integer num=0;
while (iterator.hasNext()) {
table = iterator.next();
if (table.getRows().size() > 1) {
// 判断表格是需要替换还是需要插入,判断逻辑有$为替换,表格无$为插入
if (this.matcher(table.getText()).find()||this.matcherS(table.getText()).find()) {
rows = table.getRows();
for (XWPFTableRow row : rows) {
cells = row.getTableCells();
for (XWPFTableCell cell : cells) {
List<XWPFParagraph> paragraphListTable = cell.getParagraphs();
processParagraphs(paragraphListTable, params, doc);
}
}
}else {
if (CollUtil.isNotEmpty(tableList.get(num))){
insertTable(table, tableList.get(num)); // 插入数据
}
num++;
}
}
}
}
/**
* 正则匹配字符串
*
* @param str
* @return
*/
private Matcher matcher(String str) {
Pattern pattern = Pattern.compile("\\$\\{(.+?)\\}", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
return matcher;
}
private Matcher matcherS(String str) {
Pattern pattern = Pattern.compile("\\$(.*?)\\$");
Matcher matcher = pattern.matcher(str);
return matcher;
}
/**
* 根据图片类型,取得对应的图片类型代码
*
* @param picType
* @return int
*/
private static int getPictureType(String picType) {
int res = CustomXWPFDocument.PICTURE_TYPE_PICT;
if (picType != null) {
if (picType.equalsIgnoreCase("image/png")) {
res = CustomXWPFDocument.PICTURE_TYPE_PNG;
} else if (picType.equalsIgnoreCase("image/dib")) {
res = CustomXWPFDocument.PICTURE_TYPE_DIB;
} else if (picType.equalsIgnoreCase("image/emf")) {
res = CustomXWPFDocument.PICTURE_TYPE_EMF;
} else if (picType.equalsIgnoreCase("image/jpg") || picType.equalsIgnoreCase("image/jpeg")) {
res = CustomXWPFDocument.PICTURE_TYPE_JPEG;
} else if (picType.equalsIgnoreCase("image/wmf")) {
res = CustomXWPFDocument.PICTURE_TYPE_WMF;
}
}
return res;
}
}

View File

@@ -135,11 +135,6 @@
<artifactId>message-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>harmonic-common</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

View File

@@ -7,8 +7,10 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csharmonic.param.CsPageParm;
import com.njcn.csharmonic.pojo.po.CsPageUser;
import com.njcn.csharmonic.pojo.vo.CsPageVO;
import com.njcn.csharmonic.service.CsPagePOService;
import com.njcn.csharmonic.service.CsPageUserService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -21,48 +23,68 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* (cs_page)表控制层
*
* @author xxxxx
*/
* (cs_page)表控制层
*
* @author xxxxx
*/
@RestController
@RequestMapping("/cspage")
@Api(tags = "组态项目页面")
@AllArgsConstructor
public class CsPagePOController extends BaseController {
public class CsPagePOController extends BaseController {
private final CsPagePOService csPagePOService;
private final CsPageUserService csPageUserService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增组态页面")
// @ApiImplicitParam(name = "csPageParm", value = "新增组态项目参数", required = true)
public HttpResult<Boolean> add( @Validated CsPageParm csPageParm){
public HttpResult<Boolean> add(@Validated CsPageParm csPageParm) {
String methodDescribe = getMethodDescribe("add");
boolean flag = csPagePOService.add (csPageParm);
boolean flag = csPagePOService.add(csPageParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/audit")
@ApiOperation("修改组态页面")
public HttpResult<Boolean> audit( @Validated CsPageParm.CsPageParmAuditParam auditParm){
public HttpResult<Boolean> audit(@Validated CsPageParm.CsPageParmAuditParam auditParm) {
String methodDescribe = getMethodDescribe("audit");
boolean save = csPagePOService.audit (auditParm);
boolean save = csPagePOService.audit(auditParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryPage")
@ApiOperation("组态页面分页查询")
@ApiImplicitParam(name = "csPageParam", value = "组态项目查询参数", required = true)
public HttpResult<IPage<CsPageVO>> queryPage(@RequestBody @Validated CsPageParm.CsPageParmQueryParam csPageParam ){
public HttpResult<IPage<CsPageVO>> queryPage(@RequestBody @Validated CsPageParm.CsPageParmQueryParam csPageParam) {
String methodDescribe = getMethodDescribe("queryPage");
IPage<CsPageVO> page = csPagePOService.queryPage (csPageParam);
IPage<CsPageVO> page = csPagePOService.queryPage(csPageParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/savePageIdWithUser")
@ApiOperation("保存组态界面与用户的关系")
public HttpResult<Boolean> savePageIdWithUser(CsPageUser csPageUser) {
String methodDescribe = getMethodDescribe("savePageIdWithUser");
boolean flag = csPageUserService.savePageIdWithUser(csPageUser);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getByUserId")
@ApiOperation("根据用户id获取组件信息")
public HttpResult<CsPageUser> getByUserId(String userId) {
String methodDescribe = getMethodDescribe("getByUserId");
CsPageUser csPageUser = csPageUserService.getByUserId(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csPageUser, methodDescribe);
}
}

Some files were not shown because too many files have changed in this diff Show More