160 Commits

Author SHA1 Message Date
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
229 changed files with 11807 additions and 1133 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

@@ -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

@@ -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,9 @@ public interface CsLedgerFeignClient {
@PostMapping("/deviceTree")
@ApiOperation("三层设备树(装置层)")
HttpResult<List<CsLedgerVO>> getDeviceTree();
}
@PostMapping("/getAllLedger")
HttpResult<List<CsLedgerVO>> getAllLedger();
}

View File

@@ -6,6 +6,7 @@ import com.njcn.csdevice.api.fallback.CsLineClientFallbackFactory;
import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.CsLinePO;
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 +19,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 +36,16 @@ 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);
}

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

@@ -31,5 +31,13 @@ public interface DataSetFeignClient {
@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

@@ -10,10 +10,13 @@ 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;
@@ -58,4 +61,16 @@ public interface EquipmentFeignClient {
@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

@@ -5,10 +5,13 @@ 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;
@@ -41,4 +44,17 @@ public interface WlRecordFeignClient {
@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,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

@@ -62,6 +62,12 @@ 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);
}
};
}
}

View File

@@ -28,7 +28,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 +62,30 @@ 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);
}
};
}
}

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

@@ -56,6 +56,24 @@ public class DataSetFeignClientFallbackFactory implements FallbackFactory<DataSe
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

@@ -77,6 +77,31 @@ public class EquipmentFeignClientFallbackFactory implements FallbackFactory<Equi
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

@@ -6,6 +6,7 @@ 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;
@@ -51,6 +52,30 @@ public class WlRecordClientFallbackFactory implements FallbackFactory<WlRecordFe
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,8 +48,18 @@ 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";

View File

@@ -35,7 +35,6 @@ public enum AlgorithmResponseEnum {
CHIRLDREN2_EXIST("A00514","项目下存在设备,不能删除"),
CHIRLDREN3_EXIST("A00516","存在设备使用拓扑图,不能删除"),
DATA_ARRAY_MISSING("A00515","详细数据为空"),
UNKNOW_ROLE("A00515","角色无权限操作"),
DATA_MISSING("A00516","数据缺失"),
@@ -47,6 +46,14 @@ public enum AlgorithmResponseEnum {
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,88 @@ 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;
}

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

@@ -1,5 +1,6 @@
package com.njcn.csdevice.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -34,9 +35,11 @@ public class WlRecordParam {
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("测试项名称")
@@ -99,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

@@ -66,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正常)
*/
@@ -86,13 +98,28 @@ 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;
}

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,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

@@ -150,4 +150,10 @@ public class WlRecord extends BaseEntity {
*/
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

@@ -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;
@@ -45,6 +57,18 @@ public class CsLedgerVO implements Serializable {
@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,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
@@ -12,7 +13,7 @@ import java.time.LocalDateTime;
* @date 2023/6/19
*/
@Data
public class DataGroupEventVO {
public class DataGroupEventVO {
@ApiModelProperty("id")
private String id;
@@ -26,6 +27,12 @@ public class DataGroupEventVO {
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("装置ID")
private String deviceId;
@ApiModelProperty("装置名称")
private String devName;
@ApiModelProperty("项目名称")
private String projectName;
@@ -53,4 +60,7 @@ public class DataGroupEventVO {
@ApiModelProperty("暂降幅值")
private Float featureAmplitude;
@ApiModelProperty("波形路径")
private String wavePath;
}

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

@@ -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,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

@@ -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,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>
@@ -92,8 +91,7 @@
<dependency>
<groupId>com.njcn</groupId>
<artifactId>cs-warn-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<version>${project.version}</version>
</dependency>
<!-- zxing生成二维码 -->
@@ -107,9 +105,6 @@
<groupId>com.njcn</groupId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
@@ -139,8 +134,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,20 +145,20 @@
<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>access-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-mq</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

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

View File

@@ -0,0 +1,60 @@
package com.njcn.csdevice.controller.data;
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.RStatIntegrityD;
import com.njcn.csdevice.service.IRStatIntegrityDService;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 数据完整性日表 前端控制器
* </p>
*
* @author xy
* @since 2025-06-23
*/
@Slf4j
@RestController
@RequestMapping("/rStatIntegrityD")
@Api(tags = "数据完整性接口")
@AllArgsConstructor
public class RStatIntegrityDController extends BaseController {
private final IRStatIntegrityDService irStatIntegrityDService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增数据完整性(可根据时间段进行补召)")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> addData(@RequestBody @Validated StatisticsDataParam param){
String methodDescribe = getMethodDescribe("addData");
irStatIntegrityDService.addData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/list")
@ApiOperation("获取数据")
public HttpResult<List<RStatIntegrityD>> list(@Validated @RequestParam("list") List<String> list, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime){
String methodDescribe = getMethodDescribe("list");
List<RStatIntegrityD> result = irStatIntegrityDService.getData(list,startTime,endTime);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,60 @@
package com.njcn.csdevice.controller.data;
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.RStatOnlineRateD;
import com.njcn.csdevice.service.IRStatOnlineRateDService;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 在线率日表 前端控制器
* </p>
*
* @author xy
* @since 2025-06-23
*/
@Slf4j
@RestController
@RequestMapping("/rStatOnlineRateD")
@Api(tags = "终端在线率接口")
@AllArgsConstructor
public class RStatOnlineRateDController extends BaseController {
private final IRStatOnlineRateDService rStatOnlineRateDService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增终端在线率(可根据时间段进行补召)")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> addData(@RequestBody @Validated StatisticsDataParam param){
String methodDescribe = getMethodDescribe("addData");
rStatOnlineRateDService.addData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/list")
@ApiOperation("获取数据")
public HttpResult<List<RStatOnlineRateD>> list(@Validated @RequestParam("list") List<String> list, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime){
String methodDescribe = getMethodDescribe("list");
List<RStatOnlineRateD> result = rStatOnlineRateDService.getData(list,startTime,endTime);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -83,5 +83,45 @@ public class CsDataSetController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getBaseDataSet")
@ApiOperation("获取实时数据-基础数据集")
@ApiImplicitParams({
@ApiImplicitParam(name = "modelId", value = "模板id", required = true),
@ApiImplicitParam(name = "clDev", value = "逻辑子设备标识", required = true)
})
public HttpResult<CsDataSet> getBaseDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev){
String methodDescribe = getMethodDescribe("getBaseDataSet");
CsDataSet dataSet = csDataSetService.getBaseDataSet(modelId,clDev);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataSet, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getHarmonicDataSet")
@ApiOperation("获取实时数据-谐波数据集")
@ApiImplicitParams({
@ApiImplicitParam(name = "modelId", value = "模板id", required = true),
@ApiImplicitParam(name = "clDev", value = "逻辑子设备标识", required = true),
@ApiImplicitParam(name = "target", value = "指标序号", required = true),
})
public HttpResult<CsDataSet> getHarmonicDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev,@RequestParam("target") Integer target){
String methodDescribe = getMethodDescribe("getHarmonicDataSet");
CsDataSet dataSet = csDataSetService.getHarmonicDataSet(modelId,clDev,target);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataSet, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDataSetByIdx")
@ApiOperation("根据idx获取数据集数据")
@ApiImplicitParams({
@ApiImplicitParam(name = "modelId", value = "模板id", required = true),
@ApiImplicitParam(name = "idx", value = "数据集序号", required = true)
})
public HttpResult<CsDataSet> getDataSetByIdx(@RequestParam("modelId") String modelId,@RequestParam("idx") Integer idx){
String methodDescribe = getMethodDescribe("getDataSetByIdx");
CsDataSet csDataSet = csDataSetService.getDataSetByIdx(modelId,idx);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDataSet, methodDescribe);
}
}

View File

@@ -56,9 +56,10 @@ public class CsLogController extends BaseController {
@ApiOperation("查询日志")
@ApiImplicitParam(name = "baseParam", value = "查询日志参数", required = true)
public HttpResult<IPage<CsLogsPO>> queryLog(@RequestBody BaseParam baseParam){
IPage<CsLogsPO> list = csLogsPOService.queryPage(baseParam);
String methodDescribe = getMethodDescribe("queryLog");
IPage<CsLogsPO> list = csLogsPOService.queryPage(baseParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}

View File

@@ -54,7 +54,7 @@ public class DevModelController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/AuditDevModel")
@ApiOperation("更新/删除出厂设备")
@ApiOperation("更新/删除设备模板参数")
@ApiImplicitParam(name = "csDevModelAuditParm", value = "更新/删除设备模板参数", required = true)
public HttpResult<Boolean> AuditDevModel(@RequestBody @Validated CsDevModelAuditParm csDevModelAuditParm ){
String methodDescribe = getMethodDescribe("AuditDevModel");

View File

@@ -93,8 +93,8 @@ public class DevModelRelationController extends BaseController {
@PostMapping("/getModelByType")
@ApiOperation("根据装置类型查询模板")
@ApiImplicitParams({
@ApiImplicitParam(name = "devId", value = "装置id", required = true),
@ApiImplicitParam(name = "type", value = "模板类型", required = true)
@ApiImplicitParam(name = "devId", value = "装置id", required = true),
@ApiImplicitParam(name = "type", value = "模板类型", required = true)
})
@ApiIgnore
public HttpResult<String> getModelByType(@RequestParam("devId") String devId, @RequestParam("type") Integer type){
@@ -103,4 +103,18 @@ public class DevModelRelationController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, modelId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateDataByList")
@ApiOperation("根据装置集合修改模板信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "list", value = "装置id集合", required = true),
@ApiImplicitParam(name = "id", value = "模板id", required = true)
})
@ApiIgnore
public HttpResult<String> updateDataByList(@RequestParam("list") List<String> list, @RequestParam("id") String id){
String methodDescribe = getMethodDescribe("updateDataByList");
csDevModelRelationService.updateDataByList(list,id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -1,17 +1,16 @@
package com.njcn.csdevice.controller.equipment;
import cn.hutool.core.collection.CollectionUtil;
import com.github.tocrhz.mqtt.publisher.MqttPublisher;
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.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.service.DeviceFtpService;
import com.njcn.csharmonic.pojo.vo.MakeUpVo;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.web.controller.BaseController;
import com.njcn.web.utils.RequestUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -24,7 +23,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Objects;
/**
* @author xy
@@ -38,6 +36,7 @@ public class DeviceFtpController extends BaseController {
private final DeviceFtpService deviceFtpService;
private final RedisUtil redisUtil;
private final MqttPublisher publisher;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/askDeviceRootPath")
@@ -61,9 +60,6 @@ public class DeviceFtpController extends BaseController {
public HttpResult<List<MakeUpVo>> askDeviceFileOrDir(@RequestParam("nDid") String nDid, @RequestParam("name") String name, @RequestParam("type") String type){
String methodDescribe = getMethodDescribe("askDeviceFileOrDir");
List<MakeUpVo> list = deviceFtpService.askDeviceFileOrDir(nDid,name,type);
if (CollectionUtil.isEmpty(list) && Objects.equals(type,"file")) {
throw new BusinessException(AlgorithmResponseEnum.ASK_DEVICE_DIR_ERROR);
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@@ -77,16 +73,22 @@ public class DeviceFtpController extends BaseController {
@ApiImplicitParam(name = "fileCheck", value = "文件校验码", required = true)
})
public HttpResult<String> downloadFile(@RequestParam("nDid") String nDid, @RequestParam("name") String name, @RequestParam("size") Integer size, @RequestParam("fileCheck") String fileCheck){
String methodDescribe = getMethodDescribe("downloadFile");
String result = deviceFtpService.downloadFile(nDid,name,size,fileCheck);
redisUtil.delete("downloadFilePath:"+name);
redisUtil.delete("fileCheck"+name);
redisUtil.delete("fileDowning:"+nDid);
if (Objects.isNull(result)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
redisUtil.saveByKeyWithExpire("fileDownUserId"+nDid+name,RequestUtil.getUserIndex(),600L);
deviceFtpService.downloadFile(nDid,name,size,fileCheck);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, "文件下载中,请稍等");
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDownloadFilePath")
@ApiOperation("获取文件下载路径")
@ApiImplicitParams({
@ApiImplicitParam(name = "nDid", value = "nDid", required = true),
@ApiImplicitParam(name = "name", value = "文件路径名", required = true)
})
public HttpResult<String> getDownloadFilePath(@RequestParam("nDid") String nDid, @RequestParam("name") String name){
String methodDescribe = getMethodDescribe("getDownloadFilePath");
String result = deviceFtpService.getDownloadFilePath(nDid,name);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)

View File

@@ -2,6 +2,7 @@ package com.njcn.csdevice.controller.equipment;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
@@ -9,7 +10,6 @@ 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.constant.DataParam;
import com.njcn.csdevice.enums.DeviceOperate;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.param.*;
@@ -23,6 +23,9 @@ import com.njcn.csdevice.service.IMqttUserService;
import com.njcn.csdevice.utils.ExcelStyleUtil;
import com.njcn.poi.excel.ExcelUtil;
import com.njcn.poi.util.PoiUtil;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.web.advice.DeviceLog;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.*;
@@ -30,6 +33,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -37,10 +41,11 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
@@ -55,21 +60,20 @@ import java.util.stream.Stream;
@Api(tags = " 出厂设备")
@AllArgsConstructor
public class EquipmentDeliveryController extends BaseController {
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
private final IMqttUserService mqttUserService;
private final CsDevModelRelationService csDevModelRelationService;
private final DictTreeFeignClient dictTreeFeignClient;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addEquipmentDelivery")
@ApiOperation("新增出厂设备")
@ApiImplicitParam(name = "csEquipmentDeliveryAddParm", value = "新增项目参数", required = true)
@DeviceLog(operateType = DeviceOperate.ADD)
public HttpResult<Boolean> addEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm){
public HttpResult<CsEquipmentDeliveryPO> addEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm){
String methodDescribe = getMethodDescribe("addEquipmentDelivery");
Boolean flag = csEquipmentDeliveryService.save(csEquipmentDeliveryAddParm);
if (flag){
CsEquipmentDeliveryPO po = csEquipmentDeliveryService.save(csEquipmentDeliveryAddParm);
if (Objects.nonNull(po)){
//查询mqtt用户名和密码是否存在
boolean result = mqttUserService.findMqttUser(csEquipmentDeliveryAddParm.getNdid());
if (result){
@@ -77,10 +81,9 @@ public class EquipmentDeliveryController extends BaseController {
mqttUserService.insertMqttUser(csEquipmentDeliveryAddParm.getNdid());
}
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/AuditEquipmentDelivery")
@ApiOperation("删除出厂设备")
@@ -99,19 +102,24 @@ public class EquipmentDeliveryController extends BaseController {
public HttpResult<Boolean> updateEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAuditParm csEquipmentDeliveryAuditParm ){
String methodDescribe = getMethodDescribe("updateEquipmentDelivery");
Boolean flag = csEquipmentDeliveryService.updateEquipmentDelivery(csEquipmentDeliveryAuditParm);
if (flag){
//查询mqtt用户名和密码是否存在
boolean result = mqttUserService.findMqttUser(csEquipmentDeliveryAuditParm.getNdid());
if (result){
//初始化装置mqtt连接信息(使用sha256加密)
mqttUserService.insertMqttUser(csEquipmentDeliveryAuditParm.getNdid());
}
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEquipmentByndid")
@ApiOperation("通过ndid查询出厂设备")
@ApiImplicitParam(name = "ndid", value = "网关识别码", required = true)
public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid")String ndid){
String methodDescribe = getMethodDescribe("queryEquipmentByndid");
CsEquipmentDeliveryVO csEquipmentDeliveryVO = csEquipmentDeliveryService.queryEquipmentByndid (ndid);
CsEquipmentDeliveryVO csEquipmentDeliveryVO = csEquipmentDeliveryService.queryEquipmentByndid (ndid);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csEquipmentDeliveryVO, methodDescribe);
}
@@ -133,17 +141,21 @@ public class EquipmentDeliveryController extends BaseController {
@ApiImplicitParam(name = "status", value = "状态", required = true)
})
@DeviceLog(operateType = DeviceOperate.UPDATESTATUSBYNDID)
public HttpResult<Boolean> updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status){
public HttpResult<Boolean> updateStatusBynDid(@RequestParam("nDId") String nDid,@RequestParam("status") Integer status){
String methodDescribe = getMethodDescribe("updateStatusBynDid");
csEquipmentDeliveryService.updateStatusBynDid(nDid,status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEquipmentById")
@ApiOperation("设备查询通过id获取")
@ApiImplicitParam(name = "ids", value = "设备id集合", required = true)
public HttpResult<List<CsEquipmentDeliveryDTO>> queryEquipmentById(@RequestParam List<String> ids){
String methodDescribe = getMethodDescribe("queryEquipmentById");
if (CollectionUtil.isEmpty(ids)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryService.listByIds(ids);
List<CsEquipmentDeliveryDTO> collect = csEquipmentDeliveryPOS.stream().map(temp -> {
CsEquipmentDeliveryDTO csEquipmentDeliveryDTO = new CsEquipmentDeliveryDTO();
@@ -162,12 +174,6 @@ public class EquipmentDeliveryController extends BaseController {
public HttpResult<Page<CsEquipmentDeliveryVO>> list(@RequestBody CsEquipmentDeliveryQueryParm param){
String methodDescribe = getMethodDescribe("list");
Page<CsEquipmentDeliveryVO> page = csEquipmentDeliveryService.list(param);
//新增逻辑(只针对便携式设备):修改设备中的未注册状态(status = 1)改为5(前端定义的字典也即未接入)
for(CsEquipmentDeliveryVO csEquipmentDeliveryVO : page.getRecords()){
if(DataParam.portableDevType.equals(csEquipmentDeliveryVO.getDevType()) && csEquipmentDeliveryVO.getStatus() == 1){
csEquipmentDeliveryVO.setStatus(5);
}
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
@@ -210,17 +216,21 @@ public class EquipmentDeliveryController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
@ResponseBody
@ApiOperation("导出设备模板")
@GetMapping(value = "getExcelTemplate")
public HttpResult<String> getExcelTemplate(HttpServletResponse response) {
String methodDescribe = getMethodDescribe("getExcelTemplate");
ExportParams exportParams = new ExportParams("批量导入模板(请严格按照模板标准填入数据)", "终端入网检测录入信息");
exportParams.setStyle(ExcelStyleUtil.class);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, DeviceExcelTemplete.class, new ArrayList<DeviceExcelTemplete>());
ExcelUtil.selectList(workbook, 2, 2, Stream.of("直连设备","网关设备").collect(Collectors.toList()).toArray(new String[]{}));
List<SysDicTreePO> deviceType = dictTreeFeignClient.queryByCodeList(DicDataTypeEnum.DEVICE_TYPE.getCode()).getData();
if(!CollectionUtils.isEmpty(deviceType)){
List<String> collect = deviceType.get(0).getChildren().stream().map(SysDicTreePO::getName).collect(Collectors.toList());
ExcelUtil.selectList(workbook, 2, 2, collect.toArray(new String[]{}));
List<String> collect2 = deviceType.get(0).getChildren().stream().map(SysDicTreePO::getChildren).flatMap(Collection::stream).map(SysDicTreePO::getName).collect(Collectors.toList());
ExcelUtil.selectList(workbook, 3, 3, collect2.toArray(new String[]{}));
}
ExcelUtil.selectList(workbook, 4, 4, Stream.of("MQTT","CLD").collect(Collectors.toList()).toArray(new String[]{}));
String fileName = "设备模板.xlsx";
ExportParams exportExcel = new ExportParams("设备模板", "设备模板");
@@ -233,9 +243,20 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping(value = "importEquipment")
public HttpResult<String> importEquipment(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
String methodDescribe = getMethodDescribe("importEquipment");
csEquipmentDeliveryService.importEquipment(file, response);
List<CsEquipmentDeliveryPO> csEquipmentDeliveryPOS = csEquipmentDeliveryService.importEquipment(file, response);
if (!CollectionUtils.isEmpty(csEquipmentDeliveryPOS)){
csEquipmentDeliveryPOS.forEach(temp->{
//查询mqtt用户名和密码是否存在
boolean result = mqttUserService.findMqttUser(temp.getNdid());
if (result){
//初始化装置mqtt连接信息(使用sha256加密)
mqttUserService.insertMqttUser(temp.getNdid());
}
});
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@ResponseBody
@ApiOperation("联调完成")
@PostMapping(value = "testcompletion")
@@ -258,8 +279,8 @@ public class EquipmentDeliveryController extends BaseController {
@PostMapping("/updateSoftInfo")
@ApiOperation("更新设备软件信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "nDid", value = "网络设备码", required = true),
@ApiImplicitParam(name = "id", value = "软件信息id", required = true)
@ApiImplicitParam(name = "nDid", value = "网络设备码", required = true),
@ApiImplicitParam(name = "id", value = "软件信息id", required = true)
})
@ApiIgnore
public HttpResult<String> updateSoftInfo(@RequestParam("nDid") String nDid,@RequestParam("id") String id){
@@ -282,7 +303,6 @@ public class EquipmentDeliveryController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/rebootDevice")
@ApiOperation("重启设备")
@@ -306,4 +326,83 @@ public class EquipmentDeliveryController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/judgeDevModel")
@ApiOperation("判断设备型号")
public HttpResult<Boolean> judgeDevModel(@RequestParam("nDid") String nDid){
String methodDescribe = getMethodDescribe("judgeDevModel");
boolean result = csEquipmentDeliveryService.judgeDevModel(nDid);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDevByLineId")
@ApiOperation("根据监测点id查询装置信息")
public HttpResult<CsEquipmentDeliveryPO> getDevByLineId(@RequestParam("lineId") String lineId){
String methodDescribe = getMethodDescribe("getDevByLineId");
CsEquipmentDeliveryPO po = csEquipmentDeliveryService.getDevByLineId(lineId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addCldDev")
@ApiOperation("新增云前置设备")
@ApiImplicitParam(name = "param", value = "参数", required = true)
@DeviceLog(operateType = DeviceOperate.ADD)
public HttpResult<CsEquipmentDeliveryPO> addCldDev(@RequestBody @Validated CsEquipmentDeliveryAddParm param){
String methodDescribe = getMethodDescribe("addCldDev");
CsEquipmentDeliveryPO po = csEquipmentDeliveryService.saveCld(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/delCldDev")
@ApiOperation("删除云前置设备")
@ApiImplicitParam(name = "id", value = "id", required = true)
@DeviceLog(operateType = DeviceOperate.DELETE)
public HttpResult<Boolean> delCldDev(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("delCldDev");
boolean result = csEquipmentDeliveryService.delCldDev(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateCldDev")
@ApiOperation("修改云前置设备")
@ApiImplicitParam(name = "param", value = "参数", required = true)
@DeviceLog(operateType = DeviceOperate.UPDATE)
public HttpResult<Boolean> updateCldDev(@RequestBody @Validated CsEquipmentDeliveryAuditParm param){
String methodDescribe = getMethodDescribe("updateCldDev");
boolean result = csEquipmentDeliveryService.updateCldDev(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateCldDevStatus")
@ApiOperation("云前置心跳丢失切换设备状态")
@ApiImplicitParams({
@ApiImplicitParam(name = "nodeId", value = "前置服务器id", required = true),
@ApiImplicitParam(name = "processNo", value = "进程号", required = true)
})
@ApiIgnore
public HttpResult<Boolean> updateCldDevStatus(@RequestParam("nodeId") String nodeId, @RequestParam("processNo") Integer processNo){
String methodDescribe = getMethodDescribe("updateCldDevStatus");
csEquipmentDeliveryService.updateCldDevStatus(nodeId,processNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/flipCldDevStatus")
@ApiOperation("云前置设备状态翻转")
@ApiImplicitParams({
@ApiImplicitParam(name = "devId", value = "设备id", required = true),
@ApiImplicitParam(name = "status", value = "状态", required = true)
})
@ApiIgnore
public HttpResult<Boolean> flipCldDevStatus(@RequestParam("devId") String devId, @RequestParam("status") Integer status){
String methodDescribe = getMethodDescribe("flipCldDevStatus");
csEquipmentDeliveryService.flipCldDevStatus(devId,status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -9,10 +9,12 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.pojo.param.WlRecordTemplete;
import com.njcn.csdevice.pojo.po.PortableOffMainLog;
import com.njcn.csdevice.pojo.po.PortableOfflLog;
import com.njcn.csdevice.service.IPortableOfflLogService;
import com.njcn.csdevice.utils.ExcelStyleUtil;
import com.njcn.csdevice.param.UploadDataParam;
import com.njcn.minioss.config.MinIossProperties;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.poi.excel.ExcelUtil;
import com.njcn.poi.util.PoiUtil;
@@ -55,7 +57,7 @@ public class PortableOfflLogController extends BaseController {
private final DicDataFeignClient dicDataFeignClient;
private final FileStorageUtil fileStorageUtil;
private final MinIossProperties minIossProperties;
@ResponseBody
@ApiOperation("导出设备基础数据模板")
@GetMapping(value = "getExcelTemplate")
@@ -80,6 +82,15 @@ public class PortableOfflLogController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryMainLogPage")
@ApiOperation("便携式设备解析日志")
public HttpResult<Page<PortableOffMainLog>> queryMainLogPage(@RequestBody BaseParam baseParam){
String methodDescribe = getMethodDescribe("queryMainLogPage");
Page<PortableOffMainLog> list = iPortableOfflLogService.queryMainLogPage(baseParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("离线数据导入")
@PostMapping(value = "importEquipment")
@@ -110,7 +121,7 @@ public class PortableOfflLogController extends BaseController {
List<MultipartFile> excelreport = null;
try {
excelreport = fileStorageUtil.getAllFile("excelreport", path);
excelreport = fileStorageUtil.getAllFile(minIossProperties.getBucket(), path);
} catch (Exception e) {
throw new RuntimeException(e);
}

View File

@@ -0,0 +1,75 @@
package com.njcn.csdevice.controller.icd;
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.service.ICsTerminalLogsService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author xy
* @since 2025-09-26
*/
@Slf4j
@RequestMapping("/csTerminalLogs")
@RestController
@Api(tags = "云前置台账信息日志")
@AllArgsConstructor
public class CsTerminalLogsController extends BaseController {
private final ICsTerminalLogsService csTerminalLogsService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/pushCldInfo")
@ApiOperation("推送日志台账信息")
public HttpResult<String> pushCldInfo(){
String methodDescribe = getMethodDescribe("pushCldInfo");
String result = csTerminalLogsService.pushCldInfo();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateCldInfo")
@ApiOperation("更新日志台账信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "设备id", required = true),
@ApiImplicitParam(name = "code", value = "流程状态", required = true)
})
public HttpResult<String> updateCldInfo(@RequestParam String id, @RequestParam Integer code){
String methodDescribe = getMethodDescribe("updateCldInfo");
csTerminalLogsService.updateLogs(id,code);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateLaterData")
@ApiOperation("更新最新一组数据的推送状态")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "设备id", required = true),
@ApiImplicitParam(name = "code", value = "流程状态", required = true)
})
public HttpResult<String> updateLaterData(@RequestParam String id, @RequestParam String code){
String methodDescribe = getMethodDescribe("updateLaterData");
csTerminalLogsService.updateLaterData(id,code);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,85 @@
package com.njcn.csdevice.controller.icd;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.param.IcdBzParam;
import com.njcn.csdevice.param.IcdBzReplyParam;
import com.njcn.csdevice.pojo.vo.CldLogsVo;
import com.njcn.csdevice.service.ICsTerminalReplyService;
import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author xy
* @since 2025-10-09
*/
@Slf4j
@RequestMapping("/csTerminalReply")
@RestController
@Api(tags = "云前置台账信息响应记录")
@AllArgsConstructor
public class CsTerminalReplyController extends BaseController {
private final ICsTerminalReplyService csTerminalReplyService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryData")
@ApiOperation("查询推送结果")
public HttpResult<List<String>> queryData(){
String methodDescribe = getMethodDescribe("queryData");
List<String> result = csTerminalReplyService.queryReplyData();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateData")
@ApiOperation("更新推送结果")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> updateData(@RequestBody @Validated IcdBzReplyParam param){
String methodDescribe = getMethodDescribe("updateData");
csTerminalReplyService.updateReplyData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzLogs")
@ApiOperation("补召日志")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<Page<CldLogsVo>> bzLogs(@RequestBody @Validated BaseParam param){
String methodDescribe = getMethodDescribe("bzLogs");
Page<CldLogsVo> list = csTerminalReplyService.getBzLogs(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateBzData")
@ApiOperation("更新补召推送结果")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> updateBzData(@RequestBody @Validated IcdBzReplyParam param){
String methodDescribe = getMethodDescribe("updateBzData");
csTerminalReplyService.updateBzData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,98 @@
package com.njcn.csdevice.controller.icd;
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.param.IcdBzParam;
import com.njcn.csdevice.param.IcdLedgerParam;
import com.njcn.csdevice.param.IcdParam;
import com.njcn.csdevice.pojo.vo.CldLedgerVo;
import com.njcn.csdevice.pojo.vo.DeviceInfo;
import com.njcn.csdevice.service.IcdService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author xy
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/icd")
@Api(tags = "云前置改造")
@AllArgsConstructor
public class IcdController extends BaseController {
private final IcdService icdService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLedgerInfo")
@ApiOperation("获取台账信息")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<List<DeviceInfo>> getLedgerInfo(@RequestBody @Validated IcdParam param){
String methodDescribe = getMethodDescribe("getLedgerInfo");
List<DeviceInfo> result = icdService.getLedgerInfo(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addLedgerInfo")
@ApiOperation("新增台账信息")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<List<DeviceInfo>> addLedgerInfo(@RequestBody @Validated IcdLedgerParam param){
String methodDescribe = getMethodDescribe("addLedgerInfo");
icdService.addLedgerInfo(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLedgerById")
@ApiOperation("根据Id获取台账信息")
@ApiImplicitParam(name = "id", value = "id", required = true)
public HttpResult<CldLedgerVo> getLedgerById(@RequestParam String id){
String methodDescribe = getMethodDescribe("getLedgerById");
CldLedgerVo vo = icdService.getLedgerById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzFileByEventId")
@ApiOperation("指定事件补召波形")
@ApiImplicitParam(name = "eventId", value = "事件id", required = true)
public HttpResult<String> bzFileByEventId(@RequestParam String eventId){
String methodDescribe = getMethodDescribe("bzFileByEventId");
icdService.bzFileByEventId(eventId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzEvent")
@ApiOperation("补召事件")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> bzEvent(@RequestBody @Validated IcdBzParam param){
String methodDescribe = getMethodDescribe("bzEvent");
icdService.bzEvent(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/bzFile")
@ApiOperation("补召波形")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> bzFile(@RequestBody @Validated IcdBzParam param){
String methodDescribe = getMethodDescribe("bzFile");
icdService.bzFile(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,215 @@
package com.njcn.csdevice.controller.icd;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.param.IcdNodeParam;
import com.njcn.csdevice.pojo.param.NodeParam;
import com.njcn.csdevice.pojo.po.Node;
import com.njcn.csdevice.pojo.vo.NodeProcessDeviceVo;
import com.njcn.csdevice.service.INodeService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 前置程序控制器
* @author xy
*/
@Slf4j
@Api(tags = "前置机管理")
@RestController
@RequestMapping("node")
@RequiredArgsConstructor
public class NodeController extends BaseController {
private final INodeService iNodeService;
/**
* 新增前置机
* @author cdf
* @date 2021/6/23
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@ApiOperation("新增前置机")
@ApiImplicitParam(value = "前置机信息",name = "nodeParam",required = true)
@PostMapping("addNode")
public HttpResult<Boolean> addNode(@Validated @RequestBody NodeParam nodeParam){
String methodDescribe = getMethodDescribe("addNode");
boolean result = iNodeService.addNode(nodeParam);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 修改前置机
* @author cdf
* @date 2021/6/23
*/
@ApiOperation("修改前置机")
@ApiImplicitParam(value = "前置机信息",name = "updateNodeParam",required = true)
@PutMapping("updateNode")
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE)
public HttpResult<Boolean> updateNode(@Validated @RequestBody NodeParam.NodeUpdateParam updateNodeParam){
String methodDescribe = getMethodDescribe("updateNode");
boolean result = iNodeService.updateNode(updateNodeParam);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 删除前置
* @author cdf
* @date 2021/6/23
*/
@ApiOperation(value = "删除前置机")
@ApiImplicitParam(value = "前置机id",name = "id",required = true)
@PostMapping("delNode")
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE)
public HttpResult<Boolean> delNode(@Validated @NotNull(message = "id不可为空") @RequestParam("id")String id){
String methodDescribe = getMethodDescribe("delNode");
boolean result = iNodeService.delNode(id);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 变更前置机状态
* @author cdf
* @date 2021/6/23
*/
@ApiOperation(value = "变更前置机状态")
@ApiImplicitParams({
@ApiImplicitParam(value = "前置机id",name = "id",required = true ),
@ApiImplicitParam(value = "前置机状态",name = "state",required = true )
})
@PostMapping("updateNodeState")
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE)
public HttpResult<Boolean> updateNodeState(@Validated @NotNull(message = "id不可为空") @RequestParam("id")String id,@NotNull(message = "状态不为空") @RequestParam("state")Integer state){
String methodDescribe = getMethodDescribe("updateNodeState");
boolean result = iNodeService.updateNodeState(id,state);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 获取全部前置机分页
* @author cdf
* @date 2021/6/23
*/
@ApiOperation("获取全部前置机")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
@PostMapping("nodeList")
public HttpResult<Page<Node>> nodeList(@RequestBody NodeParam.NodeQueryParam nodeQueryParam){
String methodDescribe = getMethodDescribe("nodeList");
Page<Node> page = iNodeService.nodeList(nodeQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
/**
* 获取全部前置机不分页
* @author cdf
* @date 2021/6/23
*/
@ApiOperation("获取全部前置机")
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
@GetMapping("/nodeAllList")
public HttpResult<List<Node>> nodeAllList(){
String methodDescribe = getMethodDescribe("nodeAllList");
List<Node> resList = iNodeService.nodeAllList();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe);
}
/**
* 根据id获取前置机
* @author cdf
* @date 2021/6/23
*/
@ApiOperation("根据id获取前置机")
@ApiImplicitParam(value = "前置机id",name = "id",required = true)
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
@GetMapping("/getNodeById")
public HttpResult<Node> getNodeById(@Validated @NotNull(message = "id不可为空") @RequestParam("id")String id){
String methodDescribe = getMethodDescribe("getNodeById");
Node node = iNodeService.getNodeById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, node, methodDescribe);
}
/**
* 根据前置机id获取下面的进程和设备
* @author xy
*/
@ApiOperation("根据前置机id获取下面的进程和设备")
@ApiImplicitParam(value = "前置机id",name = "id",required = true)
@OperateInfo(info = LogEnum.BUSINESS_MEDIUM)
@GetMapping("/getProcessNoAndDeviceById")
public HttpResult<NodeProcessDeviceVo> getProcessNoAndDeviceById(@Validated @NotNull(message = "id不可为空") @RequestParam("id")String id){
String methodDescribe = getMethodDescribe("getProcessNoAndDeviceById");
NodeProcessDeviceVo vo = iNodeService.getProcessNoAndDeviceById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/restartProcess")
@ApiOperation("重启前置机进程")
@ApiImplicitParams({
@ApiImplicitParam(name = "nodeId", value = "前置服务器id", required = true),
@ApiImplicitParam(name = "processNo", value = "进程号", required = true)
})
public HttpResult<String> restartProcess(@RequestParam String nodeId,@RequestParam Integer processNo){
String methodDescribe = getMethodDescribe("restartProcess");
iNodeService.restartProcess(nodeId,processNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateDevProcessNo")
@ApiOperation("更新设备进程号")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "设备id", required = true),
@ApiImplicitParam(name = "processNo", value = "进程号", required = true)
})
public HttpResult<String> updateDevProcessNo(@RequestParam String id,@RequestParam Integer processNo){
String methodDescribe = getMethodDescribe("updateDevProcessNo");
String result = iNodeService.updateDevProcessNo(id,processNo);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateDevNode")
@ApiOperation("更新设备前置信息")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> updateDevNode(@RequestBody IcdNodeParam param){
String methodDescribe = getMethodDescribe("updateDevNode");
String result = iNodeService.updateDevNode(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -6,6 +6,7 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csdevice.mapper.CsLedgerMapper;
import com.njcn.csdevice.pojo.dto.DevDetailDTO;
import com.njcn.csdevice.pojo.dto.LineParamDTO;
import com.njcn.csdevice.pojo.param.CsLedgerParam;
@@ -39,6 +40,7 @@ import java.util.List;
public class CsLedgerController extends BaseController {
private final ICsLedgerService csLedgerService;
private final CsLedgerMapper csLedgerMapper;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/tree")
@@ -67,6 +69,15 @@ public class CsLedgerController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getztProjectTree")
@ApiOperation("三层设备树(项目层根节点为治理系统和便携式系统组态)")
public HttpResult<List<CsLedgerVO>> getztProjectTree(){
String methodDescribe = getMethodDescribe("getProjectTree");
List<CsLedgerVO> list = csLedgerService.getztProjectTree();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增台账信息")
@@ -136,5 +147,23 @@ public class CsLedgerController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, details, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getAllLedger")
@ApiOperation("获取台账树所有数据")
public HttpResult<List<CsLedgerVO>> getAllLedger(){
String methodDescribe = getMethodDescribe("getAllLedger");
List<CsLedgerVO> allList = csLedgerMapper.getAll();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, allList, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/cldTree")
@ApiOperation("云前置树")
public HttpResult<CsLedgerVO> cldTree(){
String methodDescribe = getMethodDescribe("cldTree");
CsLedgerVO vo = csLedgerService.cldTree();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
}
}

View File

@@ -1,5 +1,6 @@
package com.njcn.csdevice.controller.line;
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;
@@ -14,6 +15,7 @@ import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -39,7 +41,6 @@ import java.util.List;
public class CslineController extends BaseController {
private final CsLinePOService csLinePOService;
private final OverlimitMapper overlimitMapper;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@@ -89,16 +90,6 @@ public class CslineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @PostMapping("/addLineList")
// @ApiOperation("批量新增监测点及绑定关系")
// @ApiImplicitParam(name = "list", value = "监测点数据集", required = true)
// public HttpResult<String> addLines(@RequestBody List<CsLineParm> list){
// String methodDescribe = getMethodDescribe("addLines");
// csLinePOService.addLines(list);
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
// }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/findByNdid")
@ApiOperation("根据ndid查询监测点")
@@ -121,4 +112,112 @@ public class CslineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateIds")
@ApiOperation("修改监测点模板id和数据集id")
@ApiImplicitParam(name = "csLineParam", value = "监测点信息", required = true)
@ApiIgnore
public HttpResult<Boolean> updateIds(@RequestBody @Validated CsLineParam csLineParam) {
String methodDescribe = getMethodDescribe("updateIds");
csLinePOService.updateIds(csLineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getById")
@ApiOperation("根据监测点id获取监测点详情")
@ApiImplicitParam(name = "lineId", value = "监测点id", required = true)
public HttpResult<CsLinePO> getById(@RequestParam String lineId) {
String methodDescribe = getMethodDescribe("getById");
LambdaQueryWrapper<CsLinePO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CsLinePO::getLineId,lineId).eq(CsLinePO::getStatus,1);
CsLinePO po = csLinePOService.getOne(queryWrapper);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getOverLimitData")
@ApiOperation("根据监测点id获取国标限值")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<Overlimit> getOverLimitData(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getOverLimitData");
Overlimit result = overlimitMapper.selectById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @PostMapping("/getLinesByDevList")
// @ApiOperation("根据装置id集合获取监测点id集合")
// @ApiImplicitParam(name = "ids", value = "装置id集合", required = true)
// public HttpResult<List<CsLinePO>> getLinesByDevList(@RequestParam("ids") List<String> ids) {
// String methodDescribe = getMethodDescribe("getLinesByDevList");
// List<CsLinePO> list = csLinePOService.getLinesByDevList(ids);
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
// }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLinesByDevList")
@ApiOperation("根据装置id集合获取监测点id集合")
@ApiImplicitParam(name = "ids", value = "装置id集合", required = true)
public HttpResult<List<CsLinePO>> getLinesByDevList(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("getLinesByDevList");
List<CsLinePO> list = csLinePOService.getLinesByDevList(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addCldLine")
@ApiOperation("新增云前置监测点")
@ApiImplicitParam(name = "param", value = "param", required = true)
public HttpResult<List<CsLinePO>> addCldLine(@RequestBody @Validated CsLineParam param) {
String methodDescribe = getMethodDescribe("addCldLine");
csLinePOService.addCldLine(param);
//新增监测点限值
Overlimit overlimit = COverlimitUtil.globalAssemble(param.getVolGrade().floatValue(),10f,10f,10f,0,1);
overlimit.setId(param.getLineId());
overlimitMapper.deleteById(param.getLineId());
overlimitMapper.insert(overlimit);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateCldLine")
@ApiOperation("修改云前置监测点")
@ApiImplicitParam(name = "param", value = "param", required = true)
public HttpResult<List<CsLinePO>> updateCldLine(@RequestBody CsLineParam param) {
String methodDescribe = getMethodDescribe("updateCldLine");
csLinePOService.updateCldLine(param);
//修改监测点限值
Overlimit overlimit = COverlimitUtil.globalAssemble(param.getVolGrade().floatValue(),10f,10f,10f,0,1);
overlimit.setId(param.getLineId());
overlimitMapper.deleteById(param.getLineId());
overlimitMapper.insert(overlimit);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/delCldLine")
@ApiOperation("删除云前置监测点")
@ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<List<CsLinePO>> delCldLine(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("delCldLine");
csLinePOService.deleteCldLine(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateLineDataByList")
@ApiOperation("根据装置集合修改监测点信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "list", value = "装置id集合", required = true),
@ApiImplicitParam(name = "id", value = "模板id", required = true),
@ApiImplicitParam(name = "setId", value = "数据集id", required = true),
})
@ApiIgnore
public HttpResult<String> updateDataByList(@RequestParam("list") List<String> list, @RequestParam("id") String id, @RequestParam("setId") String setId){
String methodDescribe = getMethodDescribe("updateLineDataByList");
csLinePOService.updateLineDataByList(list,id,setId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -1,5 +1,6 @@
package com.njcn.csdevice.controller.project;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -68,8 +69,8 @@ public class AppProjectController extends BaseController {
public HttpResult<Boolean> addAppProject(@Validated AppProjectAddParm appProjectAddParm){
String methodDescribe = getMethodDescribe("addAppProject");
Boolean flag = appProjectService.addAppProject(appProjectAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
AppProjectPO po = appProjectService.addAppProject(appProjectAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, ObjectUtil.isNotNull(po), methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/auditAppProject")
@@ -80,4 +81,14 @@ public class AppProjectController extends BaseController {
Boolean flag = appProjectService.AuditAppProject(appProjectAuditParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateProject")
@ApiOperation("web修改项目信息")
public HttpResult<Boolean> updateProject(@RequestBody @Validated AppProjectAuditParm appProjectAuditParm){
String methodDescribe = getMethodDescribe("updateProject");
Boolean flag = appProjectService.updateProject(appProjectAuditParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
}

View File

@@ -11,6 +11,7 @@ import com.njcn.csdevice.pojo.param.CsEngineeringAuditParm;
import com.njcn.csdevice.pojo.param.CsEngineeringQueryPageParm;
import com.njcn.csdevice.pojo.param.CsEngineeringQueryParm;
import com.njcn.csdevice.pojo.po.CsEngineeringPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.CsEngineeringVO;
import com.njcn.csdevice.service.CsEngineeringService;
import com.njcn.web.controller.BaseController;
@@ -20,10 +21,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -42,10 +40,8 @@ import java.util.List;
@AllArgsConstructor
public class EngineeringController extends BaseController {
private final CsEngineeringService csEngineeringService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addEngineering")
@ApiOperation("新增工程")
@@ -88,4 +84,14 @@ public class EngineeringController extends BaseController {
IPage<CsEngineeringVO> page = csEngineeringService.queryEngineeringPage(csEngineeringQueryPageParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEngineeringById")
@ApiOperation("工程查询通过id获取")
@ApiImplicitParam(name = "id", value = "工程id", required = true)
public HttpResult<CsEngineeringPO> queryEngineeringById(@RequestParam String id){
String methodDescribe = getMethodDescribe("queryEngineeringById");
CsEngineeringPO po = csEngineeringService.queryEngineeringById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe);
}
}

View File

@@ -64,7 +64,7 @@ public class WlRecordController extends BaseController {
@GetMapping("/getTestRecordById")
@ApiOperation("根据测试项ID查询测试项信息")
@ApiImplicitParam(name = "testRecordId", value = "测试项ID", required = true)
public HttpResult<RecordVo.RecordItemVo> getTestRecordById(@RequestParam @Validated String testRecordId) {
public HttpResult<RecordVo.RecordItemVo> getTestRecordById(@RequestParam("testRecordId") @Validated String testRecordId) {
String methodDescribe = getMethodDescribe("getTestRecordById");
LogUtil.njcnDebug(log, "{}测试项id为{}", methodDescribe, testRecordId);
RecordVo.RecordItemVo result = wlRecordService.getTestRecordById(testRecordId);
@@ -127,6 +127,20 @@ public class WlRecordController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
/**
* 修改测试项日志
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/updateRecordData")
@ApiOperation("修改测试项日志")
@ApiImplicitParam(name = "record", value = "测试项日志信息", required = true)
public HttpResult<Boolean> updateRecordData(@RequestBody @Validated WlRecordParam.UpdateRecord record) {
String methodDescribe = getMethodDescribe("updateRecordData");
LogUtil.njcnDebug(log, "{},修改的测试项日志信息:{}", methodDescribe, record);
wlRecordService.updateRecordData(record);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
/**
* 新增或修改方案
*/
@@ -168,6 +182,20 @@ public class WlRecordController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
/**
* 删除装置测试项
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
@PostMapping("/deleteItem")
@ApiOperation("删除装置测试项")
@ApiImplicitParam(name = "id", value = "装置测试项Id", required = true)
public HttpResult<Boolean> deleteItem(@RequestParam @Validated String id) {
String methodDescribe = getMethodDescribe("deleteItem");
LogUtil.njcnDebug(log, "{}装置测试项Id为{}", methodDescribe, id);
wlRecordService.deleteItem(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
/**
* 查询测试项时间段实时数据
*/
@@ -195,6 +223,19 @@ public class WlRecordController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, record, methodDescribe);
}
/**
* 根据监测点id查询装置基础数据
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.QUERY)
@PostMapping("/findDevBaseDataByLineId")
@ApiOperation("根据监测点id查询装置基础数据")
@ApiImplicitParam(name = "param", value = "查询条件", required = true)
public HttpResult<List<RecordVo>> findDevBaseDataByLineId(@RequestBody @Validated WlRecordParam.lineRecord param) {
String methodDescribe = getMethodDescribe("findDevBaseDataByLineId");
LogUtil.njcnDebug(log, "{},查询对象为:{}", methodDescribe, param);
List<RecordVo> record = wlRecordService.findDevBaseDataByLineId(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, record, methodDescribe);
}
/**
@@ -203,9 +244,21 @@ public class WlRecordController extends BaseController {
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/dayDealNoEndTimeEvent")
@ApiOperation("每日处理没有结束时间的测试基础数据")
public void dayDealNoEndTimeEvent() {
public void dayDealNoEndTimeEvent(@RequestParam("date") String date) {
String methodDescribe = getMethodDescribe("dayDealNoEndTimeEvent");
wlRecordService.dayDealNoEndTimeEvent();
wlRecordService.dayDealNoEndTimeEvent(date);
}
/**
* 根据测试项获取测试项绑定测点数据
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getWlAssByWlId")
@ApiOperation("根据测试项获取测试项绑定测点数据")
public HttpResult<List<WlRecord>> getWlAssByWlId(@RequestParam("wlId") String wlId) {
String methodDescribe = getMethodDescribe("getWlAssByWlId");
List<WlRecord> result = wlRecordService.getWlAssByWlId(wlId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,28 @@
package com.njcn.csdevice.init;
import com.njcn.csdevice.service.CsDevModelService;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
/**
* 项目初始化缓存设备池,后续从缓存中获取设备数据
* @author xy
*/
@Slf4j
@Component
@AllArgsConstructor
public class InitData implements CommandLineRunner {
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
private final CsDevModelService csDevModelService;
@Override
public void run(String... args) {
csEquipmentDeliveryService.refreshDeviceDataCache();
csDevModelService.refreshDevModelCache();
}
}

View File

@@ -0,0 +1,62 @@
package com.njcn.csdevice.job;
import cn.hutool.core.date.DatePattern;
import com.njcn.csdevice.service.IRStatIntegrityDService;
import com.njcn.csdevice.service.IRStatOnlineRateDService;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @author xy
*/
@Component
@EnableScheduling
@RequiredArgsConstructor
@Slf4j
public class DayDataJob {
private final IRStatIntegrityDService statIntegrityDService;
private final IRStatOnlineRateDService statOnlineRateDService;
/**
* 每天1点计算治理设备的完整性
*
* @date 2025/7/1
*/
@Scheduled(cron = "0 0 1 * * ?")
public void lineIntegrityJob() {
StatisticsDataParam param = new StatisticsDataParam();
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDateTime start = yesterday.atStartOfDay();
LocalDateTime end = yesterday.atTime(23, 59, 59);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN);
param.setStartTime(start.format(formatter));
param.setEndTime(end.format(formatter));
statIntegrityDService.addData(param);
}
/**
* 每天2点计算治理设备的在线率
*
* @date 2025/7/1
*/
@Scheduled(cron = "0 30 1 * * ?")
public void devOnlineRateJob() {
StatisticsDataParam param = new StatisticsDataParam();
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDateTime start = yesterday.atStartOfDay();
LocalDateTime end = yesterday.atTime(23, 59, 59);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN);
param.setStartTime(start.format(formatter));
param.setEndTime(end.format(formatter));
statOnlineRateDService.addData(param);
}
}

View File

@@ -1,8 +1,10 @@
package com.njcn.csdevice.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryQueryParm;
import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO;
@@ -20,10 +22,19 @@ import java.util.List;
* @author clam
* @version V1.0.0
*/
@DS("master")
public interface CsEquipmentDeliveryMapper extends BaseMapper<CsEquipmentDeliveryPO> {
Page<ProjectEquipmentVO> queryProjectEquipmentVO(Page<ProjectEquipmentVO> returnpage,@Param("projectEquipmentQueryParm")ProjectEquipmentQueryParm projectEquipmentQueryParm,@Param("device")List<String> device);
Page<CsEquipmentDeliveryVO> page(Page<CsEquipmentDeliveryPO> returnpage, @Param("ew") QueryWrapper<CsEquipmentDeliveryPO> queryWrapper);
//获取符合条件的设备列表
List<CsEquipmentDeliveryVO> getList(@Param("queryParam") CsEquipmentDeliveryQueryParm queryParam);
//获取符合条件的设备数量
int getCounts(@Param("queryParam") CsEquipmentDeliveryQueryParm queryParam);
int getListByNodeProcess(@Param("nodeId")String nodeId,@Param("process")Integer process);
List<CsEquipmentDeliveryPO> getDataByNodeIdAndProcessNo(@Param("nodeId")String nodeId,@Param("process")Integer process);
}

View File

@@ -0,0 +1,16 @@
package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.pojo.po.CsTerminalLogs;
/**
* <p>
* Mapper 接口
* </p>
*
* @author xy
* @since 2025-09-26
*/
public interface CsTerminalLogsMapper extends BaseMapper<CsTerminalLogs> {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.csdevice.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.csdevice.pojo.po.CsTerminalReply;
import com.njcn.user.pojo.vo.RoleVO;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* Mapper 接口
* </p>
*
* @author xy
* @since 2025-10-09
*/
public interface CsTerminalReplyMapper extends BaseMapper<CsTerminalReply> {
Page<CsTerminalReply> page(@Param("page")Page<RoleVO> page, @Param("ew") QueryWrapper<CsTerminalReply> queryWrapper);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.csdevice.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.param.IcdParam;
import com.njcn.csdevice.pojo.po.Node;
import com.njcn.csdevice.pojo.vo.DeviceInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2022-01-04
*/
@DS("sjzx")
public interface NodeMapper extends BaseMapper<Node> {
List<DeviceInfo> nodeDeviceList(@Param("nodeDeviceParam") IcdParam icdParam);
}

View File

@@ -1,8 +1,10 @@
package com.njcn.csdevice.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.biz.pojo.po.Overlimit;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -13,6 +15,8 @@ import com.njcn.device.biz.pojo.po.Overlimit;
* @author cdf
* @since 2022-01-04
*/
@DS("sjzx")
@Mapper
public interface OverlimitMapper extends BaseMapper<Overlimit> {
}

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