文件记录-添加文件修改通知单

This commit is contained in:
YBP
2026-04-07 18:20:38 +08:00
parent d12af3b102
commit 1f1df467d4
8 changed files with 130 additions and 27 deletions

View File

@@ -19,6 +19,8 @@ public class RecordConstants {
public static final String DEPT = "部门";
/** admin */
public static final String ADMIN = "admin";
/** 文件 */
public static final String FILE = "文件";
}
/**
@@ -68,6 +70,8 @@ public class RecordConstants {
* 文件提交
* */
public static final String RECORD_UPDATE = "文件更改";
public static final String CHANGE_NOTICE = "更改通知单";
}
/**

View File

@@ -11,6 +11,7 @@ import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO;
import com.zt.plat.module.qms.common.service.BusinessFileService;
import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplyPageReqVO;
import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplyRespVO;
@@ -110,7 +111,11 @@ public class RecordApplyController extends AbstractFileUploadController implemen
// 先转换为VO避免JSONObject中包含ArrayList导致的转换错误
RecordApplyRespVO respVO = BeanUtils.toBean(recordApply, RecordApplyRespVO.class);
respVO.setBusinessFileRet(businessFileService.getBusinessFileList(id));
CommonResult<List<BusinessFileWithUrlRespDTO>> businessFileList = businessFileService.getBusinessFileList(id);
if (businessFileList.getData() != null) {
businessFileList.getData().forEach(item -> item.setFileUrl(null));
}
respVO.setBusinessFileRet(businessFileList);
return success(respVO);
}

View File

@@ -104,15 +104,6 @@ public class RecordApplySaveReqVO {
@Schema(description = "删除的文件id")
private List<Long> deleteFileIdList;
// @Schema(description = "文件记录ID")
// private Long recordId;
//
// @Schema(description = "用户IDs")
// private Long[] userIds;
//
// @Schema(description = "用户IDs")
// private Long[] deptIds;
private List<RecordApplyDetailSaveReqVO> detailList;
// 记录Id

View File

@@ -8,13 +8,22 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
import com.zt.plat.module.infra.api.businessfile.BusinessFileApi;
import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileRespDTO;
import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO;
import com.zt.plat.module.infra.api.file.FileApi;
import com.zt.plat.module.infra.api.file.dto.FileRespDTO;
import com.zt.plat.module.qms.common.service.BusinessFileService;
import com.zt.plat.module.qms.resource.record.constant.RecordConstants;
import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailPageReqVO;
import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionRespVO;
import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordPageReqVO;
import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordRespVO;
import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordSaveReqVO;
import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO;
import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO;
import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO;
import com.zt.plat.module.qms.resource.record.service.recordapplydetail.RecordApplyDetailService;
import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPermissionService;
import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordService;
import io.swagger.v3.oas.annotations.Operation;
@@ -23,10 +32,14 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
@@ -54,6 +67,12 @@ public class RecordRecordController extends AbstractFileUploadController impleme
@Resource
private BusinessFileService businessFileService;
@Resource
private RecordApplyDetailService recordApplyDetailService;
@Resource
private FileApi fileApi;
@PostMapping("/create")
@Operation(summary = "创建文件、模板、记录->分类明细")
@@ -93,10 +112,37 @@ public class RecordRecordController extends AbstractFileUploadController impleme
@Operation(summary = "获得文件、模板、记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
//@PreAuthorize("@ss.hasPermission('qms:record-record:query')")
public CommonResult<RecordRecordRespVO> getRecordRecord(@RequestParam("id") Long id) {
public CommonResult<RecordRecordRespVO> getRecordRecord(@RequestParam("id") Long id, @RequestParam(value = "changNoticeFlag", required = false) Long changNoticeFlag) {
RecordRecordDO recordRecord = recordRecordService.getRecordRecord(id);
RecordRecordRespVO vo = BeanUtils.toBean(recordRecord, RecordRecordRespVO.class);
vo.setBusinessFileRet(businessFileService.getBusinessFileList(id));
CommonResult<List<BusinessFileWithUrlRespDTO>> businessFileList = businessFileService.getBusinessFileList(id);
if (businessFileList.getData() != null) {
businessFileList.getData().forEach(item -> item.setFileUrl(null));
}
vo.setBusinessFileRet(businessFileList);
// 获取修改通知单
if (changNoticeFlag == null || changNoticeFlag == 0) return success(vo);
RecordApplyDetailPageReqVO pageReqVO = new RecordApplyDetailPageReqVO();
pageReqVO.setPageSize(-1);
pageReqVO.setDocumentId(id);
pageReqVO.setTargetType(RecordConstants.TargetType.FILE);
List<RecordApplyDetailDO> recordApplyDetailDOS = recordApplyDetailService.selectList(pageReqVO);
if (ObjectUtils.isEmpty(recordApplyDetailDOS)) return success(vo);
Set<Long> targetIds = recordApplyDetailDOS.stream().map(RecordApplyDetailDO::getTargetId).collect(Collectors.toSet());
if (!ObjectUtils.isEmpty(targetIds)){
targetIds.forEach(targetId -> {
CommonResult<FileRespDTO> fileInfo = fileApi.getFileInfo(targetId);
if (fileInfo.getData() != null) {
FileRespDTO data = fileInfo.getData();
data.setUrl(null);
if (vo.getChangeNoticeList() == null) {
vo.setChangeNoticeList(new ArrayList<>());
}
vo.getChangeNoticeList().add(fileInfo.getData());
}
});
}
return success(vo);
}

View File

@@ -4,7 +4,9 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO;
import com.zt.plat.module.infra.api.file.dto.FileRespDTO;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -165,11 +167,6 @@ public class RecordRecordRespVO {
@Schema(description = "文件提交申请ID")
private Long applyId;
// @Schema(description = "文件提交流程实例ID")
// private String flowInstanceId;
// @Schema(description = "文件提交业务状态")
// @Dict(dicCode = "flow_status")
// private String applyBusinessStatus;
private List<FileRespDTO> ChangeNoticeList; //
}

View File

@@ -1,5 +1,7 @@
package com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.infra.api.file.dto.FileRespDTO;
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@@ -145,6 +147,7 @@ public class RecordApplyDetailDO extends BusinessBaseDO {
@TableField(exist = false)
private LocalDateTime expirationDate;
@TableField(exist = false)
private FileRespDTO fileInfo;
}

View File

@@ -364,7 +364,7 @@ public class RecordRecordServiceImpl implements RecordRecordService {
} else {
JSONObject jsonObject = JSONObject.parseObject(customConfig);
Integer submitFlag = jsonObject.getInteger("submitFlag");
if (submitFlag == 0) { // 不需要提交的,判断状态
if (submitFlag == null || submitFlag == 0) { // 不需要提交的,判断状态
int sts = calculateRecordStatus(effectiveDate, expirationDate);
if (sts == 3) recordDO.setExpirationStatus(1); //过期
else recordDO.setRecordStatus(sts);
@@ -532,6 +532,10 @@ public class RecordRecordServiceImpl implements RecordRecordService {
List<Long> categoryIds = selectCategoryIds(categoryId);
LambdaQueryWrapper<RecordRecordDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.in(RecordRecordDO::getCategoryId, categoryIds);
if(!ObjectUtils.isEmpty(pageReqVO.getCancelFlag())) // 作废
lambdaQueryWrapper.eq(RecordRecordDO::getCancelFlag, pageReqVO.getCancelFlag());
if (!ObjectUtils.isEmpty(pageReqVO.getExpirationStatus())) // 过期
lambdaQueryWrapper.eq(RecordRecordDO::getExpirationStatus, pageReqVO.getExpirationStatus());
if (!ObjectUtils.isEmpty(pageReqVO.getCurrentFlag()))
lambdaQueryWrapper.like(RecordRecordDO::getCurrentFlag, pageReqVO.getCurrentFlag());// 查询最新版本/旧版本
if (!ObjectUtils.isEmpty(pageReqVO.getName()))