48 Commits

Author SHA1 Message Date
xy
3727b5777e 1.新增工程项目管理接口
2.调整报表数据不对的问题
2026-01-30 15:21:07 +08:00
xy
c3cb9a5f85 报告兼容 2026-01-28 13:26:32 +08:00
xy
05ef7028c4 报表添加接线方式、一二次值判断 2026-01-28 08:44:45 +08:00
xy
736b0a6e60 调整overLimitMapper使用公共文件 2026-01-19 14:01:29 +08:00
cdf
cc63cead04 暂降监测点报告抽取公共方法 2026-01-19 11:29:53 +08:00
cdf
30bc3c7448 暂降监测点报告抽取公共方法 2026-01-17 20:26:28 +08:00
cdf
51a16c5701 监测点报告抽取公共方法 2026-01-17 13:40:29 +08:00
xy
4497699178 1.监测点运行状态数据调整;
2.暂态事件同步
2026-01-16 14:57:44 +08:00
xy
0ac51648f4 bug修复 2026-01-15 14:17:24 +08:00
xy
fb515cca9b bug修复 2026-01-15 13:32:29 +08:00
xy
14d77725aa 微调 2026-01-14 20:32:34 +08:00
xy
ee87ffb0d4 微调 2026-01-12 09:36:47 +08:00
xy
5ff8c946aa 组态新增压缩包文件上传下载功能 2026-01-09 16:57:22 +08:00
xy
cccc73f211 前置日志优化 2026-01-08 20:16:45 +08:00
xy
4882151ccd 台账添加监测位置 2026-01-07 20:53:24 +08:00
xy
b774b7ce91 基于云平台功能调整 2026-01-07 19:20:11 +08:00
xy
6b0feb1320 修改实时数据不显示问题 2025-12-26 11:25:51 +08:00
cdf
e92326c55d 报告bug解决 2025-12-26 10:19:45 +08:00
xy
7abbfd500b 微调 2025-12-25 20:45:47 +08:00
xy
77360ef468 Merge remote-tracking branch 'origin/master' 2025-12-25 20:29:52 +08:00
b38d3bad1b 组态添加全局的概念 2025-12-25 20:09:33 +08:00
cdf
27aebf2ca4 报告bug解决 2025-12-25 17:19:32 +08:00
cdf
9981b04ed6 APF治理效果bug 2025-12-24 14:29:05 +08:00
f8c9828369 1.微调 2025-12-23 17:11:55 +08:00
cdf
0d652b9f4d 报告调整 2025-12-23 17:09:22 +08:00
3ea67da152 Merge remote-tracking branch 'origin/master' 2025-12-23 14:42:38 +08:00
c7dce89d36 组态添加全局的概念 2025-12-23 14:42:32 +08:00
cdf
e7dbee2df5 微调 2025-12-23 13:49:10 +08:00
29168bbd9f 1.对象树接口 2025-12-23 13:41:55 +08:00
xy
56d88939c4 去除打印日志 2025-12-23 10:25:13 +08:00
bc6f3dca80 组态添加全局的概念 2025-12-23 08:49:46 +08:00
xy
2957188466 组态相关功能提交 2025-12-23 03:22:52 +08:00
cdf
2894a4780b 稳态报表功能适配台账 2025-12-22 19:56:21 +08:00
240ec304b0 1.报表bug修改 2025-12-22 14:52:20 +08:00
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
231 changed files with 18881 additions and 900 deletions

View File

@@ -4,18 +4,14 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.njcn.cloud.enums.app.UserCodeEnum;
import com.njcn.cloud.pojo.vo.AdminStatistic.Integrity;
import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo;
import com.njcn.cloud.service.AdminStatistic.DataIntegrityService;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.api.LineIntegrityClient;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.User;
import lombok.RequiredArgsConstructor;

View File

@@ -10,12 +10,14 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -54,7 +56,7 @@ public class StaticServiceImpl implements StaticService {
//获取终端信息
List<DevDetail> devDetails = generalDeviceInfoClient.getDevInfoByIds(new ArrayList<>()).getData();
//获取终端在线率
List<RStatOnlinerateVO> onlineRates = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
List<RStatOnlineRateVO> onlineRates = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
//异常终端数据
long count = devDetails.stream().filter(x -> 0==x.getComFlag()).count();
StaticInfo info=new StaticInfo();
@@ -63,14 +65,14 @@ public class StaticServiceImpl implements StaticService {
info.setOnlineRatez(data);
info.setComError(count);
List<StaticInfo.DevStatic> list=new ArrayList<>();
Map<String, Float> onlineRateMap = onlineRates.stream().collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate));
Map<String, BigDecimal> onlineRateMap = onlineRates.stream().collect(Collectors.toMap(RStatOnlineRateVO::getDevIndex, RStatOnlineRateVO::getOnlineRate));
StaticInfo.DevStatic devStatic;
for (DevDetail devDetail : devDetails) {
devStatic=new StaticInfo.DevStatic();
devStatic.setDevIndex(devDetail.getDevIndex());
devStatic.setDevName(devDetail.getDevName());
devStatic.setIp(devDetail.getIp());
devStatic.setOnlineRate(onlineRateMap.get(devDetail.getDevIndex()));
devStatic.setOnlineRate(onlineRateMap.get(devDetail.getDevIndex()).setScale(3, RoundingMode.HALF_UP).floatValue());
devStatic.setGdName(devDetail.getGdName());
devStatic.setSubName(devDetail.getBdzName());
devStatic.setTimeId(devDetail.getTimeID());
@@ -80,4 +82,4 @@ public class StaticServiceImpl implements StaticService {
return info;
}
}
}

View File

@@ -9,15 +9,18 @@ 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;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* @author xy
@@ -37,6 +40,10 @@ public interface CsLineFeignClient {
@PostMapping("/findByNdid")
HttpResult<List<CsLinePO>> findByNdid(@RequestParam("id") String id);
@GetMapping("/getCustomDetailByLineId")
HttpResult<Map<String,String>> getCustomDetailByLineId(@RequestParam("id") String id);
@PostMapping("/getPositionById")
HttpResult<String> getPositionById(@RequestParam("id") String id);
@@ -71,4 +78,10 @@ public interface CsLineFeignClient {
@PostMapping("/list")
HttpResult<List<CsLinePO>> list(@RequestBody CsLinePO param);
@PostMapping("/getLineDetailData")
HttpResult<LineDetailDataVO> getLineDetailData(@RequestParam("id") String id);
@GetMapping("/getSimpleLine")
HttpResult<List<CsLinePO>> getSimpleLine();
}

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.device.biz.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,12 +6,15 @@ 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;
import java.util.Map;
/**
* @author xy
@@ -52,6 +55,12 @@ public class CsLineClientFallbackFactory implements FallbackFactory<CsLineFeignC
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Map<String,String>> getCustomDetailByLineId(@RequestParam("id") String id) {
log.error("{}异常,降级处理,异常为:{}","根据id查询监测点",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> getPositionById(String id) {
log.error("{}异常,降级处理,异常为:{}","通过id查询监测点位置",cause.toString());
@@ -116,6 +125,18 @@ 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);
}
@Override
public HttpResult<List<CsLinePO>> getSimpleLine() {
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.device.biz.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

@@ -58,7 +58,7 @@ public interface DataParam {
String GOVERNANCE_SYSTEM = "治理系统";
String cldDev = "在线设备";
String cldDev = "监测设备";
String EvtParamPhase = "Evt_Param_Phase";

View File

@@ -55,4 +55,7 @@ public class AppProjectAddParm {
@ApiModelProperty(value="拓扑图模版id集合")
private List<String> topoIds;
@ApiModelProperty(value="排序")
private Integer sort;
}

View File

@@ -44,4 +44,7 @@ public class AppProjectAuditParm {
private List<String> topoIds;
private List<String> newTopoIds;
@ApiModelProperty(value="排序")
private Integer sort;
}

View File

@@ -53,6 +53,10 @@ public class CsEngineeringAddParm {
@ApiModelProperty(value = "描述")
private String description;
/**
* 描述
*/
@ApiModelProperty(value = "排序")
private Integer sort;
}

View File

@@ -54,6 +54,7 @@ public class CsEngineeringAuditParm {
@ApiModelProperty(value="0删除 1正常")
private String status;
@ApiModelProperty(value="排序")
private Integer sort;
}

View File

@@ -109,22 +109,41 @@ 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;
/**
* 监测位置
*/
private String position;

View File

@@ -23,31 +23,31 @@ public class DeviceExcelTemplete implements Serializable {
/**
* 装置名称
*/
@Excel(name = "装置名称", width = 15)
@Excel(name = "设备名称", width = 15)
private String name;
/**
* 网关识别码
*/
@Excel(name = "关识别码", width = 15)
@Excel(name = "络设备ID", width = 15)
private String ndid;
/**
* 装置类型(直连设备、网关设备、装置)
*/
@Excel(name = "装置类型(直连设备,网关设备)", width = 30)
@Excel(name = "设备类型(直连设备,网关设备、便携式设备", width = 30)
private String devType;
/**
* 装置型号pqs588、pqs680...
*/
@Excel(name = "装置型号", width = 15)
@Excel(name = "设备型号", width = 15)
private String devModel;
/**
* 装置接入方式mqtt、cloud
*/
@Excel(name = "装置接入方式mqtt、cloud", width = 25)
@Excel(name = "通讯协议MQTT、CLD", width = 25)
private String devAccessMethod;
/**

View File

@@ -57,5 +57,8 @@ public class AppProjectPO extends BaseEntity {
@TableField(value = "description")
private String description;
@TableField(value = "sort")
private Integer sort;
}

View File

@@ -64,5 +64,10 @@ public class CsEngineeringPO extends BaseEntity {
@TableField(value = "status")
private String status;
/**
* 排序
*/
@TableField(value = "sort")
private Integer sort;
}

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,59 @@
package com.njcn.csdevice.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author xy
* 日志信息
*/
@Data
public class EngineeringProjectRelationVo implements Serializable {
//工程信息
@ApiModelProperty("工程id")
private String engineeringId;
@ApiModelProperty("工程名称")
private String engineeringName;
@ApiModelProperty("区域")
private String engineeringArea;
@ApiModelProperty("工程备注")
private String engineeringRemark;
@ApiModelProperty("工程排序")
private Integer engineeringSort;
@ApiModelProperty("项目信息")
private List<ProjectInfo> projectInfoList;
//项目信息
@Data
public static class ProjectInfo implements Serializable {
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目地址")
private String projectArea;
@ApiModelProperty("项目备注")
private String projectRemark;
@ApiModelProperty("项目排序")
private Integer projectSort;
@ApiModelProperty("拓扑图信息")
private String topologyInfo;
}
}

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.vo.LineOverLimitVO;
import com.njcn.csdevice.service.IOverLimitService;
import com.njcn.device.biz.pojo.po.Overlimit;
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

@@ -67,7 +67,7 @@ public class IcdController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzFileByEventId")
@ApiOperation("指定事件补召波形")
@ApiOperation("指定事件补召波形指令下发")
@ApiImplicitParam(name = "eventId", value = "事件id", required = true)
public HttpResult<String> bzFileByEventId(@RequestParam String eventId){
String methodDescribe = getMethodDescribe("bzFileByEventId");
@@ -77,7 +77,7 @@ public class IcdController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzEvent")
@ApiOperation("补召事件")
@ApiOperation("补召事件指令下发")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> bzEvent(@RequestBody @Validated IcdBzParam param){
String methodDescribe = getMethodDescribe("bzEvent");
@@ -87,7 +87,7 @@ public class IcdController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzFile")
@ApiOperation("补召波形")
@ApiOperation("补召波形指令下发")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> bzFile(@RequestBody @Validated IcdBzParam param){
String methodDescribe = getMethodDescribe("bzFile");

View File

@@ -12,6 +12,7 @@ import com.njcn.csdevice.mapper.PqsDeviceUnitMapper;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.service.CsCommTerminalService;
import com.njcn.csdevice.service.CsDeviceUserPOService;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.CsLinePOService;
@@ -47,13 +48,8 @@ import java.util.stream.Collectors;
@Api(tags = "通用台账查询")
public class CsCommTerminalController extends BaseController {
private final PqsDeviceUnitMapper pqsDeviceUnitMapper;
private final CsDeviceUserPOService csDeviceUserPOService;
private final CsLinePOService csLinePOService;
private final UserFeignClient userFeignClient;
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
private final CsCommTerminalService commTerminalService;
/**
* 根据用户获取设备信息
@@ -64,7 +60,7 @@ public class CsCommTerminalController extends BaseController {
@ApiImplicitParam(name = "userId", value = "用户id", required = true)
public HttpResult<List<String>> getDevIdsByUser(@RequestParam("userId") String userId) {
String methodDescribe = getMethodDescribe("getDevIdsByUser");
List<String> devIds = commGetDevIds(userId);
List<String> devIds = commTerminalService.commGetDevIds(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devIds, methodDescribe);
}
@@ -77,19 +73,8 @@ public class CsCommTerminalController extends BaseController {
@ApiImplicitParam(name = "userId", value = "用户id", required = true)
public HttpResult<List<String>> getLineIdsByUser(@RequestParam("userId") String userId) {
String methodDescribe = getMethodDescribe("getLineIdsByUser");
List<String> devIds = commGetDevIds(userId);
if(CollUtil.isNotEmpty(devIds)){
List<CsLinePO> poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId).in(CsLinePO::getDeviceId,devIds)
.eq(CsLinePO::getStatus,DataStateEnum.ENABLE.getCode()).list();
if(CollUtil.isEmpty(poList)){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe);
}else {
List<String> result = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe);
}
List<String> lineIds = commTerminalService.getLineIdsByUser(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineIds, methodDescribe);
}
@@ -101,37 +86,12 @@ public class CsCommTerminalController extends BaseController {
@ApiOperation("根据登录用户id获取电能质量用户id集合")
@ApiImplicitParam(name = "userId", value = "用户id", required = true)
public HttpResult<List<String>> getPqUserIdsByUser(@RequestParam("userId") String userId) {
String methodDescribe = getMethodDescribe("getPqUserIdsByUser");
List<String> devIds = commGetDevIds(userId);
if(CollUtil.isNotEmpty(devIds)){
List<CsLinePO> poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId,CsLinePO::getMonitorUser).in(CsLinePO::getDeviceId,devIds)
.eq(CsLinePO::getStatus,DataStateEnum.ENABLE.getCode()).list();
if(CollUtil.isEmpty(poList)){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe);
}else {
List<String> result = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Collections.emptyList(), methodDescribe);
}
String methodDescribe = getMethodDescribe("getLineIdsByUser");
List<String> lineIds = commTerminalService.getPqUserIdsByUser(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineIds, methodDescribe);
}
private List<String> commGetDevIds(String userId){
UserVO userVO = userFeignClient.getUserById(userId).getData();
List<String> devIds;
if(userVO.getType().equals(UserType.SUPER_ADMINISTRATOR ) || userVO.getType().equals(UserType.ADMINISTRATOR )){
devIds = csEquipmentDeliveryService.getAll().stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
}else {
List<CsDeviceUserPO> devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId)
.and(w->w.eq(CsDeviceUserPO::getPrimaryUserId,userId).or().eq(CsDeviceUserPO::getSubUserId,userId))
.eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list();
devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList());
}
return devIds;
}
/**
* 通过监测点获取监测点数据单位
@@ -144,11 +104,7 @@ public class CsCommTerminalController extends BaseController {
@ApiImplicitParam(name = "lineId", value = "实体", required = true)
public HttpResult<PqsDeviceUnit> lineUnitDetail(@RequestParam("lineId") String lineId) {
String methodDescribe = getMethodDescribe("lineUnitDetail");
PqsDeviceUnit pqsDeviceUnit = pqsDeviceUnitMapper.selectById(lineId);
if(Objects.isNull(pqsDeviceUnit)){
pqsDeviceUnit = new PqsDeviceUnit();
}
PqsDeviceUnit pqsDeviceUnit = commTerminalService.lineUnitDetail(lineId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pqsDeviceUnit, methodDescribe);
}

View File

@@ -78,6 +78,16 @@ public class CsLedgerController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/objTree")
@ApiOperation("三层对象用户树")
public HttpResult<List<CsLedgerVO>> objTree(){
String methodDescribe = getMethodDescribe("getProjectTree");
List<CsLedgerVO> list = csLedgerService.objTree();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增台账信息")

View File

@@ -1,6 +1,5 @@
package com.njcn.csdevice.controller.line;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
@@ -8,11 +7,12 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.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.vo.PqSensitiveUserLineVO;
import com.njcn.csdevice.service.CsLinePOService;
import com.njcn.device.biz.mapper.OverLimitWlMapper;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.web.controller.BaseController;
@@ -27,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
/**
* Description:
@@ -43,7 +44,7 @@ import java.util.List;
public class CslineController extends BaseController {
private final CsLinePOService csLinePOService;
private final OverlimitMapper overlimitMapper;
private final OverLimitWlMapper overLimitWlMapper;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryLineById")
@@ -86,8 +87,8 @@ public class CslineController extends BaseController {
for(CsLinePO csLinePO: list){
Overlimit overlimit = COverlimitUtil.globalAssemble(csLinePO.getVolGrade().floatValue(),10f,10f,10f,0,1);
overlimit.setId(csLinePO.getLineId());
overlimitMapper.deleteById(csLinePO.getLineId());
overlimitMapper.insert(overlimit);
overLimitWlMapper.deleteById(csLinePO.getLineId());
overLimitWlMapper.insert(overlimit);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -103,6 +104,17 @@ public class CslineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineList, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getCustomDetailByLineId")
@ApiOperation("根据id查询监测点")
public HttpResult<Map<String,String>> getCustomDetailByLineId(@RequestParam String id){
String methodDescribe = getMethodDescribe("getCustomDetailByLineId");
Map<String,String> map = csLinePOService.getCustomDetailByLineId(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, map, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateLine")
@ApiOperation("修改监测点信息")
@@ -143,7 +155,17 @@ public class CslineController extends BaseController {
@ApiImplicitParam(name = "ids", value = "监测点id集合", required = true)
public HttpResult<List<Overlimit>> getOverLimitData(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("getOverLimitDataByIds");
List<Overlimit> result = overlimitMapper.selectBatchIds(ids);
List<Overlimit> result = overLimitWlMapper.selectBatchIds(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getOverLimitData")
@ApiOperation("根据监测点id获取国标限值")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<Overlimit> getOverLimitData(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getOverLimitData");
Overlimit result = overLimitWlMapper.selectById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@@ -175,10 +197,10 @@ public class CslineController extends BaseController {
String methodDescribe = getMethodDescribe("addCldLine");
csLinePOService.addCldLine(param);
//新增监测点限值
Overlimit overlimit = COverlimitUtil.globalAssemble(param.getVolGrade().floatValue(),10f,10f,10f,0,1);
Overlimit overlimit = COverlimitUtil.globalAssemble(param.getVolGrade().floatValue(),param.getProtocolCapacity().floatValue(),param.getDevCapacity().floatValue(),param.getShortCircuitCapacity().floatValue(),0,0);
overlimit.setId(param.getLineId());
overlimitMapper.deleteById(param.getLineId());
overlimitMapper.insert(overlimit);
overLimitWlMapper.deleteById(param.getLineId());
overLimitWlMapper.insert(overlimit);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -190,10 +212,10 @@ public class CslineController extends BaseController {
String methodDescribe = getMethodDescribe("updateCldLine");
csLinePOService.updateCldLine(param);
//修改监测点限值
Overlimit overlimit = COverlimitUtil.globalAssemble(param.getVolGrade().floatValue(),10f,10f,10f,0,1);
Overlimit overlimit = COverlimitUtil.globalAssemble(param.getVolGrade().floatValue(),param.getProtocolCapacity().floatValue(),param.getDevCapacity().floatValue(),param.getShortCircuitCapacity().floatValue(),0,0);
overlimit.setId(param.getLineId());
overlimitMapper.deleteById(param.getLineId());
overlimitMapper.insert(overlimit);
overLimitWlMapper.deleteById(param.getLineId());
overLimitWlMapper.insert(overlimit);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -204,6 +226,7 @@ public class CslineController extends BaseController {
public HttpResult<List<CsLinePO>> delCldLine(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("delCldLine");
csLinePOService.deleteCldLine(id);
overLimitWlMapper.deleteById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -257,10 +280,7 @@ public class CslineController extends BaseController {
@ApiImplicitParam(name = "param", value = "param", required = true)
public HttpResult<List<CsLinePO>> list(@RequestBody CsLinePO param) {
String methodDescribe = getMethodDescribe("list");
List<CsLinePO> list = csLinePOService.list(new LambdaQueryWrapper<CsLinePO>()
.eq(CsLinePO::getStatus, 1)
.eq(StrUtil.isNotBlank(param.getPosition()), CsLinePO::getPosition, param.getPosition())
.orderByAsc(CsLinePO::getName));
List<CsLinePO> list = csLinePOService.getLineList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@@ -279,7 +299,7 @@ public class CslineController extends BaseController {
@ApiOperation("获取敏感负荷用户监测点列表")
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
public HttpResult<Page<PqSensitiveUserLineVO>> getSensitiveUserLineList(@RequestBody BaseParam param) {
String methodDescribe = getMethodDescribe("getList");
String methodDescribe = getMethodDescribe("getSensitiveUserLineList");
Page<PqSensitiveUserLineVO> page = csLinePOService.getSensitiveUserLineList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
@@ -302,4 +322,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

@@ -11,8 +11,6 @@ import com.njcn.csdevice.pojo.param.CsEngineeringAuditParm;
import com.njcn.csdevice.pojo.param.CsEngineeringQueryPageParm;
import com.njcn.csdevice.pojo.param.CsEngineeringQueryParm;
import com.njcn.csdevice.pojo.po.CsEngineeringPO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.CsEngineeringVO;
import com.njcn.csdevice.service.CsEngineeringService;
import com.njcn.web.controller.BaseController;

View File

@@ -0,0 +1,100 @@
package com.njcn.csdevice.controller.project;
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.param.AppProjectAddParm;
import com.njcn.csdevice.pojo.param.AppProjectAuditParm;
import com.njcn.csdevice.pojo.param.CsEngineeringAddParm;
import com.njcn.csdevice.pojo.param.CsEngineeringAuditParm;
import com.njcn.csdevice.pojo.vo.EngineeringProjectRelationVo;
import com.njcn.csdevice.service.IEngineeringProjectService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author xy
* @date 2026/1/29
*/
@Slf4j
@RestController
@RequestMapping("/engineeringProjectRelation")
@Api(tags = " 工程信息管理(不分权限)")
@AllArgsConstructor
public class EngineeringProjectController extends BaseController {
private final IEngineeringProjectService csEngineeringService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addEngineering")
@ApiOperation("新增工程信息")
public HttpResult<Boolean> addEngineering(@Validated @RequestBody CsEngineeringAddParm csEngineeringAddParm){
String methodDescribe = getMethodDescribe("addEngineering");
boolean result = csEngineeringService.addEngineering(csEngineeringAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateEngineering")
@ApiOperation("修改工程信息")
public HttpResult<Boolean> updateEngineering(@Validated @RequestBody CsEngineeringAuditParm csEngineeringAuditParm){
String methodDescribe = getMethodDescribe("updateEngineering");
boolean result = csEngineeringService.updateEngineering(csEngineeringAuditParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/deleteEngineering")
@ApiOperation("删除工程信息")
public HttpResult<Boolean> deleteEngineering(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("deleteEngineering");
boolean result = csEngineeringService.deleteEngineering(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addProject")
@ApiOperation("新增项目信息")
public HttpResult<Boolean> addProject(@Validated @RequestBody AppProjectAddParm param){
String methodDescribe = getMethodDescribe("addProject");
boolean result = csEngineeringService.addProject(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateProject")
@ApiOperation("修改项目信息")
public HttpResult<Boolean> updateProject(@Validated @RequestBody AppProjectAuditParm param){
String methodDescribe = getMethodDescribe("updateProject");
boolean result = csEngineeringService.updateProject(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/deleteProject")
@ApiOperation("删除项目信息")
public HttpResult<Boolean> deleteProject(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("deleteProject");
boolean result = csEngineeringService.deleteProject(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/list")
@ApiOperation("查询工程信息列表")
public HttpResult<List<EngineeringProjectRelationVo>> getList(){
String methodDescribe = getMethodDescribe("getList");
List<EngineeringProjectRelationVo> result = csEngineeringService.getList();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -5,6 +5,7 @@ import com.njcn.csdevice.pojo.po.CsLinePO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
*
@@ -17,4 +18,7 @@ import java.util.List;
public interface CsLinePOMapper extends BaseMapper<CsLinePO> {
List<CsLinePO> findByNdid(@Param("id") String id);
Map<String,String> getCustomDetailByLineId(@Param("lineId")String lineId);
}

View File

@@ -1,22 +0,0 @@
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 org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2022-01-04
*/
@DS("sjzx")
@Mapper
public interface OverlimitMapper extends BaseMapper<Overlimit> {
}

View File

@@ -19,7 +19,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
line_id, dev_id, `name`, `position`, vol_grade, pt_ratio, ct_ratio, `status`, create_by,
line_id, dev_id, `name`, `position`, vol_grade, pt_ratio, ct_ratio, `status`, create_by,
create_time, update_by, update_time
</sql>
@@ -33,4 +33,24 @@
where
t0.ndid = #{id}
</select>
</mapper>
<select id="getCustomDetailByLineId" resultType="map">
SELECT
line.line_id as lineId,
line.name as lineName,
concat(round(line.pt_ratio,0), ':', round(IFNULL(line.pt2_ratio, 1), 0)) as pt,
concat(round(line.ct_ratio,0), ':', round(IFNULL(line.ct2_ratio, 1), 0)) as ct,
line.dev_capacity as Dev_Capacity,
line.short_circuit_capacity as Short_Capacity,
line.basic_capacity as Standard_Capacity,
line.protocol_capacity as Deal_Capacity,
line.vol_grade AS voltageLevel,
dataSet.data_level AS level
FROM
cs_line line
left JOIN cs_data_set dataSet on line.data_set_id = dataSet.id
WHERE
line.line_id = #{lineId}
</select>
</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

@@ -55,4 +55,11 @@ public interface AppProjectService extends IService<AppProjectPO> {
* @return
*/
List<AppProjectPO> getProjectByEngineering(List<String> list);
AppProjectPO add(AppProjectAddParm param);
AppProjectPO updateData(AppProjectAuditParm param);
boolean delete(String id);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.csdevice.service;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
public interface CsCommTerminalService {
List<String> getLineIdsByUser(String userId);
List<String> getPqUserIdsByUser(String userId);
PqsDeviceUnit lineUnitDetail(String lineId);
List<String> commGetDevIds(String userId);
}

View File

@@ -59,4 +59,11 @@ public interface CsEngineeringService extends IService<CsEngineeringPO>{
CsEngineeringPO queryEngineeringById(String id);
List<CsEngineeringPO> getUnlinkedEngineering(String userId);
CsEngineeringPO add(CsEngineeringAddParm csEngineeringAddParm);
CsEngineeringPO updateData(CsEngineeringAuditParm csEngineeringAuditParm);
boolean deleteData(String id);
}

View File

@@ -4,14 +4,16 @@ 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;
import java.util.List;
import java.util.Map;
/**
*
*
* Description:
* Date: 2023/5/18 14:01【需求编号】
*
@@ -38,6 +40,9 @@ public interface CsLinePOService extends IService<CsLinePO>{
*/
List<CsLinePO> findByNdid(String id);
Map<String,String> getCustomDetailByLineId(String lineId);
/**
* 更新监测点信息
* @param csLineParam
@@ -83,4 +88,13 @@ 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);
List<CsLinePO> getLineList(CsLinePO param);
}

View File

@@ -32,7 +32,7 @@ public interface ICsLedgerService extends IService<CsLedger> {
List<CsLedgerVO> getLineTree();
/**
* 终端三层树
* 终端三层树
* @return
*/
List<CsLedgerVO> getDeviceTree();
@@ -77,6 +77,9 @@ public interface ICsLedgerService extends IService<CsLedger> {
List<CsLedgerVO> getztProjectTree();
List<CsLedgerVO> objTree();
/**
* 根据设备集合获取项目和工程
* @param id

View File

@@ -0,0 +1,35 @@
package com.njcn.csdevice.service;
import com.njcn.csdevice.pojo.param.AppProjectAddParm;
import com.njcn.csdevice.pojo.param.AppProjectAuditParm;
import com.njcn.csdevice.pojo.param.CsEngineeringAddParm;
import com.njcn.csdevice.pojo.param.CsEngineeringAuditParm;
import com.njcn.csdevice.pojo.vo.EngineeringProjectRelationVo;
import java.util.List;
/**
* <p>
* 组和指标关系表 服务类
* </p>
*
* @author xuyang
* @since 2023-06-19
*/
public interface IEngineeringProjectService {
boolean addEngineering(CsEngineeringAddParm csEngineeringAddParm);
boolean updateEngineering(CsEngineeringAuditParm csEngineeringAuditParm);
boolean deleteEngineering(String id);
boolean addProject(AppProjectAddParm param);
boolean updateProject(AppProjectAuditParm param);
boolean deleteProject(String id);
List<EngineeringProjectRelationVo> getList();
}

View File

@@ -0,0 +1,28 @@
package com.njcn.csdevice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.vo.LineOverLimitVO;
import com.njcn.device.biz.pojo.po.Overlimit;
/**
* <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

@@ -1,9 +1,9 @@
package com.njcn.csdevice.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.stream.CollectorUtil;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,7 +17,6 @@ import com.njcn.csdevice.pojo.param.*;
import com.njcn.csdevice.pojo.po.*;
import com.njcn.csdevice.pojo.vo.AppProjectVO;
import com.njcn.csdevice.pojo.vo.AppTopologyDiagramVO;
import com.njcn.csdevice.pojo.vo.CsLineTopologyTemplateVO;
import com.njcn.csdevice.service.AppProjectService;
import com.njcn.csdevice.service.AppTopologyDiagramService;
import com.njcn.csdevice.service.CsLineTopologyTemplateService;
@@ -367,4 +366,42 @@ class AppProjectServiceImpl extends ServiceImpl<AppProjectMapper, AppProjectPO>
}
return result;
}
@Override
public AppProjectPO add(AppProjectAddParm param) {
AppProjectPO po = new AppProjectPO ( );
List<AppProjectPO> list = this.lambdaQuery().eq(AppProjectPO::getName, param.getName()).eq(AppProjectPO::getStatus, "1").list();
if(!list.isEmpty()){
throw new BusinessException("新增失败,项目名重复");
}
BeanUtils.copyProperties (param, po);
po.setStatus ("1");
this.save(po);
return po;
}
@Override
public AppProjectPO updateData(AppProjectAuditParm param) {
List<AppProjectPO> list = this.lambdaQuery()
.eq(AppProjectPO::getName, param.getName())
.eq(AppProjectPO::getStatus, "1")
.ne(AppProjectPO::getId, param.getId())
.list();
if(!list.isEmpty()){
throw new BusinessException("修改失败,项目名重复");
}
AppProjectPO po = new AppProjectPO ();
BeanUtils.copyProperties (param, po);
this.updateById(po);
return po;
}
@Override
public boolean delete(String id) {
LambdaUpdateWrapper<AppProjectPO> queryWrapper = new LambdaUpdateWrapper<>();
queryWrapper.eq(AppProjectPO::getId,id).set(AppProjectPO::getStatus,"0");
return this.update(queryWrapper);
}
}

View File

@@ -0,0 +1,102 @@
package com.njcn.csdevice.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.csdevice.mapper.CsLinePOMapper;
import com.njcn.csdevice.mapper.PqsDeviceUnitMapper;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.service.CsCommTerminalService;
import com.njcn.csdevice.service.CsDeviceUserPOService;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.constant.UserType;
import com.njcn.user.pojo.vo.UserVO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Author: cdf
* @CreateTime: 2025-12-23
* @Description:
*/
@Service
@RequiredArgsConstructor
public class CsCommTerminalServiceImpl implements CsCommTerminalService {
private final PqsDeviceUnitMapper pqsDeviceUnitMapper;
private final CsDeviceUserPOService csDeviceUserPOService;
private final CsLinePOMapper csLinePOMapper;
private final UserFeignClient userFeignClient;
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
@Override
public List<String> getLineIdsByUser(String userId) {
List<String> result = new ArrayList<>();
List<String> devIds = commGetDevIds(userId);
if (CollUtil.isEmpty(devIds)) {
return result;
}
LambdaQueryWrapper<CsLinePO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(CsLinePO::getLineId).in(CsLinePO::getDeviceId, devIds)
.eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode());
List<CsLinePO> poList = csLinePOMapper.selectList(lambdaQueryWrapper);
if (CollUtil.isNotEmpty(poList)) {
result = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList());
}
return result;
}
@Override
public List<String> getPqUserIdsByUser(String userId) {
List<String> result = new ArrayList<>();
List<String> devIds = commGetDevIds(userId);
if (CollUtil.isEmpty(devIds)) {
return result;
}
LambdaQueryWrapper<CsLinePO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(CsLinePO::getLineId, CsLinePO::getMonitorUser).in(CsLinePO::getDeviceId, devIds)
.eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode());
List<CsLinePO> poList =csLinePOMapper.selectList(lambdaQueryWrapper);
if (CollUtil.isNotEmpty(poList)) {
result = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList());
}
return result;
}
@Override
public PqsDeviceUnit lineUnitDetail(String lineId) {
PqsDeviceUnit pqsDeviceUnit = pqsDeviceUnitMapper.selectById(lineId);
if(Objects.isNull(pqsDeviceUnit)){
pqsDeviceUnit = new PqsDeviceUnit();
}
return pqsDeviceUnit;
}
@Override
public List<String> commGetDevIds(String userId) {
UserVO userVO = userFeignClient.getUserById(userId).getData();
List<String> devIds;
if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) {
devIds = csEquipmentDeliveryService.getAll().stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
} else {
List<CsDeviceUserPO> devList = csDeviceUserPOService.lambdaQuery().select(CsDeviceUserPO::getDeviceId)
.and(w -> w.eq(CsDeviceUserPO::getPrimaryUserId, userId).or().eq(CsDeviceUserPO::getSubUserId, userId))
.eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode()).list();
devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList());
}
return devIds;
}
}

View File

@@ -22,7 +22,7 @@ import java.util.Optional;
import java.util.stream.Collectors;
/**
*
*
* Description:
* Date: 2023/9/27 10:29【需求编号】
*
@@ -50,12 +50,12 @@ public class CsDevCapacityPOServiceImpl extends ServiceImpl<CsDevCapacityPOMappe
public Double getDevCapacity(String id) {
List<CsLinePO> csLinePOS = csLinePOService.queryByDevId(id);
String areaId = dicDataFeignClient.getDicDataByCode(DicDataEnum.OUTPUT_SIDE.getCode()).getData().getId();
//String areaId = dicDataFeignClient.getDicDataByCode(DicDataEnum.OUTPUT_SIDE.getCode()).getData().getId();
Optional.ofNullable(csLinePOS).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
List<CsLinePO> collect1 = csLinePOS.stream().filter(temp -> Objects.equals(areaId, temp.getPosition())).collect(Collectors.toList());
//Optional.ofNullable(csLinePOS).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
//List<CsLinePO> collect1 = csLinePOS.stream().filter(temp -> Objects.equals(areaId, temp.getPosition())).collect(Collectors.toList());
/*治理侧监测点*/
CsLinePO csLinePO = collect1.get(0);
CsLinePO csLinePO = csLinePOS.get(0);
CsDevCapacityPO one = this.lambdaQuery().eq(CsDevCapacityPO::getLineId, csLinePO.getLineId()).eq(CsDevCapacityPO::getCldid, 0).one();
// Optional.ofNullable(one).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.DATA_MISSING));
if(Objects.isNull(one)){

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -259,6 +260,43 @@ public class CsEngineeringServiceImpl extends ServiceImpl<CsEngineeringMapper, C
return result;
}
@Override
public CsEngineeringPO add(CsEngineeringAddParm csEngineeringAddParm) {
List<CsEngineeringPO> list = this.lambdaQuery().eq(CsEngineeringPO::getName, csEngineeringAddParm.getName()).eq(CsEngineeringPO::getStatus, "1").list();
if(!list.isEmpty()){
throw new BusinessException("新增失败,工程名重复");
}
//新增工程
CsEngineeringPO po = new CsEngineeringPO ();
BeanUtils.copyProperties (csEngineeringAddParm, po);
po.setStatus ("1");
this.save(po);
return po;
}
@Override
public CsEngineeringPO updateData(CsEngineeringAuditParm csEngineeringAuditParm) {
List<CsEngineeringPO> list = this.lambdaQuery()
.eq(CsEngineeringPO::getName, csEngineeringAuditParm.getName())
.eq(CsEngineeringPO::getStatus, "1")
.ne(CsEngineeringPO::getId, csEngineeringAuditParm.getId())
.list();
if(!list.isEmpty()){
throw new BusinessException("修改失败,工程名重复");
}
CsEngineeringPO po = new CsEngineeringPO();
BeanUtils.copyProperties(csEngineeringAuditParm, po);
this.updateById(po);
return po;
}
@Override
public boolean deleteData(String id) {
LambdaUpdateWrapper<CsEngineeringPO> queryWrapper = new LambdaUpdateWrapper<>();
queryWrapper.eq(CsEngineeringPO::getId,id).set(CsEngineeringPO::getStatus,"0");
return this.update(queryWrapper);
}
public String getAreaById(String id){

View File

@@ -117,8 +117,12 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
@Transactional(rollbackFor = {Exception.class})
public CsEquipmentDeliveryPO save(CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm) {
boolean result;
CsEquipmentDeliveryPO one = this.lambdaQuery().eq(CsEquipmentDeliveryPO::getName, csEquipmentDeliveryAddParm.getName()).ne(CsEquipmentDeliveryPO::getRunStatus, 0).one();
if(Objects.nonNull (one)){
List<CsEquipmentDeliveryPO> one = this.lambdaQuery()
.eq(CsEquipmentDeliveryPO::getName, csEquipmentDeliveryAddParm.getName())
.ne(CsEquipmentDeliveryPO::getRunStatus, 0)
.eq(CsEquipmentDeliveryPO::getDevAccessMethod, "MQTT")
.list();
if(CollUtil.isNotEmpty(one)){
throw new BusinessException ("设备名称不能重复");
}
StringUtil.containsSpecialCharacters(csEquipmentDeliveryAddParm.getNdid());
@@ -259,12 +263,14 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
CsEquipmentDeliveryPO csEquipmentDeliveryPo = new CsEquipmentDeliveryPO();
BeanUtils.copyProperties (csEquipmentDeliveryAuditParm, csEquipmentDeliveryPo);
result = this.updateById(csEquipmentDeliveryPo);
//修改台账树中的设备名称
//如果是已经接入的设备需要修改台账树中的设备名称
CsLedger csLedger = csLedgerService.findDataById(csEquipmentDeliveryAuditParm.getId());
CsLedgerParam.Update csLedgerParam = new CsLedgerParam.Update();
BeanUtils.copyProperties (csLedger, csLedgerParam);
csLedgerParam.setName(csEquipmentDeliveryAuditParm.getName());
csLedgerService.updateLedgerTree(csLedgerParam);
if (ObjectUtil.isNotNull(csLedger)) {
CsLedgerParam.Update csLedgerParam = new CsLedgerParam.Update();
BeanUtils.copyProperties (csLedger, csLedgerParam);
csLedgerParam.setName(csEquipmentDeliveryAuditParm.getName());
csLedgerService.updateLedgerTree(csLedgerParam);
}
if (result) {
refreshDeviceDataCache();
if (!Objects.equals(po.getUsageStatus(),csEquipmentDeliveryAuditParm.getUsageStatus())) {
@@ -435,8 +441,9 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
}
deviceManagerVo.setDataSetList(dataSetList);
List<CsLinePO> csLinePOS = csLinePOService.findByNdid(csEquipmentDeliveryPo.getNdid());
if(!csLinePOS.isEmpty() && csLinePOS.get(0)!=null){
deviceManagerVo.setTime(csLinePOService.findByNdid(csEquipmentDeliveryPo.getNdid()).get(0).getCreateTime());
if(!csLinePOS.isEmpty()){
Optional<CsLinePO> earliest = csLinePOS.stream().min(Comparator.comparing(CsLinePO::getCreateTime));
deviceManagerVo.setTime(earliest.map(CsLinePO::getCreateTime).orElse(null));
}
}
}
@@ -935,9 +942,9 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
devList.forEach(item->{item.setRunStatus(1);});
this.updateBatchById(devList);
//修改监测点运行状态
List<String> devIdList = devList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
List<CsLinePO> lineList = csLinePOService.getLinesByDevList(devIdList);
csLinePOService.updateCldLineStatus(lineList,2);
//List<String> devIdList = devList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
//List<CsLinePO> lineList = csLinePOService.getLinesByDevList(devIdList);
//csLinePOService.updateCldLineStatus(lineList,2);
}
}
@@ -951,9 +958,10 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
if (ObjectUtil.isNotNull(po)) {
po.setRunStatus(status);
this.updateById(po);
//这边是监测点的运行状态 不是通讯状态,所以不要修改,通讯状态跟着设备的通讯状态来
//修改监测点运行状态
List<CsLinePO> lineList = csLinePOService.getLinesByDevList(Collections.singletonList(po.getId()));
csLinePOService.updateCldLineStatus(lineList,status==1?2:0);
//List<CsLinePO> lineList = csLinePOService.getLinesByDevList(Collections.singletonList(po.getId()));
//csLinePOService.updateCldLineStatus(lineList,status==1?2:0);
}
}
@@ -990,17 +998,33 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
public List<CsEquipmentDeliveryPO> getRunPortableDev(String userId) {
List<CsEquipmentDeliveryPO> result = new ArrayList<>();
DictTreeVO vo = dictTreeFeignClient.queryByCode(DicDataEnum.PORTABLE.getCode()).getData();
if (ObjectUtil.isNotNull(vo)) {
LambdaQueryWrapper<CsEquipmentDeliveryPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(CsEquipmentDeliveryPO::getDevType,vo.getId())
.ne(CsEquipmentDeliveryPO::getRunStatus,0)
.eq(CsEquipmentDeliveryPO::getUsageStatus,1);
//获取用户已经绑定的便携式设备
List<String> devList = csDeviceUserPOService.findDevByUserId(userId);
if (CollectionUtil.isNotEmpty(devList)) {
lambdaQueryWrapper.notIn(CsEquipmentDeliveryPO::getId,devList);
if (ObjectUtil.isNull(vo)) {
throw new BusinessException("便携式设备类型字典缺失");
}
LambdaQueryWrapper<CsEquipmentDeliveryPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(CsEquipmentDeliveryPO::getDevType,vo.getId())
.ne(CsEquipmentDeliveryPO::getRunStatus,0)
.eq(CsEquipmentDeliveryPO::getUsageStatus,1);
//获取用户已经绑定的便携式设备
List<String> devList = csDeviceUserPOService.findDevByUserId(userId);
if (CollectionUtil.isNotEmpty(devList)) {
lambdaQueryWrapper.notIn(CsEquipmentDeliveryPO::getId,devList);
}
result = this.list(lambdaQueryWrapper);
if (CollectionUtil.isNotEmpty(result)) {
//获取已经接入过系统的设备,未接入的不给分配
LambdaQueryWrapper<CsLedger> queryWrapper = new LambdaQueryWrapper<>();
List<String> ids = result.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
queryWrapper.in(CsLedger::getId,ids);
List<CsLedger> list = csLedgerService.list(queryWrapper);
if (CollectionUtil.isNotEmpty(list)) {
Set<String> idSet = list.stream()
.map(CsLedger::getId)
.collect(Collectors.toSet());
return result.stream()
.filter(data -> idSet.contains(data.getId()))
.collect(Collectors.toList());
}
result = this.list(lambdaQueryWrapper);
}
return result;
}

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;
@@ -19,7 +20,10 @@ import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.constant.DataParam;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.enums.LineBaseEnum;
import com.njcn.csdevice.mapper.*;
import com.njcn.csdevice.mapper.CsDataArrayMapper;
import com.njcn.csdevice.mapper.CsDataSetMapper;
import com.njcn.csdevice.mapper.CsGroArrMapper;
import com.njcn.csdevice.mapper.CsGroupMapper;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.param.EnergyBaseParam;
import com.njcn.csdevice.pojo.po.*;
@@ -37,6 +41,7 @@ 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.mapper.OverLimitWlMapper;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.dto.EventDataSetDTO;
@@ -91,7 +96,7 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
private final EvtDataService evtDataService;
private final DecimalFormat df = new DecimalFormat("#0.00");
private final EleEvtFeignClient eleEvtFeignClient;
private final OverlimitMapper overlimitMapper;
private final OverLimitWlMapper overLimitWlMapper;
private final CsDataSetMapper csDataSetMapper;
private final EventFeignClient eventFeignClient;
private final InfluxDbParamUtil influxDbParamUtil;
@@ -580,7 +585,7 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
@Override
public List<ThdDataTdVO> getDeviceTrendData(String devId, String lineId,String groupId) {
List<ThdDataTdVO> data = new ArrayList();
List<Overlimit> overlimits = overlimitMapper.selectBatchIds(Arrays.asList(lineId));
List<Overlimit> overlimits = overLimitWlMapper.selectBatchIds(Arrays.asList(lineId));
List<CsLinePO> finalCsLinePOList = csLineFeignClient.queryLineById(Arrays.asList(lineId)).getData();
List<CsEquipmentDeliveryDTO> data1 = equipmentFeignClient.queryDeviceById(Stream.of(devId).collect(Collectors.toList())).getData();
//便携式设备-稳态指标-实时数据-指标
@@ -794,7 +799,7 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
List<ThdDataVO> result = new ArrayList<>();
CsLinePO finalCsLinePO = csLineFeignClient.getById(trendDataQueryParam.getLineId()).getData();
CsDataSet csDataSet = csDataSetMapper.selectOne(new LambdaQueryWrapper<CsDataSet>().eq(CsDataSet::getId,finalCsLinePO.getDataSetId()));
if(Objects.isNull(csDataSet) || StrUtil.isBlank(csDataSet.getDataLevel())){
if(Objects.isNull(csDataSet) || StrUtil.isBlank(csDataSet.getDataLevel())) {
throw new BusinessException("当前测点数据集主要信息缺失,请联系管理员排查(测点表里面数据集id缺失)");
}
Double ct = finalCsLinePO.getCtRatio();
@@ -942,13 +947,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);
Overlimit overlimit = overLimitWlMapper.selectById(finalCsLinePO.getLineId());
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();
@@ -1123,7 +1131,7 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
} else {
result.addAll(dataList);
}
}
}
return result;
@@ -1132,6 +1140,9 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
@Override
public Map<String, List<ThdDataVO>> sensitiveUserTrendData(SensitiveUserTrendDataQueryParam param) {
Map<String, List<ThdDataVO>> result = new HashMap<>();
if (Objects.isNull(param.getSensitiveUserId())) {
return result;
}
result.put("before", new ArrayList<>());
result.put("after", new ArrayList<>());
String sensitiveUserId = param.getSensitiveUserId();
@@ -1151,7 +1162,9 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
List<SensitiveUserTrendDataQueryParam> paramList = param.getList();
List<TrendDataQueryParam> indexList = paramList.stream().map(item -> {
TrendDataQueryParam queryParam = new TrendDataQueryParam();
queryParam.setFrequency(item.getFrequency());
if (ObjectUtil.isNotNull(param.getHarmonicCount())) {
queryParam.setFrequency(String.valueOf(param.getHarmonicCount()));
}
queryParam.setStatisticalId(item.getStatisticalId());
return queryParam;
}).collect(Collectors.toList());

View File

@@ -4,12 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.csdevice.constant.DataParam;
import com.njcn.csdevice.controller.project.EngineeringController;
import com.njcn.csdevice.enums.LineBaseEnum;
import com.njcn.csdevice.mapper.*;
import com.njcn.csdevice.pojo.dto.DevDetailDTO;
@@ -18,13 +19,18 @@ import com.njcn.csdevice.pojo.param.CsLedgerParam;
import com.njcn.csdevice.pojo.po.*;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.service.*;
import com.njcn.csharmonic.api.PqSensitiveUserFeignClient;
import com.njcn.csharmonic.pojo.po.PqSensitiveUser;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.Area;
import com.njcn.system.pojo.vo.DictTreeVO;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.enums.AppRoleEnum;
import com.njcn.user.pojo.constant.UserType;
import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
@@ -57,8 +63,10 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper;
private final ICsDataSetService csDataSetService;
private final DictTreeFeignClient dictTreeFeignClient;
private final EngineeringController engineeringController;
private final CsDeviceUserPOMapper csDeviceUserPOMapper;
private final PqSensitiveUserFeignClient pqSensitiveUserFeignClient;
private final UserFeignClient userFeignClient;
@Override
public List<CsLedgerVO> getLedgerTree() {
@@ -104,7 +112,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
.forEach(zhiLianDevice::add)
);
}
engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList());
engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
Map<String, CsEquipmentDeliveryPO> poMap = allList.stream()
@@ -148,14 +156,14 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
.peek(
item -> {
item.setType("line");
String index = item.getId().substring(item.getId().length()-1);
if (Objects.equals(index,"0")) {
String index = item.getId().substring(item.getId().length() - 1);
if (Objects.equals(index, "0")) {
item.setLineType(0);
} else {
item.setLineType(1);
}
LambdaQueryWrapper<CsLinePO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsLinePO::getLineId,item.getId()).eq(CsLinePO::getStatus,1);
queryWrapper.eq(CsLinePO::getLineId, item.getId()).eq(CsLinePO::getStatus, 1);
CsLinePO po = csLinePOService.getOne(queryWrapper);
item.setConType(po.getConType());
}
@@ -201,16 +209,16 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
List<CsLedgerVO> ledger;
String role = RequestUtil.getUserRole();
List<String> roles = JSONArray.parseArray(role, String.class);
if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode())){
if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode()) || roles.contains(AppRoleEnum.REGULAR_USER.getCode())){
ledger = allList.stream()
.filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0"))
.collect(Collectors.toList());
} else {
LambdaQueryWrapper<CsDeviceUserPO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId,RequestUtil.getUserIndex());
queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId, RequestUtil.getUserIndex());
List<CsDeviceUserPO> list1 = csDeviceUserPOMapper.selectList(queryWrapper);
List<String> result = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list1)){
if (CollectionUtil.isNotEmpty(list1)) {
result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList());
}
//针对未启用的装置判断
@@ -269,6 +277,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
}
return tree;
}
//剔除未接入的设备(根据status判断不太稳,所有这里直接判断该设备有没有对应的模板指标)
private void checkDevSetData(List<CsLedgerVO> ledgerVOS) {
Iterator<CsLedgerVO> iterator = ledgerVOS.iterator();
@@ -328,7 +337,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
);
}
engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList());
engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
Map<String, CsEquipmentDeliveryPO> poMap = allList.stream()
@@ -404,16 +413,16 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
List<CsLedgerVO> ledger;
String role = RequestUtil.getUserRole();
List<String> roles = JSONArray.parseArray(role, String.class);
if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode())){
if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode()) || roles.contains(AppRoleEnum.REGULAR_USER.getCode())){
ledger = allList.stream()
.filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0"))
.collect(Collectors.toList());
} else {
LambdaQueryWrapper<CsDeviceUserPO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId,RequestUtil.getUserIndex());
queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId, RequestUtil.getUserIndex());
List<CsDeviceUserPO> list1 = csDeviceUserPOMapper.selectList(queryWrapper);
List<String> result = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list1)){
if (CollectionUtil.isNotEmpty(list1)) {
result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList());
}
//针对未启用的装置判断
@@ -475,11 +484,11 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
@Override
public CsLedger addLedgerTree(CsLedgerParam csLedgerParam) {
CsLedger fatherCsLedger = this.lambdaQuery().eq(CsLedger::getId,csLedgerParam.getPid()).one();
CsLedger fatherCsLedger = this.lambdaQuery().eq(CsLedger::getId, csLedgerParam.getPid()).one();
CsLedger csLedger = new CsLedger();
BeanUtils.copyProperties(csLedgerParam,csLedger);
BeanUtils.copyProperties(csLedgerParam, csLedger);
csLedger.setState(1);
if (Objects.equals(csLedgerParam.getPid(),"9999999")){
if (Objects.equals(csLedgerParam.getPid(), "9999999")) {
csLedger.setPid("0");
csLedger.setPids("0");
} else {
@@ -491,7 +500,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
@Override
public void deleteLedgerTree(String id) {
CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId,id).one();
CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId, id).one();
csLedger.setState(0);
this.updateById(csLedger);
}
@@ -506,8 +515,8 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
@Override
public String findDevByLineId(String lineId) {
String deviceId = null;
CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId,lineId).eq(CsLedger::getState,1).one();
if (!Objects.isNull(csLedger)){
CsLedger csLedger = this.lambdaQuery().eq(CsLedger::getId, lineId).eq(CsLedger::getState, 1).one();
if (!Objects.isNull(csLedger)) {
deviceId = csLedger.getPid();
}
return deviceId;
@@ -515,7 +524,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
@Override
public CsLedger findDataById(String id) {
return this.lambdaQuery().eq(CsLedger::getId,id).eq(CsLedger::getState,1).one();
return this.lambdaQuery().eq(CsLedger::getId, id).eq(CsLedger::getState, 1).one();
}
@Override
@@ -523,12 +532,12 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
List<CsLedgerVO> engineeringList = new ArrayList<>();
List<CsLedgerVO> allList = this.baseMapper.getAll();
List<String> roleengineer = roleEngineerDevService.getRoleengineer();
engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList());
engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
QueryWrapper<AppTopologyDiagramPO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status","1");
queryWrapper.eq("status", "1");
List<AppTopologyDiagramPO> appTopologyDiagramPOS = appTopologyDiagramMapper.selectList(queryWrapper);
projectList.forEach(temp->{
projectList.forEach(temp -> {
AppProjectPO appProjectPO = appProjectMapper.selectById(temp.getId());
temp.setArea(appProjectPO.getArea());
temp.setRemark(appProjectPO.getDescription());
@@ -544,13 +553,13 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
temp.setChildren(collect);
});
engineeringList.forEach(eng -> {
CsEngineeringPO csEngineeringPO = csEngineeringMapper.selectById(eng.getId());
eng.setArea(this.getAreaById(csEngineeringPO.getProvince())+this.getAreaById(csEngineeringPO.getCity()));
eng.setProvinceId(csEngineeringPO.getProvince());
eng.setCityId(csEngineeringPO.getCity());
eng.setRemark(csEngineeringPO.getDescription());
eng.setChildren(getChildren(eng, projectList));
}
CsEngineeringPO csEngineeringPO = csEngineeringMapper.selectById(eng.getId());
eng.setArea(this.getAreaById(csEngineeringPO.getProvince()) + this.getAreaById(csEngineeringPO.getCity()));
eng.setProvinceId(csEngineeringPO.getProvince());
eng.setCityId(csEngineeringPO.getCity());
eng.setRemark(csEngineeringPO.getDescription());
eng.setChildren(getChildren(eng, projectList));
}
);
return engineeringList;
@@ -566,14 +575,14 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
DevDetailDTO device = new DevDetailDTO();
CsLedger dev = this.findDataById(devId);
//如果是便携式设备pid为0,项目,工程都设置为/
if(Objects.equals(dev.getPid(),"0")){
if (Objects.equals(dev.getPid(), "0")) {
device.setEquipmentName(dev.getName());
device.setEquipmentId(devId);
device.setProjectId("/");
device.setProjectName("/");
device.setEngineeringid("/");
device.setEngineeringName("/");
}else {
} else {
device.setEquipmentName(dev.getName());
device.setEquipmentId(devId);
CsLedger project = this.findDataById(dev.getPid());
@@ -587,7 +596,6 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
return device;
}
@Override
public List<CsLedgerVO> getztProjectTree() {
List<CsLedgerVO> engineeringList;
@@ -595,93 +603,361 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
/*获取用户工程,设备信息过滤*/
List<String> roleengineer = roleEngineerDevService.getRoleengineer();
List<String> device = roleEngineerDevService.getDevice();
engineeringList = allList.stream().filter(item->roleengineer.contains(item.getId())).collect(Collectors.toList());
List<String> zhiLianDevice = new ArrayList<>();
List<String> cldDevice = new ArrayList<>();
if (CollectionUtil.isNotEmpty(device)) {
List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryMapper.selectBatchIds(device);
DictTreeVO vo1 = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData();
Optional.ofNullable(vo1)
.map(DictTreeVO::getId)
.ifPresent(id -> csEquipmentDeliveryPOS.stream()
.filter(item -> Objects.equals(item.getDevType(), id))
.map(CsEquipmentDeliveryPO::getId)
.forEach(cldDevice::add)
);
DictTreeVO vo2 = dictTreeFeignClient.queryByCode(DicDataEnum.CONNECT_DEV.getCode()).getData();
Optional.ofNullable(vo2)
.map(DictTreeVO::getId)
.ifPresent(id -> csEquipmentDeliveryPOS.stream()
.filter(item -> Objects.equals(item.getDevType(), id))
.map(CsEquipmentDeliveryPO::getId)
.forEach(zhiLianDevice::add)
);
}
engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
List<CsLedgerVO> deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(),"0")).
peek(
temp->{
CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId());
temp.setComFlag(po.getRunStatus());
temp.setNDId(po.getNdid());
temp.setType("device");
}
).
sorted(Comparator.comparing(CsLedgerVO::getSort))
.collect(Collectors.toList());
checkDevSetData(deviceList);
projectList.forEach(pro -> pro.setChildren(getChildren(pro, deviceList)));
engineeringList.forEach(eng -> eng.setChildren(getChildren(eng, projectList)));
Map<String, CsEquipmentDeliveryPO> poMap = allList.stream()
.filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0"))
.map(CsLedgerVO::getId)
.distinct()
.collect(Collectors.toMap(
Function.identity(),
csEquipmentDeliveryMapper::selectById
));
//获取便携式项目数
//获取治理设备
List<CsLedgerVO> deviceList = allList.stream()
.filter(item -> zhiLianDevice.contains(item.getId()) && !Objects.equals(item.getPid(), "0"))
.peek(item -> {
CsEquipmentDeliveryPO po = poMap.get(item.getId());
item.setComFlag(po.getRunStatus());
item.setNDId(po.getNdid());
item.setType("device");
item.setProcess(po.getProcess());
})
.filter(item -> Objects.equals(poMap.get(item.getId()).getUsageStatus(), 1))
.sorted(Comparator.comparing(CsLedgerVO::getSort))
.collect(Collectors.toList());
List<CsLedgerVO> engineeringList1 = new ArrayList<>();
List<CsLedgerVO> projectList1 = new ArrayList<>();
checkDevSetData(deviceList);
List<String> dev = deviceList.stream().map(CsLedgerVO::getId).collect(Collectors.toList());
List<CsLedgerVO> ledger1 = getProAndEngineer(dev);
if (CollectionUtil.isNotEmpty(ledger1)) {
engineeringList1 = ledger1.stream().filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList1 = ledger1.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList1.forEach(pro -> pro.setChildren(getChildren(pro, deviceList)));
List<CsLedgerVO> finalProjectList = projectList1;
engineeringList1.forEach(eng -> eng.setChildren(getChildren(eng, finalProjectList)));
}
//获取云前置设备
List<CsLedgerVO> cldDevList = allList.stream()
.filter(item -> cldDevice.contains(item.getId()) && !Objects.equals(item.getPid(), "0"))
.peek(item -> {
CsEquipmentDeliveryPO po = poMap.get(item.getId());
item.setComFlag(po.getRunStatus());
item.setNDId(po.getNdid());
item.setType("device");
item.setProcess(po.getProcess());
})
.filter(item -> Objects.equals(poMap.get(item.getId()).getUsageStatus(), 1))
.sorted(Comparator.comparing(CsLedgerVO::getSort))
.collect(Collectors.toList());
checkDevSetData(cldDevList);
List<CsLedgerVO> engineeringList2 = new ArrayList<>();
List<CsLedgerVO> projectList2 = new ArrayList<>();
List<String> dev2 = cldDevList.stream().map(CsLedgerVO::getId).collect(Collectors.toList());
List<CsLedgerVO> ledger2 = getProAndEngineer(dev2);
if (CollectionUtil.isNotEmpty(ledger2)) {
engineeringList2 = ledger2.stream().filter(item -> item.getLevel().equals(LineBaseEnum.ENGINEERING_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList2 = ledger2.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
projectList2.forEach(pro -> pro.setChildren(getChildren(pro, cldDevList)));
List<CsLedgerVO> finalProjectList = projectList2;
engineeringList2.forEach(eng -> eng.setChildren(getChildren(eng, finalProjectList)));
}
//获取便携式设备树
CsLedgerVO portable = new CsLedgerVO();
portable.setLevel(0);
portable.setName(DataParam.PORTABLE_SYSTEM);
portable.setName(DataParam.portableDev);
portable.setPid("0");
portable.setId(IdUtil.simpleUUID());
CsLedgerVO project = new CsLedgerVO();
project.setLevel(1);
project.setName(DataParam.WIRELESS_PROJECT);
project.setPid("0");
project.setId(DataParam.WIRELESS_PROJECT_ID);
List<CsLedgerVO> portables = allList.stream().filter(item->Objects.equals(item.getLevel(),2) && Objects.equals(item.getPid(),"0")).collect(Collectors.toList());
checkDevSetData(portables);
for(CsLedgerVO c : portables){
c.setPid(project.getId());
CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(c.getId());
c.setComFlag(po.getRunStatus());
c.setNDId(po.getNdid());
c.setType("device");
List<CsLedgerVO> ledger;
String role = RequestUtil.getUserRole();
List<String> roles = JSONArray.parseArray(role, String.class);
if(roles.contains(AppRoleEnum.ROOT.getCode()) || roles.contains(AppRoleEnum.OPERATION_MANAGER.getCode()) || roles.contains(AppRoleEnum.REGULAR_USER.getCode())){
ledger = allList.stream()
.filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0"))
.collect(Collectors.toList());
} else {
LambdaQueryWrapper<CsDeviceUserPO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsDeviceUserPO::getPrimaryUserId, RequestUtil.getUserIndex());
List<CsDeviceUserPO> list1 = csDeviceUserPOMapper.selectList(queryWrapper);
List<String> result = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list1)) {
result = list1.stream().map(CsDeviceUserPO::getDeviceId).collect(Collectors.toList());
}
//针对未启用的装置判断
List<String> finalResult = result;
ledger = allList.stream()
.filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0") && finalResult.contains(item.getId()))
.collect(Collectors.toList());
}
project.setChildren(portables);
List<CsLedgerVO> wxProjectList = new ArrayList<>();
wxProjectList.add(project);
portable.setChildren(wxProjectList);
Map<String, CsEquipmentDeliveryPO> poMap2 = ledger.stream()
.collect(Collectors.toMap(
CsLedgerVO::getId,
csEquipmentDeliveryMapper::selectById,
(existing, replacement) -> existing
));
List<CsLedgerVO> portables = ledger.stream()
.peek(c -> {
CsEquipmentDeliveryPO po = poMap2.get(c.getId());
c.setPid(portable.getId());
c.setComFlag(po.getRunStatus());
c.setNDId(po.getNdid());
c.setType("device");
c.setName(po.getName());
c.setSort(po.getSort());
})
.filter(c -> poMap2.get(c.getId()).getUsageStatus() == 1)
.collect(Collectors.toList());
portables = portables.stream().sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
portable.setChildren(portables);
CsLedgerVO government = new CsLedgerVO();
government.setLevel(0);
government.setName(DataParam.GOVERNANCE_SYSTEM);
government.setName(DataParam.governmentDev);
government.setPid("0");
government.setId(IdUtil.simpleUUID());
government.setChildren(engineeringList);
List<CsLedgerVO> tree = new ArrayList<>();
government.setChildren(engineeringList1);
//获取云前置设备树
CsLedgerVO cld = new CsLedgerVO();
cld.setLevel(0);
cld.setName(DataParam.cldDev);
cld.setPid("0");
cld.setId(IdUtil.simpleUUID());
cld.setChildren(engineeringList2);
List<CsLedgerVO> tree = new ArrayList<>();
if (CollUtil.isNotEmpty(portables)) {
tree.add(portable);
CsLedgerVO vo1 = new CsLedgerVO();
vo1.setLevel(0);
vo1.setName(DataParam.PORTABLE_SYSTEM);
vo1.setPid("0");
vo1.setId(IdUtil.simpleUUID());
CsLedgerVO vo2 = new CsLedgerVO();
vo2.setLevel(1);
vo2.setName(DataParam.WIRELESS_PROJECT);
vo2.setPid("0");
vo2.setId(DataParam.WIRELESS_PROJECT_ID);
vo2.setChildren(portables);
vo1.setChildren(Collections.singletonList(vo2));
tree.add(vo1);
}
if (CollUtil.isNotEmpty(deviceList)) {
tree.add(government);
}
}
if (CollUtil.isNotEmpty(cldDevList)) {
tree.add(cld);
}
return tree;
}
// @Override
// public List<CsLedgerVO> getztProjectTree() {
// List<CsLedgerVO> engineeringList;
// List<CsLedgerVO> allList = this.baseMapper.getAll();
// /*获取用户工程,设备信息过滤*/
// List<String> roleengineer = roleEngineerDevService.getRoleengineer();
// List<String> device = roleEngineerDevService.getDevice();
// engineeringList = allList.stream().filter(item -> roleengineer.contains(item.getId())).collect(Collectors.toList());
// List<CsLedgerVO> projectList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())).sorted(Comparator.comparing(CsLedgerVO::getSort)).collect(Collectors.toList());
//
// List<CsLedgerVO> deviceList = allList.stream().filter(item -> device.contains(item.getId()) && !Objects.equals(item.getPid(), "0")).
// peek(
// temp -> {
// CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(temp.getId());
// temp.setComFlag(po.getRunStatus());
// temp.setNDId(po.getNdid());
// temp.setType("device");
// }
// ).
// sorted(Comparator.comparing(CsLedgerVO::getSort))
// .collect(Collectors.toList());
// checkDevSetData(deviceList);
// projectList.forEach(pro -> pro.setChildren(getChildren(pro, deviceList)));
// engineeringList.forEach(eng -> eng.setChildren(getChildren(eng, projectList)));
//
// //获取便携式项目数
// CsLedgerVO portable = new CsLedgerVO();
// portable.setLevel(0);
// portable.setName(DataParam.PORTABLE_SYSTEM);
// portable.setPid("0");
// portable.setId(IdUtil.simpleUUID());
//
// CsLedgerVO project = new CsLedgerVO();
// project.setLevel(1);
// project.setName(DataParam.WIRELESS_PROJECT);
// project.setPid("0");
// project.setId(DataParam.WIRELESS_PROJECT_ID);
//
// List<CsLedgerVO> portables = allList.stream().filter(item -> Objects.equals(item.getLevel(), 2) && Objects.equals(item.getPid(), "0")).collect(Collectors.toList());
// checkDevSetData(portables);
// for (CsLedgerVO c : portables) {
// c.setPid(project.getId());
// CsEquipmentDeliveryPO po = csEquipmentDeliveryMapper.selectById(c.getId());
// c.setComFlag(po.getRunStatus());
// c.setNDId(po.getNdid());
// c.setType("device");
// }
// project.setChildren(portables);
//
// List<CsLedgerVO> wxProjectList = new ArrayList<>();
// wxProjectList.add(project);
//
// portable.setChildren(wxProjectList);
//
//
// CsLedgerVO government = new CsLedgerVO();
// government.setLevel(0);
// government.setName(DataParam.GOVERNANCE_SYSTEM);
// government.setPid("0");
// government.setId(IdUtil.simpleUUID());
// government.setChildren(engineeringList);
// List<CsLedgerVO> tree = new ArrayList<>();
//
// if (CollUtil.isNotEmpty(portables)) {
// tree.add(portable);
// }
// if (CollUtil.isNotEmpty(deviceList)) {
// tree.add(government);
// }
//
// return tree;
// }
@Override
public List<CsLedgerVO> objTree() {
List<CsLedgerVO> result = new ArrayList<>();
String userId = RequestUtil.getUserIndex();
UserVO userVO = userFeignClient.getUserById(userId).getData();
List<String> devIds;
if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) {
devIds = csEquipmentDeliveryMapper.selectList(null).stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
} else {
LambdaQueryWrapper<CsDeviceUserPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(CsDeviceUserPO::getDeviceId)
.and(w -> w.eq(CsDeviceUserPO::getPrimaryUserId, userId).or().eq(CsDeviceUserPO::getSubUserId, userId))
.eq(CsDeviceUserPO::getStatus, DataStateEnum.ENABLE.getCode());
List<CsDeviceUserPO> devList = csDeviceUserPOMapper.selectList(lambdaQueryWrapper);
devIds = devList.stream().map(CsDeviceUserPO::getDeviceId).distinct().collect(Collectors.toList());
}
if (CollUtil.isEmpty(devIds)) {
return result;
}
List<CsLinePO> poList = csLinePOService.lambdaQuery().in(CsLinePO::getDeviceId, devIds)
.eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).ne(CsLinePO::getMonitorUser,"").isNotNull(CsLinePO::getMonitorUser).list();
if (CollUtil.isEmpty(poList)) {
return result;
}
List<String> objIds = poList.stream().map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList());
List<String> lineIds = poList.stream().map(CsLinePO::getLineId).distinct().collect(Collectors.toList());
List<PqSensitiveUser> pqSensitiveUserList = pqSensitiveUserFeignClient.getListByIds(objIds).getData();
if (CollUtil.isEmpty(pqSensitiveUserList)) {
return result;
}
Map<String,String> objMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
List<CsLedger> csLineList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, lineIds));
Map<String,List<String>> lineMap = csLineList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()+1],Collectors.mapping(CsLedger::getId,Collectors.toList())));
List<String> projectIds = csLineList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()+1]).distinct().collect(Collectors.toList());
List<CsLedger> projectList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, projectIds));
List<CsLedgerVO> realProjectList = new ArrayList<>();
projectList.forEach(pro->{
CsLedgerVO csLedgerVO = new CsLedgerVO();
csLedgerVO.setId(pro.getId());
csLedgerVO.setPid(pro.getPid());
csLedgerVO.setLevel(pro.getLevel());
csLedgerVO.setName(pro.getName());
List<CsLedgerVO> temObjList = new ArrayList<>();
if(lineMap.containsKey(pro.getId())){
List<String> ids = lineMap.get(pro.getId());
List<String> objTemIds = poList.stream().filter(it->ids.contains(it.getLineId())).map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(objTemIds)){
objTemIds.forEach(it->{
CsLedgerVO inner = new CsLedgerVO();
inner.setName(objMap.getOrDefault(it,"未知异常用户"));
inner.setId(it);
inner.setLevel(2);
temObjList.add(inner);
});
}
}
csLedgerVO.setChildren(temObjList);
realProjectList.add(csLedgerVO);
});
List<String> gcIds = projectList.stream().map(CsLedger::getPid).collect(Collectors.toList());
List<CsLedger> gcList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, gcIds));
List<CsLedgerVO> realGcList = new ArrayList<>();
gcList.forEach(gc->{
CsLedgerVO csLedgerVO = new CsLedgerVO();
csLedgerVO.setId(gc.getId());
csLedgerVO.setPid(gc.getPid());
csLedgerVO.setLevel(gc.getLevel());
csLedgerVO.setName(gc.getName());
List<CsLedgerVO> proList = realProjectList.stream().filter(it->gc.getId().equals(it.getPid())).collect(Collectors.toList());
csLedgerVO.setChildren(proList);
realGcList.add(csLedgerVO);
});
return realGcList;
}
@Override
public List<CsLedgerVO> getProAndEngineer(List<String> id) {
List<CsLedgerVO> result = new ArrayList<>();
List<CsLedgerVO> allList = this.baseMapper.getAll();
Set<String> idSet = new HashSet<>(id);
if (CollectionUtil.isNotEmpty(id)) {
id.forEach(item->{
allList.forEach(item2->{
if (Objects.equals(item2.getId(),item)) {
idSet.addAll(Arrays.asList(item2.getPids().split( ",")));
id.forEach(item -> {
allList.forEach(item2 -> {
if (Objects.equals(item2.getId(), item)) {
idSet.addAll(Arrays.asList(item2.getPids().split(",")));
}
});
});
}
if (CollectionUtil.isNotEmpty(idSet)) {
idSet.forEach(item->{
allList.forEach(item2->{
if (Objects.equals(item2.getId(),item)) {
idSet.forEach(item -> {
allList.forEach(item2 -> {
if (Objects.equals(item2.getId(), item)) {
result.add(item2);
}
});
@@ -718,7 +994,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
DictTreeVO vo1 = dictTreeFeignClient.queryByCode(DicDataEnum.DEV_CLD.getCode()).getData();
//list1是 cld设备
devs.forEach(item->{
devs.forEach(item -> {
if (item.getDevType().equals(vo1.getId())) {
list1.add(item.getId());
}
@@ -759,19 +1035,19 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
if (CollectionUtil.isNotEmpty(deviceTree)) {
List<CsLedgerVO> finalLineTree = lineTree;
deviceTree.forEach(item->{
deviceTree.forEach(item -> {
item.setChildren(getChildren(item, finalLineTree));
});
}
if (CollectionUtil.isNotEmpty(projectTree)) {
List<CsLedgerVO> finalDeviceTree = deviceTree;
projectTree.forEach(item->{
projectTree.forEach(item -> {
item.setChildren(getChildren(item, finalDeviceTree));
});
}
if (CollectionUtil.isNotEmpty(engineerTree)) {
List<CsLedgerVO> finalProjectTree = projectTree;
engineerTree.forEach(item->{
engineerTree.forEach(item -> {
item.setChildren(getChildren(item, finalProjectTree));
});
}
@@ -791,9 +1067,9 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
List<DevDetailDTO> details = new ArrayList<>();
List<CsLedger> ledgers = this.listByIds(list);
Set<String> enginingeringIds = new HashSet<>();
ledgers.forEach(item->{
ledgers.forEach(item -> {
DevDetailDTO device = new DevDetailDTO();
if(Objects.equals(item.getPid(),"0")){
if (Objects.equals(item.getPid(), "0")) {
device.setEquipmentName(item.getName());
device.setEquipmentId(item.getId());
device.setProjectId("/");
@@ -807,7 +1083,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
});
if (CollectionUtil.isNotEmpty(enginingeringIds)) {
List<CsLedger> engineer = this.listByIds(enginingeringIds);
engineer.forEach(item->{
engineer.forEach(item -> {
DevDetailDTO detail = new DevDetailDTO();
detail.setEngineeringid(item.getId());
detail.setEngineeringName(item.getName());
@@ -828,7 +1104,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
LambdaQueryWrapper<CsLedger> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.in(CsLedger::getPid, projectIds);
List<CsLedger> dev = this.list(queryWrapper2);
dev.forEach(item->{
dev.forEach(item -> {
DevDetailDTO detail = new DevDetailDTO();
detail.setEquipmentName(item.getName());
detail.setEquipmentId(item.getId());
@@ -840,7 +1116,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
@Override
public List<DevDetailDTO> getEngineeringHaveDevs(List<String> list) {
List<DevDetailDTO> result = new ArrayList<>();
list.forEach(item->{
list.forEach(item -> {
LambdaQueryWrapper<CsLedger> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsLedger::getPid, item);
List<CsLedger> project = this.list(queryWrapper);
@@ -873,12 +1149,12 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
return children;
}
public String getAreaById(String id){
String areaName =redisUtil.getStringByKey (id);
areaName = Optional.ofNullable (areaName).orElseGet (() ->{
Area data = areaFeignClient.selectIdArea (id).getData ( );
redisUtil.saveByKey (id,data.getName ());
return data.getName ();
public String getAreaById(String id) {
String areaName = redisUtil.getStringByKey(id);
areaName = Optional.ofNullable(areaName).orElseGet(() -> {
Area data = areaFeignClient.selectIdArea(id).getData();
redisUtil.saveByKey(id, data.getName());
return data.getName();
});
return areaName;
}

View File

@@ -13,20 +13,23 @@ 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.enums.LineBaseEnum;
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;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.UserFeignClient;
@@ -35,20 +38,18 @@ 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;
import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
*
*
* Description:
* Date: 2023/5/18 14:01【需求编号】
*
@@ -71,7 +72,7 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
private final UserFeignClient userFeignClient;
private final CsEquipmentDeliveryMapper csEquipmentDeliveryMapper;
private final CsDeviceUserPOMapper csDeviceUserPOMapper;
private final DictTreeFeignClient dictTreeFeignClient;
@Override
@@ -103,6 +104,10 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
return this.baseMapper.findByNdid(id);
}
public Map<String,String> getCustomDetailByLineId(String lineId){
return this.baseMapper.getCustomDetailByLineId(lineId);
}
@Override
public void updateLine(CsLineParam csLineParam) {
LambdaUpdateWrapper<CsLinePO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
@@ -139,7 +144,7 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
//1.新增监测点信息
BeanUtils.copyProperties(param,po);
po.setStatus(1);
po.setRunStatus(2);
po.setRunStatus(param.getRunStatus());
po.setLineId(param.getDevMac().replace(":","") + param.getLineNo());
//模板id
CsDevModelPO po1 = csDevModelService.getCldModel();
@@ -153,8 +158,8 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
po.setClDid(list.get(0).getClDev());
}
//监测位置
DictData data = dicDataFeignClient.getDicDataByCode(DicDataEnum.GRID_SIDE.getCode()).getData();
po.setPosition(data.getId());
//DictData data = dicDataFeignClient.getDicDataByCode(DicDataEnum.GRID_SIDE.getCode()).getData();
po.setPosition(param.getPosition());
this.save(po);
//2.新增台账树信息
@@ -194,7 +199,16 @@ 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::getPosition,param.getPosition())
.set(CsLinePO::getMonitorUser,param.getMonitorUser());
this.update(lambdaUpdateWrapper);
//修改台账树中监测点的名称
@@ -260,7 +274,7 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
public List<CsLinePO> getSimpleLine() {
List<String> devIds = commGetDevIds(RequestUtil.getUserIndex());
if(CollUtil.isNotEmpty(devIds)){
List<CsLinePO> poList = this.lambdaQuery().select(CsLinePO::getLineId,CsLinePO::getName).in(CsLinePO::getDeviceId,devIds)
List<CsLinePO> poList = this.lambdaQuery().select(CsLinePO::getLineId,CsLinePO::getName,CsLinePO::getMonitorUser).in(CsLinePO::getDeviceId,devIds)
.eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).list();
return poList;
}else {
@@ -272,8 +286,8 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
UserVO userVO = userFeignClient.getUserById(userId).getData();
List<String> devIds;
if(userVO.getType().equals(UserType.SUPER_ADMINISTRATOR ) || userVO.getType().equals(UserType.ADMINISTRATOR )){
devIds = csEquipmentDeliveryMapper.selectList(new LambdaQueryWrapper<CsEquipmentDeliveryPO>().eq(CsEquipmentDeliveryPO::getStatus,DataStateEnum.ENABLE)).stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
}else {
devIds = csEquipmentDeliveryMapper.selectList(new LambdaQueryWrapper<CsEquipmentDeliveryPO>().ne(CsEquipmentDeliveryPO::getRunStatus,DataStateEnum.DELETED.getCode())).stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
} else {
LambdaQueryWrapper<CsDeviceUserPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(CsDeviceUserPO::getDeviceId)
.and(w->w.eq(CsDeviceUserPO::getPrimaryUserId,userId).or().eq(CsDeviceUserPO::getSubUserId,userId))
@@ -298,24 +312,34 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
result.setCurrent(param.getPageNum());
result.setSize(param.getPageSize());
Page<CsLinePO> linePage = this.page(new Page<>(param.getPageNum(), param.getPageSize()),
new LambdaQueryWrapper<CsLinePO>()
.eq(CsLinePO::getStatus, 1)
// 关联敏感用户
.isNotNull(CsLinePO::getMonitorUser)
.orderByAsc(CsLinePO::getMonitorUser)
);
// 查询登录用户拥有的监测点台账
List<CsLinePO> poList = getSimpleLine();
// 构建基础查询条件
LambdaQueryWrapper<CsLinePO> lambdaQueryWrapper = new LambdaQueryWrapper<CsLinePO>()
.eq(CsLinePO::getStatus, 1)
// 关联敏感用户
//.isNotNull(CsLinePO::getMonitorUser)
.orderByAsc(CsLinePO::getMonitorUser);
// 只有当lineList不为空时才添加in条件
if (CollUtil.isNotEmpty(poList)) {
List<String> lineList = poList.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
lambdaQueryWrapper.in(CsLinePO::getLineId, lineList);
}
Page<CsLinePO> linePage = this.page(new Page<>(param.getPageNum(), param.getPageSize()), lambdaQueryWrapper);
BeanUtil.copyProperties(linePage, result);
List<CsLinePO> records = linePage.getRecords();
if (CollUtil.isEmpty(records)) {
return result;
}
List<PqSensitiveUserLineVO> list = new ArrayList<>();
List<String> sensitiveUserIds = list.stream().map(PqSensitiveUserLineVO::getSensitiveUser).distinct().collect(Collectors.toList());
Map<String, String> sensitiveUserNameMap = pqSensitiveUserFeignClient.getListByIds(sensitiveUserIds).getData()
.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
Map<String, String> sensitiveUserNameMap = new HashMap<>();
List<PqSensitiveUser> pqSensitiveUserList = pqSensitiveUserFeignClient.getListByIds(sensitiveUserIds).getData();
if (CollUtil.isNotEmpty(pqSensitiveUserList)) {
sensitiveUserNameMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
}
PqSensitiveUserLineVO sensitiveUserLineVO;
for (CsLinePO record : records) {
sensitiveUserLineVO = new PqSensitiveUserLineVO();
@@ -334,26 +358,34 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
}
}
// 监测类型
sensitiveUserLineVO.setPosition(record.getPosition());
DictData positionDictData = dicDataFeignClient.getDicDataById(record.getPosition()).getData();
if (positionDictData != null) {
sensitiveUserLineVO.setPosition(positionDictData.getName());
if (ObjectUtil.isNotNull(record.getPosition())) {
sensitiveUserLineVO.setPosition(record.getPosition());
DictData positionDictData = dicDataFeignClient.getDicDataById(record.getPosition()).getData();
if (positionDictData != null) {
sensitiveUserLineVO.setPosition(positionDictData.getName());
}
}
// 电压等级
sensitiveUserLineVO.setVolGrade(record.getVolGrade());
if (ObjectUtil.isNotNull(record.getVolGrade())) {
sensitiveUserLineVO.setVolGrade(record.getVolGrade());
}
// 运行状态
sensitiveUserLineVO.setRunStatus(getRunStatusDescription(record.getRunStatus()));
if (ObjectUtil.isNotNull(record.getRunStatus())) {
//获取设备状态
int devRunStatus = csEquipmentDeliveryMapper.selectById(record.getDeviceId()).getRunStatus();
sensitiveUserLineVO.setRunStatus(getRunStatusDescription(devRunStatus));
}
// 报告文件
sensitiveUserLineVO.setReportFilePath(record.getReportFilePath());
// 最新数据时间
List<CsLineLatestData> lineLatestDataList = csLineLatestDataFeignClient.listData().getData();
if (CollUtil.isNotEmpty(lineLatestDataList)) {
sensitiveUserLineVO.setLatestTime(lineLatestDataList.stream()
.filter(item -> item.getLineId().equals(record.getLineId()))
.map(CsLineLatestData::getTimeId)
.max(LocalDateTime::compareTo)
.orElse(null));
}
// List<CsLineLatestData> lineLatestDataList = csLineLatestDataFeignClient.listData().getData();
// if (CollUtil.isNotEmpty(lineLatestDataList)) {
// sensitiveUserLineVO.setLatestTime(lineLatestDataList.stream()
// .filter(item -> item.getLineId().equals(record.getLineId()))
// .map(CsLineLatestData::getTimeId)
// .max(LocalDateTime::compareTo)
// .orElse(null));
// }
list.add(sensitiveUserLineVO);
}
result.setRecords(list);
@@ -362,7 +394,7 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
@Override
public boolean uploadReport(MultipartFile file, String lineId) {
String filePath = fileStorageUtil.uploadMultipart(file, OssPath.GOVERN_HARMONIC_FILE);
String filePath = fileStorageUtil.uploadMultipart(file, OssPath.GOVERN_HARMONIC_FILE, true);
return this.update(new LambdaUpdateWrapper<CsLinePO>().eq(CsLinePO::getLineId, lineId).set(CsLinePO::getReportFilePath, filePath));
}
@@ -379,19 +411,83 @@ 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));
//获取设备信息
CsEquipmentDeliveryPO csEquipmentDelivery = csEquipmentDeliveryMapper.selectById(csLinePO.getDeviceId());
String code = dictTreeFeignClient.queryById(csEquipmentDelivery.getDevType()).getData().getCode();
CsLedger csLedger = csLedgerMapper.selectById(csLinePO.getLineId());
LineDetailDataVO lineDetailDataVO = new LineDetailDataVO();
lineDetailDataVO.setScale(csLinePO.getVolGrade()+"kV");
if (Objects.equals(DicDataEnum.PORTABLE.getCode(),code)) {
lineDetailDataVO.setAreaName("便携式工程");
lineDetailDataVO.setBdName("便携式项目");
} else {
lineDetailDataVO.setAreaName(csLedgerMapper.selectById(csLedger.getPids().split(StrUtil.COMMA)[LineBaseEnum.ENGINEERING_LEVEL.getCode()+1]).getName());
lineDetailDataVO.setBdName(csLedgerMapper.selectById(csLedger.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()+1]).getName());
}
lineDetailDataVO.setLineName(csLinePO.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(csLinePO.getPtRatio() + "/" + (Objects.isNull(csLinePO.getPt2Ratio())?1.0:csLinePO.getPt2Ratio()));
lineDetailDataVO.setCt(csLinePO.getCtRatio() + "/" + (Objects.isNull(csLinePO.getCt2Ratio())?1.0:csLinePO.getCt2Ratio()));
lineDetailDataVO.setDealCapacity(Objects.isNull(csLinePO.getProtocolCapacity())?0.0f:csLinePO.getProtocolCapacity().floatValue());
lineDetailDataVO.setDevCapacity(Objects.isNull(csLinePO.getDevCapacity())?0.0f:csLinePO.getDevCapacity().floatValue());
lineDetailDataVO.setShortCapacity(Objects.isNull(csLinePO.getShortCircuitCapacity())?0.0f:csLinePO.getShortCircuitCapacity().floatValue());
lineDetailDataVO.setStandardCapacity(Objects.isNull(csLinePO.getBasicCapacity())?0.0f:csLinePO.getBasicCapacity().floatValue());
lineDetailDataVO.setTimeInterval(csLinePO.getLineInterval());
return lineDetailDataVO;
}
}
@Override
public List<CsLinePO> getLineList(CsLinePO param) {
List<String> keywordsLineIds = new ArrayList<>();
List<CsLinePO> poList = getSimpleLine();
if (CollUtil.isNotEmpty(poList)) {
keywordsLineIds = poList.stream().map(CsLinePO::getLineId).collect(Collectors.toList());
}
List<CsLinePO> result = this.list(new LambdaQueryWrapper<CsLinePO>()
.eq(CsLinePO::getStatus, 1)
.eq(StrUtil.isNotBlank(param.getPosition()), CsLinePO::getPosition, param.getPosition())
.in(CsLinePO::getLineId, keywordsLineIds)
.orderByAsc(CsLinePO::getName));
//根据监测点id查询设备信息
if (CollectionUtil.isNotEmpty(result)) {
//获取设备信息集合
List<String> devList = result.stream().map(CsLinePO::getDeviceId).collect(Collectors.toList());
List<CsEquipmentDeliveryPO> equipmentDeliveryList = csEquipmentDeliveryMapper.selectBatchIds(devList);
Map<String,Integer> runStatusMap = equipmentDeliveryList.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId,CsEquipmentDeliveryPO::getRunStatus));
result.forEach(item->{
item.setRunStatus(runStatusMap.get(item.getDeviceId()));
});
}
return result;
}
private String getRunStatusDescription(Integer runStatus) {
// 0运行1检修2停运3调试4退运
switch (runStatus) {
case 0:
return "运行";
case 1:
return "检修";
return "离线";
case 2:
return "停运";
case 3:
return "调试";
case 4:
return "退运";
return "在线";
default:
return "未知";
}

View File

@@ -0,0 +1,191 @@
package com.njcn.csdevice.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.mapper.CsLedgerMapper;
import com.njcn.csdevice.pojo.param.*;
import com.njcn.csdevice.pojo.po.AppProjectPO;
import com.njcn.csdevice.pojo.po.AppTopologyDiagramPO;
import com.njcn.csdevice.pojo.po.CsEngineeringPO;
import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import com.njcn.csdevice.pojo.vo.EngineeringProjectRelationVo;
import com.njcn.csdevice.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* <p>
* 数据集表 服务实现类
* </p>
*
* @author xuyang
* @since 2026-01-29
*/
@Service
@RequiredArgsConstructor
public class EngineeringProjectServiceImpl implements IEngineeringProjectService {
private final CsEngineeringService csEngineeringService;
private final AppProjectService appProjectService;
private final ICsLedgerService csLedgerService;
private final CsLedgerMapper csLedgerMapper;
private final AppTopologyDiagramService appTopologyDiagramService;
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addEngineering(CsEngineeringAddParm csEngineeringAddParm) {
boolean result = false;
//新增工程信息
CsEngineeringPO po1 = csEngineeringService.add(csEngineeringAddParm);
//新增cs_ledger数据
CsLedgerParam csLedgerParam = new CsLedgerParam();
csLedgerParam.setId(po1.getId());
csLedgerParam.setPid("9999999");
csLedgerParam.setName(csEngineeringAddParm.getName());
csLedgerParam.setLevel(0);
csLedgerParam.setRemark(csEngineeringAddParm.getDescription());
csLedgerParam.setSort(csEngineeringAddParm.getSort());
CsLedger po2 = csLedgerService.addLedgerTree(csLedgerParam);
if (ObjectUtil.isNotNull(po1) && ObjectUtil.isNotNull(po2)) {
result = true;
}
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateEngineering(CsEngineeringAuditParm csEngineeringAuditParm) {
//修改工程信息
CsEngineeringPO po1 = csEngineeringService.updateData(csEngineeringAuditParm);
//修改cs_ledger数据
CsLedgerParam.Update csLedgerParam = new CsLedgerParam.Update();
csLedgerParam.setId(po1.getId());
csLedgerParam.setName(csEngineeringAuditParm.getName());
csLedgerParam.setSort(csEngineeringAuditParm.getSort());
csLedgerService.updateLedgerTree(csLedgerParam);
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteEngineering(String id) {
//查询csledger数据
List<CsLedgerVO> allList = csLedgerMapper.getAll();
allList.forEach(item->{
if (Objects.equals(item.getPid(),id)) {
throw new BusinessException("请先删除该工程下的所有项目");
}
});
//删除工程信息
csEngineeringService.deleteData(id);
//删除台账信息
csLedgerService.deleteLedgerTree(id);
return true;
}
@Override
public boolean addProject(AppProjectAddParm param) {
boolean result = false;
//新增项目信息
AppProjectPO po1 = appProjectService.add(param);
//新增cs_ledger数据
CsLedgerParam csLedgerParam = new CsLedgerParam();
csLedgerParam.setId(po1.getId());
csLedgerParam.setPid(param.getEngineeringId());
csLedgerParam.setName(param.getName());
csLedgerParam.setLevel(1);
csLedgerParam.setSort(param.getSort());
CsLedger po2 = csLedgerService.addLedgerTree(csLedgerParam);
if (ObjectUtil.isNotNull(po1) && ObjectUtil.isNotNull(po2)) {
result = true;
}
return result;
}
@Override
public boolean updateProject(AppProjectAuditParm param) {
//修改工程信息
AppProjectPO po1 = appProjectService.updateData(param);
//修改cs_ledger数据
CsLedgerParam.Update csLedgerParam = new CsLedgerParam.Update();
csLedgerParam.setId(po1.getId());
csLedgerParam.setName(param.getName());
csLedgerParam.setSort(param.getSort());
csLedgerParam.setRemark(param.getDescription());
csLedgerService.updateLedgerTree(csLedgerParam);
return true;
}
@Override
public boolean deleteProject(String id) {
//删除项目信息
appProjectService.delete(id);
//删除台账信息
csLedgerService.deleteLedgerTree(id);
return true;
}
@Override
public List<EngineeringProjectRelationVo> getList() {
List<EngineeringProjectRelationVo> result = new ArrayList<>();
//查询所有工程
LambdaQueryWrapper<CsEngineeringPO> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(CsEngineeringPO::getStatus,"1").orderByAsc(CsEngineeringPO::getSort);
List<CsEngineeringPO> list1 = csEngineeringService.list(queryWrapper1);
//查询所有项目
LambdaQueryWrapper<AppProjectPO> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(AppProjectPO::getStatus,"1").orderByAsc(AppProjectPO::getSort);
List<AppProjectPO> list2 = appProjectService.list(queryWrapper2);
Map<String,AppProjectPO> map = list2.stream().collect(Collectors.toMap(AppProjectPO::getId, item->item));
//查询所有拓扑图
LambdaQueryWrapper<AppTopologyDiagramPO> queryWrapper3 = new LambdaQueryWrapper<>();
queryWrapper3.eq(AppTopologyDiagramPO::getStatus,"1");
List<AppTopologyDiagramPO> list3 = appTopologyDiagramService.list(queryWrapper3);
Map<String,AppTopologyDiagramPO> map3 = list3.stream().collect(Collectors.toMap(AppTopologyDiagramPO::getProjectId, item->item));
//查询台账信息
List<CsLedgerVO> allList = csLedgerMapper.getAll();
if (CollectionUtil.isNotEmpty(list1)) {
list1.forEach(item->{
EngineeringProjectRelationVo temp = new EngineeringProjectRelationVo();
temp.setEngineeringId(item.getId());
temp.setEngineeringName(item.getName());
temp.setEngineeringArea(item.getProvince()+item.getCity());
temp.setEngineeringRemark(item.getDescription());
temp.setEngineeringSort(item.getSort());
List<CsLedgerVO> projectList = allList.stream().filter(item2->item2.getPid().equals(item.getId())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(projectList)) {
List<EngineeringProjectRelationVo.ProjectInfo> projectInfoList = new ArrayList<>();
projectList.forEach(item2->{
AppProjectPO po = map.get(item2.getId());
EngineeringProjectRelationVo.ProjectInfo projectInfo = new EngineeringProjectRelationVo.ProjectInfo();
projectInfo.setProjectId(po.getId());
projectInfo.setProjectName(po.getName());
projectInfo.setProjectArea(po.getArea());
projectInfo.setProjectRemark(po.getDescription());
projectInfo.setProjectSort(po.getSort());
projectInfo.setTopologyInfo(Objects.isNull(map3.get(po.getId()))?null:map3.get(po.getId()).getFilePath());
projectInfoList.add(projectInfo);
});
temp.setProjectInfoList(projectInfoList);
}
result.add(temp);
});
}
return result;
}
}

View File

@@ -8,10 +8,10 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.csp.sentinel.util.StringUtil;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.access.utils.ChannelObjectUtil;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.mapper.OverlimitMapper;
import com.njcn.csdevice.param.IcdBzParam;
import com.njcn.csdevice.param.IcdLedgerParam;
import com.njcn.csdevice.param.IcdParam;
@@ -24,6 +24,7 @@ import com.njcn.csdevice.pojo.vo.DeviceInfo;
import com.njcn.csdevice.service.*;
import com.njcn.csharmonic.api.EventFeignClient;
import com.njcn.csharmonic.pojo.po.CsEventPO;
import com.njcn.device.biz.mapper.OverLimitWlMapper;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.mq.message.BZEventMessage;
@@ -61,7 +62,7 @@ class IcdServiceImpl implements IcdService {
private final EventFeignClient eventFeignClient;
private final ICsTerminalLogsService csTerminalLogsService;
private final ICsTerminalReplyService csTerminalReplyService;
private final OverlimitMapper overlimitMapper;
private final OverLimitWlMapper overLimitWlMapper;
private final DateTimeFormatter microsecondFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
@Override
@@ -127,6 +128,7 @@ class IcdServiceImpl implements IcdService {
}
@Override
@DSTransactional
public void addLedgerInfo(IcdLedgerParam param) {
// 第一种:全流程创建
if (isAllIndicesNull(param)) {
@@ -582,7 +584,6 @@ class IcdServiceImpl implements IcdService {
&& ObjectUtil.isNull(param.getDevIndex());
}
@Transactional(rollbackFor = Exception.class)
public void handleFullProcessCreation(@NotNull IcdLedgerParam param) {
if (ObjectUtil.isNotNull(param.getEngineering())) {
CsEngineeringPO po1 = csEngineeringService.addEngineering(param.getEngineering());
@@ -591,17 +592,14 @@ class IcdServiceImpl implements IcdService {
}
}
@Transactional(rollbackFor = Exception.class)
public void handleFromEngineeringCreation(IcdLedgerParam param) {
createProjectAndDevices(param);
}
@Transactional(rollbackFor = Exception.class)
public void handleFromProjectCreation(IcdLedgerParam param) {
saveDevicesAndLines(param);
}
@Transactional(rollbackFor = Exception.class)
public void handleFromDeviceCreation(IcdLedgerParam param) {
saveLines(param);
}
@@ -635,7 +633,6 @@ class IcdServiceImpl implements IcdService {
saveLines(param);
}
@Transactional(rollbackFor = Exception.class)
public void saveLines(IcdLedgerParam param) {
List<CsLineParam> lineList = param.getLine();
if (CollectionUtil.isNotEmpty(lineList)) {
@@ -661,7 +658,7 @@ class IcdServiceImpl implements IcdService {
//新增监测点限值
Overlimit overlimit = COverlimitUtil.globalAssemble(line.getVolGrade().floatValue(), line.getProtocolCapacity().floatValue(),line.getDevCapacity().floatValue(),line.getShortCircuitCapacity().floatValue(),0,0);
overlimit.setId(po.getLineId());
overlimitMapper.insert(overlimit);
overLimitWlMapper.insert(overlimit);
}
//新增台账日志

View File

@@ -0,0 +1,44 @@
package com.njcn.csdevice.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.pojo.vo.LineOverLimitVO;
import com.njcn.csdevice.service.IOverLimitService;
import com.njcn.device.biz.mapper.OverLimitWlMapper;
import com.njcn.device.biz.pojo.po.Overlimit;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* pqs
*
* @author cdf
* @date 2023/6/7
*/
@DS("sjzx")
@Service
@RequiredArgsConstructor
public class OverLimitServiceImpl extends ServiceImpl<OverLimitWlMapper, 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

@@ -47,7 +47,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService {
QueryWrapper<CsLedger> csLedgerQueryWrapper = new QueryWrapper<>();
List<String> collect = new ArrayList<>();
if(Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode())){
if(Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode()) || Objects.equals(role,AppRoleEnum.REGULAR_USER_8000.getCode())){
csDeviceUserPOQueryWrapper.clear();
csEngineeringUserPOQueryWrapper.clear();
csLedgerQueryWrapper.clear();
@@ -94,7 +94,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService {
}
// ||Objects.equals(role,"bxs_user")
else if(Objects.equals(role,AppRoleEnum.ROOT.getCode())||Objects.equals(role,AppRoleEnum.OPERATION_MANAGER.getCode())){
else if(Objects.equals(role,AppRoleEnum.ROOT.getCode()) || Objects.equals(role,AppRoleEnum.OPERATION_MANAGER.getCode()) || Objects.equals(role,AppRoleEnum.REGULAR_USER.getCode()) ){
List<CsEngineeringPO> csEngineeringPOS = csEngineeringMapper.selectList(null);
collect =csEngineeringPOS.stream().filter(temp->Objects.equals(temp.getStatus(),"1")).map(CsEngineeringPO::getId).collect(Collectors.toList());
}
@@ -116,7 +116,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService {
List<String> collect = new ArrayList<>();
if(
Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode())){
Objects.equals(role,AppRoleEnum.APP_VIP_USER.getCode()) || Objects.equals(role,AppRoleEnum.REGULAR_USER_8000.getCode())){
csDeviceUserPOQueryWrapper.clear();
csDeviceUserPOQueryWrapper.eq("status","1").and(wq -> {
wq.eq("primary_user_id", userIndex)
@@ -198,7 +198,7 @@ public class RoleEngineerDevServiceImpl implements RoleEngineerDevService {
}
// ||Objects.equals(role,"bxs_user")
else if(Objects.equals(role,AppRoleEnum.ROOT.getCode())||Objects.equals(role,AppRoleEnum.OPERATION_MANAGER.getCode())){
else if(Objects.equals(role,AppRoleEnum.ROOT.getCode())||Objects.equals(role,AppRoleEnum.OPERATION_MANAGER.getCode()) || Objects.equals(role,AppRoleEnum.REGULAR_USER.getCode())){
csLedgerQueryWrapper.clear();
csLedgerQueryWrapper.eq("level",2).eq("state",1);
List<CsLedger> csLedgers = csLedgerMapper.selectList(csLedgerQueryWrapper);

View File

@@ -18,8 +18,6 @@ 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;
@@ -30,11 +28,10 @@ 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.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;
@@ -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,20 @@
package com.njcn.csharmonic.param;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @author xy
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class CldWarnParam extends BaseParam implements Serializable {
@ApiModelProperty("告警等级")
private String level;
}

View File

@@ -28,6 +28,11 @@ public class CsConfigurationParm {
private String remark;
/**
* 数据范围 0 私有 1全局
*/
private int scope;
private List<String> projectIds;
@@ -55,6 +60,10 @@ public class CsConfigurationParm {
@EqualsAndHashCode(callSuper = true)
public static class CsConfigurationQueryParam extends BaseParam {
private String id;
@ApiModelProperty(value = "当前用户ID")
private String currentUserId;
@ApiModelProperty(value = "当前用户角色")
private String roleCode;
}

View File

@@ -16,13 +16,13 @@ public class SensitiveUserReportQueryParam {
@ApiModelProperty(name = "tempId",value = "模板ID")
private String tempId;
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@ApiModelProperty(name = "startTime", value = "开始时间")
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid(message = "起始时间格式出错")
private String searchBeginTime;
private String startTime;
@ApiModelProperty(name = "searchEndTime", value = "结束时间")
@ApiModelProperty(name = "endTime", value = "结束时间")
@NotBlank(message = "结束时间不可为空")
private String searchEndTime;
private String endTime;
}

View File

@@ -12,7 +12,6 @@ import java.util.List;
public class SensitiveUserTrendDataQueryParam {
@ApiModelProperty(value = "检测对象ID")
@NotBlank(message = "检测对象ID不可为空")
private String sensitiveUserId;
@ApiModelProperty(name = "searchBeginTime", value = "开始时间")
@@ -37,4 +36,8 @@ public class SensitiveUserTrendDataQueryParam {
@ApiModelProperty(value = "频次2-50")
private String frequency;
//采用这个频次,上面那个频次用于多指标筛选
@ApiModelProperty(value = "频次2-50")
private Integer harmonicCount;
}

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

@@ -56,4 +56,6 @@ public class ReportTemplateDTO {
*/
private String value;
private String lowValue;
}

View File

@@ -39,8 +39,11 @@ public class ZuTaiDTO {
@SerializedName("lineId")
private String lineId;
@SerializedName("UIDType")
private Boolean uIdType;
@SerializedName("UID")
private List<String> uId;
private List<Object> uId;
@SerializedName("UIDName")
private String target;

View File

@@ -0,0 +1,51 @@
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<Object> uid;
@JsonProperty("UIDNames")
private List<String> uidNames;
private List<String> unit;
private Boolean uidType;
}
}

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

@@ -1,42 +1,42 @@
package com.njcn.csharmonic.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 模板动态更新数据
*
* @author qijian
* @date 2022/10/11
*/
@Data
public class ReportSearchParam {
@ApiModelProperty(name = "lineId",value = "监测点id")
private String lineId;
@ApiModelProperty(name = "tempId",value = "模板ID")
private String tempId;
@ApiModelProperty(name = "activation",value = "激活状态")
private Integer activation;
@ApiModelProperty(name = "type",value = "报表类型")
private Integer type;
@ApiModelProperty(name = "startTime",value = "开始时间")
private String startTime;
@ApiModelProperty(name = "endTime",value = "结束时间")
private String endTime;
@ApiModelProperty(name = "deptId",value = "部门ID")
private String deptId;
//目前用于区分不同系统资源null默认 1.无线系统配合cs-device
private Integer resourceType;
//浙江无线报表特殊标识 null为通用报表 1.浙江无线报表
private Integer customType;
}
//package com.njcn.csharmonic.pojo.param;
//
//import io.swagger.annotations.ApiModelProperty;
//import lombok.Data;
//
///**
// * 模板动态更新数据
// *
// * @author qijian
// * @date 2022/10/11
// */
//@Data
//public class ReportSearchParam {
//
// @ApiModelProperty(name = "lineId",value = "监测点id")
// private String lineId;
//
// @ApiModelProperty(name = "tempId",value = "模板ID")
// private String tempId;
//
// @ApiModelProperty(name = "activation",value = "激活状态")
// private Integer activation;
//
// @ApiModelProperty(name = "type",value = "报表类型")
// private Integer type;
//
// @ApiModelProperty(name = "startTime",value = "开始时间")
// private String startTime;
//
// @ApiModelProperty(name = "endTime",value = "结束时间")
// private String endTime;
//
// @ApiModelProperty(name = "deptId",value = "部门ID")
// private String deptId;
//
// //目前用于区分不同系统资源null默认 1.无线系统配合cs-device
// private Integer resourceType;
//
// //浙江无线报表特殊标识 null为通用报表 1.浙江无线报表
// private Integer customType;
//
//}

View File

@@ -45,6 +45,12 @@ public class ReportTemplateParam {
@ApiModelProperty(name = "reportForm",value = "报表类型",required = true)
private String reportForm;
@ApiModelProperty(name = "wiringMethod",value = "接线方式",required = true)
private String wiringMethod;
@ApiModelProperty(name = "sort",value = "排序",required = true)
private Integer sort;
@Data
@EqualsAndHashCode(callSuper = true)

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

@@ -17,8 +17,8 @@ import lombok.NoArgsConstructor;
*/
@Data
@NoArgsConstructor
@TableName(value = "cs_configuration")
public class CsConfigurationPO extends BaseEntity {
@TableName(value = "cs_configuration")
public class CsConfigurationPO extends BaseEntity {
/**
* id
*/
@@ -31,6 +31,12 @@ public class CsConfigurationPO extends BaseEntity {
@TableField(value = "`name`")
private String name;
/**
* 数据范围 0 私有 1全局
*/
@TableField(value = "scope")
private int scope;
@TableField(value = "image_path")
private String imagePath;
@@ -50,7 +56,6 @@ public class CsConfigurationPO extends BaseEntity {
private String status;
public static final String COL_ID = "id";
public static final String COL_NAME = "name";

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

@@ -1,37 +1,37 @@
package com.njcn.csharmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* pqs
* 自定义报表
* @author cdf
* @date 2022/8/16
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "sys_excel_rpt_temp")
public class ExcelRptTemp extends BaseEntity {
private String id;
private String name;
private String content;
private Integer activation;
private Integer state;
private String valueTitle;
private String reportType;
private String reportForm;
private Integer sort;
}
//package com.njcn.csharmonic.pojo.po;
//
//import com.baomidou.mybatisplus.annotation.TableName;
//import com.njcn.db.bo.BaseEntity;
//import lombok.Data;
//import lombok.EqualsAndHashCode;
//
//
///**
// * pqs
// * 自定义报表
// * @author cdf
// * @date 2022/8/16
// */
//@Data
//@EqualsAndHashCode(callSuper = true)
//@TableName(value = "sys_excel_rpt_temp")
//public class ExcelRptTemp extends BaseEntity {
// private String id;
//
// private String name;
//
// private String content;
//
// private Integer activation;
//
// private Integer state;
//
// private String valueTitle;
//
// private String reportType;
//
// private String reportForm;
//
// private Integer sort;
//
//}

View File

@@ -1,5 +1,6 @@
package com.njcn.csharmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Getter;
@@ -7,6 +8,8 @@ import lombok.Setter;
import java.io.Serializable;
import static com.baomidou.mybatisplus.annotation.IdType.ASSIGN_ID;
/**
* <p>
*
@@ -25,6 +28,7 @@ public class PqSensitiveUser extends BaseEntity implements Serializable{
/**
* id
*/
@TableId(value = "id",type = ASSIGN_ID)
private String id;
/**

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,127 @@
//package com.njcn.csharmonic.pojo.po;
//
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.annotation.TableField;
//import com.baomidou.mybatisplus.annotation.TableId;
//import com.baomidou.mybatisplus.annotation.TableName;
//import com.fasterxml.jackson.annotation.JsonFormat;
//import io.swagger.annotations.ApiModel;
//import io.swagger.annotations.ApiModelProperty;
//import lombok.Data;
//
//import java.io.Serializable;
//import java.time.LocalDateTime;
//
///**
// * 暂降明细实体类
// *
// * @author yzh
// * @since 2022-10-12 18:34:55
// */
//@Data
//@TableName("r_mp_event_detail")
//@ApiModel(value="RmpEventDetail对象")
//public class RmpEventDetailPO implements Serializable {
// private static final long serialVersionUID = 1L;
//
// @ApiModelProperty(value = "暂时事件ID")
// @TableId(value = "event_id", type = IdType.ASSIGN_ID)
// private String eventId;
//
// @ApiModelProperty(value = "监测点ID")
// private String measurementPointId;
//
// @ApiModelProperty(value = "监测点ID(复制)")
// @TableField("measurement_point_id")
// private String lineId;
//
// @ApiModelProperty(value = "统计类型")
// private String eventType;
//
// @ApiModelProperty(value = "暂降原因Event_Reason")
// @TableField("advance_reason")
// private String advanceReason;
//
// @ApiModelProperty(value = "暂降类型Event_Type")
// @TableField("advance_type")
// private String advanceType;
//
// @ApiModelProperty(value = "事件关联分析表Guid")
// private String eventassIndex;
//
// @ApiModelProperty(value = "dq计算持续时间 ")
// private Double dqTime;
//
// @ApiModelProperty(value = "特征值计算更新时间外键PQS_Relevance的Time字段")
// private LocalDateTime dealTime;
//
// @ApiModelProperty(value = "默认事件个数为0")
// private Integer num;
//
// @ApiModelProperty(value = "波形文件是否从装置招到本地(0未招1已招)默认值为0")
// private Integer fileFlag;
//
// @ApiModelProperty(value = "特征值计算标志0未处理1已处理; 2已处理无结果;3计算失败默认值为0")
// private Integer dealFlag;
//
// @ApiModelProperty(value = "处理结果第一条事件发生时间(读comtra文件获取)")
// private LocalDateTime firstTime;
//
// @ApiModelProperty(value = "处理结果第一条事件暂降类型字典表PQS_Dicdata")
// private String firstType;
//
// @ApiModelProperty(value = "处理结果第一条事件发生时间毫秒(读comtra文件获取)")
// private Double firstMs;
//
// @ApiModelProperty(value = "暂降能量")
// private Double energy;
//
// @ApiModelProperty(value = "暂降严重度")
// private Double severity;
//
// @ApiModelProperty(value = "暂降源与监测位置关系 Upper:上游Lower :下游Unknown :未知;为空则是未计算")
// private String sagsource;
//
// @ApiModelProperty(value = "开始时间")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
// private LocalDateTime startTime;
//
// @ApiModelProperty(value = "格式化开始时间")
// @TableField(exist = false)
// private String formatTime;
//
//
// @ApiModelProperty(value = "持续时间,单位秒")
// private Double duration;
//
// @ApiModelProperty(value = "特征幅值")
// private Double featureAmplitude;
//
// @ApiModelProperty(value = "相别")
// private String phase;
//
// @ApiModelProperty(value = "事件描述")
// private String eventDescribe;
//
// @ApiModelProperty(value = "波形路径")
// private String wavePath;
//
// @ApiModelProperty(value = "暂降核实原因")
// @TableField("verify_reason")
// private String verifyReason;
//
// @ApiModelProperty(value = "暂降核实原因详情")
// @TableField("verify_reason_detail")
// private String verifyReasonDetail;
//
// private Double transientValue;
//
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// private LocalDateTime createTime;
//
// @ApiModelProperty(value = "用于计算数量")
// @TableField(exist = false)
// private Integer count;
//
//}
//

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;
}

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