From a5587966bafb103f90ce57487125b50cce0ecd81 Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Mon, 8 Jul 2024 17:16:28 +0800 Subject: [PATCH 01/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EquipmentController.java | 8 +- docs/api/equipment.md | 268 ++++++++++++++++-- 2 files changed, 247 insertions(+), 29 deletions(-) diff --git a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java index 52e6c26a..a780beaf 100644 --- a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java +++ b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java @@ -73,10 +73,10 @@ public class EquipmentController { @PostMapping("/update") public R updateSysEquipment(@RequestBody SysEquipmentDto sysEquipmentDto) { //判断是否有权限 -// boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); -// if(!hasPermission){ -// return R.fail("没有设备管理权限"); -// } + boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); + if(!hasPermission){ + return R.fail("没有设备管理权限"); + } if (sysEquipmentDto.getOrgId() == null) { throw new ServiceException("参数缺失"); diff --git a/docs/api/equipment.md b/docs/api/equipment.md index c4a43843..49040648 100644 --- a/docs/api/equipment.md +++ b/docs/api/equipment.md @@ -2,30 +2,32 @@ ## API接口一览表 -| 接口分类 | 接口描述 | API接口 | 权限 | -| ------------- | -------------------------------- | ------------------------------------- | ---------------------------- | +| 接口分类 | 接口描述 | API接口 | 权限 | +| ------------- |------------------------| ------------------------------------- | ---------------------------- | | 2.1设备类型 | 2.1.1获取所有设备类型信息 | /api/equipment/type/list | | -| 2.2物模型 | 2.2.1获取物模型列表 | /api/equipment/model/list | | -| | 2.2.2物模型新增 | /api/equipment/model/add | SYS_AUTHORITY_ID_ADMIN | -| | 2.2.3物模型修改 | /api/equipment/model/update | SYS_AUTHORITY_ID_ADMIN | -| | 2.2.4物模型删除 | /api/equipment/model/delete | SYS_AUTHORITY_ID_ADMIN | -| 2.2物模型属性 | 2.2.5获取物模型属性列表 | /api/equipment/model/attribute/list | | -| | 2.2.6物模型属性新增 | /api/equipment/model/attribute/add | SYS_AUTHORITY_ID_ADMIN | -| | 2.2.7物模型属性修改 | /api/equipment/model/attribute/update | SYS_AUTHORITY_ID_ADMIN | -| | 2.2.8物模型属性删除 | /api/equipment/model/attribute/delete | SYS_AUTHORITY_ID_ADMIN | -| 2.2物模型方法 | 2.2.9获取物模型方法列表 | /api/equipment/model/service/list | | -| | 2.2.10物模型方法新增 | /api/equipment/model/service/add | SYS_AUTHORITY_ID_ADMIN | -| | 2.2.11物模型方法修改 | /api/equipment/model/service/update | SYS_AUTHORITY_ID_ADMIN | -| | 2.2.12物模型方法删除 | /api/equipment/model/service/delete | SYS_AUTHORITY_ID_ADMIN | +| 2.2物模型 | 2.2.1获取物模型列表 | /api/equipment/model/list | | +| | 2.2.2物模型新增 | /api/equipment/model/add | SYS_AUTHORITY_ID_ADMIN | +| | 2.2.3物模型修改 | /api/equipment/model/update | SYS_AUTHORITY_ID_ADMIN | +| | 2.2.4物模型删除 | /api/equipment/model/delete | SYS_AUTHORITY_ID_ADMIN | +| 2.2物模型属性 | 2.2.5获取物模型属性列表 | /api/equipment/model/attribute/list | | +| | 2.2.6物模型属性新增 | /api/equipment/model/attribute/add | SYS_AUTHORITY_ID_ADMIN | +| | 2.2.7物模型属性修改 | /api/equipment/model/attribute/update | SYS_AUTHORITY_ID_ADMIN | +| | 2.2.8物模型属性删除 | /api/equipment/model/attribute/delete | SYS_AUTHORITY_ID_ADMIN | +| 2.2物模型方法 | 2.2.9获取物模型方法列表 | /api/equipment/model/service/list | | +| | 2.2.10物模型方法新增 | /api/equipment/model/service/add | SYS_AUTHORITY_ID_ADMIN | +| | 2.2.11物模型方法修改 | /api/equipment/model/service/update | SYS_AUTHORITY_ID_ADMIN | +| | 2.2.12物模型方法删除 | /api/equipment/model/service/delete | SYS_AUTHORITY_ID_ADMIN | | | 2.2.13 Excel导出物模型属性和方法 | /api/equipment/model/export | | | | 2.2.14 Excel导入物模型属性和方法 | /api/equipment/model/import | SYS_AUTHORITY_ID_ADMIN | -| 2.3设备台账 | 2.3.1 设备不分页查询 | /api/equipment/list | SYS_AUTHORITY_ID_DEVICE_VIEW | -| | 2.3.2 设备分页查询 | /api/equipment/query | SYS_AUTHORITY_ID_DEVICE_VIEW | -| | 2.3.3 设备新增 | /api/equipment/add | SYS_AUTHORITY_ID_DEVICE_MGR | -| | 2.3.4 设备修改 | /api/equipment/update | SYS_AUTHORITY_ID_DEVICE_MGR | -| | 2.3.5 设备删除 | /api/equipment/delete | SYS_AUTHORITY_ID_DEVICE_MGR | -| | 2.3.6 Excel导出设备清单 | /api/equipment/export | SYS_AUTHORITY_ID_DEVICE_VIEW | -| | 2.3.7 Excel导入设备清单 | /api/equipment/import | SYS_AUTHORITY_ID_DEVICE_MGR | +| 2.3设备台账 | 2.3.1 设备不分页查询 | /api/equipment/list | SYS_AUTHORITY_ID_DEVICE_VIEW | +| | 2.3.2 设备分页查询 | /api/equipment/query | SYS_AUTHORITY_ID_DEVICE_VIEW | +| | 2.3.3 设备新增 | /api/equipment/add | SYS_AUTHORITY_ID_DEVICE_MGR | +| | 2.3.4 设备修改 | /api/equipment/update | SYS_AUTHORITY_ID_DEVICE_MGR | +| | 2.3.5 设备删除 | /api/equipment/delete | SYS_AUTHORITY_ID_DEVICE_MGR | +| | 2.3.6 Excel导出设备清单 | /api/equipment/export | SYS_AUTHORITY_ID_DEVICE_VIEW | +| | 2.3.7 Excel导入设备清单 | /api/equipment/import | SYS_AUTHORITY_ID_DEVICE_MGR | +| | 2.3.8 获取设备树 | /api/equipment/getEquipmentTree | | +| | 2.3.9 获取所有设备类型 | /api/equipment/type | | ### 2.1 设备类型相关接口 @@ -870,9 +872,225 @@ POST请求接口 返回报文 ```json - { - "code": 200, - "success": true, - "msg": "操作成功" +{ + "code": 200, + "success": true, + "data": { + "revision": 1, + "id": "1", + "name": "某风电场", + "mrid": "111", + "province": "江苏省", + "city": "南京市", + "county": "玄武区", + "address": "1", + "contactPhone": "1", + "parentOrgId": 0, + "equipChildren": [ + { + "id": "2", + "objectType": 10002, + "code": "10002", + "name": "机组", + "longitude": 0, + "latitude": 0, + "parentEquipmentId": "0", + "equipChildren": [ + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:50:32", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:50:32", + "revision": 1, + "id": "1810204805816188930", + "objectType": 10002, + "code": "", + "name": "GGG", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:52:44", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:52:44", + "revision": 1, + "id": "1810205361720852481", + "objectType": 10002, + "code": "", + "name": "RRR", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:53:07", + "updatedBy": "测试", + "updatedTime": "2024-07-08 15:01:33", + "revision": 1, + "id": "1810205456222715906", + "objectType": 10002, + "code": "test1", + "name": "test1", + "madeinFactory": "test1", + "model": "test1", + "location": "test1", + "longitude": 48.69145, + "latitude": 20.6946, + "installDate": "2027-07-05 15:30:23", + "remarks": "test1", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 07:02:38", + "updatedBy": "测试", + "updatedTime": "2024-07-08 07:02:38", + "revision": 1, + "id": "1810207853032570881", + "objectType": 10002, + "code": "", + "name": "12121", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 07:20:51", + "updatedBy": "测试", + "updatedTime": "2024-07-08 07:20:51", + "revision": 1, + "id": "1810212434735071233", + "objectType": 10002, + "code": "", + "name": "儿童", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + } + ] + }, + { + "id": "1", + "objectType": 10001, + "code": "10001", + "name": "风电场", + "longitude": 0, + "latitude": 0, + "parentEquipmentId": "0", + "equipChildren": [ + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:41:56", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:41:56", + "revision": 1, + "id": "1810202642163499009", + "objectType": 10001, + "code": "", + "name": "aaaa", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "1" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:45:09", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:45:09", + "revision": 1, + "id": "1810203450657538050", + "objectType": 10001, + "code": "", + "name": "yy", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "1" + } + ] + } + ], + "orgChildren": [ + { + "id": "73280038685114368", + "name": "test", + "mrid": "test", + "province": "山西省", + "city": "绛县", + "county": "运城市", + "address": "test", + "contactPhone": "13045088888", + "remarks": "test", + "aliasName": "test", + "parentOrgId": "1", + "parentOrgName": "某风电场", + "revision": 1, + "createdTime": "2024-06-28 00:00:00", + "updatedTime": "2024-06-28 00:00:00" + } + ] + }, + "msg": "操作成功" } ``` + +#### 2.3.9 获取所有设备类型 + +> /api/equipment/type + + +请求参数 +无请求参数 + +返回报文 +```json +{ + "code": 200, + "success": true, + "data": [ + { + "equipmentTypeId": "10001", + "equipmentTypeName": "风电场" + }, + { + "equipmentTypeId": "10002", + "equipmentTypeName": "机组" + } + ], + "msg": "操作成功" +} +``` \ No newline at end of file From 5366fba42a3cc57f04938d013626a2a58e5354f0 Mon Sep 17 00:00:00 2001 From: houwei Date: Mon, 8 Jul 2024 17:59:39 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=B6=88=E9=99=A4=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- das/pom.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/das/pom.xml b/das/pom.xml index 2fa7fdc6..a5c89e74 100644 --- a/das/pom.xml +++ b/das/pom.xml @@ -26,6 +26,8 @@ 1.38.0 4.0.1 4.8.6 + 2.3.14.Final + 5.3.0 @@ -86,11 +88,16 @@ org.apache.poi - poi-ooxml-schemas + poi + + org.apache.poi + poi + ${apache.poi} + From 2bac9fc44c6850f40f18a003843900844375ffe0 Mon Sep 17 00:00:00 2001 From: houwei Date: Mon, 8 Jul 2024 18:02:10 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=B6=88=E9=99=A4=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- das/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/das/pom.xml b/das/pom.xml index a5c89e74..3c799ee5 100644 --- a/das/pom.xml +++ b/das/pom.xml @@ -88,14 +88,14 @@ org.apache.poi - poi + poi-ooxml org.apache.poi - poi + poi-ooxml ${apache.poi} From d38c06587c646c0084e2a509ad521d6e1968c0d3 Mon Sep 17 00:00:00 2001 From: houwei Date: Mon, 8 Jul 2024 18:03:10 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=B6=88=E9=99=A4=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- das/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/das/pom.xml b/das/pom.xml index 3c799ee5..3602ae77 100644 --- a/das/pom.xml +++ b/das/pom.xml @@ -95,7 +95,7 @@ org.apache.poi - poi-ooxml + poi ${apache.poi} From b2d872bbdb4e35e5ca2052533a8ebf00527d2d9c Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Tue, 9 Jul 2024 09:42:09 +0800 Subject: [PATCH 05/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EquipmentController.java | 7 ++----- .../equipment/mapper/SysEquipmentMapper.java | 2 +- .../equipment/service/SysEquipmentService.java | 2 +- .../service/impl/SysEquipmentServiceImpl.java | 17 +++-------------- 4 files changed, 7 insertions(+), 21 deletions(-) diff --git a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java index a780beaf..f7634738 100644 --- a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java +++ b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java @@ -127,11 +127,8 @@ public class EquipmentController { * @return 所有的设备类型 */ @PostMapping("/getEquipmentTree") - public R getRootOrg(@RequestBody SysEquipmentDto sysEquipmentDto) { - if (sysEquipmentDto.getOrgId() == null) { - throw new ServiceException("参数缺失"); - } - return R.success(sysEquipmentService.getRootOrg(sysEquipmentDto)); + public R> getRootEquipment() { + return R.success(sysEquipmentService.getRootEquipment()); } diff --git a/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java b/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java index ebd8f2dd..3e16fb21 100644 --- a/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java +++ b/das/src/main/java/com/das/modules/equipment/mapper/SysEquipmentMapper.java @@ -20,7 +20,7 @@ public interface SysEquipmentMapper extends BaseMapper { IPage querySysEquipmentList(IPage page, @Param("info") SysEquipmentDto sysEquipmentDto); - List queryEquipmentTree(@Param("id")Long id); + List queryEquipmentTree(); List queryInfoById (@Param("info") SysEquipmentDto sysEquipmentDto); diff --git a/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java b/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java index 82d56c79..7241b49c 100644 --- a/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java +++ b/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java @@ -28,7 +28,7 @@ public interface SysEquipmentService { List queryAllSysEquipmentList(SysEquipmentDto sysEquipmentDto); - SysOrg getRootOrg(SysEquipmentDto sysEquipmentDto); + List getRootEquipment(); void exportSysEquipment(SysEquipmentDto sysEquipmentDto, HttpServletRequest request, HttpServletResponse response); diff --git a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java index 2854c0ea..d35c1df7 100644 --- a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java +++ b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java @@ -107,15 +107,8 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { } @Override - public SysOrg getRootOrg(SysEquipmentDto sysEquipmentDto) { - // 查询当前账号机构下的子机构和子设备 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("id", sysEquipmentDto.getOrgId()); - SysOrg sysOrg = sysOrgMapper.selectOne(queryWrapper); - if (sysOrg == null) { - throw new ServiceException("机构不存在"); - } - List equipList = sysEquipmentMapper.queryEquipmentTree(sysEquipmentDto.getOrgId()); + public List getRootEquipment() { + List equipList = sysEquipmentMapper.queryEquipmentTree(); // 根据ordId和设备编码查出对应的子设备 List newEquipList = new ArrayList<>(); if (!CollectionUtils.isEmpty(equipList)) { @@ -123,16 +116,12 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { QueryWrapper queryEquipWrapper = new QueryWrapper<>(); queryEquipWrapper.eq("parent_equipment_id", info.getId()); queryEquipWrapper.eq("object_type", info.getObjectType()); - queryEquipWrapper.eq("org_id", sysEquipmentDto.getOrgId()); List children = sysEquipmentMapper.selectList(queryEquipWrapper); info.setEquipChildren(children); newEquipList.add(info); } } - List orgList = sysOrgMapper.queryAllOrgTree(sysEquipmentDto.getOrgId()); - sysOrg.setEquipChildren(equipList); - sysOrg.setOrgChildren(orgList); - return sysOrg; + return newEquipList; } @Override From 6187a866df77ec9e85af34dd5a2ebc4ed61bb8e9 Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Tue, 9 Jul 2024 14:26:28 +0800 Subject: [PATCH 06/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- das/pom.xml | 6 ------ .../modules/equipment/controller/EquipmentController.java | 4 ---- 2 files changed, 10 deletions(-) diff --git a/das/pom.xml b/das/pom.xml index 3602ae77..eb5e5a17 100644 --- a/das/pom.xml +++ b/das/pom.xml @@ -85,12 +85,6 @@ com.alibaba easyexcel ${easyexcel.version} - - - org.apache.poi - poi-ooxml - - diff --git a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java index f7634738..08184e80 100644 --- a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java +++ b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java @@ -135,10 +135,6 @@ public class EquipmentController { /** 设备导出 */ @PostMapping("/export") public void exportSysEquipment(@RequestBody SysEquipmentDto sysEquipmentDto, HttpServletRequest request, HttpServletResponse response) { - - if (sysEquipmentDto.getParentEquipmentId() == null) { - throw new ServiceException("请选择需要下载的设备类型信息"); - } sysEquipmentService.exportSysEquipment(sysEquipmentDto,request, response); } From 9295186eac4a377eecb03cb063454454710ff626 Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Tue, 9 Jul 2024 14:33:16 +0800 Subject: [PATCH 07/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/equipment.md | 328 ++++++++++++++++++------------------------ docs/api/node.md | 16 +++ 2 files changed, 155 insertions(+), 189 deletions(-) create mode 100644 docs/api/node.md diff --git a/docs/api/equipment.md b/docs/api/equipment.md index 49040648..08580555 100644 --- a/docs/api/equipment.md +++ b/docs/api/equipment.md @@ -875,195 +875,145 @@ POST请求接口 { "code": 200, "success": true, - "data": { - "revision": 1, - "id": "1", - "name": "某风电场", - "mrid": "111", - "province": "江苏省", - "city": "南京市", - "county": "玄武区", - "address": "1", - "contactPhone": "1", - "parentOrgId": 0, - "equipChildren": [ - { - "id": "2", - "objectType": 10002, - "code": "10002", - "name": "机组", - "longitude": 0, - "latitude": 0, - "parentEquipmentId": "0", - "equipChildren": [ - { - "createdBy": "测试", - "createdTime": "2024-07-08 06:50:32", - "updatedBy": "测试", - "updatedTime": "2024-07-08 06:50:32", - "revision": 1, - "id": "1810204805816188930", - "objectType": 10002, - "code": "", - "name": "GGG", - "madeinFactory": "", - "model": "", - "location": "", - "longitude": 0, - "latitude": 0, - "remarks": "", - "orgId": "1", - "parentEquipmentId": "2" - }, - { - "createdBy": "测试", - "createdTime": "2024-07-08 06:52:44", - "updatedBy": "测试", - "updatedTime": "2024-07-08 06:52:44", - "revision": 1, - "id": "1810205361720852481", - "objectType": 10002, - "code": "", - "name": "RRR", - "madeinFactory": "", - "model": "", - "location": "", - "longitude": 0, - "latitude": 0, - "remarks": "", - "orgId": "1", - "parentEquipmentId": "2" - }, - { - "createdBy": "测试", - "createdTime": "2024-07-08 06:53:07", - "updatedBy": "测试", - "updatedTime": "2024-07-08 15:01:33", - "revision": 1, - "id": "1810205456222715906", - "objectType": 10002, - "code": "test1", - "name": "test1", - "madeinFactory": "test1", - "model": "test1", - "location": "test1", - "longitude": 48.69145, - "latitude": 20.6946, - "installDate": "2027-07-05 15:30:23", - "remarks": "test1", - "orgId": "1", - "parentEquipmentId": "2" - }, - { - "createdBy": "测试", - "createdTime": "2024-07-08 07:02:38", - "updatedBy": "测试", - "updatedTime": "2024-07-08 07:02:38", - "revision": 1, - "id": "1810207853032570881", - "objectType": 10002, - "code": "", - "name": "12121", - "madeinFactory": "", - "model": "", - "location": "", - "longitude": 0, - "latitude": 0, - "remarks": "", - "orgId": "1", - "parentEquipmentId": "2" - }, - { - "createdBy": "测试", - "createdTime": "2024-07-08 07:20:51", - "updatedBy": "测试", - "updatedTime": "2024-07-08 07:20:51", - "revision": 1, - "id": "1810212434735071233", - "objectType": 10002, - "code": "", - "name": "儿童", - "madeinFactory": "", - "model": "", - "location": "", - "longitude": 0, - "latitude": 0, - "remarks": "", - "orgId": "1", - "parentEquipmentId": "2" - } - ] - }, - { - "id": "1", - "objectType": 10001, - "code": "10001", - "name": "风电场", - "longitude": 0, - "latitude": 0, - "parentEquipmentId": "0", - "equipChildren": [ - { - "createdBy": "测试", - "createdTime": "2024-07-08 06:41:56", - "updatedBy": "测试", - "updatedTime": "2024-07-08 06:41:56", - "revision": 1, - "id": "1810202642163499009", - "objectType": 10001, - "code": "", - "name": "aaaa", - "madeinFactory": "", - "model": "", - "location": "", - "longitude": 0, - "latitude": 0, - "remarks": "", - "orgId": "1", - "parentEquipmentId": "1" - }, - { - "createdBy": "测试", - "createdTime": "2024-07-08 06:45:09", - "updatedBy": "测试", - "updatedTime": "2024-07-08 06:45:09", - "revision": 1, - "id": "1810203450657538050", - "objectType": 10001, - "code": "", - "name": "yy", - "madeinFactory": "", - "model": "", - "location": "", - "longitude": 0, - "latitude": 0, - "remarks": "", - "orgId": "1", - "parentEquipmentId": "1" - } - ] - } - ], - "orgChildren": [ - { - "id": "73280038685114368", - "name": "test", - "mrid": "test", - "province": "山西省", - "city": "绛县", - "county": "运城市", - "address": "test", - "contactPhone": "13045088888", - "remarks": "test", - "aliasName": "test", - "parentOrgId": "1", - "parentOrgName": "某风电场", - "revision": 1, - "createdTime": "2024-06-28 00:00:00", - "updatedTime": "2024-06-28 00:00:00" - } - ] - }, + "data": [ + { + "id": "2", + "objectType": 10002, + "code": "10002", + "name": "机组", + "longitude": 0, + "latitude": 0, + "parentEquipmentId": "0", + "equipChildren": [ + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:50:32", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:50:32", + "revision": 1, + "id": "1810204805816188930", + "objectType": 10002, + "code": "", + "name": "GGG", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:52:44", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:52:44", + "revision": 1, + "id": "1810205361720852481", + "objectType": 10002, + "code": "", + "name": "RRR", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:53:07", + "updatedBy": "测试", + "updatedTime": "2024-07-08 15:01:33", + "revision": 1, + "id": "1810205456222715906", + "objectType": 10002, + "code": "test1", + "name": "test1", + "madeinFactory": "test1", + "model": "test1", + "location": "test1", + "longitude": 48.69145, + "latitude": 20.6946, + "installDate": "2027-07-05 15:30:23", + "remarks": "test1", + "orgId": "1", + "parentEquipmentId": "2" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 07:02:38", + "updatedBy": "测试", + "updatedTime": "2024-07-08 07:02:38", + "revision": 1, + "id": "1810207853032570881", + "objectType": 10002, + "code": "", + "name": "12121", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "2" + } + ] + }, + { + "id": "1", + "objectType": 10001, + "code": "10001", + "name": "风电场", + "longitude": 0, + "latitude": 0, + "parentEquipmentId": "0", + "equipChildren": [ + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:41:56", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:41:56", + "revision": 1, + "id": "1810202642163499009", + "objectType": 10001, + "code": "", + "name": "aaaa", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "1" + }, + { + "createdBy": "测试", + "createdTime": "2024-07-08 06:45:09", + "updatedBy": "测试", + "updatedTime": "2024-07-08 06:45:09", + "revision": 1, + "id": "1810203450657538050", + "objectType": 10001, + "code": "", + "name": "yy", + "madeinFactory": "", + "model": "", + "location": "", + "longitude": 0, + "latitude": 0, + "remarks": "", + "orgId": "1", + "parentEquipmentId": "1" + } + ] + } + ], "msg": "操作成功" } ``` diff --git a/docs/api/node.md b/docs/api/node.md new file mode 100644 index 00000000..e628ff7f --- /dev/null +++ b/docs/api/node.md @@ -0,0 +1,16 @@ +# 节点模块 + +# API接口一览表 + +| 接口分类 | 接口描述 | API接口 | 权限 | +|-------|--------------------------|--------------------------------------| ---------------------------- | +| 1.1节点 | 1.1.1获取所有节点信息列表 | /api/node/list | | +| | 1.1.2新增节点信息 | /api/node/add | | +| | 1.1.3修改节点信息 | /api/node/update | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.4删除节点信息 | /api/node/delete | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.5配置下发 | /api/node/add | SYS_AUTHORITY_ID_ADMIN | +| 1.2链路 | 1.2.1获取所有链路分页查询 | /api/node/link/list | | +| | 1.2.2新增链路信息 | /api/node/link/add | SYS_AUTHORITY_ID_ADMIN | +| | 1.2.3修改链路信息 | /api/node/link/update | SYS_AUTHORITY_ID_ADMIN | +| | 1.2.4删除链路信息 | /api/node/link/delete | SYS_AUTHORITY_ID_ADMIN | + From 966f6deb6c7c70b53cccc7f2f89e0f3ec8c35914 Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Tue, 9 Jul 2024 15:30:48 +0800 Subject: [PATCH 08/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/equipment/controller/EquipmentController.java | 4 ++-- .../das/modules/equipment/service/SysEquipmentService.java | 2 +- .../equipment/service/impl/SysEquipmentServiceImpl.java | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java index 08184e80..721a8500 100644 --- a/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java +++ b/das/src/main/java/com/das/modules/equipment/controller/EquipmentController.java @@ -141,8 +141,8 @@ public class EquipmentController { /** 设备导出 */ @PostMapping("/import") - public R importSysIotModel(@RequestParam("file") MultipartFile file) throws IOException { - sysEquipmentService.importSysEquipment(file); + public R importSysIotModel(String id, @RequestParam("file") MultipartFile file) throws IOException { + sysEquipmentService.importSysEquipment(id, file); return R.success(); } } diff --git a/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java b/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java index 7241b49c..ace307c7 100644 --- a/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java +++ b/das/src/main/java/com/das/modules/equipment/service/SysEquipmentService.java @@ -32,6 +32,6 @@ public interface SysEquipmentService { void exportSysEquipment(SysEquipmentDto sysEquipmentDto, HttpServletRequest request, HttpServletResponse response); - void importSysEquipment(MultipartFile file) throws IOException; + void importSysEquipment(String parentEquipmentId,MultipartFile file) throws IOException; } diff --git a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java index d35c1df7..311ad95f 100644 --- a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java +++ b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java @@ -136,7 +136,7 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { } @Override - public void importSysEquipment(MultipartFile file) throws IOException { + public void importSysEquipment(String parentEquipmentId, MultipartFile file) throws IOException { //输入流 InputStream inputStream = file.getInputStream(); //监视器 @@ -157,10 +157,9 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { BeanUtil.copyProperties(dto,field); // 根据名称获取物模型id Long iotModelId = sysIotModelMapper.queryIotModelIdByName(dto.getIotModelName()); - Long parentEquipmentId = sysEquipmentMapper.queryParentEquipmentIdByName(dto.getParentEquipmentName()); Long orgId = sysOrgMapper.queryOrgIdByName(dto.getOrgName()); field.setIotModelId(iotModelId); - field.setParentEquipmentId(parentEquipmentId); + field.setParentEquipmentId(Long.valueOf(parentEquipmentId)); field.setId(SequenceUtils.generateId()); field.setOrgId(orgId); field.setCreatedTime(new Date()); From 2f0ea30756f738823b83a718146a4701343081b3 Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Tue, 9 Jul 2024 16:49:55 +0800 Subject: [PATCH 09/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysEquipmentServiceImpl.java | 13 ++- .../node/controller/SysNodeController.java | 54 ++++++++++++ .../modules/node/domain/dto/SysNodeDto.java | 21 +++++ .../domain/vo/SysCommunicationLinkVo.java | 48 +++++++++++ .../das/modules/node/domain/vo/SysNodeVo.java | 42 ++++++++++ .../node/entity/SysCommunicationLink.java | 65 +++++++++++++++ .../com/das/modules/node/entity/SysNode.java | 59 +++++++++++++ .../mapper/SysCommunicationLinkMapper.java | 12 +++ .../modules/node/mapper/SysNodeMapper.java | 16 ++++ .../modules/node/service/SysNodeService.java | 13 +++ .../node/service/impl/SysNodeServiceImpl.java | 64 ++++++++++++++ .../main/resources/mapper/SysNodeMapper.xml | 22 +++++ docs/api/node.md | 83 +++++++++++++++++++ 13 files changed, 508 insertions(+), 4 deletions(-) create mode 100644 das/src/main/java/com/das/modules/node/controller/SysNodeController.java create mode 100644 das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java create mode 100644 das/src/main/java/com/das/modules/node/domain/vo/SysCommunicationLinkVo.java create mode 100644 das/src/main/java/com/das/modules/node/domain/vo/SysNodeVo.java create mode 100644 das/src/main/java/com/das/modules/node/entity/SysCommunicationLink.java create mode 100644 das/src/main/java/com/das/modules/node/entity/SysNode.java create mode 100644 das/src/main/java/com/das/modules/node/mapper/SysCommunicationLinkMapper.java create mode 100644 das/src/main/java/com/das/modules/node/mapper/SysNodeMapper.java create mode 100644 das/src/main/java/com/das/modules/node/service/SysNodeService.java create mode 100644 das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java create mode 100644 das/src/main/resources/mapper/SysNodeMapper.xml diff --git a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java index 311ad95f..b90a9cd6 100644 --- a/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java +++ b/das/src/main/java/com/das/modules/equipment/service/impl/SysEquipmentServiceImpl.java @@ -156,12 +156,17 @@ public class SysEquipmentServiceImpl implements SysEquipmentService { SysEquipment field = new SysEquipment(); BeanUtil.copyProperties(dto,field); // 根据名称获取物模型id - Long iotModelId = sysIotModelMapper.queryIotModelIdByName(dto.getIotModelName()); - Long orgId = sysOrgMapper.queryOrgIdByName(dto.getOrgName()); - field.setIotModelId(iotModelId); + if(StringUtils.isNotBlank(dto.getOrgName())) { + Long iotModelId = sysIotModelMapper.queryIotModelIdByName(dto.getIotModelName()); + field.setIotModelId(iotModelId); + } + if(StringUtils.isNotBlank(dto.getOrgName())) { + Long orgId = sysOrgMapper.queryOrgIdByName(dto.getOrgName()); + field.setOrgId(orgId); + } field.setParentEquipmentId(Long.valueOf(parentEquipmentId)); field.setId(SequenceUtils.generateId()); - field.setOrgId(orgId); + field.setCreatedTime(new Date()); field.setUpdatedTime(new Date()); field.setRevision(1); diff --git a/das/src/main/java/com/das/modules/node/controller/SysNodeController.java b/das/src/main/java/com/das/modules/node/controller/SysNodeController.java new file mode 100644 index 00000000..26c81de3 --- /dev/null +++ b/das/src/main/java/com/das/modules/node/controller/SysNodeController.java @@ -0,0 +1,54 @@ +package com.das.modules.node.controller; + +import cn.dev33.satoken.stp.StpUtil; +import com.das.common.constant.SysAuthorityIds; +import com.das.common.exceptions.ServiceException; +import com.das.common.result.R; +import com.das.modules.equipment.domain.dto.SysIotModelDto; +import com.das.modules.equipment.domain.vo.SysIotModelVo; +import com.das.modules.node.domain.dto.SysNodeDto; +import com.das.modules.node.domain.vo.SysNodeVo; +import com.das.modules.node.service.SysNodeService; +import org.springframework.beans.factory.annotation.Autowired; +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; + +/** + * 物模型Controller + */ +@RestController +@RequestMapping("/api/node") +public class SysNodeController { + + @Autowired + private SysNodeService sysNodeService; + + + /** 获取节点列表 */ + @PostMapping("/list") + public R> querySysNodeList() { + + return R.success(sysNodeService.querySysNodeList()); + } + + /** 新增节点 */ + @PostMapping("/add") + public R createSysNode(@RequestBody SysNodeDto sysNodeDto) { + + //判断是否有权限 + boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); + if(!hasPermission){ + return R.fail("没有设备管理权限"); + } + return R.success(sysNodeService.createSysNode(sysNodeDto)); + } + + + + +} + diff --git a/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java b/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java new file mode 100644 index 00000000..d31276d0 --- /dev/null +++ b/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java @@ -0,0 +1,21 @@ +package com.das.modules.node.domain.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class SysNodeDto implements Serializable { + + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @JsonSerialize(using = ToStringSerializer.class) + private Long orgId; + + private String nodeName; + + private String nodeIp; +} diff --git a/das/src/main/java/com/das/modules/node/domain/vo/SysCommunicationLinkVo.java b/das/src/main/java/com/das/modules/node/domain/vo/SysCommunicationLinkVo.java new file mode 100644 index 00000000..048a40e6 --- /dev/null +++ b/das/src/main/java/com/das/modules/node/domain/vo/SysCommunicationLinkVo.java @@ -0,0 +1,48 @@ +package com.das.modules.node.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + + +/** + * 链路前端回显 + * + * @author guchengwei + */ +@Data +public class SysCommunicationLinkVo { + + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + + /** + * 链路名称 + */ + private String linkName; + + /** + * 通讯协议 + */ + private Integer protocol; + + /** + * 协议参数 + */ + private String params; + + /** + * 所属系统节点 + */ + private String nodeName; + + /** + * 所属系统节点id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long nodeId; + + private Integer revision; +} diff --git a/das/src/main/java/com/das/modules/node/domain/vo/SysNodeVo.java b/das/src/main/java/com/das/modules/node/domain/vo/SysNodeVo.java new file mode 100644 index 00000000..e4348e3c --- /dev/null +++ b/das/src/main/java/com/das/modules/node/domain/vo/SysNodeVo.java @@ -0,0 +1,42 @@ +package com.das.modules.node.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + + +/** + * 节点前端回显 + * + * @author guchengwei + */ +@Data +public class SysNodeVo { + + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 节点名称 + */ + private String nodeName; + + /** + * 节点ip + */ + private String nodeIp; + + /** + * 所属机构 + */ + private String orgName; + + /** + * 所属机构id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long orgId; + + private Integer revision; +} diff --git a/das/src/main/java/com/das/modules/node/entity/SysCommunicationLink.java b/das/src/main/java/com/das/modules/node/entity/SysCommunicationLink.java new file mode 100644 index 00000000..10e5b70f --- /dev/null +++ b/das/src/main/java/com/das/modules/node/entity/SysCommunicationLink.java @@ -0,0 +1,65 @@ +package com.das.modules.node.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.das.common.constant.BaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serial; + + +/** + *

+ * 链路表 + *

+ * + * @author chenhaojie + */ +@EqualsAndHashCode(callSuper = true) +@TableName("sys_communicationlink") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SysCommunicationLink extends BaseEntity { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 系统节点ID + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 链路名称 + */ + @TableField("link_name") + private String linkName; + + /** + * 通讯协议 + */ + @TableField("protocol") + private Integer protocol; + + /** + * 协议参数 + */ + @TableField("params") + private String params; + + /** + * 所属系统节点ID + */ + @TableField("node_id") + @JsonSerialize(using = ToStringSerializer.class) + private Long nodeId; +} diff --git a/das/src/main/java/com/das/modules/node/entity/SysNode.java b/das/src/main/java/com/das/modules/node/entity/SysNode.java new file mode 100644 index 00000000..5acc432a --- /dev/null +++ b/das/src/main/java/com/das/modules/node/entity/SysNode.java @@ -0,0 +1,59 @@ +package com.das.modules.node.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.das.common.constant.BaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serial; + + +/** + *

+ * 节点表 + *

+ * + * @author chenhaojie + */ +@EqualsAndHashCode(callSuper = true) +@TableName("sys_node") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SysNode extends BaseEntity { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 系统节点ID + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 节点名称 + */ + @TableField("node_name") + private String nodeName; + + /** + * 节点ip + */ + @TableField("node_ip") + private String nodeIp; + + /** + * 所属机构id + */ + @TableField("org_id") + @JsonSerialize(using = ToStringSerializer.class) + private Long orgId; +} diff --git a/das/src/main/java/com/das/modules/node/mapper/SysCommunicationLinkMapper.java b/das/src/main/java/com/das/modules/node/mapper/SysCommunicationLinkMapper.java new file mode 100644 index 00000000..f3d3ab96 --- /dev/null +++ b/das/src/main/java/com/das/modules/node/mapper/SysCommunicationLinkMapper.java @@ -0,0 +1,12 @@ +package com.das.modules.node.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.das.modules.node.entity.SysCommunicationLink; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysCommunicationLinkMapper extends BaseMapper { + + +} diff --git a/das/src/main/java/com/das/modules/node/mapper/SysNodeMapper.java b/das/src/main/java/com/das/modules/node/mapper/SysNodeMapper.java new file mode 100644 index 00000000..1cb344ee --- /dev/null +++ b/das/src/main/java/com/das/modules/node/mapper/SysNodeMapper.java @@ -0,0 +1,16 @@ +package com.das.modules.node.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.das.modules.node.domain.vo.SysNodeVo; +import com.das.modules.node.entity.SysNode; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SysNodeMapper extends BaseMapper { + + List querySysNodeList(); + +} diff --git a/das/src/main/java/com/das/modules/node/service/SysNodeService.java b/das/src/main/java/com/das/modules/node/service/SysNodeService.java new file mode 100644 index 00000000..9e8806fb --- /dev/null +++ b/das/src/main/java/com/das/modules/node/service/SysNodeService.java @@ -0,0 +1,13 @@ +package com.das.modules.node.service; + +import com.das.modules.node.domain.dto.SysNodeDto; +import com.das.modules.node.domain.vo.SysNodeVo; + +import java.util.List; + +public interface SysNodeService { + List querySysNodeList(); + + SysNodeVo createSysNode(SysNodeDto sysNodeDto); + +} diff --git a/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java b/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java new file mode 100644 index 00000000..8887bf0e --- /dev/null +++ b/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java @@ -0,0 +1,64 @@ +package com.das.modules.node.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.das.common.config.SessionUtil; +import com.das.common.exceptions.ServiceException; +import com.das.common.utils.BeanCopyUtils; +import com.das.common.utils.SequenceUtils; +import com.das.modules.auth.domain.vo.SysUserVo; +import com.das.modules.auth.entity.SysOrg; +import com.das.modules.auth.mapper.SysOrgMapper; +import com.das.modules.equipment.domain.vo.SysIotModelVo; +import com.das.modules.equipment.entity.SysIotModel; +import com.das.modules.node.domain.dto.SysNodeDto; +import com.das.modules.node.domain.vo.SysNodeVo; +import com.das.modules.node.entity.SysNode; +import com.das.modules.node.mapper.SysNodeMapper; +import com.das.modules.node.service.SysNodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +@Transactional(rollbackFor = Exception.class) +@Service +public class SysNodeServiceImpl implements SysNodeService { + + @Autowired + private SysNodeMapper sysNodeMapper; + + @Autowired + private SysOrgMapper sysOrgMapper; + + @Override + public List querySysNodeList() { + List sysNodeVoList = sysNodeMapper.querySysNodeList(); + return sysNodeVoList; + } + + @Override + public SysNodeVo createSysNode(SysNodeDto sysNodeDto) { + SysNode sysNode = new SysNode(); + BeanCopyUtils.copy(sysNodeDto,sysNode); + + SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); + sysNode.setId(SequenceUtils.generateId()); + sysNode.setCreatedTime(new Date()); + sysNode.setUpdatedTime(new Date()); + sysNode.setCreatedBy(sysUserVo.getAccount()); + sysNode.setUpdatedBy(sysUserVo.getAccount()); +// sysNode.setCreatedBy("测试"); +// sysNode.setUpdatedBy("测试"); + sysNode.setRevision(1); + sysNodeMapper.insert(sysNode); + SysNodeVo sysNodeVo = new SysNodeVo(); + // 根据org_id查询组织名称 + SysOrg sysorg = sysOrgMapper.selectById(sysNode.getOrgId()); + BeanCopyUtils.copy(sysNode,sysNodeVo); + sysNodeVo.setOrgName(sysorg.getName()); + return sysNodeVo; + } +} diff --git a/das/src/main/resources/mapper/SysNodeMapper.xml b/das/src/main/resources/mapper/SysNodeMapper.xml new file mode 100644 index 00000000..42fbd1a7 --- /dev/null +++ b/das/src/main/resources/mapper/SysNodeMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/api/node.md b/docs/api/node.md index e628ff7f..03e779b9 100644 --- a/docs/api/node.md +++ b/docs/api/node.md @@ -14,3 +14,86 @@ | | 1.2.3修改链路信息 | /api/node/link/update | SYS_AUTHORITY_ID_ADMIN | | | 1.2.4删除链路信息 | /api/node/link/delete | SYS_AUTHORITY_ID_ADMIN | +### 1.1 节点相关接口 + +#### 1.1.1 获取所有节点信息列表 + +POST 请求接口 + +> /api/node/list + +请求参数 + +无 + +返回报文 + +```json +{ + "code": 200, + "success": true, + "data": [ + { + "id": "1", + "nodeName": "测试节点", + "nodeIp": "127.0.0.1", + "orgName": "某风电场", + "orgId": "1", + "revision": 1 + } + ], + "msg": "操作成功" +} +``` +返参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- | -------- | ---- |------| +| id | String | 否 | 节点ID | +| nodeName | String | 否 | 节点名称 | +| nodeIp | String | 否 | 节点IP | +| orgName | String | 否 | 机构名称 | +| orgId | String | 否 | 机构ID | +| revision | String | 否 | 乐观锁 | + + +#### 1.1.2 新增节点信息 + +POST 请求接口 + +> /api/node/add + +请求参数 +```json +{ + "nodeName": "测试节点1", + "nodeIp": "127.0.0.1", + "orgId": "1" + } +``` + +入参描述 + +| 参数名 | 参数类型 | 可选 | 描述 | +| ------------- | -------- | ---- |------| +| nodeName | String | 否 | 节点名称 | +| nodeIp | String | 否 | 节点IP | +| orgId | String | 否 | 机构ID | + +返回报文 + +```json +{ + "code": 200, + "success": true, + "data": { + "id": "73535240297775104", + "nodeName": "测试节点1", + "nodeIp": "127.0.0.1", + "orgName": "某风电场", + "orgId": "1", + "revision": 1 + }, + "msg": "操作成功" +} +``` \ No newline at end of file From 3ee64d5f471a383fde39113d21ea8d561543fd9d Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Tue, 9 Jul 2024 17:12:30 +0800 Subject: [PATCH 10/10] =?UTF-8?q?das=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../node/controller/SysNodeController.java | 34 +++++++ .../modules/node/domain/dto/SysNodeDto.java | 2 + .../modules/node/service/SysNodeService.java | 4 + .../node/service/impl/SysNodeServiceImpl.java | 25 +++++ docs/_sidebar.md | 1 + docs/api/node.md | 99 ++++++++++++++++--- 6 files changed, 154 insertions(+), 11 deletions(-) diff --git a/das/src/main/java/com/das/modules/node/controller/SysNodeController.java b/das/src/main/java/com/das/modules/node/controller/SysNodeController.java index 26c81de3..de909bca 100644 --- a/das/src/main/java/com/das/modules/node/controller/SysNodeController.java +++ b/das/src/main/java/com/das/modules/node/controller/SysNodeController.java @@ -4,9 +4,12 @@ import cn.dev33.satoken.stp.StpUtil; import com.das.common.constant.SysAuthorityIds; import com.das.common.exceptions.ServiceException; import com.das.common.result.R; +import com.das.common.utils.PageDataInfo; import com.das.modules.equipment.domain.dto.SysIotModelDto; +import com.das.modules.equipment.domain.vo.SysEquipmentVo; import com.das.modules.equipment.domain.vo.SysIotModelVo; import com.das.modules.node.domain.dto.SysNodeDto; +import com.das.modules.node.domain.vo.SysCommunicationLinkVo; import com.das.modules.node.domain.vo.SysNodeVo; import com.das.modules.node.service.SysNodeService; import org.springframework.beans.factory.annotation.Autowired; @@ -47,8 +50,39 @@ public class SysNodeController { return R.success(sysNodeService.createSysNode(sysNodeDto)); } + /** 修改节点 */ + @PostMapping("/update") + public R updateSysNode(@RequestBody SysNodeDto sysNodeDto) { + //判断是否有权限 +// boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); +// if(!hasPermission){ +// return R.fail("没有设备管理权限"); +// } + return R.success(sysNodeService.updateSysNode(sysNodeDto)); + } + /** 删除节点 */ + @PostMapping("/delete") + public R deleteSysNode(@RequestBody SysNodeDto sysNodeDto) { + + //判断是否有权限 +// boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); +// if(!hasPermission){ +// return R.fail("没有设备管理权限"); +// } + if (sysNodeDto.getId() == null) { + throw new ServiceException("参数缺失"); + } + sysNodeService.deleteSysNode(sysNodeDto.getId()); + return R.success(); + } + + /** 配置下发 */ + @PostMapping("/configUpdate") + public R configUpdate() { + return R.success(); + } } diff --git a/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java b/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java index d31276d0..a2d8acf9 100644 --- a/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java +++ b/das/src/main/java/com/das/modules/node/domain/dto/SysNodeDto.java @@ -18,4 +18,6 @@ public class SysNodeDto implements Serializable { private String nodeName; private String nodeIp; + + private Integer revision; } diff --git a/das/src/main/java/com/das/modules/node/service/SysNodeService.java b/das/src/main/java/com/das/modules/node/service/SysNodeService.java index 9e8806fb..1316ab94 100644 --- a/das/src/main/java/com/das/modules/node/service/SysNodeService.java +++ b/das/src/main/java/com/das/modules/node/service/SysNodeService.java @@ -10,4 +10,8 @@ public interface SysNodeService { SysNodeVo createSysNode(SysNodeDto sysNodeDto); + SysNodeVo updateSysNode(SysNodeDto sysNodeDto); + + void deleteSysNode(Long id); + } diff --git a/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java b/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java index 8887bf0e..fff3a38b 100644 --- a/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java +++ b/das/src/main/java/com/das/modules/node/service/impl/SysNodeServiceImpl.java @@ -9,7 +9,9 @@ import com.das.common.utils.SequenceUtils; import com.das.modules.auth.domain.vo.SysUserVo; import com.das.modules.auth.entity.SysOrg; import com.das.modules.auth.mapper.SysOrgMapper; +import com.das.modules.equipment.domain.vo.SysEquipmentVo; import com.das.modules.equipment.domain.vo.SysIotModelVo; +import com.das.modules.equipment.entity.SysEquipment; import com.das.modules.equipment.entity.SysIotModel; import com.das.modules.node.domain.dto.SysNodeDto; import com.das.modules.node.domain.vo.SysNodeVo; @@ -61,4 +63,27 @@ public class SysNodeServiceImpl implements SysNodeService { sysNodeVo.setOrgName(sysorg.getName()); return sysNodeVo; } + + @Override + public SysNodeVo updateSysNode(SysNodeDto sysNodeDto) { + SysNode sysNode = new SysNode(); + BeanCopyUtils.copy(sysNodeDto,sysNode); +// SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); + sysNode.setUpdatedTime(new Date()); + sysNode.setUpdatedBy("测试"); +// sysIotModel.setUpdatedBy("sysUserVo.getAccount()"); + sysNodeMapper.updateById(sysNode); + SysNodeVo sysNodeVo = new SysNodeVo(); + // 根据org_id查询组织名称 + SysOrg sysorg = sysOrgMapper.selectById(sysNode.getOrgId()); + BeanCopyUtils.copy(sysNode,sysNodeVo); + sysNodeVo.setOrgName(sysorg.getName()); + return sysNodeVo; + } + + @Override + public void deleteSysNode(Long id) { + // 判断节点下是否有链路,有就不能删除 + sysNodeMapper.deleteById(id); + } } diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 6912d77c..3bf8105e 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -2,4 +2,5 @@ - [API说明](api/) - [系统管理](api/systemmgr.md) - [设备管理](api/equipment.md) + - [节点管理](api/node.md) - [数据采集](datacollect/) \ No newline at end of file diff --git a/docs/api/node.md b/docs/api/node.md index 03e779b9..7f1a5e3c 100644 --- a/docs/api/node.md +++ b/docs/api/node.md @@ -2,17 +2,17 @@ # API接口一览表 -| 接口分类 | 接口描述 | API接口 | 权限 | -|-------|--------------------------|--------------------------------------| ---------------------------- | -| 1.1节点 | 1.1.1获取所有节点信息列表 | /api/node/list | | -| | 1.1.2新增节点信息 | /api/node/add | | -| | 1.1.3修改节点信息 | /api/node/update | SYS_AUTHORITY_ID_ADMIN | -| | 1.1.4删除节点信息 | /api/node/delete | SYS_AUTHORITY_ID_ADMIN | -| | 1.1.5配置下发 | /api/node/add | SYS_AUTHORITY_ID_ADMIN | -| 1.2链路 | 1.2.1获取所有链路分页查询 | /api/node/link/list | | -| | 1.2.2新增链路信息 | /api/node/link/add | SYS_AUTHORITY_ID_ADMIN | -| | 1.2.3修改链路信息 | /api/node/link/update | SYS_AUTHORITY_ID_ADMIN | -| | 1.2.4删除链路信息 | /api/node/link/delete | SYS_AUTHORITY_ID_ADMIN | +| 接口分类 | 接口描述 | API接口 | 权限 | +|-------|--------------------------|------------------------| ---------------------------- | +| 1.1节点 | 1.1.1获取所有节点信息列表 | /api/node/list | | +| | 1.1.2新增节点信息 | /api/node/add | | +| | 1.1.3修改节点信息 | /api/node/update | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.4删除节点信息 | /api/node/delete | SYS_AUTHORITY_ID_ADMIN | +| | 1.1.5配置下发 | /api/node/configUpdate | SYS_AUTHORITY_ID_ADMIN | +| 1.2链路 | 1.2.1获取所有链路分页查询 | /api/node/link/list | | +| | 1.2.2新增链路信息 | /api/node/link/add | SYS_AUTHORITY_ID_ADMIN | +| | 1.2.3修改链路信息 | /api/node/link/update | SYS_AUTHORITY_ID_ADMIN | +| | 1.2.4删除链路信息 | /api/node/link/delete | SYS_AUTHORITY_ID_ADMIN | ### 1.1 节点相关接口 @@ -96,4 +96,81 @@ POST 请求接口 }, "msg": "操作成功" } +``` + +#### 1.1.3 修改节点信息 + +POST 请求接口 + +> /api/node/update + +请求参数 +```json +{ + "id": "73535240297775104", + "nodeName": "测试节点1", + "nodeIp": "127.0.0.3", + "orgId": "1", + "revision": 2 +} +``` +返回报文 + +```json +{ + "code": 200, + "success": true, + "data": { + "id": "73535240297775104", + "nodeName": "测试节点1", + "nodeIp": "127.0.0.3", + "orgName": "某风电场", + "orgId": "1", + "revision": 3 + }, + "msg": "操作成功" +} +``` + +#### 1.1.4 删除节点信息 + +POST 请求接口 + +> /api/node/delete + +请求参数 +```json +{ + "id": "73535240297775104" +} +``` +返回报文 + +```json +{ + "code": 200, + "success": true, + "msg": "操作成功" +} +``` + +#### 1.1.5 配置下发 +POST 请求接口 + +> /api/node/configUpdate + +请求参数 +```json +无 + +``` + +返回报文 + +```json +{ + "code": 200, + "success": true, + "msg": "操作成功" +} ``` \ No newline at end of file