From b8336ec766eb1df508c98015b27488bc0eaf36ab Mon Sep 17 00:00:00 2001 From: lixiaolong <702156524@qq.com> Date: Mon, 22 Sep 2025 10:58:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(device):=20=E6=96=B0=E5=A2=9E=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA=E9=85=8D=E7=BD=AE=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增机器人配置实体类、Mapper、Service及Controller,实现机器人配置的增删改查功能, 支持树形结构配置管理,包含配置ID、类型、父节点ID及节点名称等字段。 --- .../device/DeRobotConfigController.java | 105 ++++++++++++++++++ .../com/cmvr/device/domain/DeRobotConfig.java | 52 +++++++++ .../device/mapper/DeRobotConfigMapper.java | 61 ++++++++++ .../device/service/IDeRobotConfigService.java | 61 ++++++++++ .../impl/DeRobotConfigServiceImpl.java | 97 ++++++++++++++++ .../mapper/device/DeRobotConfigMapper.xml | 93 ++++++++++++++++ 6 files changed, 469 insertions(+) create mode 100644 cmvr-iot-admin/src/main/java/com/cmvr/web/controller/device/DeRobotConfigController.java create mode 100644 cmvr-iot-device/src/main/java/com/cmvr/device/domain/DeRobotConfig.java create mode 100644 cmvr-iot-device/src/main/java/com/cmvr/device/mapper/DeRobotConfigMapper.java create mode 100644 cmvr-iot-device/src/main/java/com/cmvr/device/service/IDeRobotConfigService.java create mode 100644 cmvr-iot-device/src/main/java/com/cmvr/device/service/impl/DeRobotConfigServiceImpl.java create mode 100644 cmvr-iot-device/src/main/resources/mapper/device/DeRobotConfigMapper.xml diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/device/DeRobotConfigController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/device/DeRobotConfigController.java new file mode 100644 index 0000000..ed57df8 --- /dev/null +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/device/DeRobotConfigController.java @@ -0,0 +1,105 @@ +package com.cmvr.web.controller.device; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.cmvr.common.annotation.Log; +import com.cmvr.common.core.controller.BaseController; +import com.cmvr.common.core.domain.AjaxResult; +import com.cmvr.common.enums.BusinessType; +import com.cmvr.common.utils.poi.ExcelUtil; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.cmvr.device.domain.DeRobotConfig; +import com.cmvr.device.service.IDeRobotConfigService; + +import static com.cmvr.common.core.domain.AjaxResult.success; + +/** + * 机器人配置Controller + * + * @author cmvr-iot + * @date 2025-09-09 + */ +@RestController +@RequestMapping("/device/robot") +public class DeRobotConfigController extends BaseController +{ + @Autowired + private IDeRobotConfigService deRobotConfigService; + + /** + * 查询机器人配置列表 + */ + @PreAuthorize("@ss.hasPermi('device:robot:list')") + @GetMapping("/list") + public AjaxResult list(DeRobotConfig deRobotConfig) + { + List list = deRobotConfigService.selectDeRobotConfigList(deRobotConfig); + return success(list); + } + + /** + * 导出机器人配置列表 + */ + @PreAuthorize("@ss.hasPermi('device:robot:export')") + @Log(title = "机器人配置", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DeRobotConfig deRobotConfig) + { + List list = deRobotConfigService.selectDeRobotConfigList(deRobotConfig); + ExcelUtil util = new ExcelUtil(DeRobotConfig.class); + util.exportExcel(response, list, "机器人配置数据"); + } + + /** + * 获取机器人配置详细信息 + */ + @PreAuthorize("@ss.hasPermi('device:robot:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(deRobotConfigService.selectDeRobotConfigById(id)); + } + + /** + * 新增机器人配置 + */ + @PreAuthorize("@ss.hasPermi('device:robot:add')") + @Log(title = "机器人配置", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DeRobotConfig deRobotConfig) + { + return toAjax(deRobotConfigService.insertDeRobotConfig(deRobotConfig)); + } + + /** + * 修改机器人配置 + */ + @PreAuthorize("@ss.hasPermi('device:robot:edit')") + @Log(title = "机器人配置", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DeRobotConfig deRobotConfig) + { + return toAjax(deRobotConfigService.updateDeRobotConfig(deRobotConfig)); + } + + /** + * 删除机器人配置 + */ + @PreAuthorize("@ss.hasPermi('device:robot:remove')") + @Log(title = "机器人配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + return toAjax(deRobotConfigService.deleteDeRobotConfigByIds(ids)); + } +} diff --git a/cmvr-iot-device/src/main/java/com/cmvr/device/domain/DeRobotConfig.java b/cmvr-iot-device/src/main/java/com/cmvr/device/domain/DeRobotConfig.java new file mode 100644 index 0000000..b459f0d --- /dev/null +++ b/cmvr-iot-device/src/main/java/com/cmvr/device/domain/DeRobotConfig.java @@ -0,0 +1,52 @@ +package com.cmvr.device.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.cmvr.common.annotation.Excel; +import com.cmvr.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 机器人配置对象 de_robot_config + * + * @author cmvr-iot + * @date 2025-09-09 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("机器人配置对象") +public class DeRobotConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + @ApiModelProperty("id") + @TableId(value = "id" , type = IdType.ASSIGN_UUID) + private String id; + + /** 配置ID,32位的UUID,可以是设备ID或终端ID。 */ + @Excel(name = "配置ID,32位的UUID,可以是设备ID或终端ID。") + @ApiModelProperty("配置ID,32位的UUID,可以是设备ID或终端ID。") + private String configId; + + /** 配置类型,区分是设备还是终端 */ + @Excel(name = "配置类型,区分是设备还是终端") + @ApiModelProperty(name = "配置类型,区分是设备还是终端") + private String configType; + + /** 父配置ID,用于构成树形结构。终端节点为root,设备节点指向其父终端的id */ + @Excel(name = "父配置ID,用于构成树形结构。终端节点为root,设备节点指向其父终端的id") + @ApiModelProperty(name = "父配置ID,用于构成树形结构。终端节点为root,设备节点指向其父终端的id") + private String pid; + + /** 节点名称,名称可以随意取,不强制唯一 */ + @Excel(name = "节点名称,名称可以随意取,不强制唯一") + @ApiModelProperty(name = "节点名称,名称可以随意取,不强制唯一") + private String nodeName; + +} diff --git a/cmvr-iot-device/src/main/java/com/cmvr/device/mapper/DeRobotConfigMapper.java b/cmvr-iot-device/src/main/java/com/cmvr/device/mapper/DeRobotConfigMapper.java new file mode 100644 index 0000000..7a3fe82 --- /dev/null +++ b/cmvr-iot-device/src/main/java/com/cmvr/device/mapper/DeRobotConfigMapper.java @@ -0,0 +1,61 @@ +package com.cmvr.device.mapper; + +import java.util.List; +import com.cmvr.device.domain.DeRobotConfig; + +/** + * 机器人配置Mapper接口 + * + * @author cmvr-iot + * @date 2025-09-09 + */ +public interface DeRobotConfigMapper +{ + /** + * 查询机器人配置 + * + * @param id 机器人配置主键 + * @return 机器人配置 + */ + public DeRobotConfig selectDeRobotConfigById(String id); + + /** + * 查询机器人配置列表 + * + * @param deRobotConfig 机器人配置 + * @return 机器人配置集合 + */ + public List selectDeRobotConfigList(DeRobotConfig deRobotConfig); + + /** + * 新增机器人配置 + * + * @param deRobotConfig 机器人配置 + * @return 结果 + */ + public int insertDeRobotConfig(DeRobotConfig deRobotConfig); + + /** + * 修改机器人配置 + * + * @param deRobotConfig 机器人配置 + * @return 结果 + */ + public int updateDeRobotConfig(DeRobotConfig deRobotConfig); + + /** + * 删除机器人配置 + * + * @param id 机器人配置主键 + * @return 结果 + */ + public int deleteDeRobotConfigById(String id); + + /** + * 批量删除机器人配置 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDeRobotConfigByIds(String[] ids); +} diff --git a/cmvr-iot-device/src/main/java/com/cmvr/device/service/IDeRobotConfigService.java b/cmvr-iot-device/src/main/java/com/cmvr/device/service/IDeRobotConfigService.java new file mode 100644 index 0000000..a312f7c --- /dev/null +++ b/cmvr-iot-device/src/main/java/com/cmvr/device/service/IDeRobotConfigService.java @@ -0,0 +1,61 @@ +package com.cmvr.device.service; + +import java.util.List; +import com.cmvr.device.domain.DeRobotConfig; + +/** + * 机器人配置Service接口 + * + * @author cmvr-iot + * @date 2025-09-09 + */ +public interface IDeRobotConfigService +{ + /** + * 查询机器人配置 + * + * @param id 机器人配置主键 + * @return 机器人配置 + */ + public DeRobotConfig selectDeRobotConfigById(String id); + + /** + * 查询机器人配置列表 + * + * @param deRobotConfig 机器人配置 + * @return 机器人配置集合 + */ + public List selectDeRobotConfigList(DeRobotConfig deRobotConfig); + + /** + * 新增机器人配置 + * + * @param deRobotConfig 机器人配置 + * @return 结果 + */ + public int insertDeRobotConfig(DeRobotConfig deRobotConfig); + + /** + * 修改机器人配置 + * + * @param deRobotConfig 机器人配置 + * @return 结果 + */ + public int updateDeRobotConfig(DeRobotConfig deRobotConfig); + + /** + * 批量删除机器人配置 + * + * @param ids 需要删除的机器人配置主键集合 + * @return 结果 + */ + public int deleteDeRobotConfigByIds(String[] ids); + + /** + * 删除机器人配置信息 + * + * @param id 机器人配置主键 + * @return 结果 + */ + public int deleteDeRobotConfigById(String id); +} diff --git a/cmvr-iot-device/src/main/java/com/cmvr/device/service/impl/DeRobotConfigServiceImpl.java b/cmvr-iot-device/src/main/java/com/cmvr/device/service/impl/DeRobotConfigServiceImpl.java new file mode 100644 index 0000000..34eecbb --- /dev/null +++ b/cmvr-iot-device/src/main/java/com/cmvr/device/service/impl/DeRobotConfigServiceImpl.java @@ -0,0 +1,97 @@ +package com.cmvr.device.service.impl; + +import java.util.List; + +import com.cmvr.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.cmvr.device.mapper.DeRobotConfigMapper; +import com.cmvr.device.domain.DeRobotConfig; +import com.cmvr.device.service.IDeRobotConfigService; + +/** + * 机器人配置Service业务层处理 + * + * @author cmvr-iot + * @date 2025-09-09 + */ +@Service +public class DeRobotConfigServiceImpl implements IDeRobotConfigService +{ + @Autowired + private DeRobotConfigMapper deRobotConfigMapper; + + /** + * 查询机器人配置 + * + * @param id 机器人配置主键 + * @return 机器人配置 + */ + @Override + public DeRobotConfig selectDeRobotConfigById(String id) + { + return deRobotConfigMapper.selectDeRobotConfigById(id); + } + + /** + * 查询机器人配置列表 + * + * @param deRobotConfig 机器人配置 + * @return 机器人配置 + */ + @Override + public List selectDeRobotConfigList(DeRobotConfig deRobotConfig) + { + return deRobotConfigMapper.selectDeRobotConfigList(deRobotConfig); + } + + /** + * 新增机器人配置 + * + * @param deRobotConfig 机器人配置 + * @return 结果 + */ + @Override + public int insertDeRobotConfig(DeRobotConfig deRobotConfig) + { + deRobotConfig.setCreateTime(DateUtils.getNowDate()); + return deRobotConfigMapper.insertDeRobotConfig(deRobotConfig); + } + + /** + * 修改机器人配置 + * + * @param deRobotConfig 机器人配置 + * @return 结果 + */ + @Override + public int updateDeRobotConfig(DeRobotConfig deRobotConfig) + { + deRobotConfig.setUpdateTime(DateUtils.getNowDate()); + return deRobotConfigMapper.updateDeRobotConfig(deRobotConfig); + } + + /** + * 批量删除机器人配置 + * + * @param ids 需要删除的机器人配置主键 + * @return 结果 + */ + @Override + public int deleteDeRobotConfigByIds(String[] ids) + { + return deRobotConfigMapper.deleteDeRobotConfigByIds(ids); + } + + /** + * 删除机器人配置信息 + * + * @param id 机器人配置主键 + * @return 结果 + */ + @Override + public int deleteDeRobotConfigById(String id) + { + return deRobotConfigMapper.deleteDeRobotConfigById(id); + } +} diff --git a/cmvr-iot-device/src/main/resources/mapper/device/DeRobotConfigMapper.xml b/cmvr-iot-device/src/main/resources/mapper/device/DeRobotConfigMapper.xml new file mode 100644 index 0000000..8820946 --- /dev/null +++ b/cmvr-iot-device/src/main/resources/mapper/device/DeRobotConfigMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + select id, config_id, config_type, pid, node_name, create_by, create_time, update_by, update_time, remark from de_robot_config + + + + + + + + insert into de_robot_config + + id, + config_id, + config_type, + pid, + node_name, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{id}, + #{configId}, + #{configType}, + #{pid}, + #{nodeName}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update de_robot_config + + config_id = #{configId}, + config_type = #{configType}, + pid = #{pid}, + node_name = #{nodeName}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from de_robot_config where id = #{id} + + + + delete from de_robot_config where id in + + #{id} + + + \ No newline at end of file