From a8a8fa0aea21d4923dfa15560cc0646929f4e34a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Mon, 24 Mar 2025 17:02:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/constant/InspectionConstants.java | 12 ++- .../module/constant/InspectionFileEnum.java | 35 ++++++++ .../controller/InspectionFileController.java | 9 ++ .../inspection/entity/InspectionFile.java | 3 + .../inspection/entity/TreeCommonResult.java | 29 +++++++ .../service/IInspectionFileService.java | 9 +- .../InspectionAppointmentServiceImpl.java | 17 ++-- .../impl/InspectionEquInfoServiceImpl.java | 2 +- .../impl/InspectionFileServiceImpl.java | 87 +++++++++++++++++-- .../impl/InspectionInfoServiceImpl.java | 2 +- .../impl/InspectionStaffServiceImpl.java | 19 ++-- .../cn/iocoder/yudao/util/SendSmsUtil.java | 2 +- .../config/SecurityConfiguration.java | 2 + .../src/main/resources/application.yaml | 1 + 14 files changed, 198 insertions(+), 31 deletions(-) create mode 100644 dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionFileEnum.java create mode 100644 dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/TreeCommonResult.java diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java index 68df1fd9..d665189d 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java @@ -14,7 +14,7 @@ public class InspectionConstants { public static final String INSPECTION_BASE_STAFF_ROLE = "jcworker"; /** - * 文件类型:文件加 + * 文件类型:文件夹 */ public static final String INSPECTION_FOLDER = "1"; @@ -32,4 +32,14 @@ public class InspectionConstants { * 是员工附件 */ public static final Integer INSPECTION_IS_STAFF_FILE = 0; + + /** + * key的类型为员工 + */ + public static final String INSPECTION_STAFF_KEY = "staff"; + + /** + * key的类型为设备 + */ + public static final String INSPECTION_STAFF_EQUIPMENT_KEY = "equipment"; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionFileEnum.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionFileEnum.java new file mode 100644 index 00000000..70740464 --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionFileEnum.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.constant; + +import lombok.Getter; + +/** + * @Description: 文件默认key + * @Author: 86187 + * @Date: 2025/03/24 15:03 + * @Version: 1.0 + */ +@Getter +public enum InspectionFileEnum { + FOLDER("staff", "员工文件夹"), + FILE("equipment", "设备文件夹"); + + private final String type; + private final String desc; + + InspectionFileEnum(String type, String desc) { + this.type = type; + this.desc = desc; + } + + /** + * 根据type 获取desc + */ + public static String getDescByType(String type) { + for (InspectionFileEnum value : values()) { + if (value.getType().equals(type)) { + return value.getDesc(); + } + } + return type; + } +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java index 0e69542d..48de4986 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java @@ -199,4 +199,13 @@ public class InspectionFileController extends BaseController { List userIds = inspectionFileService.getUserIdsByFileId(fileId); return success(userIds); } + + /** + * 查询文件夹树 + * @return + */ + @GetMapping("/queryTreeFolder") + public CommonResult queryTreeFolder(){ + return success(inspectionFileService.queryTreeFolder()); + } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java index cc8c7459..1b943a65 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java @@ -50,6 +50,9 @@ public class InspectionFile extends TenantBaseDO @Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd") private Date warnTime; + /** 员工、设备的默认文件夹*/ + private String defaultKey; + /** * 是否为员工附 0-是 1-否 */ diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/TreeCommonResult.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/TreeCommonResult.java new file mode 100644 index 00000000..5e5bf20c --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/TreeCommonResult.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.inspection.entity; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Treeselect树结构实体类 + * + * @author ruoyi + */ +@Data +public class TreeCommonResult implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private Long value; + + /** 节点名称 */ + private String label; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java index 70b5c751..fce2866b 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.inspection.service; import cn.iocoder.yudao.module.inspection.entity.InspectionFile; +import cn.iocoder.yudao.module.inspection.entity.TreeCommonResult; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -115,5 +116,11 @@ public interface IInspectionFileService extends IService { * @param folderName 文件夹名称 * @return 文件夹id */ - Long addFolder(String folderName); + Long addFolder(String folderName, String key); + + /** + * 查询文件夹树 + * @return 文件夹树 + */ + List queryTreeFolder(); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java index 17391004..2c83959a 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java @@ -148,35 +148,40 @@ public class InspectionAppointmentServiceImpl extends ServiceImpllambdaUpdate().eq(InspectionEquInfo::getId, id).set(InspectionEquInfo::getFolderId, folderId)); return folderId; diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java index ca5b8f69..9dd2581f 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java @@ -7,10 +7,8 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.constant.InspectionConstants; -import cn.iocoder.yudao.module.inspection.entity.InspectionFile; -import cn.iocoder.yudao.module.inspection.entity.InspectionFileRecord; -import cn.iocoder.yudao.module.inspection.entity.InspectionFileUser; -import cn.iocoder.yudao.module.inspection.entity.WarnMessage; +import cn.iocoder.yudao.module.constant.InspectionFileEnum; +import cn.iocoder.yudao.module.inspection.entity.*; import cn.iocoder.yudao.module.inspection.mapper.InspectionFileMapper; import cn.iocoder.yudao.module.inspection.service.IInspectionFileService; import cn.iocoder.yudao.module.inspection.service.IWarnMessageService; @@ -171,7 +169,12 @@ public class InspectionFileServiceImpl extends ServiceImpl().eq(InspectionFile::getDefaultKey, key)); + + //如果默认文件夹为空就新建 + if (fatherFolder == null) { + fatherFolder = new InspectionFile(); + fatherFolder.setFileName(InspectionFileEnum.getDescByType(key)); + fatherFolder.setType(InspectionConstants.INSPECTION_FOLDER); + fatherFolder.setDefaultKey(key); + baseMapper.insert(fatherFolder); + fatherFolder.setFileCode(fatherFolder.getId() + ","); + baseMapper.updateById(fatherFolder); + } + InspectionFile inspectionFile = new InspectionFile(); + inspectionFile.setFatherId(fatherFolder.getId()); inspectionFile.setFileName(folderName + InspectionConstants.INSPECTION_FOLDER_SUFFIX); inspectionFile.setType(InspectionConstants.INSPECTION_FOLDER); inspectionFile.setIsStaffFile(InspectionConstants.INSPECTION_IS_STAFF_FILE); @@ -405,6 +423,63 @@ public class InspectionFileServiceImpl extends ServiceImpl queryTreeFolder() { + //查询出所有文件夹 + List inspectionFiles = baseMapper.selectList(new LambdaQueryWrapper() + .eq(InspectionFile::getType, InspectionConstants.INSPECTION_FOLDER) + .orderBy(false, false, InspectionFile::getCreateTime)); + + //组成属性结构 + return buildTree(inspectionFiles); + } + + /** + * 构建树形结构 + * + * @param files + * @return + */ + public static List buildTree(List files) { + // 1. 先创建一个 Map,方便查找每个节点 + Map nodeMap = files.stream().collect(Collectors.toMap( + InspectionFile::getId, + file -> { + TreeCommonResult node = new TreeCommonResult(); + node.setValue(file.getId()); + node.setLabel(file.getFileName()); + return node; + } + )); + + List rootNodes = new ArrayList<>(); + + // 2. 遍历文件列表,找到每个节点的父节点 + for (InspectionFile file : files) { + TreeCommonResult node = nodeMap.get(file.getId()); + Long parentId = file.getFatherId(); + + if (parentId == null || !nodeMap.containsKey(parentId)) { + // 根节点(父ID为空或不存在于Map) + rootNodes.add(node); + } else { + // 不是根节点,加入父节点的 children + TreeCommonResult parentNode = nodeMap.get(parentId); + if (parentNode.getChildren() == null) { + parentNode.setChildren(new ArrayList<>()); + } + parentNode.getChildren().add(node); + } + } + + return rootNodes; + } + // 获取文件夹内的所有文件(包括子文件夹的内容) private List getFilesInFolder(Long folderId, List accessibleFileIds, Map fileCache) { List filesInFolder = new ArrayList<>(); diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java index 21f873fd..2bc45664 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java @@ -735,7 +735,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl[] futures = new CompletableFuture[6]; - for (int i = 0; i < 6; i++) { + for (int i = 1; i < 6; i++) { final String status = String.valueOf(i); // 复制一份inspectionInfo对象,避免多线程修改同一个对象导致的问题 diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java index 76ebedeb..d4a6c3f7 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java @@ -145,21 +145,12 @@ public class InspectionStaffServiceImpl extends ServiceImpl fileList = inspectionFileService.list(Wrappers.lambdaQuery() - .eq(InspectionFile::getFatherId, inspectionStaffSaveVo.getFolderId()) - .eq(InspectionFile::getIsStaffFile, InspectionConstants.INSPECTION_IS_STAFF_FILE)); - - List copyFileList = new ArrayList<>(); - for (InspectionFile inspectionFile : fileList) { - FileDO fileDO = new FileDO(); - //把文件名后缀截取掉 - fileDO.setUrl(inspectionFile.getFilePath()); - fileDO.setName(inspectionFile.getFileName()); - copyFileList.add(fileDO); + InspectionFile folder = inspectionFileService.getOne(Wrappers.lambdaQuery().eq(InspectionFile::getId, inspectionStaffSaveVo.getFolderId())); + if (ObjectUtil.isNull(folder)) { + inspectionStaffSaveVo.setFolderId(null); } - inspectionStaffSaveVo.setFileList(copyFileList); } return inspectionStaffSaveVo; } @@ -236,7 +227,7 @@ public class InspectionStaffServiceImpl extends ServiceImpllambdaQuery().eq(InspectionStaff::getUserId, userId)); diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/util/SendSmsUtil.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/util/SendSmsUtil.java index 3895eebf..381bdab5 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/util/SendSmsUtil.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/util/SendSmsUtil.java @@ -62,7 +62,7 @@ public class SendSmsUtil { req.setSmsSdkAppId(sdkAppId); req.setSignName(signName); req.setTemplateId(templateId); - req.setTemplateParamSet(templateParamSet); +// req.setTemplateParamSet(templateParamSet); // 返回的resp是一个SendSmsResponse的实例,与请求对象对应 SendSmsResponse resp = client.SendSms(req); // 输出json格式的字符串回包 diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java index 672d912c..e64431bd 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java @@ -37,6 +37,8 @@ public class SecurityConfiguration { .antMatchers(adminSeverContextPath + "/**").anonymous(); // 文件读取 registry.antMatchers(buildAdminApi("/infra/file/*/get/**")).permitAll(); + //腾讯cos + registry.antMatchers(buildAdminApi("/cos/**")).permitAll(); } }; diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 28b39030..6734127f 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -306,6 +306,7 @@ yudao: - /admin-api/jx/auth/** - /admin-api/jx/** - /admin-api/jx/auth/getAppInfo + - /admin-api/cos/** ignore-tables: - system_tenant - system_tenant_package