From f0ca26efcdc8bcc580ba44e27a0069f5cfa7fa6c Mon Sep 17 00:00:00 2001 From: zch <zangch@mesnac.com> Date: Fri, 21 Mar 2025 14:52:43 +0800 Subject: [PATCH] =?UTF-8?q?add(dms):=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=A1=A3=E6=A1=88=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增设备档案信息相关实体类、控制器、服务接口及其实现类 - 添加设备档案信息的前端页面组件和API接口 - 获取设备下拉框数据 - 重点是提交时对文件路径的处理 --- .../DmsBaseDeviceFilesController.java | 117 +++++++++++++ .../dms/domain/DmsBaseDeviceFiles.java | 60 +++++++ .../dms/domain/bo/DmsBaseDeviceFilesBo.java | 61 +++++++ .../dms/domain/vo/DmsBaseDeviceFilesVo.java | 75 +++++++++ .../dms/mapper/DmsBaseDeviceFilesMapper.java | 15 ++ .../service/IDmsBaseDeviceFilesService.java | 69 ++++++++ .../impl/DmsBaseDeviceFilesServiceImpl.java | 156 ++++++++++++++++++ .../mapper/dms/DmsBaseDeviceFilesMapper.xml | 7 + 8 files changed, 560 insertions(+) create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBaseDeviceFilesController.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseDeviceFiles.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseDeviceFilesBo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseDeviceFilesVo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseDeviceFilesMapper.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseDeviceFilesService.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseDeviceFilesServiceImpl.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseDeviceFilesMapper.xml diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBaseDeviceFilesController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBaseDeviceFilesController.java new file mode 100644 index 00000000..a1bc694d --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBaseDeviceFilesController.java @@ -0,0 +1,117 @@ +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.DmsBaseDeviceFilesVo; +import org.dromara.dms.domain.bo.DmsBaseDeviceFilesBo; +import org.dromara.dms.service.IDmsBaseDeviceFilesService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 设备档案信息 + * 前端访问路由地址为:/dms/dmsBaseDeviceFiles + * + * @author zch + * @date 2025-03-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/dmsBaseDeviceFiles") +public class DmsBaseDeviceFilesController extends BaseController { + + private final IDmsBaseDeviceFilesService dmsBaseDeviceFilesService; + + /** + * 查询设备档案信息列表 + */ + @SaCheckPermission("dms:dmsBaseDeviceFiles:list") + @GetMapping("/list") + public TableDataInfo<DmsBaseDeviceFilesVo> list(DmsBaseDeviceFilesBo bo, PageQuery pageQuery) { + return dmsBaseDeviceFilesService.queryPageList(bo, pageQuery); + } + + /** + * 导出设备档案信息列表 + */ + @SaCheckPermission("dms:dmsBaseDeviceFiles:export") + @Log(title = "设备档案信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(DmsBaseDeviceFilesBo bo, HttpServletResponse response) { + List<DmsBaseDeviceFilesVo> list = dmsBaseDeviceFilesService.queryList(bo); + ExcelUtil.exportExcel(list, "设备档案信息", DmsBaseDeviceFilesVo.class, response); + } + + /** + * 获取设备档案信息详细信息 + * + * @param deviceFilesId 主键 + */ + @SaCheckPermission("dms:dmsBaseDeviceFiles:query") + @GetMapping("/{deviceFilesId}") + public R<DmsBaseDeviceFilesVo> getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long deviceFilesId) { + return R.ok(dmsBaseDeviceFilesService.queryById(deviceFilesId)); + } + + /** + * 新增设备档案信息 + */ + @SaCheckPermission("dms:dmsBaseDeviceFiles:add") + @Log(title = "设备档案信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBaseDeviceFilesBo bo) { + return toAjax(dmsBaseDeviceFilesService.insertByBo(bo)); + } + + /** + * 修改设备档案信息 + */ + @SaCheckPermission("dms:dmsBaseDeviceFiles:edit") + @Log(title = "设备档案信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBaseDeviceFilesBo bo) { + return toAjax(dmsBaseDeviceFilesService.updateByBo(bo)); + } + + /** + * 删除设备档案信息 + * + * @param deviceFilesIds 主键串 + */ + @SaCheckPermission("dms:dmsBaseDeviceFiles:remove") + @Log(title = "设备档案信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{deviceFilesIds}") + public R<Void> remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] deviceFilesIds) { + return toAjax(dmsBaseDeviceFilesService.deleteWithValidByIds(List.of(deviceFilesIds), true)); + } + + + /** + * 下拉框查询设备档案信息列表 + */ + + @GetMapping("/getDmsBaseDeviceFilesList") + public R<List<DmsBaseDeviceFilesVo>> getDmsBaseDeviceFilesList(DmsBaseDeviceFilesBo bo) { + List<DmsBaseDeviceFilesVo> list = dmsBaseDeviceFilesService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseDeviceFiles.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseDeviceFiles.java new file mode 100644 index 00000000..2b2a287b --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseDeviceFiles.java @@ -0,0 +1,60 @@ +package org.dromara.dms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 设备档案信息对象 dms_base_device_files + * + * @author zch + * @date 2025-03-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("dms_base_device_files") +public class DmsBaseDeviceFiles extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + private Long deviceFilesId; + + /** + * 设备ID,关联prod_base_machine_info的machine_id + */ + private Long machineId; + + /** + * 档案编号 + */ + private String filesCode; + + /** + * 档案名称 + */ + private String filesName; + + /** + * 档案路径 + */ + private String filesPath; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseDeviceFilesBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseDeviceFilesBo.java new file mode 100644 index 00000000..fc378b08 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseDeviceFilesBo.java @@ -0,0 +1,61 @@ +package org.dromara.dms.domain.bo; + +import org.dromara.dms.domain.DmsBaseDeviceFiles; +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_base_device_files + * + * @author zch + * @date 2025-03-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = DmsBaseDeviceFiles.class, reverseConvertGenerate = false) +public class DmsBaseDeviceFilesBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long deviceFilesId; + + /** + * 设备ID,关联prod_base_machine_info的machine_id + */ + private Long machineId; + + /** + * 档案编号 + */ + @NotBlank(message = "档案编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String filesCode; + + /** + * 档案名称 + */ + @NotBlank(message = "档案名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String filesName; + + /** + * 档案路径 + */ + private String filesPath; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseDeviceFilesVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseDeviceFilesVo.java new file mode 100644 index 00000000..59c45ad0 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseDeviceFilesVo.java @@ -0,0 +1,75 @@ +package org.dromara.dms.domain.vo; + +import org.dromara.dms.domain.DmsBaseDeviceFiles; +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_base_device_files + * + * @author zch + * @date 2025-03-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = DmsBaseDeviceFiles.class) +public class DmsBaseDeviceFilesVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long deviceFilesId; + + /** + * 设备ID,关联prod_base_machine_info的machine_id + */ + @ExcelProperty(value = "设备ID,关联prod_base_machine_info的machine_id") + private Long machineId; + + /** + * 档案编号 + */ + @ExcelProperty(value = "档案编号") + private String filesCode; + + /** + * 档案名称 + */ + @ExcelProperty(value = "档案名称") + private String filesName; + + /** + * 档案路径 + */ + @ExcelProperty(value = "档案路径") + private String filesPath; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseDeviceFilesMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseDeviceFilesMapper.java new file mode 100644 index 00000000..d0620a65 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseDeviceFilesMapper.java @@ -0,0 +1,15 @@ +package org.dromara.dms.mapper; + +import org.dromara.dms.domain.DmsBaseDeviceFiles; +import org.dromara.dms.domain.vo.DmsBaseDeviceFilesVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 设备档案信息Mapper接口 + * + * @author zch + * @date 2025-03-20 + */ +public interface DmsBaseDeviceFilesMapper extends BaseMapperPlus<DmsBaseDeviceFiles, DmsBaseDeviceFilesVo> { + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseDeviceFilesService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseDeviceFilesService.java new file mode 100644 index 00000000..388ab6bf --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseDeviceFilesService.java @@ -0,0 +1,69 @@ +package org.dromara.dms.service; + +import org.dromara.dms.domain.DmsBaseDeviceFiles; +import org.dromara.dms.domain.vo.DmsBaseDeviceFilesVo; +import org.dromara.dms.domain.bo.DmsBaseDeviceFilesBo; +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 zch + * @date 2025-03-20 + */ +public interface IDmsBaseDeviceFilesService { + + /** + * 查询设备档案信息 + * + * @param deviceFilesId 主键 + * @return 设备档案信息 + */ + DmsBaseDeviceFilesVo queryById(Long deviceFilesId); + + /** + * 分页查询设备档案信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 设备档案信息分页列表 + */ + TableDataInfo<DmsBaseDeviceFilesVo> queryPageList(DmsBaseDeviceFilesBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的设备档案信息列表 + * + * @param bo 查询条件 + * @return 设备档案信息列表 + */ + List<DmsBaseDeviceFilesVo> queryList(DmsBaseDeviceFilesBo bo); + + /** + * 新增设备档案信息 + * + * @param bo 设备档案信息 + * @return 是否新增成功 + */ + Boolean insertByBo(DmsBaseDeviceFilesBo bo); + + /** + * 修改设备档案信息 + * + * @param bo 设备档案信息 + * @return 是否修改成功 + */ + Boolean updateByBo(DmsBaseDeviceFilesBo 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/DmsBaseDeviceFilesServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseDeviceFilesServiceImpl.java new file mode 100644 index 00000000..a5746146 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseDeviceFilesServiceImpl.java @@ -0,0 +1,156 @@ +package org.dromara.dms.service.impl; + +import org.dromara.common.core.exception.ServiceException; +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.dromara.dms.domain.DmsBaseDeviceDepreciation; +import org.dromara.dms.domain.DmsBaseMachineInfo; +import org.springframework.stereotype.Service; +import org.dromara.dms.domain.bo.DmsBaseDeviceFilesBo; +import org.dromara.dms.domain.vo.DmsBaseDeviceFilesVo; +import org.dromara.dms.domain.DmsBaseDeviceFiles; +import org.dromara.dms.mapper.DmsBaseDeviceFilesMapper; +import org.dromara.dms.service.IDmsBaseDeviceFilesService; +import org.springframework.util.ObjectUtils; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 设备档案信息Service业务层处理 + * + * @author zch + * @date 2025-03-20 + */ +@RequiredArgsConstructor +@Service +public class DmsBaseDeviceFilesServiceImpl implements IDmsBaseDeviceFilesService { + + private final DmsBaseDeviceFilesMapper baseMapper; + + /** + * 查询设备档案信息 + * + * @param deviceFilesId 主键 + * @return 设备档案信息 + */ + @Override + public DmsBaseDeviceFilesVo queryById(Long deviceFilesId){ + return baseMapper.selectVoById(deviceFilesId); + } + + /** + * 分页查询设备档案信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 设备档案信息分页列表 + */ + @Override + public TableDataInfo<DmsBaseDeviceFilesVo> queryPageList(DmsBaseDeviceFilesBo bo, PageQuery pageQuery) { + MPJLambdaWrapper<DmsBaseDeviceFiles> lqw = buildQueryWrapper(bo); + Page<DmsBaseDeviceFilesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的设备档案信息列表 + * + * @param bo 查询条件 + * @return 设备档案信息列表 + */ + @Override + public List<DmsBaseDeviceFilesVo> queryList(DmsBaseDeviceFilesBo bo) { + MPJLambdaWrapper<DmsBaseDeviceFiles> lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper<DmsBaseDeviceFiles> buildQueryWrapper(DmsBaseDeviceFilesBo bo) { + Map<String, Object> params = bo.getParams(); + MPJLambdaWrapper<DmsBaseDeviceFiles> lqw = JoinWrappers.lambda(DmsBaseDeviceFiles.class) + .selectAll(DmsBaseDeviceFiles.class) + //连表查询设备名称 + .select(DmsBaseMachineInfo::getMachineName) + .leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId, DmsBaseDeviceFiles::getMachineId) + .eq(bo.getDeviceFilesId() != null, DmsBaseDeviceFiles::getDeviceFilesId, bo.getDeviceFilesId()) + .eq(bo.getMachineId() != null, DmsBaseDeviceFiles::getMachineId, bo.getMachineId()) + .eq(StringUtils.isNotBlank(bo.getFilesCode()), DmsBaseDeviceFiles::getFilesCode, bo.getFilesCode()) + .like(StringUtils.isNotBlank(bo.getFilesName()), DmsBaseDeviceFiles::getFilesName, bo.getFilesName()) + .eq(StringUtils.isNotBlank(bo.getFilesPath()), DmsBaseDeviceFiles::getFilesPath, bo.getFilesPath()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), DmsBaseDeviceFiles::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(DmsBaseDeviceFiles::getCreateTime); + return lqw; + } + + /** + * 新增设备档案信息 + * + * @param bo 设备档案信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(DmsBaseDeviceFilesBo bo) { + DmsBaseDeviceFiles add = MapstructUtils.convert(bo, DmsBaseDeviceFiles.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDeviceFilesId(add.getDeviceFilesId()); + } + return flag; + } + + /** + * 修改设备档案信息 + * + * @param bo 设备档案信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(DmsBaseDeviceFilesBo bo) { + DmsBaseDeviceFiles update = MapstructUtils.convert(bo, DmsBaseDeviceFiles.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(DmsBaseDeviceFiles entity){ + //TODO 做一些数据校验,如唯一约束 + + //编号校验 + if (StringUtils.isNotNull(entity.getDeviceFilesId())){ + DmsBaseDeviceFilesBo query = new DmsBaseDeviceFilesBo(); + query.setDeviceFilesId(entity.getDeviceFilesId()); + MPJLambdaWrapper<DmsBaseDeviceFiles> lqw = buildQueryWrapper(query); + DmsBaseDeviceFiles detail = baseMapper.selectOne(lqw); + if ( !ObjectUtils.isEmpty(detail) + && !detail.getDeviceFilesId().equals(entity.getDeviceFilesId())){ + throw new ServiceException("编号已存在"); + } + } + } + + /** + * 校验并批量删除设备档案信息信息 + * + * @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/DmsBaseDeviceFilesMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseDeviceFilesMapper.xml new file mode 100644 index 00000000..debd8c94 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseDeviceFilesMapper.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.DmsBaseDeviceFilesMapper"> + +</mapper>