From 3807c2c7e6ba442a1cc4603dc6a582739a944c87 Mon Sep 17 00:00:00 2001 From: chenhaojie Date: Wed, 10 Jul 2024 15:19:59 +0800 Subject: [PATCH] =?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 | 70 ++++++-- .../domain/dto/SysCommunicationLinkDto.java | 47 ++++++ .../mapper/SysCommunicationLinkMapper.java | 5 +- .../modules/node/service/SysNodeService.java | 12 ++ .../node/service/impl/SysNodeServiceImpl.java | 80 ++++++++- .../mapper/SysCommunicationLinkMapper.xml | 21 +++ .../resources/mapper/SysEquipmentMapper.xml | 2 +- docs/api/node.md | 157 ++++++++++++++++++ 8 files changed, 371 insertions(+), 23 deletions(-) create mode 100644 das/src/main/java/com/das/modules/node/domain/dto/SysCommunicationLinkDto.java create mode 100644 das/src/main/resources/mapper/SysCommunicationLinkMapper.xml 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 de909bca..a6a1d7e5 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 @@ -5,9 +5,7 @@ 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.SysCommunicationLinkDto; import com.das.modules.node.domain.dto.SysNodeDto; import com.das.modules.node.domain.vo.SysCommunicationLinkVo; import com.das.modules.node.domain.vo.SysNodeVo; @@ -45,7 +43,7 @@ public class SysNodeController { //判断是否有权限 boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); if(!hasPermission){ - return R.fail("没有设备管理权限"); + return R.fail("没有节点管理权限"); } return R.success(sysNodeService.createSysNode(sysNodeDto)); } @@ -55,10 +53,10 @@ public class SysNodeController { public R updateSysNode(@RequestBody SysNodeDto sysNodeDto) { //判断是否有权限 -// 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("没有节点管理权限"); + } return R.success(sysNodeService.updateSysNode(sysNodeDto)); } @@ -67,10 +65,10 @@ public class SysNodeController { public R deleteSysNode(@RequestBody SysNodeDto sysNodeDto) { //判断是否有权限 -// 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 (sysNodeDto.getId() == null) { throw new ServiceException("参数缺失"); } @@ -84,5 +82,53 @@ public class SysNodeController { return R.success(); } + + /** 获取链路列表 */ + @PostMapping("/link/list") + public PageDataInfo querySysCommunicationLinkList(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) { + + return sysNodeService.querySysCommunicationLinkList(sysCommunicationLinkDto); + } + + + /** 新增链路 */ + @PostMapping("/link/add") + public R createSysCommunicationLink(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) { + + //判断是否有权限 + boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); + if(!hasPermission){ + return R.fail("没有节点管理权限"); + } + return R.success(sysNodeService.createSysCommunicationLink(sysCommunicationLinkDto)); + } + + /** 修改链路 */ + @PostMapping("/link/update") + public R updateSysCommunicationLink(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) { + + //判断是否有权限 + boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); + if(!hasPermission){ + return R.fail("没有节点管理权限"); + } + return R.success(sysNodeService.updateSysCommunicationLink(sysCommunicationLinkDto)); + } + + /** 删除链路 */ + @PostMapping("/link/delete") + public R deleteSysCommunicationLink(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) { + + //判断是否有权限 + boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString()); + if(!hasPermission){ + return R.fail("没有节点管理权限"); + } + if (sysCommunicationLinkDto.getId() == null) { + throw new ServiceException("参数缺失"); + } + sysNodeService.deleteSysCommunicationLink(sysCommunicationLinkDto.getId()); + return R.success(); + } } diff --git a/das/src/main/java/com/das/modules/node/domain/dto/SysCommunicationLinkDto.java b/das/src/main/java/com/das/modules/node/domain/dto/SysCommunicationLinkDto.java new file mode 100644 index 00000000..256abdab --- /dev/null +++ b/das/src/main/java/com/das/modules/node/domain/dto/SysCommunicationLinkDto.java @@ -0,0 +1,47 @@ +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 SysCommunicationLinkDto implements Serializable { + + /** + * 链路id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 节点id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long nodeId; + + private String linkName; + + /** + * 通讯协议 + */ + private Integer protocol; + + /** + * 协议参数 + */ + private String params; + + private Integer revision; + + /** + * 分页大小 + */ + private Integer pageSize; + + /** + * 当前页数 + */ + private Integer pageNum; +} 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 index f3d3ab96..d0bd827d 100644 --- a/das/src/main/java/com/das/modules/node/mapper/SysCommunicationLinkMapper.java +++ b/das/src/main/java/com/das/modules/node/mapper/SysCommunicationLinkMapper.java @@ -2,11 +2,14 @@ package com.das.modules.node.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.das.modules.node.domain.vo.SysCommunicationLinkVo; import com.das.modules.node.entity.SysCommunicationLink; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface SysCommunicationLinkMapper extends BaseMapper { - + IPage querySysCommunicationLinkList(IPage page, @Param("id")Long id); } 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 1316ab94..df70fe7a 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 @@ -1,6 +1,9 @@ package com.das.modules.node.service; +import com.das.common.utils.PageDataInfo; +import com.das.modules.node.domain.dto.SysCommunicationLinkDto; 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 java.util.List; @@ -14,4 +17,13 @@ public interface SysNodeService { void deleteSysNode(Long id); + PageDataInfo querySysCommunicationLinkList(SysCommunicationLinkDto sysCommunicationLinkDto); + + SysCommunicationLinkVo createSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto); + + SysCommunicationLinkVo updateSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto); + + void deleteSysCommunicationLink(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 fff3a38b..ee94d9c8 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 @@ -1,21 +1,22 @@ package com.das.modules.node.service.impl; import cn.dev33.satoken.stp.StpUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.das.common.config.SessionUtil; -import com.das.common.exceptions.ServiceException; import com.das.common.utils.BeanCopyUtils; +import com.das.common.utils.PageDataInfo; +import com.das.common.utils.PageQuery; 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.SysCommunicationLinkDto; 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.entity.SysCommunicationLink; import com.das.modules.node.entity.SysNode; +import com.das.modules.node.mapper.SysCommunicationLinkMapper; import com.das.modules.node.mapper.SysNodeMapper; import com.das.modules.node.service.SysNodeService; import org.springframework.beans.factory.annotation.Autowired; @@ -32,6 +33,10 @@ public class SysNodeServiceImpl implements SysNodeService { @Autowired private SysNodeMapper sysNodeMapper; + @Autowired + private SysCommunicationLinkMapper sysCommunicationLinkMapper; + + @Autowired private SysOrgMapper sysOrgMapper; @@ -68,10 +73,10 @@ public class SysNodeServiceImpl implements SysNodeService { public SysNodeVo updateSysNode(SysNodeDto sysNodeDto) { SysNode sysNode = new SysNode(); BeanCopyUtils.copy(sysNodeDto,sysNode); -// SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); + SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); sysNode.setUpdatedTime(new Date()); - sysNode.setUpdatedBy("测试"); -// sysIotModel.setUpdatedBy("sysUserVo.getAccount()"); +// sysNode.setUpdatedBy("测试"); + sysNode.setUpdatedBy(sysUserVo.getAccount()); sysNodeMapper.updateById(sysNode); SysNodeVo sysNodeVo = new SysNodeVo(); // 根据org_id查询组织名称 @@ -86,4 +91,61 @@ public class SysNodeServiceImpl implements SysNodeService { // 判断节点下是否有链路,有就不能删除 sysNodeMapper.deleteById(id); } + + @Override + public PageDataInfo querySysCommunicationLinkList(SysCommunicationLinkDto sysCommunicationLinkDto) { + PageQuery pageQuery = new PageQuery(); + pageQuery.setPageNum(sysCommunicationLinkDto.getPageNum()); + pageQuery.setPageSize(sysCommunicationLinkDto.getPageSize()); + IPage iPage = sysCommunicationLinkMapper.querySysCommunicationLinkList(pageQuery.build(), sysCommunicationLinkDto.getNodeId()); + return PageDataInfo.build(iPage.getRecords(), iPage.getTotal()); + } + + @Override + public SysCommunicationLinkVo createSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto) { + SysCommunicationLink sysCommunicationLink = new SysCommunicationLink(); + BeanCopyUtils.copy(sysCommunicationLinkDto,sysCommunicationLink); + + SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); + sysCommunicationLink.setId(SequenceUtils.generateId()); + sysCommunicationLink.setCreatedTime(new Date()); + sysCommunicationLink.setUpdatedTime(new Date()); + sysCommunicationLink.setCreatedBy(sysUserVo.getAccount()); + sysCommunicationLink.setUpdatedBy(sysUserVo.getAccount()); +// sysCommunicationLink.setCreatedBy("测试"); +// sysCommunicationLink.setUpdatedBy("测试"); + sysCommunicationLink.setRevision(1); + sysCommunicationLinkMapper.insert(sysCommunicationLink); + SysCommunicationLinkVo sysCommunicationLinkVo = new SysCommunicationLinkVo(); + // 根据org_id查询组织名称 + SysNode sysNode = sysNodeMapper.selectById(sysCommunicationLinkDto.getNodeId()); + BeanCopyUtils.copy(sysCommunicationLink,sysCommunicationLinkVo); + sysCommunicationLinkVo.setNodeName(sysNode.getNodeName()); + return sysCommunicationLinkVo; + } + + @Override + public SysCommunicationLinkVo updateSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto) { + + SysCommunicationLink sysCommunicationLink = new SysCommunicationLink(); + BeanCopyUtils.copy(sysCommunicationLinkDto,sysCommunicationLink); + + SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY); + sysCommunicationLink.setUpdatedTime(new Date()); + sysCommunicationLink.setUpdatedBy(sysUserVo.getAccount()); +// sysCommunicationLink.setUpdatedBy("测试"); + sysCommunicationLinkMapper.updateById(sysCommunicationLink); + SysCommunicationLinkVo sysCommunicationLinkVo = new SysCommunicationLinkVo(); + // 根据org_id查询组织名称 + SysNode sysNode = sysNodeMapper.selectById(sysCommunicationLinkDto.getNodeId()); + BeanCopyUtils.copy(sysCommunicationLink,sysCommunicationLinkVo); + sysCommunicationLinkVo.setNodeName(sysNode.getNodeName()); + return sysCommunicationLinkVo; + } + + @Override + public void deleteSysCommunicationLink(Long id) { + // 判断节点下是否有链路,有就不能删除 + sysCommunicationLinkMapper.deleteById(id); + } } diff --git a/das/src/main/resources/mapper/SysCommunicationLinkMapper.xml b/das/src/main/resources/mapper/SysCommunicationLinkMapper.xml new file mode 100644 index 00000000..eb063b66 --- /dev/null +++ b/das/src/main/resources/mapper/SysCommunicationLinkMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + diff --git a/das/src/main/resources/mapper/SysEquipmentMapper.xml b/das/src/main/resources/mapper/SysEquipmentMapper.xml index 272ba657..bac58a44 100644 --- a/das/src/main/resources/mapper/SysEquipmentMapper.xml +++ b/das/src/main/resources/mapper/SysEquipmentMapper.xml @@ -59,7 +59,7 @@