240 Commits

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

fix(service): 修复敏感用户服务更新逻辑

- 修改保存方法返回值直接返回this.save结果
- 更正更新操作调用this.updateById方法
- 修复查询条件中ID比较的参数传递问题
- 确保更新时排除当前记录的唯一性校验正确

feat(vo): 扩展敏感用户视图对象字段

- 新增用户协议容量字段userAgreementCapacity
- 添加装机容量字段installedCapacity
- 增加所属厂站名称字段substationName
- 完善相关字段注释说明
2025-12-03 08:43:32 +08:00
cdf
f33986e934 用户对象管理接口 2025-12-02 14:34:04 +08:00
贾同学
cea2b9694a feat(report): 新增敏感用户报表生成功能 2025-12-02 08:56:34 +08:00
8e4c4383c0 1.bug修改 2025-11-28 16:43:04 +08:00
cdd1b5075c 1.微调 2025-11-27 16:44:38 +08:00
ea54b2b907 1.自定义报表模板调整 2025-11-26 14:41:23 +08:00
贾同学
61c8656fd9 feat(report): 迁移自定义报表功能模块 2025-11-26 09:58:44 +08:00
02e5100426 1.暂降概览下穿页面接口 2025-11-26 08:43:19 +08:00
85ae7e7ddb 1.添加登录用户查询监测点,设备,电能质量用户公共接口 2025-11-25 10:15:09 +08:00
9ae17b14f5 1.暂降预览页面接口 2025-11-25 09:11:58 +08:00
贾同学
f7477ea8ff feat(device): 1、开发监测点治理报告上传和下载接口,与前端联调;2、开发监测对象电网侧和负载侧监测点指标趋势对比数据查询接口 2025-11-24 08:54:45 +08:00
xy
9c6a74a2d6 新增敏感用户相关功能 2025-11-20 11:44:49 +08:00
xy
d346e80a88 新增敏感用户相关功能 2025-11-20 11:30:21 +08:00
贾同学
0227d0731c feat(cs-device): 增加监测点列表查询接口及参数过滤功能 2025-11-20 08:50:46 +08:00
贾同学
e34721c035 feat(device): 新增指标拟合图数据查询功能 2025-11-19 14:05:49 +08:00
xy
2451df7d8d 物联用户权限功能优化 2025-11-17 09:38:43 +08:00
xy
6e5aab4791 物联用户权限功能优化 2025-11-14 15:59:17 +08:00
xy
adb811e9df 物联用户权限功能添加 2025-11-14 10:01:55 +08:00
hzj
340ba18f99 组态bug修改,从无锡同步过来的 2025-11-13 16:18:51 +08:00
hzj
e320685af1 组态bug修改,从无锡同步过来的 2025-11-13 16:11:24 +08:00
贾同学
400b9fd9c1 refactor(service):更新方法调用从getDeviceRtDataByTime到getNewDeviceRtDataByTime 2025-11-13 09:47:32 +08:00
贾同学
ce0b9892c2 feat(device): 新增趋势数据查询功能- 在CsGroupController中增加/trendData接口,支持查询趋势数据-
fix(device): 完善监测点相关接口与实体字段

- 在CsLinePO实体中新增monitorObj和govern字段
- 补充getLineByName和list接口,增强监测点查询能力
2025-11-13 08:58:43 +08:00
xy
2fb11ecaaf 新增物联设备相关算法 2025-11-11 10:57:34 +08:00
xy
b7574b2916 云前置功能调整 2025-11-04 14:08:59 +08:00
xy
43bdcbf623 微调 2025-10-28 13:35:37 +08:00
xy
629ba0746a 云前置改造-补召功能调整 2025-10-23 09:41:05 +08:00
xy
b86c81d70a 云前置改造-新增补召功能 2025-10-22 15:04:46 +08:00
xy
d10240758b 云前置改造-微调 2025-10-20 09:30:13 +08:00
xy
995bd8b310 云前置改造-前置功能优化 2025-10-17 10:49:15 +08:00
xy
9531e18e93 云前置改造-暂态数据补召功能 2025-10-15 20:50:04 +08:00
xy
753a22eb4c 云前置改造-台账更新功能 2025-10-14 13:24:56 +08:00
xy
814b5757fd 云前置改造-台账相关功能 2025-10-11 09:13:32 +08:00
xy
9d2b4b97f9 云前置改造 2025-09-23 16:34:24 +08:00
xy
ee07f7a5e2 组态调整 2025-09-23 16:32:35 +08:00
xy
214f297297 新增云前置相关功能 2025-09-18 15:03:27 +08:00
hzj
b908186758 修改兼容其他设备的bug 2025-09-18 10:03:56 +08:00
xy
0d1c142885 新增云前置相关功能 2025-09-17 20:15:48 +08:00
xy
43b8473976 新增云前置相关功能 2025-09-16 18:30:53 +08:00
xy
8c442d8897 1、新增云协议设备台账录入功能;
2、新增云协议设备实时数据请求功能
2025-09-04 13:58:30 +08:00
xy
066dceaeaf 代码优化 2025-08-22 12:31:12 +08:00
xy
9dca3408ae 新增标签 2025-08-04 09:57:22 +08:00
xy
0d7d1781e3 模块状态判断调整 2025-08-04 09:55:27 +08:00
xy
b794842d33 模块新增温度数据 2025-07-17 15:50:13 +08:00
xy
5e0c2d5cbc 模块新增温度数据 2025-07-17 15:46:48 +08:00
xy
6c9a33c05d 模块新增温度数据 2025-07-17 15:34:40 +08:00
xy
a847f541f1 微调 2025-07-17 10:42:25 +08:00
xy
94b5b92991 微调 2025-07-17 10:41:14 +08:00
xy
882d56a2c5 算法优化 2025-07-17 10:32:40 +08:00
xy
1629e1c4cc 功能调整 2025-07-17 09:05:16 +08:00
xy
45846e1889 功能调整 2025-07-16 17:50:53 +08:00
xy
030384333e 功能调整 2025-07-16 10:51:30 +08:00
xy
dc9958b249 功能调整 2025-07-16 09:37:18 +08:00
xy
a607437225 功能调整 2025-07-16 09:10:00 +08:00
xy
d277eba5fb 微调 2025-07-15 20:11:27 +08:00
xy
913c2ef262 微调 2025-07-15 20:04:35 +08:00
xy
0fe80e12b5 微调 2025-07-15 18:45:09 +08:00
xy
ffb6ead753 接口优化 2025-07-15 18:03:50 +08:00
xy
6782b19b7d 新增web端修改项目信息接口 2025-07-15 15:39:16 +08:00
xy
eeb22c749a 新增工程、项目信息修改功能 2025-07-15 13:27:56 +08:00
xy
31c21a43f4 新增工程、项目信息修改功能 2025-07-15 11:25:06 +08:00
xy
a923978f72 控制模块数据是否展示 2025-07-11 13:46:33 +08:00
xy
40588c6cd4 APF模块询问逻辑调整 2025-07-11 13:27:40 +08:00
xy
cb76943f0f 微调 2025-07-10 14:22:18 +08:00
xy
660925df31 半月报功能优化 2025-07-10 13:23:29 +08:00
xy
0ce5840d02 代码优化 2025-07-10 11:13:35 +08:00
xy
9bd6ca43e1 代码优化 2025-07-10 10:50:13 +08:00
xy
d6056e2cac 设备登记界面查询调整 2025-07-10 10:32:05 +08:00
xy
8d8eb4d274 事件添加模块信息 2025-07-10 08:49:07 +08:00
xy
b045860a43 事件添加模块信息 2025-07-09 16:45:22 +08:00
xy
c0c3ae4e41 微调 2025-07-09 15:36:00 +08:00
xy
443adfaa37 微调 2025-07-09 15:31:11 +08:00
xy
a314b3c862 新增模块数据展示 2025-07-09 15:20:21 +08:00
xy
282a592a13 调整台账树 2025-07-09 14:08:04 +08:00
xy
0f839dfd5b 微调 2025-07-08 14:02:48 +08:00
xy
45f706475b 定时任务时间调整 2025-07-08 10:11:14 +08:00
xy
0a06d2d5eb 功能优化 2025-07-08 09:40:02 +08:00
xy
bba6da3c7d 功能优化 2025-07-07 14:57:38 +08:00
xy
71d59528a3 功能优化 2025-07-07 14:10:09 +08:00
xy
06de2121f6 描述调整 2025-07-07 10:06:18 +08:00
xy
65d39224ed 新增半月报功能 2025-07-04 10:16:53 +08:00
xy
fda83a1bd9 新增定时任务和治理数据最新时间记录 2025-07-04 08:50:28 +08:00
xy
4ee41b833b 治理设备新增模块状态查询功能 2025-07-03 08:58:12 +08:00
hzj
cd07f8bee3 批量新增设备bug修改 2025-05-21 12:18:46 +08:00
xy
58a559b7b7 bug修改 2025-05-20 10:29:47 +08:00
hzj
52342d736d 批量新增设备bug修改 2025-05-19 10:58:35 +08:00
xy
6f5ffb8395 设备列表添加mqtt连接状态属性 2025-04-28 12:42:10 +08:00
hzj
ed7c02a116 批量新增设备bug修改 2025-04-28 09:42:36 +08:00
hzj
e12d23d4e1 批量新增设备bug修改 2025-04-28 08:41:24 +08:00
xy
0965eed31b 功能调整 2025-02-13 13:13:48 +08:00
xy
f754cf61c4 微调 2025-01-13 09:58:09 +08:00
xy
e32e820417 微调 2025-01-13 09:41:23 +08:00
xy
158917f2bc 新增测试项修改功能 2025-01-09 11:52:41 +08:00
xy
2df06d9597 代码优化 2025-01-08 15:44:26 +08:00
xy
81da6e54ca DVR界面添加条件筛选 2025-01-06 19:18:30 +08:00
xy
1f4e8c7e25 设备录入添加正则判断 2025-01-03 14:40:51 +08:00
xy
f90a3228b9 bug调整 2025-01-03 13:13:28 +08:00
xy
04cdb50b13 微调 2024-12-27 11:01:48 +08:00
b377ad7c95 1.sql调整 2024-12-24 14:27:47 +08:00
hzj
698c0a6eb0 添加ndid正则校验校验 2024-12-23 15:51:59 +08:00
xy
ada760eeb2 微调 2024-12-23 14:31:03 +08:00
xy
b22bd79750 代码优化 2024-12-23 11:35:45 +08:00
hzj
5f14f8fe2f 添加各种名称校验 2024-12-23 09:44:38 +08:00
xy
b93faee241 代码优化 2024-12-20 15:08:55 +08:00
xy
2191276185 添加测试项持续时间 2024-12-20 11:51:39 +08:00
xy
2206f203e8 添加版本信息 2024-12-20 11:26:01 +08:00
xy
c28724bb05 bug调整 2024-12-19 10:29:02 +08:00
hzj
86d21f984c 修改一次值二次值bug 2024-12-18 16:23:54 +08:00
hzj
6f38ddf068 修改bug 2024-12-17 20:36:54 +08:00
d1aefa92d8 1.新增测试项查询接口 2024-12-10 16:39:52 +08:00
51a22057a9 1.新增测试项查询接口 2024-12-10 15:07:44 +08:00
8055d08bda 1.新增测试项查询接口 2024-12-10 08:42:06 +08:00
xy
8a0e0d8c08 功能优化
1.优化界面描述显示;
2.新增测试项暂态事件
2024-12-06 15:24:31 +08:00
xy
3df2bedaa6 添加监测点统计间隔 2024-12-04 17:14:37 +08:00
xy
8e4adc58d4 添加接线方式 2024-12-02 19:04:54 +08:00
xy
98e880b68d 数据处理 2024-11-29 14:39:50 +08:00
xy
327923ba44 微调 2024-11-29 08:57:39 +08:00
xy
e37ace2fd7 代码优化 2024-11-28 17:34:37 +08:00
xy
ea3cff888b 新增数据集接线方式 2024-11-28 16:40:24 +08:00
xy
1f451f9d0e 1.模板调整;
2.新增装置排序
2024-11-28 16:29:28 +08:00
xy
b6c2675311 1.治理App版本信息添加
2.准实时数据接口调整
3.设备登记调整
4.设备接入调整
2024-11-28 08:43:54 +08:00
hzj
d0c7edff8a 补招日志问题修改 2024-11-27 15:57:07 +08:00
59a2bb5e62 1.添加对外接口 2024-11-15 16:12:49 +08:00
hzj
9c2b2dbd3e 补招添加测试项 2024-11-13 15:17:26 +08:00
hzj
be4f50fbc5 补招添加测试项 2024-11-13 13:04:55 +08:00
xy
625ed864c7 微调 2024-11-12 16:42:36 +08:00
xy
10910e36e0 微调 2024-11-12 16:33:18 +08:00
hzj
49d42328ff 修改批处理 2024-11-12 16:30:34 +08:00
xy
53debdf2ef 微调 2024-11-12 16:23:56 +08:00
xy
be6b29cbb7 微调 2024-11-12 14:59:53 +08:00
xy
c72882d023 微调 2024-11-12 14:42:44 +08:00
xy
5022aff834 微调 2024-11-12 14:33:27 +08:00
hzj
b2511aaaf5 将暂态文件路径:换成- 2024-11-12 13:32:10 +08:00
xy
75f07ac86f 实时数据调整 2024-11-12 13:19:33 +08:00
hzj
00b16325d6 数据解析bug 2024-11-11 16:11:53 +08:00
hzj
e09232dc55 接谐波解析bug 2024-11-11 15:50:22 +08:00
hzj
b8157f94c9 线电压项别错误 2024-11-11 14:44:49 +08:00
xy
5c50e18fc9 文件下载bug消缺 2024-11-08 14:05:39 +08:00
hzj
4b8e2488d2 添加告警,设备事件查询 2024-11-06 15:01:12 +08:00
hzj
a4acc4775a 添加告警,设备事件查询 2024-11-06 11:12:42 +08:00
hzj
c4803846a4 拓扑图数据展示 2024-11-05 10:48:46 +08:00
xy
66c54ac3eb 1.优化数据单位显示
2.优化补召功能
3.监测点数据完整性及装置在线率(未开发完)
2024-11-04 20:44:56 +08:00
hzj
ce861e1804 bug修改 2024-11-01 14:41:46 +08:00
xy
35d44dcc08 代码优化
1.公共方法提取
2.装置类型判断
2024-11-01 11:20:09 +08:00
xy
c3d87eca34 bug调整 2024-10-31 15:44:14 +08:00
xy
86c6c95777 bug调整 2024-10-31 14:07:52 +08:00
xy
f9d696faad bug调整 2024-10-31 13:42:53 +08:00
xy
c325301a8f bug调整 2024-10-30 16:09:20 +08:00
hzj
014370062a 波形下载接口开发 2024-10-30 11:28:41 +08:00
hzj
ada65fd40d 离线数据上传bug 2024-10-29 16:27:40 +08:00
hzj
a940d3961a 离线数据上传bug 2024-10-29 16:01:04 +08:00
hzj
4b7a60190c 历史趋势图添加二次值 2024-10-24 20:00:55 +08:00
xy
c0be7629dd 数据显示优化 2024-10-24 16:38:41 +08:00
hzj
5f82f65b8f 趋势图bug修改 2024-10-23 20:10:00 +08:00
xy
4e0b4b6b90 添加文件时间 2024-10-23 18:43:22 +08:00
hzj
ca9193b861 修改报表 2024-10-23 10:25:19 +08:00
hzj
469a4ba63e 组态bug修改 2024-10-23 08:48:33 +08:00
hzj
4316e72521 组态bug修改 2024-10-22 20:45:19 +08:00
hzj
f942be74f1 测试项限值生成 2024-10-22 18:11:34 +08:00
xy
b750064b16 微调 2024-10-22 10:39:55 +08:00
xy
b7c9cd2ee0 补召优化 2024-10-21 19:59:13 +08:00
hzj
6cca1cc74d 修改bug 2024-10-21 15:33:31 +08:00
hzj
a83ab8b141 修改bug 2024-10-21 11:40:33 +08:00
hzj
edc2453da2 修改bug 2024-10-17 13:53:06 +08:00
xy
cbc301da5f pom文件提交 2024-10-17 13:45:15 +08:00
xy
4142de1fcf 设备树调整 2024-10-17 10:10:23 +08:00
xy
78b9a98ab8 模板数据、设备信息初始化至内存 2024-10-16 18:53:19 +08:00
hzj
5169669b2b Merge remote-tracking branch 'origin/master' 2024-10-16 10:51:26 +08:00
hzj
10e0e96b65 修改bug 2024-10-16 10:50:58 +08:00
xy
cd35e67007 设备树显示调整 2024-10-16 10:32:40 +08:00
xy
eb7a1d9beb 优化 2024-10-15 18:30:27 +08:00
hzj
3059f5ac75 修改bug 2024-10-15 15:04:28 +08:00
hzj
346afef6d0 修改bug 2024-10-15 14:24:05 +08:00
hzj
2cf47ec3b3 修改bug 2024-10-15 12:30:59 +08:00
xy
83199f07b6 无线系统补召功能调整 2024-10-15 11:12:05 +08:00
hzj
8295801f16 修改bug 2024-10-11 19:19:57 +08:00
xy
306b426573 无线系统实时数据功能 2024-10-11 18:17:38 +08:00
hzj
3a60a05ea2 修改告警展示页面 2024-10-10 10:40:59 +08:00
xy
86108004d5 解决启动报错 2024-10-09 16:06:20 +08:00
xy
5ef232a485 模板适配调整 2024-10-09 14:57:29 +08:00
05112b5262 1.数据方案修改 2024-10-09 11:38:02 +08:00
hzj
2ca4ee702b 添加波形路径用于判断是否展示波形 2024-10-09 09:28:17 +08:00
xy
c95c1271c2 模板调整适配 2024-10-09 09:25:41 +08:00
hzj
105a5314cb 离线数据上传 2024-10-08 20:51:58 +08:00
xy
867176d8a0 设备补召优化 2024-10-08 09:54:04 +08:00
hzj
e6e6790ee2 离线数据上传 2024-10-08 09:09:23 +08:00
xy
6811d02f6b 解决启动报错 2024-09-30 09:17:45 +08:00
hzj
4745b86085 离线数据上传 2024-09-29 16:15:52 +08:00
xy
d1574e43be 在线补招装置数据 2024-09-29 16:06:26 +08:00
f13c8670cb 1.监测点表新增两个字段
2.无线bug提交
2024-09-29 08:48:57 +08:00
162f39543e 1.无线设bug修改 2024-09-26 16:40:41 +08:00
hzj
0cf9a45436 修改bug 2024-09-26 16:13:33 +08:00
hzj
f9aa1d4f69 设备容量修改 2024-09-26 15:08:56 +08:00
196de3a1d8 1.无线设bug修改
2.添加测试项每日扫描功能
2024-09-26 08:46:25 +08:00
xy
16551b2451 获取便携式设备基础数据功能 2024-09-25 19:22:58 +08:00
d3f32fd396 1.无线设备bug修改 2024-09-24 16:40:32 +08:00
xy
35e521365d 手持式设备树功能重写 2024-09-24 13:20:03 +08:00
e836d9bd07 1.无线bug修改 2024-09-24 09:08:20 +08:00
xy
509712b5b5 便携式设备软件信息调整 2024-09-23 20:32:03 +08:00
hzj
65afb4eddc 事件去掉位置字段 2024-09-23 15:32:31 +08:00
86ad89d06c 1.无线bug修改 2024-09-23 10:48:42 +08:00
hzj
a6465911c4 事件显示添加字段 2024-09-20 09:32:02 +08:00
hzj
aaa1f69ec2 报表功能开发 2024-09-19 14:43:07 +08:00
xy
f86f18817d 程序信息对外接口 2024-09-19 14:25:17 +08:00
xy
46a9922313 添加程序软件信息接口 2024-09-19 13:52:06 +08:00
hzj
72807b6d13 Merge remote-tracking branch 'origin/master' 2024-09-19 10:11:56 +08:00
hzj
87e67a4f23 报表功能开发 2024-09-19 10:11:38 +08:00
xy
e0d5c3e52c 下载优化 2024-09-18 20:06:59 +08:00
hzj
73374c6b8d 报表功能开发 2024-09-18 18:46:40 +08:00
xy
0a45b1303d 暂态事件显示优化 2024-09-17 15:37:25 +08:00
xy
facaba6606 暂态事件显示优化 2024-09-17 15:05:55 +08:00
xy
d2bff5bb81 暂态事件显示优化 2024-09-17 14:43:34 +08:00
guofeihu
f5bc7e3c2c 上个版本遗漏 2024-09-14 16:33:09 +08:00
guofeihu
9821b30d94 离线文件上传工具类不走fegin 2024-09-14 16:30:41 +08:00
xy
5a6677ce3d 录波文件下载优化 2024-09-14 11:43:44 +08:00
xy
d54ec83d1c 调整文件下载完删除缓存 2024-09-13 20:39:59 +08:00
xy
d0aac0886a 装置文件夹新建删除功能 2024-09-11 20:40:40 +08:00
hzj
1402287fd5 修改bug 2024-09-11 20:06:55 +08:00
xy
2bc0f6f563 微调 2024-09-11 13:06:59 +08:00
xy
e5067abdfb 代码注释 2024-09-11 13:03:08 +08:00
xy
2d134809a0 文件下载、上传调整 2024-09-11 11:36:32 +08:00
xy
7205d8a324 pom调整 2024-09-09 10:06:04 +08:00
xy
74a83d6f44 便携式设备目录查看 2024-09-09 09:55:57 +08:00
xy
3d9acfe95b 便携式设备目录查看 2024-09-09 09:54:24 +08:00
xy
26e45ddbc5 微调 2024-09-05 10:55:36 +08:00
xy
67cbff33ef 微调 2024-09-05 10:41:21 +08:00
xy
ad0f7bc3fc 界面数据展示调整 2024-09-05 10:35:08 +08:00
519 changed files with 44078 additions and 2087 deletions

View File

@@ -112,7 +112,7 @@
<dependency>
<groupId>com.njcn</groupId>
<artifactId>pqs-influx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

View File

@@ -35,12 +35,6 @@
<artifactId>common-microservice</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>cs-warn-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>user-api</artifactId>
@@ -53,6 +47,18 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-device-biz</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@@ -0,0 +1,34 @@
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.CsCommTerminalFeignClientFallbackFactory;
import com.njcn.csdevice.api.fallback.CsDeviceUserClientFallbackFactory;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import org.springframework.cloud.openfeign.FeignClient;
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;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/commTerminal", fallbackFactory = CsCommTerminalFeignClientFallbackFactory.class,contextId = "deviceUser")
public interface CsCommTerminalFeignClient {
@GetMapping("lineUnitDetail")
HttpResult<PqsDeviceUnit> lineUnitDetail(@RequestParam("lineId") String lineId);
@GetMapping("getDevIdsByUser")
HttpResult<List<String>> getDevIdsByUser(@RequestParam("userId") String userId);
@GetMapping("getLineIdsByUser")
HttpResult<List<String>> getLineIdsByUser(@RequestParam("userId") String userId);
@GetMapping("getPqUserIdsByUser")
HttpResult<List<String>> getPqUserIdsByUser(@RequestParam("userId") String userId);
}

View File

@@ -0,0 +1,20 @@
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.CsCommunicateFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.dto.PqsCommunicateDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/pqsCommunicate", fallbackFactory = CsCommunicateFeignClientFallbackFactory.class,contextId = "pqsCommunicate")
public interface CsCommunicateFeignClient {
@PostMapping("/insertion")
HttpResult<String> insertion(@RequestBody PqsCommunicateDto pqsCommunicateDto);
}

View File

@@ -3,6 +3,7 @@ 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.CsDeviceUserClientFallbackFactory;
import com.njcn.csdevice.pojo.param.UserDevParam;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -22,4 +23,10 @@ public interface CsDeviceUserFeignClient {
@PostMapping("/findUserById")
HttpResult<List<String>> findUserById(@RequestParam("id") String id);
@PostMapping("/findDevByUserId")
HttpResult<List<String>> findDevByUserId(@RequestParam("id") String id);
@PostMapping("/channelDevByUserId")
HttpResult<List<String>> channelDevByUserId(@RequestBody UserDevParam param);
}

View File

@@ -8,7 +8,6 @@ import com.njcn.csdevice.pojo.dto.LineParamDTO;
import com.njcn.csdevice.pojo.param.CsLedgerParam;
import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
@@ -39,4 +38,19 @@ public interface CsLedgerFeignClient {
@PostMapping("/deviceTree")
@ApiOperation("三层设备树(装置层)")
HttpResult<List<CsLedgerVO>> getDeviceTree();
}
@PostMapping("/getAllLedger")
HttpResult<List<CsLedgerVO>> getAllLedger();
@PostMapping("/getInfoByIds")
HttpResult<List<DevDetailDTO>> getInfoByIds(@RequestBody @Validated List<String> list);
@PostMapping("/getDevInfoByEngineerIds")
@ApiOperation("根据工程获取设备信息")
HttpResult<List<DevDetailDTO>> getDevInfoByEngineerIds(@RequestBody @Validated List<String> list);
@PostMapping("/getEngineeringHaveDevs")
@ApiOperation("根据工程信息获取有设备的工程")
HttpResult<List<DevDetailDTO>> getEngineeringHaveDevs(@RequestBody @Validated List<String> list);
}

View File

@@ -1,11 +1,19 @@
package com.njcn.csdevice.api;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -18,7 +26,6 @@ import java.util.List;
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csline", fallbackFactory = CsLineClientFallbackFactory.class,contextId = "csline")
public interface CsLineFeignClient {
@PostMapping("/queryLineById")
HttpResult<List<CsLinePO>> queryLineById(@RequestParam("ids") List<String> ids );
@@ -36,4 +43,36 @@ public interface CsLineFeignClient {
@PostMapping("/updateLine")
HttpResult<String> updateLine(@RequestBody CsLineParam csLineParam);
@PostMapping("/updateIds")
HttpResult<Boolean> updateIds(@RequestBody @Validated CsLineParam csLineParam);
@PostMapping("/getById")
HttpResult<CsLinePO> getById(@RequestParam("lineId") String lineId);
@PostMapping("/getLinesByDevList")
HttpResult<List<CsLinePO>> getLinesByDevList(@RequestBody List<String> ids);
@PostMapping("/updateLineDataByList")
HttpResult<String> updateDataByList(@RequestParam("list") List<String> list, @RequestParam("id") String id, @RequestParam("setId") String setId);
@PostMapping("/getLineByName")
HttpResult<List<CsLinePO>> getLineByName(@RequestParam("lineName") String lineName);
@PostMapping("/getAllLine")
HttpResult<List<String>> getAllLine();
@PostMapping("/getOverLimitDataByIds")
HttpResult<List<Overlimit>> getOverLimitData(@RequestBody List<String> ids);
@PostMapping("/getLineBySensitiveUser")
@ApiOperation("根据敏感用户查询监测点")
HttpResult<List<CsLinePO>> getLineBySensitiveUser(@RequestBody List<String> list);
@PostMapping("/list")
HttpResult<List<CsLinePO>> list(@RequestBody CsLinePO param);
@PostMapping("/getLineDetailData")
HttpResult<LineDetailDataVO> getLineDetailData(@RequestParam("id") String id);
}

View File

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

View File

@@ -0,0 +1,27 @@
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.CsSoftInfoClientFallbackFactory;
import com.njcn.csdevice.pojo.po.CsSoftInfoPO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csSoftInfo", fallbackFactory = CsSoftInfoClientFallbackFactory.class,contextId = "csSoftInfo")
public interface CsSoftInfoFeignClient {
@PostMapping("/findSoftInfo")
HttpResult<CsSoftInfoPO> findSoftInfo(@RequestParam("id") String id);
@PostMapping("/saveSoftInfo")
HttpResult<String> saveSoftInfo(@RequestBody CsSoftInfoPO po);
@PostMapping("/removeSoftInfo")
HttpResult<String> removeSoftInfo(@RequestParam("id") String id);
}

View File

@@ -0,0 +1,20 @@
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.CsTerminalLogsClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csTerminalLogs", fallbackFactory = CsTerminalLogsClientFallbackFactory.class,contextId = "csTerminalLogs")
public interface CsTerminalLogsFeignClient {
@PostMapping("/updateLaterData")
HttpResult<String> updateLaterData(@RequestParam("id") String id, @RequestParam("code") String code);
}

View File

@@ -0,0 +1,30 @@
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.CsTerminalReplyClientFallbackFactory;
import com.njcn.csdevice.param.IcdBzReplyParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csTerminalReply", fallbackFactory = CsTerminalReplyClientFallbackFactory.class,contextId = "csTerminalReply")
public interface CsTerminalReplyFeignClient {
@PostMapping("/updateData")
@ApiOperation("更新推送结果")
HttpResult<String> updateData(@RequestBody @Validated IcdBzReplyParam param);
@PostMapping("/updateBzData")
@ApiOperation("更新补召推送结果")
HttpResult<String> updateBzData(@RequestBody @Validated IcdBzReplyParam param);
}

View File

@@ -5,7 +5,6 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csdevice.api.fallback.DataArrayFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.param.DataArrayParam;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.DataArrayTreeVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -22,13 +21,14 @@ import java.util.List;
public interface DataArrayFeignClient {
@PostMapping("/getArrayBySet")
HttpResult<List<CsDataArray>> getArrayBySet(@RequestBody List<CsDataSet> setList);
HttpResult<List<CsDataArray>> getArrayBySet(@RequestParam("dataSet") String dataSet);
@PostMapping("/getDataArray")
HttpResult<List<DataArrayTreeVO>> getDataArray(@RequestBody List<String> dataSetList);
@PostMapping("/getDataArrayById")
HttpResult<List<CsDataArray>> getDataArrayById(@RequestParam("pid") String pid, @RequestParam("name") String name);
@PostMapping("/getDataArrayByIds")
HttpResult<List<CsDataArray>> getDataArrayByIds(@RequestParam("ids") List<String> ids);

View File

@@ -7,6 +7,7 @@ import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -27,4 +28,16 @@ public interface DataSetFeignClient {
@PostMapping("/getModuleDataSet")
HttpResult<List<CsDataSet>> getModuleDataSet(@RequestParam("modelId") String modelId);
@PostMapping("/getDataSetBySetIds")
HttpResult<List<CsDataSet>> getDataSetBySetIds(@RequestBody List<String> lineIds);
@PostMapping("/getBaseDataSet")
HttpResult<CsDataSet> getBaseDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev);
@PostMapping("/getHarmonicDataSet")
HttpResult<CsDataSet> getHarmonicDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev,@RequestParam("target") Integer target);
@PostMapping("/getDataSetByIdx")
HttpResult<CsDataSet> getDataSetByIdx(@RequestParam("modelId") String modelId,@RequestParam("idx") Integer idx);
}

View File

@@ -28,4 +28,7 @@ public interface DevModelRelationFeignClient {
@PostMapping("/getModelByType")
HttpResult<String> getModelByType(@RequestParam("devId") String devId, @RequestParam("type") Integer type);
@PostMapping("/updateDataByList")
HttpResult<String> updateDataByList(@RequestParam("list") List<String> list, @RequestParam("id") String id);
}

View File

@@ -0,0 +1,19 @@
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.DeviceFtpClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/deviceFile", fallbackFactory = DeviceFtpClientFallbackFactory.class,contextId = "deviceFile")
public interface DeviceFtpFeignClient {
@PostMapping("/downloadFile")
HttpResult<String> downloadFile(@RequestParam("nDid") String nDid, @RequestParam("name") String name, @RequestParam("size") Integer size, @RequestParam("fileCheck") String fileCheck);
}

View File

@@ -1,14 +1,22 @@
package com.njcn.csdevice.api;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.api.fallback.EquipmentFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@@ -50,4 +58,19 @@ public interface EquipmentFeignClient {
*/
@PostMapping("/updateModuleNumber")
HttpResult<String> updateModuleNumber(@RequestParam("nDid") String nDid,@RequestParam("number") Integer number);
@PostMapping("/getAll")
HttpResult<List<CsEquipmentDeliveryPO>> getAll();
@PostMapping("/judgeDevModel")
HttpResult<Boolean> judgeDevModel(@RequestParam("nDid") String nDid);
@PostMapping("/getDevByLineId")
HttpResult<CsEquipmentDeliveryPO> getDevByLineId(@RequestParam("lineId") String lineId);
@PostMapping("/updateCldDevStatus")
HttpResult<Boolean> updateCldDevStatus(@RequestParam("nodeId") String nodeId, @RequestParam("processNo") Integer processNo);
@PostMapping("/flipCldDevStatus")
HttpResult<Boolean> flipCldDevStatus(@RequestParam("devId") String devId, @RequestParam("status") Integer status);
}

View File

@@ -0,0 +1,29 @@
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.CsTerminalLogsClientFallbackFactory;
import com.njcn.csdevice.api.fallback.IcdFallbackFactory;
import com.njcn.csdevice.param.IcdBzParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/icd", fallbackFactory = IcdFallbackFactory.class,contextId = "icd")
public interface IcdFeignClient {
@PostMapping("/bzEvent")
@ApiOperation("补召事件")
HttpResult<String> bzEvent(@RequestBody @Validated IcdBzParam param);
@PostMapping("/bzFile")
@ApiOperation("补召波形")
HttpResult<String> bzFile(@RequestBody @Validated IcdBzParam param);
}

View File

@@ -0,0 +1,23 @@
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.IntegrityClientFallbackFactory;
import com.njcn.csdevice.pojo.po.RStatIntegrityD;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/rStatIntegrityD", fallbackFactory = IntegrityClientFallbackFactory.class,contextId = "rStatIntegrityD")
public interface IntegrityFeignClient {
@PostMapping("/list")
HttpResult<List<RStatIntegrityD>> list(@Validated @RequestParam("list") List<String> list, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime);
}

View File

@@ -0,0 +1,24 @@
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.NodeFallbackFactory;
import com.njcn.csdevice.pojo.po.Node;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/node", fallbackFactory = NodeFallbackFactory.class,contextId = "node")
public interface NodeFeignClient {
@ApiOperation("获取全部前置机")
@GetMapping("/nodeAllList")
HttpResult<List<Node>> nodeAllList();
}

View File

@@ -0,0 +1,23 @@
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.onlineRateClientFallbackFactory;
import com.njcn.csdevice.pojo.po.RStatOnlineRateD;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/rStatOnlineRateD", fallbackFactory = onlineRateClientFallbackFactory.class,contextId = "rStatOnlineRateD")
public interface OnlineRateFeignClient {
@PostMapping("/list")
HttpResult<List<RStatOnlineRateD>> list(@Validated @RequestParam("list") List<String> list, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime);
}

View File

@@ -0,0 +1,28 @@
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.PortableOffLogFeignClientFallbackFactory;
import com.njcn.csdevice.api.fallback.ProcessFeignClientFallbackFactory;
import com.njcn.csdevice.pojo.po.CsEquipmentProcessPO;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/portableOfflLog", fallbackFactory = PortableOffLogFeignClientFallbackFactory.class,contextId = "PortableOffLog")
public interface PortableOffLogFeignClient {
@PostMapping(value = "dataOnlineRecruitment")
HttpResult<String> dataOnlineRecruitment(@RequestParam("devId") String devId
, @RequestParam("lineId") String lineId, @RequestParam("path") String path);
}

View File

@@ -0,0 +1,60 @@
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.WlRecordClientFallbackFactory;
import com.njcn.csdevice.pojo.param.WlRecordParam;
import com.njcn.csdevice.pojo.po.WlRecord;
import com.njcn.csdevice.pojo.vo.RecordVo;
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;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/wlRecord", fallbackFactory = WlRecordClientFallbackFactory.class,contextId = "wlRecord")
public interface WlRecordFeignClient {
/**
* 新增原始数据
*/
@PostMapping("/addBaseData")
HttpResult<Boolean> addBaseData(@RequestBody @Validated WlRecord wlRecord);
/**
* 批量新增原始数据
*/
@PostMapping("/addBaseDataList")
HttpResult<Boolean> addBaseDataList(@RequestBody @Validated List<WlRecord> wlRecord);
/**
* 按条件查询设备基础数据
* @param param
* @return
*/
@PostMapping("/findDevBaseData")
HttpResult<WlRecord> findDevBaseData(@RequestBody @Validated WlRecordParam.Record param);
@PostMapping("/updateTestRecord")
HttpResult<Boolean> updateTestRecord(@RequestBody @Validated WlRecordParam.UpdateRecord record);
@PostMapping("/dayDealNoEndTimeEvent")
void dayDealNoEndTimeEvent(@RequestParam("date") String date);
@GetMapping("/getWlAssByWlId")
HttpResult<List<WlRecord>> getWlAssByWlId(@RequestParam("wlId")String wlId);
@PostMapping("/findDevBaseDataByLineId")
HttpResult<List<RecordVo>> findDevBaseDataByLineId(@RequestBody @Validated WlRecordParam.lineRecord param);
@GetMapping("/getTestRecordById")
HttpResult<RecordVo.RecordItemVo> getTestRecordById(@RequestParam("testRecordId") @Validated String testRecordId);
}

View File

@@ -0,0 +1,56 @@
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.CsCommTerminalFeignClient;
import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class CsCommTerminalFeignClientFallbackFactory implements FallbackFactory<CsCommTerminalFeignClient> {
@Override
public CsCommTerminalFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsCommTerminalFeignClient() {
@Override
public HttpResult<PqsDeviceUnit> lineUnitDetail(String lineId) {
log.error("{}异常,降级处理,异常为:{}","查询分组",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> getDevIdsByUser(String userId) {
log.error("{}异常,降级处理,异常为:{}","根据登录用户id获取用户所有设备id集合",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> getLineIdsByUser(String userId) {
log.error("{}异常,降级处理,异常为:{}","根据登录用户id获取用户所有监测点id集合",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> getPqUserIdsByUser(String userId) {
log.error("{}异常,降级处理,异常为:{}","根据登录用户id获取电能质量用户id集合",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,40 @@
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.CsCommunicateFeignClient;
import com.njcn.csdevice.pojo.dto.PqsCommunicateDto;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/4/10 20:09
*/
@Slf4j
@Component
public class CsCommunicateFeignClientFallbackFactory implements FallbackFactory<CsCommunicateFeignClient> {
@Override
public CsCommunicateFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsCommunicateFeignClient() {
@Override
public HttpResult<String> insertion(PqsCommunicateDto pqsCommunicateDto) {
log.error("{}异常,降级处理,异常为:{}","新增记录",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -4,6 +4,7 @@ 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.CsDeviceUserFeignClient;
import com.njcn.csdevice.pojo.param.UserDevParam;
import com.njcn.csdevice.pojo.po.CsDeviceUserPO;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
@@ -38,6 +39,18 @@ public class CsDeviceUserClientFallbackFactory implements FallbackFactory<CsDevi
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> findDevByUserId(String id) {
log.error("{}异常,降级处理,异常为:{}","根据用户Id查询设备集合",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> channelDevByUserId(UserDevParam param) {
log.error("{}异常,降级处理,异常为:{}","根据用户Id解绑设备集合异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -62,6 +62,30 @@ public class CsLedgerFeignClientFallbackFactory implements FallbackFactory<CsLed
log.error("{}异常,降级处理,异常为:{}","查询设备树",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsLedgerVO>> getAllLedger() {
log.error("{}异常,降级处理,异常为:{}","获取台账树所有数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<DevDetailDTO>> getInfoByIds(List<String> list) {
log.error("{}异常,降级处理,异常为:{}","根据设备集合查询工程,设备信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<DevDetailDTO>> getDevInfoByEngineerIds(List<String> list) {
log.error("{}异常,降级处理,异常为:{}","根据工程获取设备信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<DevDetailDTO>> getEngineeringHaveDevs(List<String> list) {
log.error("{}异常,降级处理,异常为:{}","根据工程获取设备信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -6,9 +6,12 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.LineDetailDataVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -28,7 +31,6 @@ public class CsLineClientFallbackFactory implements FallbackFactory<CsLineFeignC
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsLineFeignClient() {
@Override
public HttpResult<List<CsLinePO>> queryLineById(List<String> ids) {
log.error("{}异常,降级处理,异常为:{}","查询监测点详情异常",cause.toString());
@@ -63,6 +65,65 @@ public class CsLineClientFallbackFactory implements FallbackFactory<CsLineFeignC
log.error("{}异常,降级处理,异常为:{}","更新监测点信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> updateIds(CsLineParam csLineParam) {
log.error("{}异常,降级处理,异常为:{}","修改监测点模板id和数据集id",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<CsLinePO> getById(String lineId) {
log.error("{}异常,降级处理,异常为:{}","根据监测点id获取监测点详情",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsLinePO>> getLinesByDevList(List<String> ids) {
log.error("{}异常,降级处理,异常为:{}","根据装置id集合获取监测点id集合",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> updateDataByList(List<String> list, String id, String setId) {
log.error("{}异常,降级处理,异常为:{}","根据装置集合修改监测点信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> getAllLine() {
log.error("{}异常,降级处理,异常为:{}","获取所有监测点id",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<Overlimit>> getOverLimitData(List<String> ids) {
log.error("{}异常,降级处理,异常为:{}","根据监测点id集合获取国标限值异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsLinePO>> getLineBySensitiveUser(List<String> list) {
log.error("{}异常,降级处理,异常为:{}","根据敏感用户查询监测点异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsLinePO>> getLineByName(String lineName) {
log.error("{}异常,降级处理,异常为:{}","根据名称查询监测点异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsLinePO>> list(CsLinePO param) {
log.error("{}异常,降级处理,异常为:{}","查询监测点列表异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<LineDetailDataVO> getLineDetailData(@RequestParam("id") String id) {
log.error("{}异常,降级处理,异常为:{}","查询监测点详情异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

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

View File

@@ -0,0 +1,46 @@
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.CsSoftInfoFeignClient;
import com.njcn.csdevice.pojo.po.CsSoftInfoPO;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class CsSoftInfoClientFallbackFactory implements FallbackFactory<CsSoftInfoFeignClient> {
@Override
public CsSoftInfoFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsSoftInfoFeignClient() {
@Override
public HttpResult<CsSoftInfoPO> findSoftInfo(String id) {
log.error("{}异常,降级处理,异常为:{}","获取装置软件信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> saveSoftInfo(CsSoftInfoPO po) {
log.error("{}异常,降级处理,异常为:{}","保存软件程序",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> removeSoftInfo(String id) {
log.error("{}异常,降级处理,异常为:{}","删除软件程序",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,33 @@
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.CsTerminalLogsFeignClient;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class CsTerminalLogsClientFallbackFactory implements FallbackFactory<CsTerminalLogsFeignClient> {
@Override
public CsTerminalLogsFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsTerminalLogsFeignClient() {
@Override
public HttpResult<String> updateLaterData(String id, String code) {
log.error("{}异常,降级处理,异常为:{}","更新最新一组数据的推送状态",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,41 @@
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.CsTerminalReplyFeignClient;
import com.njcn.csdevice.param.IcdBzReplyParam;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class CsTerminalReplyClientFallbackFactory implements FallbackFactory<CsTerminalReplyFeignClient> {
@Override
public CsTerminalReplyFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsTerminalReplyFeignClient() {
@Override
public HttpResult<String> updateData(IcdBzReplyParam param) {
log.error("{}异常,降级处理,异常为:{}","更新推送结果异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> updateBzData(IcdBzReplyParam param) {
log.error("{}异常,降级处理,异常为:{}","更新补召推送结果异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -6,7 +6,6 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csdevice.api.DataArrayFeignClient;
import com.njcn.csdevice.pojo.param.DataArrayParam;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.DataArrayTreeVO;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
@@ -36,7 +35,7 @@ public class DataArrayFeignClientFallbackFactory implements FallbackFactory<Data
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataArrayFeignClient() {
@Override
public HttpResult<List<CsDataArray>> getArrayBySet(List<CsDataSet> setList) {
public HttpResult<List<CsDataArray>> getArrayBySet(String dataSet) {
log.error("{}异常,降级处理,异常为:{}","根据数据集获取详细数据失败",cause.toString());
throw new BusinessException(finalExceptionEnum);
}

View File

@@ -50,6 +50,30 @@ public class DataSetFeignClientFallbackFactory implements FallbackFactory<DataSe
log.error("{}异常,降级处理,异常为:{}","获取子模块数据集",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsDataSet>> getDataSetBySetIds(List<String> lineIds) {
log.error("{}异常,降级处理,异常为:{}","根据数据集ids获取数据集",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<CsDataSet> getBaseDataSet(String modelId, Integer clDev) {
log.error("{}异常,降级处理,异常为:{}","获取实时数据-基础数据集",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<CsDataSet> getHarmonicDataSet(String modelId, Integer clDev, Integer target) {
log.error("{}异常,降级处理,异常为:{}","获取实时数据-谐波数据集",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<CsDataSet> getDataSetByIdx(String modelId, Integer idx) {
log.error("{}异常,降级处理,异常为:{}","根据idx获取数据集数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -46,6 +46,12 @@ public class DevModelRelationFeignClientFallbackFactory implements FallbackFacto
log.error("{}异常,降级处理,异常为:{}","根据装置类型查询模板",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> updateDataByList(List<String> list, String id) {
log.error("{}异常,降级处理,异常为:{}","根据装置集合修改模板信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,34 @@
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.DeviceFtpFeignClient;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class DeviceFtpClientFallbackFactory implements FallbackFactory<DeviceFtpFeignClient> {
@Override
public DeviceFtpFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> DeviceFtpFeignClient = exceptionEnum;
return new DeviceFtpFeignClient() {
@Override
public HttpResult<String> downloadFile(String nDid, String name, Integer size, String fileCheck) {
log.error("{}异常,降级处理,异常为:{}","文件下载处理",cause.toString());
throw new BusinessException(DeviceFtpFeignClient);
}
};
}
}

View File

@@ -71,6 +71,37 @@ public class EquipmentFeignClientFallbackFactory implements FallbackFactory<Equi
log.error("{}异常,降级处理,异常为:{}","更新设备模块个数",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<CsEquipmentDeliveryPO>> getAll() {
log.error("{}异常,降级处理,异常为:{}","获取所有装置",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> judgeDevModel(String nDid) {
log.error("{}异常,降级处理,异常为:{}","判断设备型号",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<CsEquipmentDeliveryPO> getDevByLineId(String lineId) {
log.error("{}异常,降级处理,异常为:{}","根据监测点id查询装置信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> updateCldDevStatus(String nodeId, Integer processNo) {
log.error("{}异常,降级处理,异常为:{}","云前置心跳丢失切换设备状态",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> flipCldDevStatus(String devId, Integer status) {
log.error("{}异常,降级处理,异常为:{}","云前置设备状态翻转",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,40 @@
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.IcdFeignClient;
import com.njcn.csdevice.param.IcdBzParam;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class IcdFallbackFactory implements FallbackFactory<IcdFeignClient> {
@Override
public IcdFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new IcdFeignClient() {
@Override
public HttpResult<String> bzEvent(IcdBzParam param) {
log.error("{}异常,降级处理,异常为:{}","定时补召事件异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> bzFile(IcdBzParam param) {
log.error("{}异常,降级处理,异常为:{}","定时补召波形异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,37 @@
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.IntegrityFeignClient;
import com.njcn.csdevice.pojo.po.RStatIntegrityD;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class IntegrityClientFallbackFactory implements FallbackFactory<IntegrityFeignClient> {
@Override
public IntegrityFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new IntegrityFeignClient() {
@Override
public HttpResult<List<RStatIntegrityD>> list(List<String> list, String startTime, String endTime) {
log.error("{}异常,降级处理,异常为:{}","查询数据异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,37 @@
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.NodeFeignClient;
import com.njcn.csdevice.pojo.po.Node;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class NodeFallbackFactory implements FallbackFactory<NodeFeignClient> {
@Override
public NodeFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new NodeFeignClient() {
@Override
public HttpResult<List<Node>> nodeAllList() {
log.error("{}异常,降级处理,异常为:{}","获取全部前置机异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,43 @@
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.PortableOffLogFeignClient;
import com.njcn.csdevice.api.ProcessFeignClient;
import com.njcn.csdevice.pojo.po.CsEquipmentProcessPO;
import com.njcn.csdevice.utils.CsDeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/4/10 20:09
*/
@Slf4j
@Component
public class PortableOffLogFeignClientFallbackFactory implements FallbackFactory<PortableOffLogFeignClient> {
@Override
public PortableOffLogFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new PortableOffLogFeignClient() {
@Override
public HttpResult<String> dataOnlineRecruitment(String devId, String lineId, String path) {
log.error("{}异常,降级处理,异常为:{}","线上补招",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,81 @@
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.WlRecordFeignClient;
import com.njcn.csdevice.pojo.param.WlRecordParam;
import com.njcn.csdevice.pojo.po.WlRecord;
import com.njcn.csdevice.pojo.vo.RecordVo;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class WlRecordClientFallbackFactory implements FallbackFactory<WlRecordFeignClient> {
@Override
public WlRecordFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new WlRecordFeignClient() {
@Override
public HttpResult<Boolean> addBaseData(WlRecord wlRecord) {
log.error("{}异常,降级处理,异常为:{}","新增原始数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> addBaseDataList(List<WlRecord> wlRecord) {
log.error("{}异常,降级处理,异常为:{}","批量新增原始数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<WlRecord> findDevBaseData(WlRecordParam.Record param) {
log.error("{}异常,降级处理,异常为:{}","查询装置基础数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> updateTestRecord(WlRecordParam.UpdateRecord record) {
log.error("{}异常,降级处理,异常为:{}","修改测试项",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public void dayDealNoEndTimeEvent(String date) {
log.error("{}异常,降级处理,异常为:{}","每日处理没有结束时间的测试基础数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<WlRecord>> getWlAssByWlId(String wlId) {
log.error("{}异常,降级处理,异常为:{}","根据测试项id获取测试项详细条目",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<RecordVo>> findDevBaseDataByLineId(WlRecordParam.lineRecord param) {
log.error("{}异常,降级处理,异常为:{}","根据监测点id查询装置基础数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<RecordVo.RecordItemVo> getTestRecordById(String testRecordId) {
log.error("{}异常,降级处理,异常为:{}","根据测试项ID查询测试项信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,37 @@
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.OnlineRateFeignClient;
import com.njcn.csdevice.pojo.po.RStatOnlineRateD;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class onlineRateClientFallbackFactory implements FallbackFactory<OnlineRateFeignClient> {
@Override
public OnlineRateFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new OnlineRateFeignClient() {
@Override
public HttpResult<List<RStatOnlineRateD>> list(List<String> list, String startTime, String endTime) {
log.error("{}异常,降级处理,异常为:{}","查询数据异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -48,10 +48,23 @@ public interface DataParam {
String portableDev = "便携式设备";
String PORTABLE_SYSTEM = "便携式系统";
String WIRELESS_PROJECT = "无线项目";
String WIRELESS_PROJECT_ID = "WIRELESS_PROJECT_ID";
String governmentDev = "治理设备";
String GOVERNANCE_SYSTEM = "治理系统";
String cldDev = "在线设备";
String EvtParamPhase = "Evt_Param_Phase";
String EvtParamDepth = "Evt_Param_VVaDepth";
String EVTPARAMTM ="Evt_Param_Tm";
String evtData = "evt_data";
String wlRecordPath = "test/";

View File

@@ -35,10 +35,25 @@ public enum AlgorithmResponseEnum {
CHIRLDREN2_EXIST("A00514","项目下存在设备,不能删除"),
CHIRLDREN3_EXIST("A00516","存在设备使用拓扑图,不能删除"),
DATA_ARRAY_MISSING("A00515","详细数据为空"),
UNKNOW_ROLE("A00515","角色无权限操作"),
DATA_MISSING("A00516","数据缺失")
DATA_MISSING("A00516","数据缺失"),
ASK_DEVICE_DIR_ROOT_ERROR("A00516","读取装置根目录异常"),
ASK_DEVICE_DIR_ERROR("A00516","读取装置文件异常,请重试"),
FILE_DOWNLOAD_ERROR("A00516","下载失败"),
FILE_DOWNLOADING("A00516","下载失败,系统正在响应其他下载任务,请稍后重试"),
FILE_UPLOADING("A00516","上传失败,系统正在响应其他上传任务,请稍后重试"),
FILE_BUSY("A00516","正在进行其他文件操作,请稍后重试"),
RECORD_FILE_LOST("A00516","record.bin文件缺失请检查上传文件夹"),
LINE_NUM_MISMATCH("A00516","上传文件的监测点序号和选择的监测点不匹配,请检查"),
DEV_OFFLINE("A00516","装置未连接MQTT服务器"),
OVER_MAX_DEV_COUNT("A00517","前置机超出最大支持装置数"),
DEV_OLD_DATA("A00519","进程数修改失败,原进程数下存在装置,请修改装置进程号"),
DEV_EXIST_DATA("A00520","删除失败,前置机下存在装置"),
CLD_MODEL_MISSING("A00521","云前置模板缺失,请检查模板信息"),
CLD_MODEL_MORE("A00521","存在多个云前置模板,请检查模板信息"),
;

View File

@@ -0,0 +1,24 @@
package com.njcn.csdevice.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author xy
*/
@Data
public class IcdBzParam implements Serializable {
@ApiModelProperty("监测点集合")
private List<String> lineList;
@ApiModelProperty("开始时间")
private String startTime;
@ApiModelProperty("结束时间")
private String endTime;
}

View File

@@ -0,0 +1,31 @@
package com.njcn.csdevice.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author xy
*/
@Data
public class IcdBzReplyParam implements Serializable {
@ApiModelProperty("guid")
private String id;
@ApiModelProperty("状态")
private Integer state;
@ApiModelProperty("设备id")
private String deviceId;
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("响应码")
private Integer code;
@ApiModelProperty("响应消息")
private String msg;
}

View File

@@ -0,0 +1,48 @@
package com.njcn.csdevice.param;
import com.njcn.csdevice.pojo.param.AppProjectAddParm;
import com.njcn.csdevice.pojo.param.CsEngineeringAddParm;
import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAddParm;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @author xy
*/
@Data
public class IcdLedgerParam implements Serializable {
@ApiModelProperty("工程索引")
private String engineeringIndex;
@ApiModelProperty("项目索引")
private String projectIndex;
@ApiModelProperty("设备id")
private String devIndex;
@ApiModelProperty("设备和mac关系")
private Map<String,String> devMacMap;
@ApiModelProperty("设备mac和设备信息关系")
private Map<String, CsEquipmentDeliveryPO> devMap;
@ApiModelProperty("工程信息")
private CsEngineeringAddParm engineering;
@ApiModelProperty("项目信息")
private AppProjectAddParm project;
@ApiModelProperty("装置信息")
private List<CsEquipmentDeliveryAddParm> device;
@ApiModelProperty("监测点信息")
private List<CsLineParam> line;
}

View File

@@ -0,0 +1,22 @@
package com.njcn.csdevice.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author xy
*/
@Data
public class IcdNodeParam implements Serializable {
@ApiModelProperty("设备id")
private String id;
@ApiModelProperty("前置服务器id")
private String nodeId;
@ApiModelProperty("进程号")
private Integer processNo;
}

View File

@@ -0,0 +1,26 @@
package com.njcn.csdevice.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @author xy
*/
@Data
public class IcdParam implements Serializable {
@ApiModelProperty("前置id不传时查询所有的终端台账信息")
@NotBlank(message = "前置id不可为空")
private String id;
@ApiModelProperty("终端运行状态,不传则查询所有的终端信息 (0运行1检修2停运3调试4退运)")
private List<Integer> runFlag;
@ApiModelProperty("终端型号(集合为空查询所有icd模型)")
private List<String> devType;
}

View File

@@ -0,0 +1,70 @@
package com.njcn.csdevice.param;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 监测点有效数值统计数据评估入参
*
* @author hongawen
* @version 1.0
* @data 2024/11/6 20:36
*/
@Data
public class LineCountEvaluateParam implements Serializable {
/**
* 监测点编号集合
*/
private List<String> lineId;
/**
* 表名
*/
private String tableName;
/**
* 相别集合
*/
private List<String> phasicType;
/**
* 值类型
*/
private List<String> valueType;
/**
* 异常数据时间集合
* Map<String,List<String>> key:监测点id value:异常时间集合
*/
private Map<String, List<String>> abnormalTime;
/**
* 列名
*/
private String columnName;
/**
* 最小值 >=
*/
private String ge;
/**
* 最大值 <=
*/
private String lt;
/**
* 数据类型 判断获取数据是否排除暂态异常数据
*/
private Boolean dataType = true;
private String startTime;
private String endTime;
}

View File

@@ -0,0 +1,118 @@
package com.njcn.csdevice.pojo.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 初始化模板实体
* @author xy
*/
@Data
public class CsDevModelDto implements Serializable {
@ApiModelProperty("模板id")
private String id;
@ApiModelProperty("版本号")
private String versionNo;
@TableField("版本日期")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date versionDate;
@ApiModelProperty("模板名称")
private String name;
@ApiModelProperty("设备类型名称")
private String devTypeName;
@ApiModelProperty("模板存储路径")
private String filePath;
@ApiModelProperty("模板类型(0:治理类型 1:电能质量类型)")
private Integer type;
@ApiModelProperty("数据集")
private List<CsDataSet> dataSets;
@Data
public static class CsDataSet implements Serializable {
@ApiModelProperty("数据集id")
private String id;
@ApiModelProperty("模板id")
private String pid;
@ApiModelProperty("数据集名称")
private String name;
@ApiModelProperty("数据集别名")
private String anotherName;
@ApiModelProperty("数据集编号")
private Integer idx;
@ApiModelProperty("数据集类型")
private String dataType;
@ApiModelProperty("统计周期")
private Integer period;
@ApiModelProperty("是否存储 0:不存储 1:存储")
private Integer storeFlag;
@ApiModelProperty("逻辑子设备")
private Integer clDev;
@ApiModelProperty("数据集类型(0:主设备 1:子模块 2:监测设备)")
private Integer type;
@ApiModelProperty("数据类型(Primary:一次值 Secondary:二次值)")
private String dataLevel;
@ApiModelProperty("数据类型")
private List<CsDataArray> dataArrays;
}
@Data
public static class CsDataArray implements Serializable {
@ApiModelProperty("指标id")
private String id;
@ApiModelProperty("数据集id")
private String pid;
@ApiModelProperty("字典表id")
private String dataId;
@ApiModelProperty("数据集名称")
private String name;
@ApiModelProperty("数据集别名")
private String anotherName;
@ApiModelProperty("数据集编号")
private Integer idx;
@ApiModelProperty("数据统计方法(max、min、avg、cp95)")
private String statMethod;
@ApiModelProperty("数据类型")
private String dataType;
@ApiModelProperty("相别")
private String phase;
@ApiModelProperty("排序")
private Integer sort;
}
}

View File

@@ -0,0 +1,24 @@
package com.njcn.csdevice.pojo.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/10 10:01
*/
@Data
public class PqsCommunicateDto implements Serializable {
private String time;
private String devId;
private String description;
private Integer type;
}

View File

@@ -5,7 +5,6 @@ import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@@ -20,16 +19,16 @@ import java.util.List;
@Data
public class AppProjectAddParm {
private String description;
@ApiModelProperty(value="项目名称")
@NotBlank(message="项目名称不能为空!")
private String name;
@NotBlank(message="工程id不能为空")
//@NotBlank(message="工程id不能为空")
private String engineeringId;
private String icdEngineeringId;
/**
* 地市Id

View File

@@ -1,9 +1,12 @@
package com.njcn.csdevice.pojo.param;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
*
@@ -36,8 +39,9 @@ public class CsDevModelAddParm {
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
private String time;
@TableField(value = "version_date")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date versionDate;
/**
* 装置模板文件路径

View File

@@ -47,7 +47,8 @@ public class CsDevModelQueryParm {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private String versionEndDate;
@ApiModelProperty(value = "装置型号")
private String devType;

View File

@@ -1,12 +1,11 @@
package com.njcn.csdevice.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
/**
*
@@ -19,8 +18,7 @@ import java.util.Date;
*/
@Data
public class CsEquipmentDeliveryAddParm{
public class CsEquipmentDeliveryAddParm implements Serializable {
/**
* 装置名称
@@ -34,13 +32,13 @@ public class CsEquipmentDeliveryAddParm{
*/
@ApiModelProperty(value="网络设备ID")
@NotBlank(message="网络设备ID不能为空")
@Pattern(regexp = "^[A-Za-z0-9]{6,32}$", message = "网络设备ID只可为数字或字母,长度至少为6位")
private String ndid;
/**
* 装置mac地址
*/
@ApiModelProperty(value="装置mac地址")
// @NotBlank(message="装置mac地址不能为空")
private String mac;
/**
@@ -57,56 +55,12 @@ public class CsEquipmentDeliveryAddParm{
@NotBlank(message="装置型号不能为空!")
private String devModel;
// /**
// * 装置程序版本
// */
// @ApiModelProperty(value="装置程序版本")
// @NotBlank(message="装置程序版本不能为空!")
// private String programVersion;
// /**
// * 调试人员
// */
// @ApiModelProperty(value="调试人员")
// @NotBlank(message="调试人员不能为空!")
// private String debugPerson;
//
// /**
// * 出厂日期
// */
// @ApiModelProperty(value="出厂日期")
// @NotNull(message="出厂日期不能为空!")
// @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
// private Date producteTime;
//
// /**
// * 检修日期
// */
// @ApiModelProperty(value="检修日期")
// @NotNull(message="检修日期不能为空!")
// @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
// private Date checkTime;
//
// /**
// * 调试日期
// */
// @ApiModelProperty(value="调试日期")
// @NotNull(message="调试日期不能为空!")
// @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
// private Date debugTime;
/**
* 合同号
*/
@ApiModelProperty(value="合同号")
private String cntractNo;
// /**
// * 营销经理
// */
// @ApiModelProperty(value="营销经理")
// private String salesManager;
/**
* 装置接入方式
*/
@@ -125,4 +79,22 @@ public class CsEquipmentDeliveryAddParm{
@ApiModelProperty(value="模块个数")
private Integer modelNumber;
@ApiModelProperty(value="排序")
private Integer sort;
@ApiModelProperty(value="前置机id")
private String nodeId;
@ApiModelProperty(value="前置机进程号")
private Integer nodeProcess;
@ApiModelProperty(value="模板id")
private String modelId;
@ApiModelProperty(value="工程id")
private String engineeringId;
@ApiModelProperty(value="项目id")
private String projectId;
}

View File

@@ -1,12 +1,11 @@
package com.njcn.csdevice.pojo.param;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import javax.validation.constraints.Pattern;
/**
*
@@ -34,6 +33,7 @@ public class CsEquipmentDeliveryAuditParm {
* 网关识别码
*/
@ApiModelProperty(value="网关识别码")
@Pattern(regexp = "^[A-Za-z0-9]{1,32}$", message = "网络设备ID只可为(数字,字母)")
private String ndid;
/**
@@ -60,51 +60,12 @@ public class CsEquipmentDeliveryAuditParm {
@ApiModelProperty(value="装置接入方式")
private String devAccessMethod;
// /**
// * 装置程序版本
// */
// @ApiModelProperty(value="装置程序版本")
// private String programVersion;
// /**
// * 调试人员
// */
// @ApiModelProperty(value="调试人员")
// private String debugPerson;
//
// /**
// * 出厂日期
// */
// @ApiModelProperty(value="出厂日期")
// @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
// private Date producteTime;
//
// /**
// * 检修日期
// */
// @ApiModelProperty(value="检修日期")
// @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
// private Date checkTime;
//
// /**
// * 调试日期
// */
// @ApiModelProperty(value="调试日期")
// @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
// private Date debugTime;
/**
* 合同号
*/
@ApiModelProperty(value="合同号")
private String cntractNo;
// /**
// * 营销经理
// */
// @ApiModelProperty(value="营销经理")
// private String salesManager;
/**
* 状态
*/
@@ -128,4 +89,16 @@ public class CsEquipmentDeliveryAuditParm {
*/
@ApiModelProperty(value="模块个数")
private Integer modelNumber;
@ApiModelProperty(value="装置使用状态(0:停用 1:启用)")
private Integer usageStatus;
@ApiModelProperty(value="排序")
private Integer sort;
@ApiModelProperty(value="前置机id")
private String nodeId;
@ApiModelProperty(value="前置机进程号")
private Integer nodeProcess;
}

View File

@@ -34,4 +34,10 @@ public class CsEquipmentDeliveryQueryParm extends BaseParam {
@ApiModelProperty("运行状态 1:离线 2:在线")
private Integer runStatus;
@ApiModelProperty("流程步骤")
private Integer process;
@ApiModelProperty("物联通讯状态 0:未连接 1:已连接")
private Integer connectStatus;
}

View File

@@ -1,9 +1,12 @@
package com.njcn.csdevice.pojo.param;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Min;
/**
*
* Description:
@@ -18,24 +21,125 @@ public class CsLineParam extends BaseEntity {
private String lineId;
/**
* 监测点名称
*/
private String name;
@ApiModelProperty(value="工程id")
private String engineeringId;
@ApiModelProperty(value="项目id")
private String projectId;
/**
* 装置id
*/
private String devId;
/**
* 装置mac
*/
private String devMac;
/**
* 电压等级
*/
private Double volGrade;
/**
* PT变比
*/
private Double ptRatio;
/**
* CT变比
*/
private Double ctRatio;
/**
* 接线方式
*/
private Integer conType;
/**
* PT一次变比
*/
@Min(value = 1, message = "PT一次变比必须大于等于1")
private Double ptRatio;
/**
* PT二次变比
*/
@Min(value = 1, message = "PT二次变比必须大于等于1")
private Double pt2Ratio;
/**
* CT一次变比
*/
@Min(value = 1, message = "CT一次变比必须大于等于1")
private Double ctRatio;
/**
* CT二次变比
*/
@Min(value = 1, message = "CT二次变比必须大于等于1")
private Double ct2Ratio;
/**
* 逻辑子设备id
*/
private Integer clDid;
/**
* 监测点线路号
*/
private Integer lineNo;
/**
* 统计间隔
*/
private Integer lineInterval;
/**
* 模板id
*/
private String modelId;
/**
* 数据集id
*/
private String dataSetId;
/**
* 运行状态0运行1检修2停运3调试4退运
*/
private Integer runStatus;
/**
* 短路容量
*/
private Double shortCircuitCapacity;
/**
* 设备容量
*/
private Double devCapacity;
/**
* 基准容量
*/
private Double basicCapacity;
/**
* 协议容量
*/
private Double protocolCapacity;
/**
* 监测对象类型
*/
private String monitorObj;
/**
* 是否治理(0:未治理 1:已治理)
*/
private Integer govern;
/**
* 敏感用户ID
*/
private String monitorUser;
}

View File

@@ -24,4 +24,7 @@ public class DataArrayParam {
@ApiModelProperty("数据类型")
private String statMethod;
@ApiModelProperty("数据集编号")
private Integer idx;
}

View File

@@ -0,0 +1,104 @@
package com.njcn.csdevice.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* pqs
*
* @author cdf
* @date 2022/1/14
*/
@Data
@ApiModel
public class NodeParam {
/**
* 名称
*/
@ApiModelProperty(name = "name",value = "前置服务器名称")
@NotBlank(message = "前置机名称不能为空")
@Pattern(regexp = PatternRegex.DEV_NAME_REGEX, message = ValidMessage.NAME_FORMAT_ERROR)
private String name;
/**
* 服务器IP
*/
@ApiModelProperty(name = "ip",value = "服务器IP")
@NotBlank(message = "前置机IP不能为空")
@Pattern(regexp = PatternRegex.IP_REGEX, message = ValidMessage.IP_FORMAT_ERROR)
private String ip;
/**
* 描述
*/
@ApiModelProperty(name = "remark",value = "描述")
private String remark;
/**
* 状态 前置等级
*/
@ApiModelProperty(name = "nodeGrade",value = "前置等级")
@NotNull(message = "前置机等级不可为空")
private Integer nodeGrade;
/**
* 前置机支持最大装置数
*/
@ApiModelProperty(name = "nodeDevNum",value = "前置机支持最大装置数")
@NotNull(message = "前置机支持最大装置数不可为空")
@Min(value = 1, message = "装置数不可小于1")
@Max(value = 1000, message = "装置数不可大于1000")
private Integer nodeDevNum;
/**
* 前置机支持最大进程数量
*/
@ApiModelProperty(name = "nodeDevNum",value = "前置机支持最大进程数量")
@NotNull(message = "前置机支持最大进程数量")
@Min(value = 1, message = "最大进程数量不可小于1")
@Max(value = 10, message = "最大进程数量不可大于10")
private Integer maxProcessNum;
/**
* 排序
*/
@ApiModelProperty(name = "sort",value = "排序")
@NotNull(message = "排序不可为空")
private Integer sort;
/**
* 更新操作实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class NodeUpdateParam extends NodeParam {
/**
* 表Id
*/
@ApiModelProperty("id")
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String id;
}
/**
* 前置查询
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class NodeQueryParam extends BaseParam {
@ApiModelProperty("前置等级")
private Integer nodeGrade;
}
}

View File

@@ -0,0 +1,18 @@
package com.njcn.csdevice.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class UserDevParam implements Serializable {
@ApiModelProperty(value="用户id")
private String userId;
@ApiModelProperty(value="设备集合id")
private List<String> list;
}

View File

@@ -1,8 +1,11 @@
package com.njcn.csdevice.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -16,7 +19,7 @@ import java.util.List;
public class WlRecordParam {
@ApiModelProperty("方案名称")
private String itemName;
private String proName;
@ApiModelProperty("描述")
private String describe;
@@ -25,6 +28,20 @@ public class WlRecordParam {
@EqualsAndHashCode(callSuper = true)
public static class Record extends WlRecordParam {
@ApiModelProperty("装置id")
private String devId;
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("项目起始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime proStartTime;
@ApiModelProperty("项目结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime proEndTime;
@ApiModelProperty("测试项名称")
private String itemName;
@@ -85,4 +102,23 @@ public class WlRecordParam {
private String id;
}
@Data
@EqualsAndHashCode(callSuper = true)
public static class lineRecord extends WlRecordParam {
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("测试项起始时间")
private String itemStartTime;
@ApiModelProperty("测试项结束时间")
private String itemEndTime;
@ApiModelProperty("数据来源 0:补召 1:在线监测 ")
private Integer dataSource;
}
}

View File

@@ -80,4 +80,8 @@ public class CsDataSet extends BaseEntity {
*/
private String dataLevel;
/**
* 接线方式
*/
private Integer conType;
}

View File

@@ -64,8 +64,6 @@ public class CsEquipmentDeliveryPO extends BaseEntity {
@TableField(value = "dev_access_method")
private String devAccessMethod;
/**
* 合同号
*/
@@ -108,4 +106,28 @@ public class CsEquipmentDeliveryPO extends BaseEntity {
@TableField(value = "process")
private Integer process;
/**
* 装置使用状态(0:停用 1:启用)
*/
@TableField(value = "usage_status")
private Integer usageStatus;
/**
* 排序
*/
@TableField(value = "sort")
private Integer sort;
/**
* 前置服务器IP
*/
@TableField(value = "node_id")
private String nodeId;
/**
* 前置进程号
*/
@TableField(value = "node_process")
private Integer nodeProcess;
}

View File

@@ -44,6 +44,16 @@ public class CsLinePO extends BaseEntity {
@TableField(value = "`position`")
private String position;
/**
* 数据集id
*/
private String dataSetId;
/**
* 模板id
*/
private String dataModelId;
/**
* 电压等级
*/
@@ -56,12 +66,24 @@ public class CsLinePO extends BaseEntity {
@TableField(value = "pt_ratio")
private Double ptRatio;
/**
* PT2次变比
*/
@TableField(value = "pt2_ratio")
private Double pt2Ratio;
/**
* CT变比
*/
@TableField(value = "ct_ratio")
private Double ctRatio;
/**
* CT2变比
*/
@TableField(value = "ct2_ratio")
private Double ct2Ratio;
/**
* 状态(0删除 1正常)
*/
@@ -76,13 +98,71 @@ public class CsLinePO extends BaseEntity {
/**
* 逻辑子设备id(与模板对应)
* 治理监测点 0
* 负载监测点 1
* 电网监测点 2
*/
@TableField(value = "clDid")
private Integer clDid;
@TableField(value = "device_id")
private String deviceId;
}
/**
* 监测点统计间隔
*/
@TableField(value = "line_interval")
private Integer lineInterval;
/**
* 运行状态
*/
@TableField(value = "run_status")
private Integer runStatus;
/**
* 监测点线路号
*/
@TableField(value = "line_no")
private Integer lineNo;
/**
* 监测对象类型
*/
@TableField(value = "monitor_obj")
private String monitorObj;
/**
* 是否治理(0:未治理 1:已治理)
*/
@TableField(value = "is_govern")
private Integer govern;
@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;
/**
* 治理报告文件路径
*/
@TableField(value = "report_file_path")
private String reportFilePath;
}

View File

@@ -0,0 +1,61 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 系统软件表
* </p>
*
* @author xuyang
* @since 2023-05-17
*/
@Data
@TableName("cs_soft_info")
public class CsSoftInfoPO implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
/**
* 读写操作属性“r”
*/
private String opAttr;
/**
* 操作系统名称裸机系统填Null
*/
private String osName;
/**
* 操作系统版本裸机系统填Null
*/
private String osVersion;
/**
* 应用程序版本号
*/
private String appVersion;
/**
* 应用程序发布日期
*/
private LocalDateTime appDate;
/**
* 应用程序校验码
*/
private String appCheck;
/**
* 是否支持远程升级程序
*/
private String softUpdate;
}

View File

@@ -0,0 +1,65 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author xy
* @since 2025-09-26
*/
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("cs_terminal_logs")
public class CsTerminalLogs extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private String id;
/**
* 设备id
*/
private String deviceId;
/**
* 设备名称
*/
private String deviceName;
/**
* 监测点id
*/
private String lineId;
/**
* 前置服务器id
*/
private String nodeId;
/**
* 进程号
*/
private Integer nodeProcess;
/**
* 操作类型(0:新增 1:修改 2:删除)
*/
private Integer operateType;
/**
* 是否推送(0未推送 1已推送)
*/
private Integer isPush;
}

View File

@@ -0,0 +1,81 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author xy
* @since 2025-10-09
*/
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("cs_terminal_reply")
public class CsTerminalReply extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 消息id
*/
private String replyId;
/**
* 操作类型
*/
private String code;
/**
* 前置id
*/
private String nodeId;
/**
* 进程号
*/
private Integer processNo;
/**
* 设备id
*/
private String deviceId;
/**
* 设备名称
*/
private String deviceName;
/**
* 监测点id
*/
private String lineId;
/**
* 是否收到0未收到 1收到
*/
private Integer isReceived;
/**
* 接收消息状态码
*/
private Integer receivedCode;
/**
* 接收消息描述
*/
private String receivedMsg;
}

View File

@@ -0,0 +1,70 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author xy
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("pq_node")
public class Node extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 前置序号
*/
private String id;
/**
* 名称
*/
private String name;
/**
* 服务器IP
*/
private String ip;
/**
* 描述
*/
private String remark;
/**
* 状态 0-删除1-正常;默认正常
*/
private Integer state;
/**
* 状态 前置等级
*/
private Integer nodeGrade;
/**
* 前置机支持最大装置数
*/
private Integer nodeDevNum;
/**
* 前置机支持最大进程数量
*/
private Integer maxProcessNum;
/**
* 排序
*/
private Integer sort;
}

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,72 @@
package com.njcn.csdevice.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 java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* Description:
* Date: 2024/10/15 10:43【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@NoArgsConstructor
@TableName(value = "portable_off_main_log")
public class PortableOffMainLog extends BaseEntity {
/**
* 批次id
*/
@TableId(value = "id", type = IdType.INPUT)
private String id;
/**
* 导入开始时间
*/
@TableField(value = "start_time")
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
private LocalDateTime startTime;
/**
* 工程名称
*/
@TableField(value = "project_name")
private String projectName;
/**
* 导入结束时间
*/
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@TableField(value = "end_time")
private LocalDateTime endTime;
/**
* 成功解析数
*/
@TableField(value = "success_count")
private Integer successCount;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
@TableField(exist = false)
private List<PortableOfflLog> portableOfflLogList;
}

View File

@@ -1,5 +1,6 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Getter;
@@ -21,6 +22,8 @@ public class PortableOfflLog extends BaseEntity {
private static final long serialVersionUID = 1L;
private String logsIndex;
@TableField( value = "log_main_id")
private String logMainId;
/**
* 文件名称
@@ -38,7 +41,7 @@ public class PortableOfflLog extends BaseEntity {
private String dataPath;
/**
* 0-解析 1-解析成功 2-解析失败 3-文件不存在
* 0-无需解析解析 1-解析成功 2-解析失败 3-文件不存在
*/
private Integer state;

View File

@@ -0,0 +1,35 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
* 数据完整性日表
* </p>
*
* @author xy
* @since 2025-06-23
*/
@Data
@TableName("r_stat_integrity_d")
public class RStatIntegrityD implements Serializable {
private static final long serialVersionUID = 1L;
@MppMultiId
private LocalDate timeId;
@MppMultiId
private String lineIndex;
private Integer dueTime;
private Integer realTime;
}

View File

@@ -0,0 +1,35 @@
package com.njcn.csdevice.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
* 在线率日表
* </p>
*
* @author xy
* @since 2025-06-23
*/
@Data
@TableName("r_stat_onlinerate_d")
public class RStatOnlineRateD implements Serializable {
private static final long serialVersionUID = 1L;
@MppMultiId
private LocalDate timeId;
@MppMultiId
private String devIndex;
private Integer onlineMin;
private Integer offlineMin;
}

View File

@@ -145,4 +145,15 @@ public class WlRecord extends BaseEntity {
@TableField(value = "`describe`")
private String describe;
/**
* 工程路径
*/
private String gcDataPath;
/**
* 数据类型(Primary:一次值 Secondary:二次值)
*/
@TableField(exist = false)
private String dataLevel;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.csdevice.pojo.vo;
import com.njcn.csdevice.pojo.po.AppProjectPO;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author xy
*/ //台账信息
@Data
public class CldLedgerVo implements Serializable {
@ApiModelProperty("工程id")
private String engineeringId;
@ApiModelProperty(value = "工程名称")
private String engineeringName;
@ApiModelProperty(value = "")
private String province;
@ApiModelProperty(value = "")
private String city;
@ApiModelProperty(value = "工程描述")
private String engineeringDescription;
@ApiModelProperty(value = "项目信息")
private List<AppProjectPO> projectInfoList;
@ApiModelProperty(value = "设备信息")
private List<CsEquipmentDeliveryPO> deviceInfoList;
@ApiModelProperty(value = "监测点信息")
private List<CsLinePO> lineInfoList;
}

View File

@@ -0,0 +1,42 @@
package com.njcn.csdevice.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author xy
* 日志信息
*/
@Data
public class CldLogsVo implements Serializable {
@ApiModelProperty("工程名称")
private String engineeringName;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("设备名称")
private String deviceName;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("补召类型")
private String log;
@ApiModelProperty("补召时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime logTime;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty("结果")
private String result;
}

View File

@@ -48,8 +48,8 @@ public class CsDevModelPageVO extends BaseEntity {
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date versionDate;
/**

View File

@@ -83,4 +83,15 @@ public class CsEquipmentDeliveryVO extends BaseEntity {
@ApiModelProperty(value="设备当前流程状态")
private Integer process ;
@ApiModelProperty(value="装置使用状态(0:停用 1:启用)")
private Integer usageStatus ;
@ApiModelProperty(value="装置与MQTT服务器连接状态")
private String connectStatus ;
private Integer sort;
@ApiModelProperty(value="前置服务器id")
private String nodeId ;
}

View File

@@ -23,13 +23,25 @@ public class CsLedgerVO implements Serializable {
@ApiModelProperty(name = "pid",value = "父id")
private String pid;
@ApiModelProperty(name = "pids",value = "父id集合")
private String pids;
@ApiModelProperty(name = "name",value = "名称")
private String name;
@ApiModelProperty(name = "path",value = "拓扑图路径")
private String path;
@ApiModelProperty(name = "provinceId",value = "省Id")
private String provinceId;
@ApiModelProperty(name = "cityId",value = "市Id")
private String cityId;
@ApiModelProperty(name = "area",value = "区域")
private String area;
@ApiModelProperty(name = "remark",value = "备注")
private String remark;
@@ -42,6 +54,21 @@ public class CsLedgerVO implements Serializable {
@ApiModelProperty(name = "comFlag",value = "设备状态")
private Integer comFlag;
@ApiModelProperty(name = "nDid",value = "nDid")
private String nDId;
@ApiModelProperty(name = "type",value = "类型 项目 工程 装置 监测点")
private String type;
@ApiModelProperty(name = "lineType",value = "监测点类型 0:治理监测点 1:电能质量监测点")
private Integer lineType;
@ApiModelProperty(name = "conType",value = "接线方式 0-星型 1-角型 2-V型")
private Integer conType;
@ApiModelProperty(name = "process",value = "流程状态")
private Integer process;
@ApiModelProperty(name = "children",value = "子节点")
private List<CsLedgerVO> children = new ArrayList<>();

View File

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -12,7 +14,7 @@ import java.time.LocalDateTime;
* @date 2023/6/19
*/
@Data
public class DataGroupEventVO {
public class DataGroupEventVO {
@ApiModelProperty("id")
private String id;
@@ -20,15 +22,18 @@ public class DataGroupEventVO {
@ApiModelProperty("事件ID")
private String eventId;
@ApiModelProperty("变电站名称")
private String subName;
@ApiModelProperty("监测点ID")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("装置ID")
private String deviceId;
@ApiModelProperty("装置名称")
private String devName;
@ApiModelProperty("项目名称")
private String projectName;
@@ -39,7 +44,7 @@ public class DataGroupEventVO {
private String itemName;
@ApiModelProperty("持续时间")
private Double duration;
private Double persistTime;
@ApiModelProperty("发生时刻")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss.SSS")
@@ -56,4 +61,13 @@ public class DataGroupEventVO {
@ApiModelProperty("暂降幅值")
private Float featureAmplitude;
@ApiModelProperty("映射数据库暂降幅值")
private Double amplitude;
@ApiModelProperty("严重度")
private String severity;
@ApiModelProperty("波形路径")
private String wavePath;
}

View File

@@ -1,7 +1,6 @@
package com.njcn.csdevice.pojo.vo;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.cswarn.pojo.vo.CsEquipmentAlarmVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -0,0 +1,75 @@
package com.njcn.csdevice.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
//台账信息
@Data
public class DeviceInfo implements Serializable {
@ApiModelProperty("终端索引")
private String id;
@ApiModelProperty("终端mac")
private String ip;
@ApiModelProperty("终端型号")
private String devType;
@ApiModelProperty("终端名称")
private String name;
@ApiModelProperty("前置机序号")
private Integer node;
@ApiModelProperty("开启的进程数")
private Integer maxProcessNum;
@ApiModelProperty("对时启动标志")
private boolean rightTime;
@ApiModelProperty("监测点集合")
private List<MonitorInfo> monitorData;
//终端下的监测点信息
@Data
public static class MonitorInfo implements Serializable {
@ApiModelProperty("监测点索引")
private String id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("监测点逻辑号")
private String lineNo;
@ApiModelProperty("监测点电压等级")
private String voltageLevel;
@ApiModelProperty("监测点运行状态 0运行1检修2停运3调试4退运")
private Integer status;
@ApiModelProperty("监测点接线方式 0-星型 1-角型 2-V型")
private String ptType;
@ApiModelProperty("装置id")
private String deviceId;
@ApiModelProperty("pt1")
private Double pt1;
@ApiModelProperty("pt2")
private Double pt2;
@ApiModelProperty("ct1")
private Double ct1;
@ApiModelProperty("ct2")
private Double ct2;
}
}

View File

@@ -42,6 +42,16 @@ public class DeviceManagerVO {
@ApiModelProperty(value = "装置数据标识")
private String dataLevel;
@ApiModelProperty(value = "应用程序版本号")
private String appVersion;
@ApiModelProperty(value = "应用程序发布日期")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDateTime appDate;
@ApiModelProperty(value = "应用程序校验码")
private String appCheck;
@Data
public static class DataSetVO {
@ApiModelProperty(value = "数据集Id")

View File

@@ -0,0 +1,68 @@
package com.njcn.csdevice.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author xy
*/
@Data
public class EachModuleVO implements Serializable {
@ApiModelProperty("模块名称")
private String moduleName;
@ApiModelProperty("模块状态")
private String moduleState;
@ApiModelProperty("模块运行状态数据")
List<HarmonicVo> dataList;
@ApiModelProperty("负载电流数据")
List<DataVo> loadList;
@ApiModelProperty("模块输出电流")
List<DataVo> modOutList;
@ApiModelProperty("模块温度")
List<DataVo> temperatureList;
@Data
public static class HarmonicVo implements Serializable {
@ApiModelProperty("稳态数据时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
@ApiModelProperty("模块状态 0-离线1-运行2-停止3-故障")
private String stateDesc;
@ApiModelProperty("数据类型 0-稳态数据 1-事件数据 2-主动触发")
private Integer dataType;
@ApiModelProperty("事件code")
private String eventCode;
@ApiModelProperty("事件名称")
private String eventName;
}
@Data
public static class DataVo implements Serializable {
@ApiModelProperty("稳态数据时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
@ApiModelProperty("相别")
private String phasicType;
@ApiModelProperty("数据")
private Double data;
}
}

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,31 @@
package com.njcn.csdevice.pojo.vo;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.Node;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* @author xy
*/
@Data
public class NodeProcessDeviceVo implements Serializable {
private Node node;
private List<ProcessDevice> processDeviceList;
@Data
@EqualsAndHashCode(callSuper = false)
public static class ProcessDevice implements Serializable{
private Integer processNo;
private String processState;
private List<CsEquipmentDeliveryPO> deviceInfoList;
}
}

View File

@@ -0,0 +1,30 @@
package com.njcn.csdevice.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class PqSensitiveUserLineVO {
@ApiModelProperty("治理对象")
private String sensitiveUser;
@ApiModelProperty("监测点ID")
private String lineId;
@ApiModelProperty("测点名称")
private String lineName;
@ApiModelProperty("是否治理")
private String govern;
@ApiModelProperty("电压等级")
private double volGrade;
@ApiModelProperty("监测类型")
private String position;
@ApiModelProperty("运行状态")
private String runStatus;
@ApiModelProperty("报告文件")
private String reportFilePath;
@ApiModelProperty("最新数据时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime latestTime;
}

View File

@@ -22,6 +22,9 @@ public class RecordVo {
@ApiModelProperty("名称")
private String itemName;
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("数据起始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@@ -30,6 +33,9 @@ public class RecordVo {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@ApiModelProperty("持续时间")
private String lastTime;
@ApiModelProperty("测试位置")
private String location;
@@ -66,6 +72,9 @@ public class RecordVo {
@ApiModelProperty("电压接线方式")
private String volConType;
@ApiModelProperty("基础数据集合ID")
private List<String> list;
@Data
public static class RecordItemVo{

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

@@ -1,12 +1,15 @@
package com.njcn.csdevice.utils;
/**
* 类的介绍:用来将二次值转成一次值
* 类的介绍:
* @author xuyang
* @version 1.0.0
*/
public class DataChangeUtil {
/**
* 用来将二次值转成一次值
*/
public static double secondaryToPrimary(String formula, Double data,Double pt, Double ct) {
switch (formula) {
case "*PT":
@@ -23,4 +26,24 @@ public class DataChangeUtil {
}
return data;
}
/**
* 用来将一次值转成二次值
*/
public static double primaryToSecondary(String formula, Double data,Double pt, Double ct) {
switch (formula) {
case "*PT":
data = data / pt;
break;
case "*CT":
data = data / ct;
break;
case "*PT*CT":
data = data / pt / ct;
break;
default:
break;
}
return data;
}
}

View File

@@ -0,0 +1,30 @@
package com.njcn.csdevice.utils;
import com.njcn.common.pojo.exception.BusinessException;
import java.util.regex.Pattern;
/**
* Description:
* Date: 2024/12/17 14:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
public class StringUtil {
public static void containsSpecialCharacters(String str) {
// 定义包含特殊字符的正则表达式
String specialChars = "[<>%'%;()&+/\\\\-\\\\\\\\_|@*?#$!,.]|html";
// 创建Pattern对象
Pattern pattern = Pattern.compile(specialChars);
// 使用Pattern对象的matcher方法检查字符串
if(pattern.matcher(str).find()){
throw new BusinessException("存在特殊字符[<>\"'%;()&+//\\-———|@*_?#$!,.html]");
}
}
public static void main(String[] args) {
StringUtil.containsSpecialCharacters("*");
}
}

View File

@@ -76,8 +76,7 @@
<dependency>
<groupId>com.njcn</groupId>
<artifactId>user-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
@@ -89,12 +88,6 @@
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>cs-warn-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!-- zxing生成二维码 -->
<dependency>
@@ -107,9 +100,6 @@
<groupId>com.njcn</groupId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
@@ -139,8 +129,7 @@
<dependency>
<groupId>com.njcn</groupId>
<artifactId>cs-harmonic-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>com.njcn</groupId>
@@ -151,16 +140,29 @@
<dependency>
<groupId>com.njcn</groupId>
<artifactId>cs-system-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>event-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<artifactId>access-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-mq</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.njcn.platform</groupId>
<artifactId>message-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

View File

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

View File

@@ -0,0 +1,20 @@
package com.njcn.csdevice.controller.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*
* 动态注解类
*
* @author hongawen
* @version 1.0
* @data 2024/11/7 11:00
*/
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface InsertBean {
}

View File

@@ -0,0 +1,20 @@
package com.njcn.csdevice.controller.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*
* 动态注解类
*
* @author hongawen
* @version 1.0
* @data 2024/11/7 11:00
*/
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryBean {
}

View File

@@ -0,0 +1,78 @@
package com.njcn.csdevice.controller.bean;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.controller.annotation.InsertBean;
import com.njcn.csdevice.controller.annotation.QueryBean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.Field;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/7 11:31
*/
@Component
public class DynamicBeanProcessor implements BeanPostProcessor {
@Autowired
private ApplicationContext context;
/**
* 查询配置
*/
@Value("${data.source.query:Influxdb}")
private String queryParam;
/**
* 插入配置
*/
@Value("${data.source.insert:Relation}")
private String insertParam;
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean.getClass().isAnnotationPresent(Controller.class) || bean.getClass().isAnnotationPresent(RestController.class) || bean.getClass().isAnnotationPresent(Service.class)) {
processFields(bean);
}
return bean;
}
private void processFields(Object bean) {
Field[] fields = bean.getClass().getDeclaredFields();
for (Field field : fields) {
String beanId;
Class<?> type = field.getType();
// 判断是否是接口类型,并且是否是注解指定类库
if (type.isInterface() && (field.isAnnotationPresent(QueryBean.class) || field.isAnnotationPresent(InsertBean.class))) {
String name = type.getName();
beanId = name.substring(name.lastIndexOf(".") + 2);
if (field.isAnnotationPresent(QueryBean.class)) {
beanId = queryParam + beanId + "Impl";
} else if (field.isAnnotationPresent(InsertBean.class)) {
beanId = insertParam + beanId + "Impl";
}
try {
field.setAccessible(true);
field.set(bean, context.getBean(beanId));
} catch (IllegalAccessException e) {
throw new BusinessException("获取动态实现类失败");
}
}
}
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
}

View File

@@ -0,0 +1,78 @@
package com.njcn.csdevice.controller.data;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.controller.annotation.QueryBean;
import com.njcn.csdevice.param.LineCountEvaluateParam;
import com.njcn.csdevice.pojo.dto.PqsCommunicateDto;
import com.njcn.csdevice.service.ICsCommunicateService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/6 19:48
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/pqsCommunicate")
@Api(tags = "获取装置上下线记录")
public class PqsCommunicateController extends BaseController {
@QueryBean
private ICsCommunicateService pqsCommunicateCvtQuery;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawDataLatest")
@ApiOperation("获取取出最新装置数据")
public HttpResult<List<PqsCommunicateDto>> getRawDataLatest(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawDataLatest");
List<PqsCommunicateDto> rawData = pqsCommunicateCvtQuery.getRawDataLatest(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<PqsCommunicateDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawData");
List<PqsCommunicateDto> rawData = pqsCommunicateCvtQuery.getRawData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawDataEnd")
@ApiOperation("获取是否有当天最后一条数据")
public HttpResult<List<PqsCommunicateDto>> getRawDataEnd(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawData");
List<PqsCommunicateDto> rawData = pqsCommunicateCvtQuery.getRawDataEnd(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/insertion")
@ApiOperation("插入数据")
public HttpResult<String> insertion(@RequestBody PqsCommunicateDto pqsCommunicateDto) {
String methodDescribe = getMethodDescribe("insertion");
pqsCommunicateCvtQuery.insertion(pqsCommunicateDto);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

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