das接口新增

This commit is contained in:
chenhaojie 2024-07-09 16:49:55 +08:00
parent 966f6deb6c
commit 2f0ea30756
13 changed files with 508 additions and 4 deletions

View File

@ -156,12 +156,17 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
SysEquipment field = new SysEquipment(); SysEquipment field = new SysEquipment();
BeanUtil.copyProperties(dto,field); BeanUtil.copyProperties(dto,field);
// 根据名称获取物模型id // 根据名称获取物模型id
Long iotModelId = sysIotModelMapper.queryIotModelIdByName(dto.getIotModelName()); if(StringUtils.isNotBlank(dto.getOrgName())) {
Long orgId = sysOrgMapper.queryOrgIdByName(dto.getOrgName()); Long iotModelId = sysIotModelMapper.queryIotModelIdByName(dto.getIotModelName());
field.setIotModelId(iotModelId); field.setIotModelId(iotModelId);
}
if(StringUtils.isNotBlank(dto.getOrgName())) {
Long orgId = sysOrgMapper.queryOrgIdByName(dto.getOrgName());
field.setOrgId(orgId);
}
field.setParentEquipmentId(Long.valueOf(parentEquipmentId)); field.setParentEquipmentId(Long.valueOf(parentEquipmentId));
field.setId(SequenceUtils.generateId()); field.setId(SequenceUtils.generateId());
field.setOrgId(orgId);
field.setCreatedTime(new Date()); field.setCreatedTime(new Date());
field.setUpdatedTime(new Date()); field.setUpdatedTime(new Date());
field.setRevision(1); field.setRevision(1);

View File

@ -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<List<SysNodeVo>> querySysNodeList() {
return R.success(sysNodeService.querySysNodeList());
}
/** 新增节点 */
@PostMapping("/add")
public R<SysNodeVo> 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));
}
}

View File

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

View File

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

View File

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

View File

@ -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;
/**
* <p>
* 链路表
* </p>
*
* @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;
}

View File

@ -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;
/**
* <p>
* 节点表
* </p>
*
* @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;
}

View File

@ -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<SysCommunicationLink> {
}

View File

@ -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<SysNode> {
List<SysNodeVo> querySysNodeList();
}

View File

@ -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<SysNodeVo> querySysNodeList();
SysNodeVo createSysNode(SysNodeDto sysNodeDto);
}

View File

@ -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<SysNodeVo> querySysNodeList() {
List<SysNodeVo> 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;
}
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.das.modules.node.mapper.SysNodeMapper">
<resultMap type="com.das.modules.node.domain.vo.SysNodeVo" id="SysNodeMap">
<result property="id" column="id" jdbcType="BIGINT"/>
<result property="nodeName" column="node_name" jdbcType="VARCHAR"/>
<result property="nodeIp" column="node_ip" jdbcType="VARCHAR"/>
<result property="orgName" column="orgName" jdbcType="VARCHAR"/>
<result property="orgId" column="org_id" jdbcType="BIGINT"/>
<result property="revision" column="revision" jdbcType="INTEGER"/>
</resultMap>
<select id="querySysNodeList" resultMap="SysNodeMap">
select sn.*,so."name" as orgName from sys_node sn left join sys_org so on sn.org_id = so.id
</select>
</mapper>

View File

@ -14,3 +14,86 @@
| | 1.2.3修改链路信息 | /api/node/link/update | 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.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": "操作成功"
}
```