From 7b904049cc624e649fea00961d1e9ad7c91352e9 Mon Sep 17 00:00:00 2001
From: yinq <yinq>
Date: Wed, 12 Mar 2025 17:50:18 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87?=
 =?UTF-8?q?=E5=8F=82=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../DmsDeviceModeParameterController.java     | 116 ++++++++++++++
 .../dms/domain/DmsDeviceModeParameter.java    |  75 ++++++++++
 .../domain/bo/DmsDeviceModeParameterBo.java   |  77 ++++++++++
 .../domain/vo/DmsDeviceModeParameterVo.java   |  95 ++++++++++++
 .../mapper/DmsDeviceModeParameterMapper.java  |  15 ++
 .../IDmsDeviceModeParameterService.java       |  69 +++++++++
 .../DmsDeviceModeParameterServiceImpl.java    | 141 ++++++++++++++++++
 .../dms/DmsDeviceModeParameterMapper.xml      |   7 +
 8 files changed, 595 insertions(+)
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsDeviceModeParameterController.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsDeviceModeParameter.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsDeviceModeParameterBo.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsDeviceModeParameterVo.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsDeviceModeParameterMapper.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsDeviceModeParameterService.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsDeviceModeParameterServiceImpl.java
 create mode 100644 ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceModeParameterMapper.xml

diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsDeviceModeParameterController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsDeviceModeParameterController.java
new file mode 100644
index 00000000..18c90616
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsDeviceModeParameterController.java
@@ -0,0 +1,116 @@
+package org.dromara.dms.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.dms.domain.vo.DmsDeviceModeParameterVo;
+import org.dromara.dms.domain.bo.DmsDeviceModeParameterBo;
+import org.dromara.dms.service.IDmsDeviceModeParameterService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 设备参数
+ * 前端访问路由地址为:/dms/deviceModeParameter
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/deviceModeParameter")
+public class DmsDeviceModeParameterController extends BaseController {
+
+    private final IDmsDeviceModeParameterService dmsDeviceModeParameterService;
+
+    /**
+     * 查询设备参数列表
+     */
+    @SaCheckPermission("dms:deviceModeParameter:list")
+    @GetMapping("/list")
+    public TableDataInfo<DmsDeviceModeParameterVo> list(DmsDeviceModeParameterBo bo, PageQuery pageQuery) {
+        return dmsDeviceModeParameterService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出设备参数列表
+     */
+    @SaCheckPermission("dms:deviceModeParameter:export")
+    @Log(title = "设备参数", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(DmsDeviceModeParameterBo bo, HttpServletResponse response) {
+        List<DmsDeviceModeParameterVo> list = dmsDeviceModeParameterService.queryList(bo);
+        ExcelUtil.exportExcel(list, "设备参数", DmsDeviceModeParameterVo.class, response);
+    }
+
+    /**
+     * 获取设备参数详细信息
+     *
+     * @param modeParameterId 主键
+     */
+    @SaCheckPermission("dms:deviceModeParameter:query")
+    @GetMapping("/{modeParameterId}")
+    public R<DmsDeviceModeParameterVo> getInfo(@NotNull(message = "主键不能为空")
+                                               @PathVariable Long modeParameterId) {
+        return R.ok(dmsDeviceModeParameterService.queryById(modeParameterId));
+    }
+
+    /**
+     * 新增设备参数
+     */
+    @SaCheckPermission("dms:deviceModeParameter:add")
+    @Log(title = "设备参数", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsDeviceModeParameterBo bo) {
+        return toAjax(dmsDeviceModeParameterService.insertByBo(bo));
+    }
+
+    /**
+     * 修改设备参数
+     */
+    @SaCheckPermission("dms:deviceModeParameter:edit")
+    @Log(title = "设备参数", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsDeviceModeParameterBo bo) {
+        return toAjax(dmsDeviceModeParameterService.updateByBo(bo));
+    }
+
+    /**
+     * 删除设备参数
+     *
+     * @param modeParameterIds 主键串
+     */
+    @SaCheckPermission("dms:deviceModeParameter:remove")
+    @Log(title = "设备参数", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{modeParameterIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] modeParameterIds) {
+        return toAjax(dmsDeviceModeParameterService.deleteWithValidByIds(List.of(modeParameterIds), true));
+    }
+
+
+    /**
+     * 下拉框查询设备参数列表
+     */
+    @GetMapping("/getDmsDeviceModeParameterList")
+    public R<List<DmsDeviceModeParameterVo>> getDmsDeviceModeParameterList(DmsDeviceModeParameterBo bo) {
+        List<DmsDeviceModeParameterVo> list = dmsDeviceModeParameterService.queryList(bo);
+        return R.ok(list);
+    }
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsDeviceModeParameter.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsDeviceModeParameter.java
new file mode 100644
index 00000000..a472f4c4
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsDeviceModeParameter.java
@@ -0,0 +1,75 @@
+package org.dromara.dms.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 设备参数对象 dms_device_mode_parameter
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+@Data
+@TableName("dms_device_mode_parameter")
+public class DmsDeviceModeParameter {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 设备属性参数ID
+     */
+    @TableId(value = "mode_parameter_id", type = IdType.AUTO)
+    private Long modeParameterId;
+
+    /**
+     * 设备模型功能ID,关联表hw_device_mode_function的字段mode_function_id
+     */
+    private Long modeFunctionId;
+
+    /**
+     * 设备属性参数ID,关联本表的字段mode_parameter_id。如果数据类型为struct类型,定义json参数时需要用此字段
+     */
+    private Long releatedParameterId;
+
+    /**
+     * 参数类型(1、输入参数,2、输出参数)
+     */
+    private String parameterType;
+
+    /**
+     * 参数名称
+     */
+    private String parameterName;
+
+    /**
+     * 标识符(支持大小写字母、数字和下划线,对外暂时不超过50个字符)
+     */
+    private String parameterIdentifier;
+
+    /**
+     * 数据类型(在平台字典表中定义)
+     */
+    private Long dataType;
+
+    /**
+     * 数据定义
+     */
+    private String dataDefinition;
+
+    /**
+     * 单位
+     */
+    private String propertyUnit;
+
+    /**
+     * 预留字段,步长
+     */
+    private Long propertyStep;
+
+
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsDeviceModeParameterBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsDeviceModeParameterBo.java
new file mode 100644
index 00000000..2583de03
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsDeviceModeParameterBo.java
@@ -0,0 +1,77 @@
+package org.dromara.dms.domain.bo;
+
+import org.dromara.dms.domain.DmsDeviceModeParameter;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 设备参数业务对象 dms_device_mode_parameter
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = DmsDeviceModeParameter.class, reverseConvertGenerate = false)
+public class DmsDeviceModeParameterBo extends BaseEntity {
+
+    /**
+     * 设备属性参数ID
+     */
+    private Long modeParameterId;
+
+    /**
+     * 设备模型功能ID,关联表hw_device_mode_function的字段mode_function_id
+     */
+    private Long modeFunctionId;
+
+    /**
+     * 设备属性参数ID,关联本表的字段mode_parameter_id。如果数据类型为struct类型,定义json参数时需要用此字段
+     */
+    private Long releatedParameterId;
+
+    /**
+     * 参数类型(1、输入参数,2、输出参数)
+     */
+    @NotBlank(message = "参数类型(1、输入参数,2、输出参数)不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String parameterType;
+
+    /**
+     * 参数名称
+     */
+    @NotBlank(message = "参数名称不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String parameterName;
+
+    /**
+     * 标识符(支持大小写字母、数字和下划线,对外暂时不超过50个字符)
+     */
+    @NotBlank(message = "标识符(支持大小写字母、数字和下划线,对外暂时不超过50个字符)不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String parameterIdentifier;
+
+    /**
+     * 数据类型(在平台字典表中定义)
+     */
+    private Long dataType;
+
+    /**
+     * 数据定义
+     */
+    private String dataDefinition;
+
+    /**
+     * 单位
+     */
+    private String propertyUnit;
+
+    /**
+     * 预留字段,步长
+     */
+    private Long propertyStep;
+
+
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsDeviceModeParameterVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsDeviceModeParameterVo.java
new file mode 100644
index 00000000..e18a3f88
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsDeviceModeParameterVo.java
@@ -0,0 +1,95 @@
+package org.dromara.dms.domain.vo;
+
+import org.dromara.dms.domain.DmsDeviceModeParameter;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 设备参数视图对象 dms_device_mode_parameter
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = DmsDeviceModeParameter.class)
+public class DmsDeviceModeParameterVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 设备属性参数ID
+     */
+    @ExcelProperty(value = "设备属性参数ID")
+    private Long modeParameterId;
+
+    /**
+     * 设备模型功能ID,关联表hw_device_mode_function的字段mode_function_id
+     */
+    @ExcelProperty(value = "设备模型功能ID,关联表hw_device_mode_function的字段mode_function_id")
+    private Long modeFunctionId;
+
+    /**
+     * 设备属性参数ID,关联本表的字段mode_parameter_id。如果数据类型为struct类型,定义json参数时需要用此字段
+     */
+    @ExcelProperty(value = "设备属性参数ID,关联本表的字段mode_parameter_id。如果数据类型为struct类型,定义json参数时需要用此字段")
+    private Long releatedParameterId;
+
+    /**
+     * 参数类型(1、输入参数,2、输出参数)
+     */
+    @ExcelProperty(value = "参数类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "dms_parameter_type")
+    private String parameterType;
+
+    /**
+     * 参数名称
+     */
+    @ExcelProperty(value = "参数名称")
+    private String parameterName;
+
+    /**
+     * 标识符(支持大小写字母、数字和下划线,对外暂时不超过50个字符)
+     */
+    @ExcelProperty(value = "标识符", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "支=持大小写字母、数字和下划线,对外暂时不超过50个字符")
+    private String parameterIdentifier;
+
+    /**
+     * 数据类型(在平台字典表中定义)
+     */
+    @ExcelProperty(value = "数据类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "dms_data_type")
+    private Long dataType;
+
+    /**
+     * 数据定义
+     */
+    @ExcelProperty(value = "数据定义")
+    private String dataDefinition;
+
+    /**
+     * 单位
+     */
+    @ExcelProperty(value = "单位")
+    private String propertyUnit;
+
+    /**
+     * 预留字段,步长
+     */
+    @ExcelProperty(value = "预留字段,步长")
+    private Long propertyStep;
+
+
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsDeviceModeParameterMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsDeviceModeParameterMapper.java
new file mode 100644
index 00000000..52516790
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsDeviceModeParameterMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.dms.mapper;
+
+import org.dromara.dms.domain.DmsDeviceModeParameter;
+import org.dromara.dms.domain.vo.DmsDeviceModeParameterVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 设备参数Mapper接口
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+public interface DmsDeviceModeParameterMapper extends BaseMapperPlus<DmsDeviceModeParameter, DmsDeviceModeParameterVo> {
+
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsDeviceModeParameterService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsDeviceModeParameterService.java
new file mode 100644
index 00000000..66ccd30b
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsDeviceModeParameterService.java
@@ -0,0 +1,69 @@
+package org.dromara.dms.service;
+
+import org.dromara.dms.domain.DmsDeviceModeParameter;
+import org.dromara.dms.domain.vo.DmsDeviceModeParameterVo;
+import org.dromara.dms.domain.bo.DmsDeviceModeParameterBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 设备参数Service接口
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+public interface IDmsDeviceModeParameterService {
+
+    /**
+     * 查询设备参数
+     *
+     * @param modeParameterId 主键
+     * @return 设备参数
+     */
+    DmsDeviceModeParameterVo queryById(Long modeParameterId);
+
+    /**
+     * 分页查询设备参数列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 设备参数分页列表
+     */
+    TableDataInfo<DmsDeviceModeParameterVo> queryPageList(DmsDeviceModeParameterBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的设备参数列表
+     *
+     * @param bo 查询条件
+     * @return 设备参数列表
+     */
+    List<DmsDeviceModeParameterVo> queryList(DmsDeviceModeParameterBo bo);
+
+    /**
+     * 新增设备参数
+     *
+     * @param bo 设备参数
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(DmsDeviceModeParameterBo bo);
+
+    /**
+     * 修改设备参数
+     *
+     * @param bo 设备参数
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(DmsDeviceModeParameterBo bo);
+
+    /**
+     * 校验并批量删除设备参数信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsDeviceModeParameterServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsDeviceModeParameterServiceImpl.java
new file mode 100644
index 00000000..755b4ba5
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsDeviceModeParameterServiceImpl.java
@@ -0,0 +1,141 @@
+package org.dromara.dms.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.dms.domain.bo.DmsDeviceModeParameterBo;
+import org.dromara.dms.domain.vo.DmsDeviceModeParameterVo;
+import org.dromara.dms.domain.DmsDeviceModeParameter;
+import org.dromara.dms.mapper.DmsDeviceModeParameterMapper;
+import org.dromara.dms.service.IDmsDeviceModeParameterService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 设备参数Service业务层处理
+ *
+ * @author Yinq
+ * @date 2025-03-12
+ */
+@RequiredArgsConstructor
+@Service
+public class DmsDeviceModeParameterServiceImpl implements IDmsDeviceModeParameterService {
+
+    private final DmsDeviceModeParameterMapper baseMapper;
+
+    /**
+     * 查询设备参数
+     *
+     * @param modeParameterId 主键
+     * @return 设备参数
+     */
+    @Override
+    public DmsDeviceModeParameterVo queryById(Long modeParameterId) {
+        return baseMapper.selectVoById(modeParameterId);
+    }
+
+    /**
+     * 分页查询设备参数列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 设备参数分页列表
+     */
+    @Override
+    public TableDataInfo<DmsDeviceModeParameterVo> queryPageList(DmsDeviceModeParameterBo bo, PageQuery pageQuery) {
+        MPJLambdaWrapper<DmsDeviceModeParameter> lqw = buildQueryWrapper(bo);
+        Page<DmsDeviceModeParameterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的设备参数列表
+     *
+     * @param bo 查询条件
+     * @return 设备参数列表
+     */
+    @Override
+    public List<DmsDeviceModeParameterVo> queryList(DmsDeviceModeParameterBo bo) {
+        MPJLambdaWrapper<DmsDeviceModeParameter> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private MPJLambdaWrapper<DmsDeviceModeParameter> buildQueryWrapper(DmsDeviceModeParameterBo bo) {
+        Map<String, Object> params = bo.getParams();
+        MPJLambdaWrapper<DmsDeviceModeParameter> lqw = JoinWrappers.lambda(DmsDeviceModeParameter.class)
+            .selectAll(DmsDeviceModeParameter.class)
+            .eq(bo.getModeParameterId() != null, DmsDeviceModeParameter::getModeParameterId, bo.getModeParameterId())
+            .eq(bo.getModeFunctionId() != null, DmsDeviceModeParameter::getModeFunctionId, bo.getModeFunctionId())
+            .eq(bo.getReleatedParameterId() != null, DmsDeviceModeParameter::getReleatedParameterId, bo.getReleatedParameterId())
+            .eq(StringUtils.isNotBlank(bo.getParameterType()), DmsDeviceModeParameter::getParameterType, bo.getParameterType())
+            .like(StringUtils.isNotBlank(bo.getParameterName()), DmsDeviceModeParameter::getParameterName, bo.getParameterName())
+            .eq(StringUtils.isNotBlank(bo.getParameterIdentifier()), DmsDeviceModeParameter::getParameterIdentifier, bo.getParameterIdentifier())
+            .eq(bo.getDataType() != null, DmsDeviceModeParameter::getDataType, bo.getDataType())
+            .eq(StringUtils.isNotBlank(bo.getDataDefinition()), DmsDeviceModeParameter::getDataDefinition, bo.getDataDefinition())
+            .eq(StringUtils.isNotBlank(bo.getPropertyUnit()), DmsDeviceModeParameter::getPropertyUnit, bo.getPropertyUnit())
+            .eq(bo.getPropertyStep() != null, DmsDeviceModeParameter::getPropertyStep, bo.getPropertyStep())
+            .orderByDesc(DmsDeviceModeParameter::getModeParameterId);
+        return lqw;
+    }
+
+    /**
+     * 新增设备参数
+     *
+     * @param bo 设备参数
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(DmsDeviceModeParameterBo bo) {
+        DmsDeviceModeParameter add = MapstructUtils.convert(bo, DmsDeviceModeParameter.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setModeParameterId(add.getModeParameterId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改设备参数
+     *
+     * @param bo 设备参数
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(DmsDeviceModeParameterBo bo) {
+        DmsDeviceModeParameter update = MapstructUtils.convert(bo, DmsDeviceModeParameter.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(DmsDeviceModeParameter entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除设备参数信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}
diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceModeParameterMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceModeParameterMapper.xml
new file mode 100644
index 00000000..69323a23
--- /dev/null
+++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceModeParameterMapper.xml
@@ -0,0 +1,7 @@
+<?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="org.dromara.dms.mapper.DmsDeviceModeParameterMapper">
+
+</mapper>