检测文件更新
This commit is contained in:
parent
b906a00f1a
commit
0ec1c7b804
@ -72,9 +72,7 @@ public class InspectionFileController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
List<InspectionFile> list = inspectionFileService.selectInspectionFileListByPermissio(inspectionFile, getLoginUser().getId());
|
||||
|
||||
return success(list);
|
||||
return success(inspectionFileService.selectInspectionFileListByPermissio(inspectionFile, getLoginUser().getId()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,11 +108,9 @@ public class InspectionFileController extends BaseController {
|
||||
*/
|
||||
@PostMapping("/edit")
|
||||
public CommonResult edit(@RequestBody InspectionFile inspectionFile) throws Exception {
|
||||
ShopMallPartners partners = partnerService.shopInfo();
|
||||
InspectionFile file = inspectionFileService.selectInspectionFileById(inspectionFile.getId());
|
||||
if (!partners.getPartnerId().equals(file.getPartnerId())) {
|
||||
return null;
|
||||
}
|
||||
// if (!partners.getPartnerId().equals(file.getPartnerId())) {
|
||||
// return null;
|
||||
// }
|
||||
return toAjax(inspectionFileService.updateInspectionFile(inspectionFile));
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,42 @@
|
||||
package cn.iocoder.yudao.module.inspection.controller;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.module.core.controller.BaseController;
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionFileRecord;
|
||||
import cn.iocoder.yudao.module.inspection.service.InspectionFileRecordService;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 文档记录
|
||||
* @Author: 86187
|
||||
* @Date: 2025/02/08 13:53
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/admin-api/system/fileRecord")
|
||||
public class InspectionFileRecordController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private InspectionFileRecordService inspectionFileRecordService;
|
||||
|
||||
/**
|
||||
* 根据文件id查询修改记录
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/get/{id}")
|
||||
public CommonResult<?> getByFileId(@PathVariable Long id) {
|
||||
List<InspectionFileRecord> list = inspectionFileRecordService.list(Wrappers.lambdaQuery(InspectionFileRecord.class)
|
||||
.eq(InspectionFileRecord::getFileId, id)
|
||||
.orderBy(true, true, InspectionFileRecord::getCreateTime));
|
||||
|
||||
return CommonResult.success(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.inspection.entity;
|
||||
|
||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 检测文档记录表
|
||||
* @Author: 86187
|
||||
* @Date: 2025/02/08 11:39
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class InspectionFileRecord extends TenantBaseDO {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 文件id
|
||||
*/
|
||||
private Long fileId;
|
||||
|
||||
/**
|
||||
* 文件路径
|
||||
*/
|
||||
private String filePath;
|
||||
|
||||
/**
|
||||
* 文件类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 预警时间
|
||||
*/
|
||||
private Date warnTime;
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package cn.iocoder.yudao.module.inspection.mapper;
|
||||
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionFileRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @Description: 检测文档记录表
|
||||
* @Author: 86187
|
||||
* @Date: 2025/02/08 11:43
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface InspectionFileRecordMapper extends BaseMapper<InspectionFileRecord> {
|
||||
}
|
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* inspectionFileService接口
|
||||
@ -106,5 +107,5 @@ public interface IInspectionFileService extends IService<InspectionFile> {
|
||||
* @param inspectionFile
|
||||
* @return
|
||||
*/
|
||||
List<InspectionFile> selectInspectionFileListByPermissio(InspectionFile inspectionFile, Long userId);
|
||||
Set<InspectionFile> selectInspectionFileListByPermissio(InspectionFile inspectionFile, Long userId);
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package cn.iocoder.yudao.module.inspection.service;
|
||||
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionFileRecord;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* @Description: 检测文档记录表
|
||||
* @Author: 86187
|
||||
* @Date: 2025/02/08 11:42
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface InspectionFileRecordService extends IService<InspectionFileRecord> {
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package cn.iocoder.yudao.module.inspection.service.impl;
|
||||
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionEquInfo;
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionFileRecord;
|
||||
import cn.iocoder.yudao.module.inspection.mapper.InspectionEquInfoMapper;
|
||||
import cn.iocoder.yudao.module.inspection.mapper.InspectionFileRecordMapper;
|
||||
import cn.iocoder.yudao.module.inspection.service.InspectionFileRecordService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Description: 检测文档记录表
|
||||
* @Author: 86187
|
||||
* @Date: 2025/02/08 11:42
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Service
|
||||
public class InspectionFileRecordServiceImpl extends ServiceImpl<InspectionFileRecordMapper, InspectionFileRecord> implements InspectionFileRecordService {
|
||||
}
|
@ -1,15 +1,18 @@
|
||||
package cn.iocoder.yudao.module.inspection.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||
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.inspection.mapper.InspectionFileMapper;
|
||||
import cn.iocoder.yudao.module.inspection.service.IInspectionFileService;
|
||||
import cn.iocoder.yudao.module.inspection.service.IWarnMessageService;
|
||||
import cn.iocoder.yudao.module.inspection.service.InspectionFileRecordService;
|
||||
import cn.iocoder.yudao.module.inspection.service.InspectionFileUserService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -18,6 +21,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -36,6 +40,9 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
@Autowired
|
||||
private InspectionFileUserService inspectionFileUserService;
|
||||
|
||||
@Autowired
|
||||
private InspectionFileRecordService fileRecordService;
|
||||
|
||||
/**
|
||||
* 查询inspectionFile
|
||||
*
|
||||
@ -123,6 +130,7 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int updateInspectionFile(InspectionFile inspectionFile) {
|
||||
LambdaQueryWrapper<WarnMessage> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(WarnMessage::getType, "file").eq(WarnMessage::getObjectId, inspectionFile.getId());
|
||||
@ -143,6 +151,23 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
warnMessage.setWarnTime(inspectionFile.getWarnTime());
|
||||
messageService.save(warnMessage);
|
||||
}
|
||||
InspectionFile file = this.selectInspectionFileById(inspectionFile.getId());
|
||||
|
||||
if ((ObjectUtil.isNotEmpty(inspectionFile.getFilePath()) && !file.getFilePath().equals(inspectionFile.getFilePath()))
|
||||
|| ObjectUtil.isNotEmpty(inspectionFile.getFileName()) && !file.getFileName().equals(inspectionFile.getFileName())
|
||||
|| ObjectUtil.isNotEmpty(inspectionFile.getWarnTime()) && !file.getWarnTime().equals(inspectionFile.getWarnTime())) {
|
||||
|
||||
//查询出之前的文件路径
|
||||
InspectionFileRecord inspectionFileRecord = new InspectionFileRecord();
|
||||
inspectionFileRecord.setFileId(file.getId());
|
||||
inspectionFileRecord.setFileName(file.getFileName());
|
||||
inspectionFileRecord.setFilePath(file.getFilePath());
|
||||
inspectionFileRecord.setType(file.getType());
|
||||
inspectionFileRecord.setWarnTime(file.getWarnTime());
|
||||
|
||||
//保存记录
|
||||
fileRecordService.save(inspectionFileRecord);
|
||||
}
|
||||
return baseMapper.updateById(inspectionFile);
|
||||
}
|
||||
|
||||
@ -200,7 +225,7 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
LambdaQueryWrapper<InspectionFile> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotEmpty(inspectionFile.getFatherId())) {
|
||||
queryWrapper.eq(InspectionFile::getFatherId, inspectionFile.getFatherId());
|
||||
}else {
|
||||
} else {
|
||||
queryWrapper.isNull(InspectionFile::getFatherId);
|
||||
}
|
||||
queryWrapper.orderByAsc(InspectionFile::getType);
|
||||
@ -208,8 +233,8 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
if (ObjectUtil.isNotEmpty(inspectionFile.getFileName())) {
|
||||
queryWrapper.like(InspectionFile::getFileName, inspectionFile.getFileName());
|
||||
}
|
||||
// 直接调用 MyBatis-Plus 的 page 方法进行分页查询
|
||||
return this.list(queryWrapper); // 返回符合条件的分页查询结果
|
||||
queryWrapper.orderBy(false, false, InspectionFile::getCreateTime);
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -278,8 +303,9 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<InspectionFile> selectInspectionFileListByPermissio(InspectionFile inspectionFile, Long userId) {
|
||||
List<InspectionFile> resultFiles = new ArrayList<>();
|
||||
@Override
|
||||
public Set<InspectionFile> selectInspectionFileListByPermissio(InspectionFile inspectionFile, Long userId) {
|
||||
Set<InspectionFile> resultFiles = new HashSet<>();
|
||||
|
||||
// 1. 获取用户有权限的所有文件
|
||||
List<Long> accessibleFileIds = inspectionFileUserService
|
||||
@ -295,7 +321,13 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
}
|
||||
|
||||
// 2. 获取所有文件及文件夹信息(避免多次查询数据库)
|
||||
Map<Long, InspectionFile> fileCache = this.list().stream()
|
||||
// 1. 查询所有文件信息,确保只查询必要的字段,并通过索引优化文件名的like查询
|
||||
List<InspectionFile> fileList = this.list(Wrappers.lambdaQuery(InspectionFile.class)
|
||||
.select(InspectionFile::getId, InspectionFile::getFileName, InspectionFile::getFatherId, InspectionFile::getFilePath, InspectionFile::getType) // 仅查询必要字段
|
||||
.like(ObjectUtil.isNotEmpty(inspectionFile.getFileName()), InspectionFile::getFileName, inspectionFile.getFileName())
|
||||
.orderBy(false, false, InspectionFile::getCreateTime));
|
||||
|
||||
Map<Long, InspectionFile> fileCache = fileList.stream()
|
||||
.collect(Collectors.toMap(InspectionFile::getId, file -> file));
|
||||
|
||||
// 3. 判断是否传递了fatherId参数(即点击了文件夹)
|
||||
@ -323,20 +355,25 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
}
|
||||
|
||||
// 去重操作,优化查询时已经进行了判断,可以删除重复文件
|
||||
List<InspectionFile> collect = resultFiles.stream().distinct().collect(Collectors.toList());
|
||||
// List<InspectionFile> collect = resultFiles.stream().distinct().collect(Collectors.toList());
|
||||
if (ObjectUtil.isNotEmpty(inspectionFile.getFileName())) {
|
||||
//模糊匹配对应名称
|
||||
collect = collect.stream().filter(file -> file.getFileName().contains(inspectionFile.getFileName())).collect(Collectors.toList());
|
||||
resultFiles = resultFiles.stream().filter(file -> file.getFileName().contains(inspectionFile.getFileName())).collect(Collectors.toSet());
|
||||
}
|
||||
return collect;
|
||||
return resultFiles;
|
||||
}
|
||||
|
||||
// 获取文件夹内的所有文件(包括子文件夹的内容)
|
||||
private List<InspectionFile> getFilesInFolder(Long folderId, List<Long> accessibleFileIds, Map<Long, InspectionFile> fileCache) {
|
||||
List<InspectionFile> filesInFolder = new ArrayList<>();
|
||||
// 获取该文件夹下的所有子文件
|
||||
List<InspectionFile> folderFiles = this.list(new LambdaQueryWrapper<InspectionFile>()
|
||||
.eq(InspectionFile::getFatherId, folderId));
|
||||
// List<InspectionFile> folderFiles = this.list(new LambdaQueryWrapper<InspectionFile>()
|
||||
// .eq(InspectionFile::getFatherId, folderId));
|
||||
|
||||
// 直接从 fileCache 过滤出当前 folderId 直接包含的子文件
|
||||
List<InspectionFile> folderFiles = fileCache.values().stream()
|
||||
.filter(file -> folderId.equals(file.getFatherId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
for (InspectionFile folderFile : folderFiles) {
|
||||
// 默认检查当前文件是否有权限
|
||||
@ -367,8 +404,12 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
// 检查当前文件夹下是否有权限的子文件或子文件夹
|
||||
private boolean hasAccessToSubFiles(InspectionFile folderFile, List<Long> accessibleFileIds, Map<Long, InspectionFile> fileCache) {
|
||||
// 获取文件夹内的所有子文件
|
||||
List<InspectionFile> subFiles = this.list(new LambdaQueryWrapper<InspectionFile>()
|
||||
.eq(InspectionFile::getFatherId, folderFile.getId()));
|
||||
// List<InspectionFile> subFiles = this.list(new LambdaQueryWrapper<InspectionFile>()
|
||||
// .eq(InspectionFile::getFatherId, folderFile.getId()));
|
||||
|
||||
List<InspectionFile> subFiles = fileCache.values().stream()
|
||||
.filter(file -> folderFile.getId().equals(file.getFatherId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 如果文件夹下有文件且其中一个文件有权限,则返回true
|
||||
for (InspectionFile subFile : subFiles) {
|
||||
|
@ -0,0 +1,6 @@
|
||||
<?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="cn.iocoder.yudao.module.inspection.mapper.InspectionFileRecordMapper">
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user