From 89ebf4437c88bf9e55bab99e39ef48b228189374 Mon Sep 17 00:00:00 2001 From: YBP Date: Tue, 24 Mar 2026 18:21:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=AE=B0=E5=BD=95-=E9=87=8D?= =?UTF-8?q?=E6=9E=84-=E9=80=9A=E7=94=A8=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/qms/enums/ErrorCodeConstants.java | 1 + .../recordapply/CommonRecordController.java | 8 +- .../vo/RecordApplyDetailPageReqVO.java | 8 +- .../vo/RecordApplyDetailRespVO.java | 8 +- .../vo/RecordApplyDetailSaveReqVO.java | 6 + .../vo/RecordPermissionPageReqVO.java | 10 +- .../vo/RecordPermissionRespVO.java | 11 +- .../vo/RecordPermissionSaveReqVO.java | 9 +- .../recordrecord/RecordRecordController.java | 19 +- .../vo/RecordRecordPageReqVO.java | 2 +- .../recordrecord/vo/RecordRecordRespVO.java | 3 +- .../vo/RecordRecordSaveReqVO.java | 2 +- .../RecordApplyDetailDO.java | 10 + .../recordpermission/RecordPermissionDO.java | 12 +- .../recordrecord/RecordRecordDO.java | 10 +- .../dal/mapper/RecordCategoryMapper.java | 11 + .../record/dal/mapper/RecordRecordMapper.java | 7 +- .../recordapply/RecordApplyServiceImpl.java | 359 +++++++++--------- .../RecordApplyDetailService.java | 2 + .../RecordApplyDetailServiceImpl.java | 8 + .../recordcategory/RecordCategoryService.java | 2 +- .../RecordCategoryServiceImpl.java | 10 +- .../RecordPermissionService.java | 3 +- .../RecordPermissionServiceImpl.java | 5 +- .../recordrecord/RecordRecordService.java | 2 +- .../recordrecord/RecordRecordServiceImpl.java | 305 +++++++-------- .../dal/mapper/RecordPermissionMapper.xml | 17 +- .../record/dal/mapper/RecordRecordMapper.xml | 126 +++--- 28 files changed, 495 insertions(+), 481 deletions(-) diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java index e6134bfe..78ca7aca 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java @@ -248,6 +248,7 @@ public interface ErrorCodeConstants { /*================================= 部门信息、用户信息 ==================================*/ ErrorCode CURRENT_USER_COMPANY_NOT_EXISTS = new ErrorCode(1_032_350_000, "当前用户公司不存在"); ErrorCode CURRENT_USER_DEPT_NOT_EXISTS = new ErrorCode(1_032_350_000, "当前用户部门不存在"); + ErrorCode CURRENT_USER_NOT_EXISTS = new ErrorCode(1_032_350_000, "当前用户部门不存在"); // ========== 文件记录分发号,记录文件分发与线下对应的分发号对应,且标记到目标人物 TODO 补充编号 ========== ErrorCode RECORD_ASSIGN_NOT_EXISTS = new ErrorCode(1_032_450_000, "文件记录分发号,记录文件分发与线下对应的分发号对应,且标记到目标人物不存在"); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java index ed39b782..86ff169d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java @@ -40,10 +40,6 @@ public class CommonRecordController { @Resource private AdminUserApi adminUserApi; - private List deptDataList = new ArrayList<>(); - - private CommonResult> userDataList; - @Resource private PermissionCommonApi permissionCommonApi; @@ -88,7 +84,7 @@ public class CommonRecordController { return; } - List deptIds = new ArrayList<>(); +// List deptIds = new ArrayList<>(); for (DeptRespDTO deptRespDTO : list) { CommonResult> result = deptApi.getChildDeptList(deptRespDTO.getId()); if (result != null && result.isSuccess()) { @@ -107,7 +103,7 @@ public class CommonRecordController { @Operation(summary = "获得当前公司下面的所有用户") //@PreAuthorize("@ss.hasPermission('qms:record-relation:query')") public CommonResult> getUserList() { -// if (userDataList != null) return userDataList; + CommonResult> userDataList; CommonResult> deptList = this.getDeptList(); List data = deptList.getData(); // 获取部门的所有id diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java index fe5fd7c4..89203f2b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java @@ -23,7 +23,7 @@ public class RecordApplyDetailPageReqVO extends PageParam { private Long documentId; @Schema(description = "授权类型") - private String TargetType; + private String targetType; @Schema(description = "授权Id") private Long targetId; @@ -38,6 +38,12 @@ public class RecordApplyDetailPageReqVO extends PageParam { @Schema(description = "更改原因") private String modifyCause; + @Schema(description = "是否保留") + private String saveFlag; + + @Schema(description = "保留结束日期") + private LocalDateTime saveEndDate; + @Schema(description = "是否长期有效") private String permanently; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java index eda0b59e..f2185be7 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java @@ -28,7 +28,7 @@ public class RecordApplyDetailRespVO { @Schema(description = "授权类型") @ExcelProperty("授权类型") - private String TargetType; + private String targetType; @Schema(description = "授权名称") private String targetName; @@ -58,6 +58,12 @@ public class RecordApplyDetailRespVO { @ExcelProperty("是否长期有效") private String permanently; + @Schema(description = "是否保留") + private String saveFlag; + + @Schema(description = "保留结束日期") + private LocalDateTime saveEndDate; + @Schema(description = "开始日期") @ExcelProperty("开始日期") private LocalDateTime applyStartDate; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java index 37fef6f3..c4453aed 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java @@ -37,6 +37,12 @@ public class RecordApplyDetailSaveReqVO { @Schema(description = "更改原因") private String modifyCause; + @Schema(description = "是否保留") + private String saveFlag; + + @Schema(description = "保留结束日期") + private LocalDateTime saveEndDate; + private String formData; @Schema(description = "是否长期有效") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java index 1027892d..2d146de8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java @@ -1,6 +1,7 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo; import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -20,9 +21,6 @@ public class RecordPermissionPageReqVO extends PageParam { @Schema(description = "记录类型", example = "1") private String sourceType; -// @Schema(description = "记录分类ID", example = "1") -// private Long categoryId; - @Schema(description = "记录id", example = "1104") private Long sourceId; @@ -54,6 +52,12 @@ public class RecordPermissionPageReqVO extends PageParam { @Schema(description = "作废标识,0-有效,1-作废") private String cancelFlag; + @Schema(description = "是否保留标志") + private String saveFlag; + + @Schema(description = "保留结束日期") + private String saveEndDate; + @Schema(description = "所属部门") private String systemDepartmentCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java index 889fdcf7..ac24fcf1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java @@ -25,10 +25,6 @@ public class RecordPermissionRespVO { @ExcelProperty("记录类型") private String sourceType; -// @Schema(description = "记录分类ID", example = "1") -// @ExcelProperty("记录分类ID") -// private Long categoryId; - @Schema(description = "记录id", example = "1104") @ExcelProperty("记录id") private Long sourceId; @@ -70,6 +66,13 @@ public class RecordPermissionRespVO { @ExcelProperty("作废标识,0-有效,1-作废") private String cancelFlag; + + @Schema(description = "是否保留标志") + private String saveFlag; + + @Schema(description = "保留结束日期") + private String saveEndDate; + @Schema(description = "所属部门") @ExcelProperty("所属部门") private String systemDepartmentCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java index 4d848112..ab49d3e3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java @@ -21,9 +21,6 @@ public class RecordPermissionSaveReqVO { @Schema(description = "记录类型", example = "1") private String sourceType; -// @Schema(description = "记录分类ID", example = "1") -// private Long categoryId; - @Schema(description = "记录id", example = "1104") private Long sourceId; @@ -57,6 +54,12 @@ public class RecordPermissionSaveReqVO { @Schema(description = "作废标识,0-有效,1-作废") private String cancelFlag; + @Schema(description = "是否保留标志") + private String saveFlag; + + @Schema(description = "保留结束日期") + private String saveEndDate; + @Schema(description = "所属部门") private String systemDepartmentCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java index 181c919e..db9ac39c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java @@ -7,6 +7,7 @@ import com.zt.plat.framework.common.pojo.CommonResult; 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.qms.common.service.BusinessFileService; 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; @@ -34,7 +35,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/qms/resource/record-record") @Validated -//@DeptDataPermissionIgnore(enable = "true") +@DeptDataPermissionIgnore(enable = "true") @FileUploadController(source = "qms.recordrecord", codeKey = "data.fileUploadBusinessCode") public class RecordRecordController extends AbstractFileUploadController implements BusinessControllerMarker { @@ -142,14 +143,14 @@ public class RecordRecordController extends AbstractFileUploadController impleme // 流程-评审--查询记录列表 - @GetMapping("/getRecordList") - @Operation(summary = "获得文件、模板、记录分页") - //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") - public CommonResult> getRecordList(RecordRecordPageReqVO pageReqVO) { - - List result = recordRecordService.getRecordList(pageReqVO); - return success(BeanUtils.toBean(result, RecordRecordRespVO.class)); - } +// @GetMapping("/getRecordList") +// @Operation(summary = "获得文件、模板、记录分页") +// //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") +// public CommonResult> getRecordList(RecordRecordPageReqVO pageReqVO) { +// +// List result = recordRecordService.getRecordList(pageReqVO); +// return success(BeanUtils.toBean(result, RecordRecordRespVO.class)); +// } /** * 流程-查看申请--查询记录列表 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java index eb152b49..f7c09dd4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java @@ -100,7 +100,7 @@ public class RecordRecordPageReqVO extends PageParam { private Integer collectionFlag; @Schema(description = "审批状态,需要走流程的审批状态") - private Integer ApplyStatus; + private String ApplyStatus; @Schema(description = "流程实例Id") private String flowInstanceId; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java index 6c44f6d6..42c15793 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java @@ -110,7 +110,8 @@ public class RecordRecordRespVO { private Integer cancelFlag; @Schema(description = "审批状态,需要走流程的审批状态") - private Integer ApplyStatus; + @Dict(dicCode = "flow_status") + private String ApplyStatus; @Schema(description = "流程实例Id") private String flowInstanceId; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java index 568246ca..1dadb4c4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java @@ -80,7 +80,7 @@ public class RecordRecordSaveReqVO { private Integer cancelFlag; @Schema(description = "审批状态,需要走流程的审批状态") - private Integer ApplyStatus; + private String ApplyStatus; @Schema(description = "流程实例Id") private String flowInstanceId; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java index 2ae0e1ec..b1389114 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java @@ -76,6 +76,16 @@ public class RecordApplyDetailDO extends BusinessBaseDO { */ @TableField("MDF_CAUS") private String modifyCause; + /** + * 是否保留 + */ + @TableField("SVE_FLG") + private String saveFlag; + /** + * 保留结束日期 + */ + @TableField("SVE_END_DT") + private LocalDateTime saveEndDate; /** * 是否长期有效 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java index 8b2dbb5c..2f124cfa 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java @@ -44,11 +44,6 @@ public class RecordPermissionDO extends BusinessBaseDO { */ @TableField("SRC_TP") private String sourceType; - /** - * 记录分类ID - */ -// @TableField("CTGR_ID") -// private Long categoryId; /** * 记录id */ @@ -100,11 +95,16 @@ public class RecordPermissionDO extends BusinessBaseDO { @TableField("CNL_FLG") private String cancelFlag; /** - * 保留权限回收 + * 是否保留 */ @TableField("SVE_FLG") private String saveFlag; /** + * 保留结束日期 + */ + @TableField("SVE_FLG") + private String saveEndDate; + /** * 所属部门 */ @TableField("SYS_DEPT_CD") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java index e58b6315..4b393c64 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java @@ -132,7 +132,7 @@ public class RecordRecordDO extends BusinessBaseDO { * 审批状态,需要走流程的审批状态 */ @TableField("APL_STS") - private Integer ApplyStatus; + private String ApplyStatus; /** * 流程实例Id */ @@ -201,8 +201,8 @@ public class RecordRecordDO extends BusinessBaseDO { /** * 文件提交申请ID(RecordApply.id) */ - @TableField(exist = false) - private Long applyId; +// @TableField(exist = false) +// private Long applyId; // /** // * 文件提交流程实例ID(RecordApply.flowInstanceId) @@ -213,7 +213,7 @@ public class RecordRecordDO extends BusinessBaseDO { /** * 文件提交业务状态(RecordApply.businessStatus) */ - @TableField(exist = false) - private String applyBusinessStatus; +// @TableField(exist = false) +// private String applyBusinessStatus; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java index 38c28573..70e6c281 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java @@ -6,6 +6,7 @@ import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryPageReqVO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 文件记录分类 Mapper @@ -32,4 +33,14 @@ public interface RecordCategoryMapper extends BaseMapperX { .orderByDesc(RecordCategoryDO::getId)); } + /** + * 通过查询 JSON 字段(CST_CFG)中 appraisalFlag = 1 的值,获取指定 ID 的分类记录 + * 注:使用达梦 JSON_VALUE 函数解析 JSON 字符串字段 + * + * @param categoryRootId + * @return 匹配的分类 DO,不存在返回 null + */ + @Select("SELECT * FROM t_rcd_ctgr WHERE deleted = 0 AND id = #{categoryRootId} AND JSON_VALUE(CST_CFG, '$.appraisalFlag') = '1'") + RecordCategoryDO selectCategoryAppraisalDO(Long categoryRootId); + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java index f7fa073f..ac6c62b8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java @@ -90,11 +90,14 @@ public interface RecordRecordMapper extends BaseMapperX { @Param("reqVO") RecordRecordPageReqVO reqVO, @Param("pathList") List pathList); - IPage getEffectiveRecordPage(Page page, - RecordRecordPageReqVO reqVO); + IPage getSubmitEffectRecordPage(Page page, + RecordRecordPageReqVO reqVO, + List categoryIds); IPage getEffectiveRecordBySubmitFlagPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO); + IPage getNotSubmitEffectRecordPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO, List categoryIds); + // TODO // List selectViewApplyRecordList(@Param("pageReqVO") RecordRecordPageReqVO pageReqVO); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java index f877903b..688bb136 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java @@ -15,6 +15,7 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import com.zt.plat.module.qms.api.task.BMPCallbackInterface; import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; import com.zt.plat.module.qms.common.data.dal.dataobject.DataCommonType; import com.zt.plat.module.qms.common.data.dal.dataobject.DataOpinionDO; import com.zt.plat.module.qms.common.data.service.DataKeyCheckService; @@ -109,8 +110,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Resource private RecordAssignService recordAssignService; - private LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - @Override public RecordApplyRespVO createRecordApply(RecordApplySaveReqVO createReqVO) { // 插入 @@ -125,17 +124,35 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn public RecordApplyRespVO updateRecordApply(RecordApplySaveReqVO updateReqVO) { // 校验存在 // validateRecordApplyExists(updateReqVO.getId()); - RecordApplyDO recordApplyDO = recordApplyMapper.selectById(updateReqVO.getId()); + Long applyId = updateReqVO.getId(); + RecordApplyDO recordApplyDO = recordApplyMapper.selectById(applyId); if (ObjectUtils.isEmpty(recordApplyDO)) CommonResult.error(RECORD_APPLY_NOT_EXISTS); - // 更新 + // 查询所有明细 RecordApplyDO updateObj = BeanUtils.toBean(updateReqVO, RecordApplyDO.class); + List detailList = updateObj.getDetailList(); + // 判断更新中的明细是否存在 + //判断 detailList 中的数据 和 数据库中 recordApplyDetail 的数据是否一致,如果有相同的,数据保持不变,有新的,则插入; + // detailList 中没有的数据,则删除 recordApplyDetail 表中的数据 + List detailIds = new ArrayList<>(); + List newDetailList = new ArrayList<>(); + detailList.forEach(item->{ + if (item.getId() != null) detailIds.add(item.getId()); // 有id的 + else { + item.setApplyId(applyId); + newDetailList.add( item); // 新数据 + } + }); + List deleteDetailAllList = recordApplyDetailService.selectNotInDetailIdList(applyId,detailIds); + if (!ObjectUtils.isEmpty(deleteDetailAllList)){ + List deleteDetailIds = deleteDetailAllList.stream().map(RecordApplyDetailDO::getId).toList(); + recordApplyDetailService.deleteRecordApplyDetailListByIds(deleteDetailIds); + } + // 更新 + if (!ObjectUtils.isEmpty(newDetailList)) { + recordApplyDetailService.createRecordApplyDetailBatch(newDetailList); + } String businessType = recordApplyDO.getBusinessType(); updateReqVO.setBusinessType(businessType); - // 删除明细-->重新添加 - int i = recordApplyDetailService.deleteRecordApplyDetailByApplyId(recordApplyDO.getId()); - if (i > 0) { - createApplyDetailData(updateReqVO, recordApplyDO); - } recordApplyMapper.updateById(updateObj); @@ -185,13 +202,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn else recordApplyDetailDOS = recordApplyDetailService.selectDetailAndRecordList(id); if (!recordApplyDetailDOS.isEmpty()) recordApplyDO.setDetailList(recordApplyDetailDOS); -// List detailDOIdS = new ArrayList<>(); -// for (RecordApplyDetailDO detailDO : recordApplyDetailDOS) { -// Long detailDOId = detailDO.getId(); -// detailDOIdS.add(detailDOId); -// } -// List recordAssignDOList = recordAssignService.selectRecordAssignList(detailDOIdS); -// recordApplyDO.setAssignList(recordAssignDOList); return recordApplyDO; } @@ -233,6 +243,8 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Override @Transactional(rollbackFor = Exception.class) public CommonResult createApplyData(RecordApplySaveReqVO param) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (ObjectUtils.isEmpty(loginUser)) throw exception0(CURRENT_USER_NOT_EXISTS.getCode(), "用户不存在"); List detailList = param.getDetailList(); if (ObjectUtils.isEmpty(detailList)) @@ -265,7 +277,9 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn detailSaveReqVOList = addViewApplyDetail(param, recordApply); break; case RecordConstants.BusinessType.RECORD_SUBMIT: // 提交 - detailSaveReqVOList = addRecordSubmitDetail(param, recordApply); + Long recordId = param.getDetailList().get(0).getDocumentId(); // 记录Id + Long applyId = recordApply.getId(); // 申请Id + detailSaveReqVOList = addRecordSubmitDetail(recordId, applyId); break; } @@ -291,7 +305,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApplyDetailDO.setFormData(item.getFormData()); detailSaveReqVOList.add(recordApplyDetailDO); } -// recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); return detailSaveReqVOList; } @@ -306,44 +319,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn item.setApplyStartDate(LocalDateTime.now()); } List bean = BeanUtils.toBean(detailList, RecordApplyDetailDO.class); -// RecordApplyDetailSaveReqVO saveReqVO = param.getDetailList().get(0); -// String assignCode = saveReqVO.getAssignCode(); // 分发号 -// RecordAssignDO recordAssignDO = new RecordAssignDO(); -// recordAssignService.createRecordAssignBatch(recordAssignDO); -// Long recordId = param.getDetailList().get(0).getDocumentId(); -// String applyFormData = param.getFormData(); -// if (ObjectUtils.isEmpty(applyFormData)) throw exception0(RECORD_APPLY_NOT_EXISTS.getCode(),"过期日期不能为空"); -// List detailSaveReqVOList = new ArrayList<>(); -// String targetUserIds = param.getTargetUserIds(); -// if (!ObjectUtils.isEmpty(targetUserIds)) { // 用户 -// String[] userIds = targetUserIds.split(","); -// for (String userId : userIds) { -// if (ObjectUtils.isEmpty(userId)) break; // 过滤空 -// RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); -// recordApplyDetailDO.setFormData(applyFormData); -// recordApplyDetailDO.setApplyId(recordApplyDO.getId()); -// recordApplyDetailDO.setDocumentId(recordId); -// recordApplyDetailDO.setTargetId(Long.valueOf(userId));//用户Id -// recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); -// recordApplyDetailDO.setApplyStartDate(LocalDateTime.now()); // TODO 申请开始时间 -// detailSaveReqVOList.add(recordApplyDetailDO); -// } -// } -// String targetDepartmentIds = param.getTargetDepartmentIds(); -// if (!ObjectUtils.isEmpty(targetDepartmentIds)) { -// String[] deptIds = targetDepartmentIds.split(","); -// for (String deptId : deptIds) { -// if (ObjectUtils.isEmpty(deptId)) break; // 过滤空 -// RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); -// recordApplyDetailDO.setFormData(applyFormData); -// recordApplyDetailDO.setApplyId(recordApplyDO.getId()); -// recordApplyDetailDO.setDocumentId(recordId); -// recordApplyDetailDO.setTargetId(Long.valueOf(deptId));//部门Id -// recordApplyDetailDO.setTargetType(RecordConstants.TargetType.DEPT); -// recordApplyDetailDO.setApplyStartDate(LocalDateTime.now()); // TODO 申请开始时间 -// detailSaveReqVOList.add(recordApplyDetailDO); -// } -// } return bean; } @@ -360,7 +335,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApplyDetailDO.setFormData(item.getFormData()); detailSaveReqVOList.add(recordApplyDetailDO); } -// recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); return detailSaveReqVOList; } @@ -377,7 +351,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApplyDetailDO.setFormData(item.getFormData()); detailSaveReqVOList.add(recordApplyDetailDO); } -// recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); return detailSaveReqVOList; } @@ -397,20 +370,22 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApplyDetailDO.setFormData(item.getFormData()); detailSaveReqVOList.add(recordApplyDetailDO); } -// recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); return detailSaveReqVOList; } // 添加文件提交明细 - public List addRecordSubmitDetail(RecordApplySaveReqVO param, RecordApplyDO recordApplyDO) { -// List detailList = param.getDetailList(); + public List addRecordSubmitDetail(Long recordId, Long applyId) { List detailSaveReqVOList = new ArrayList<>(); RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); - Long recordId = param.getDetailList().get(0).getDocumentId(); - recordApplyDetailDO.setApplyId(recordApplyDO.getId()); +// Long recordId = param.getDetailList().get(0).getDocumentId(); + recordApplyDetailDO.setApplyId(applyId); recordApplyDetailDO.setDocumentId(recordId); // 文件Id + recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + recordApplyDetailDO.setTargetId(loginUser.getId()); + String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname(); + recordApplyDetailDO.setTargetName(loginUserNickname); detailSaveReqVOList.add(recordApplyDetailDO); -// recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); return detailSaveReqVOList; } @@ -577,6 +552,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn // 提交申请-发起流程, 更新 实例Id到文件记录 if (paramBusinessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)){ recordRecordDO.setFlowInstanceId(wfInsId); + recordRecordDO.setApplyStatus(QmsCommonConstant.IN_PROGRESS); recordRecordService.updateRecordRecordById(recordRecordDO); } @@ -588,7 +564,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Transactional(rollbackFor = Exception.class) public CommonResult callback(QmsBpmDTO reqDTO) { log.error("文件下发流程回调:{}", JSONObject.toJSONString(reqDTO)); - loginUser = SecurityFrameworkUtils.getLoginUser(); + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); if (ObjectUtils.isEmpty(loginUser)) throw exception0(CURRENT_USER_DEPT_NOT_EXISTS.getCode(), "当前用户不存在,请重新登录"); JSONObject variables = reqDTO.getVariables(); @@ -606,8 +582,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn RecordApplyDO recordApplyDO = recordApplyMapper.selectById(Long.valueOf(mainId)); // 申请记录 if (recordApplyDO == null) throw exception0(RECORD_APPLY_NOT_EXISTS.getCode(), "申请记录不存在"); - JSONObject ret = new JSONObject(); - //同一个节点实例只触发一次 String checkKey = currentActivityInsId; if (ObjectUtils.isEmpty(currentActivityInsId)) @@ -621,118 +595,148 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn return CommonResult.success(new JSONObject()); } + //流程状态 1-提交(含退回) 4-取消流程 String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); + JSONArray fieldExtensions = new JSONArray(); + if(variables.containsKey(QmsBpmConstant.BPM_FIELD_EXTENSIONS)){ + fieldExtensions = variables.getJSONArray(QmsBpmConstant.BPM_FIELD_EXTENSIONS); + } - JSONArray bpmFieldExtensions = variables.getJSONArray("bpmFieldExtensions"); - String firstActivityFlag = IntStream.range(0, bpmFieldExtensions.size()) - .mapToObj(bpmFieldExtensions::getJSONObject) - .filter(field -> "firstActivityFlag".equals(field.getString("fieldName"))) - .map(field -> field.getString("stringValue")) - .findFirst() - .orElse(null); - - log.info("firstActivityFlag:{}", firstActivityFlag); - - if ("1".equals(firstActivityFlag)) { // 执行到申请人节点,待处理 - if (PROCESS_STATUS.equals("1")) { -// recordApplyDO.setBusinessStatus(QmsCommonConstant.RUNNING); -// recordApplyMapper.updateById(recordApplyDO); - return CommonResult.success(ret); - } else if ("3".equals(PROCESS_STATUS)) { - // 提交流程,发起人拒绝,修改提交状态 - if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)){ - Long applyId = recordApplyDO.getId(); - List recordApplyDetailDOS = recordApplyDetailService.selectAllList(applyId); - if (ObjectUtils.isEmpty(recordApplyDetailDOS)) throw exception0(RECORD_APPLY_DETAIL_NOT_EXISTS.getCode(),"申请明细不存在"); - RecordApplyDetailDO recordApplyDetailDO = recordApplyDetailDOS.get(0); - Long documentId = recordApplyDetailDO.getDocumentId(); - RecordRecordDO recordDO = new RecordRecordDO(); - recordDO.setId(documentId); - recordDO.setSubmitFlag("0"); - recordRecordService.updateRecordRecordById(recordDO); + //判断是否最后一个节点 + String lastActivityFlag = "0"; + String firstActivityFlag = "0"; + if(!fieldExtensions.isEmpty()){ + for(int i = 0; i < fieldExtensions.size(); i++){ + JSONObject extension = fieldExtensions.getJSONObject(i); + String fieldName = extension.getString("fieldName"); + String stringValue = extension.getString("stringValue"); + if(ObjectUtils.isEmpty(stringValue)) + stringValue = ""; + if(fieldName.equalsIgnoreCase(QmsBpmConstant.BPM_LAST_ACTIVITY_FLAG) && stringValue.equals("1")){ + lastActivityFlag = "1"; + } + if(fieldName.equalsIgnoreCase(QmsBpmConstant.BPM_FIRST_ACTIVITY_FLAG) && stringValue.equals("1")){ + firstActivityFlag = "1"; } - // 发起人拒绝,申请作废 - recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); - recordApplyMapper.updateById(recordApplyDO); - return CommonResult.success(ret); } } - // 拒绝,PROCESS_STATUS 状态是3,拒绝。回退上一步流程,修改状态 - if ("3".equals(PROCESS_STATUS)) { - if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)) { - recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); - recordApplyMapper.updateById(recordApplyDO); - return CommonResult.success(ret); - } - String businessStatus = recordApplyDO.getBusinessStatus(); - if ("running".equals(businessStatus)) { - recordApplyDO.setBusinessStatus(QmsCommonConstant.NOT_START); - } else if ("not_start".equals(businessStatus)) { // 直接作废 - recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); - } - recordApplyMapper.updateById(recordApplyDO); - return CommonResult.success(ret); - } - -// if (("1").equals(returnFlag)) { -// //驳回,状态变更为未发起 TODO -//// entity.setBusinessStatus(QmsCommonConstant.NOT_START); -//// dataOpinionService.disableOpinionsByBusId(entity.getId()); -// } else if ("4".equals(PROCESS_STATUS)) { -// //作废 TODO -//// entity.setBusinessStatus(QmsCommonConstant.VOID); -// } else - if ("1".equals(PROCESS_STATUS)) { - //通过 - List recordApplyDetailDOS = recordApplyDetailService.selectList(new RecordApplyDetailPageReqVO().setApplyId(Long.valueOf(mainId))); - if (ObjectUtils.isEmpty(recordApplyDetailDOS)) - throw exception0(RECORD_RECORD_NOT_EXISTS.getCode(), "未找到对应的申请明细记录"); - // TODO 业务代码,通过业务类型判断 - List recordRecordDOS = new ArrayList<>(); - switch (businessType) { - case RecordConstants.BusinessType.RECORD_SUBMIT: - recordSubmitCallHandle(recordApplyDetailDOS); - break; - case RecordConstants.BusinessType.REVIEW: // 评审 - reviewCallHandle(recordApplyDetailDOS); - break; - case RecordConstants.BusinessType.DISTRIBUTION: // 分发 - recordPermissionAdd(recordApplyDetailDOS); - // 更改申请流程 - break; - case RecordConstants.BusinessType.RECORD_UPDATE: // 修改申请 - break; - case RecordConstants.BusinessType.VIEW_APPLY: // 查看申请 - recordPermissionAdd(recordApplyDetailDOS); - break; - case RecordConstants.BusinessType.INVALID: // 作废 -- > 回收权限 - // 修改文件作废状态 - for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { - RecordRecordDO recordRecordDO = new RecordRecordDO(); - recordRecordDO.setId(applyDetailDO.getDocumentId()); - recordRecordDO.setCancelFlag(1); // 评审通过 - recordRecordDO.setRecordStatus(0); // 状态 无效 - recordRecordDOS.add(recordRecordDO); - } - recordInvalidFlowStatus(recordRecordDOS); - break; - default: - throw exception(RECORD_APPLY_NOT_EXISTS, "未知的业务类型"); - } - + List recordApplyDetailDOS = recordApplyDetailService.selectList(new RecordApplyDetailPageReqVO().setApplyId(Long.valueOf(mainId))); + //"RETURN_FLAG_Activity_001": true 标识驳回到发起环节 + if(("1").equals(returnFlag)){ + //驳回。流程需要配置退回到发起节点 + log.info("文件下发流程回调:驳回"); + recordApplyDO.setBusinessStatus(QmsCommonConstant.REJECTED); + }else if("3".equals(PROCESS_STATUS)){ + //作废 + log.info("文件下发流程回调:作废"); + recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); + Long documentId = recordApplyDetailDOS.get(0).getDocumentId(); + recordRecordService.updateRecordRecordById(new RecordRecordDO().setId(documentId).setApplyStatus(QmsCommonConstant.VOID)); + }else if("1".equals(PROCESS_STATUS)){ + //通过 保存审批意见 DataCommonType dataCommonType = new DataCommonType(); dataCommonType.setBusinessId(Long.valueOf(mainId)); dataCommonType.setFlowInstanceId(recordApplyDO.getFlowInstanceId()); dataOpinionService.saveOpinionByWfCallback(dataCommonType, currentActivityId, currentActivityName, taskVariables); + if("1".equals(lastActivityFlag)) + { + //通过 - // 审批完成,修改申请通用记录状态为已完成 - recordApplyDO.setBusinessStatus(QmsCommonConstant.COMPLETED); - recordApplyMapper.updateById(recordApplyDO); - + if (ObjectUtils.isEmpty(recordApplyDetailDOS)) + throw exception0(RECORD_RECORD_NOT_EXISTS.getCode(), "未找到对应的申请明细记录"); + // TODO 业务代码,通过业务类型判断 + List recordRecordDOS = new ArrayList<>(); + switch (businessType) { + case RecordConstants.BusinessType.RECORD_SUBMIT: + recordSubmitCallHandle(recordApplyDetailDOS); + break; + case RecordConstants.BusinessType.REVIEW: // 评审 + reviewCallHandle(recordApplyDetailDOS); + break; + case RecordConstants.BusinessType.DISTRIBUTION: // 分发 + recordPermissionAdd(recordApplyDetailDOS); + // 更改申请流程 + break; + case RecordConstants.BusinessType.RECORD_UPDATE: // 修改申请 + break; + case RecordConstants.BusinessType.VIEW_APPLY: // 查看申请 + recordPermissionAdd(recordApplyDetailDOS); + break; + case RecordConstants.BusinessType.INVALID: // 作废 -- > 回收权限 + // 修改文件作废状态 + for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { + RecordRecordDO recordRecordDO = new RecordRecordDO(); + recordRecordDO.setId(applyDetailDO.getDocumentId()); + recordRecordDO.setCancelFlag(1); // 评审通过 + recordRecordDO.setRecordStatus(0); // 状态 无效 + recordRecordDOS.add(recordRecordDO); + } + recordInvalidFlowStatus(recordRecordDOS); + break; + default: + throw exception(RECORD_APPLY_NOT_EXISTS, "未知的业务类型"); + } + recordApplyDO.setBusinessStatus(QmsCommonConstant.COMPLETED); + } } + // 审批完成,修改申请通用记录状态为已完成 -// JSONObject ret = new JSONObject(); + recordApplyMapper.updateById(recordApplyDO); + +// String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); + +// JSONArray bpmFieldExtensions = variables.getJSONArray("bpmFieldExtensions"); +// String firstActivityFlag = IntStream.range(0, bpmFieldExtensions.size()) +// .mapToObj(bpmFieldExtensions::getJSONObject) +// .filter(field -> "firstActivityFlag".equals(field.getString("fieldName"))) +// .map(field -> field.getString("stringValue")) +// .findFirst() +// .orElse(null); +// +// log.info("firstActivityFlag:{}", firstActivityFlag); + +// if ("1".equals(firstActivityFlag)) { // 执行到申请人节点,待处理 +// if (PROCESS_STATUS.equals("1")) { +// return CommonResult.success(ret); +// } else if ("3".equals(PROCESS_STATUS)) { +// // 提交流程,发起人拒绝,修改提交状态 +// if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)){ +// Long applyId = recordApplyDO.getId(); +// List recordApplyDetailDOS = recordApplyDetailService.selectAllList(applyId); +// if (ObjectUtils.isEmpty(recordApplyDetailDOS)) throw exception0(RECORD_APPLY_DETAIL_NOT_EXISTS.getCode(),"申请明细不存在"); +// RecordApplyDetailDO recordApplyDetailDO = recordApplyDetailDOS.get(0); +// Long documentId = recordApplyDetailDO.getDocumentId(); +// RecordRecordDO recordDO = new RecordRecordDO(); +// recordDO.setId(documentId); +// recordDO.setSubmitFlag("0"); +// recordRecordService.updateRecordRecordById(recordDO); +// } +// // 发起人拒绝,申请作废 +// recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); +// recordApplyMapper.updateById(recordApplyDO); +// return CommonResult.success(ret); +// } +// } +// +// // 拒绝,PROCESS_STATUS 状态是3,拒绝。回退上一步流程,修改状态 +// if ("3".equals(PROCESS_STATUS)) { +// if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)) { +// recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); +// recordApplyMapper.updateById(recordApplyDO); +// return CommonResult.success(ret); +// } +// String businessStatus = recordApplyDO.getBusinessStatus(); +// if ("running".equals(businessStatus)) { +// recordApplyDO.setBusinessStatus(QmsCommonConstant.NOT_START); +// } else if ("not_start".equals(businessStatus)) { // 直接作废 +// recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); +// } +// recordApplyMapper.updateById(recordApplyDO); +// return CommonResult.success(ret); +// } + + JSONObject ret = new JSONObject(); return CommonResult.success(ret); } @@ -741,20 +745,18 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn Long documentId = recordApplyDetailDO.getDocumentId(); RecordRecordDO entity = recordRecordService.getRecordById(documentId); // 判断生效日期 - LocalDateTime effectiveDate = entity.getEffectiveDate(); // 有效日期 - if (effectiveDate != null) { - // 判断是否到生效日期 - LocalDateTime now = LocalDateTime.now(); - if (now.isAfter(effectiveDate) || now.isEqual(effectiveDate)) { - entity.setRecordStatus(1); // 已生效 - } -// else { -// entity.setRecordStatus(3); // 待生效 +// LocalDateTime effectiveDate = entity.getEffectiveDate(); // 有效日期 +// if (effectiveDate != null) { +// // 判断是否到生效日期 +// LocalDateTime now = LocalDateTime.now(); +// if (now.isAfter(effectiveDate) || now.isEqual(effectiveDate)) { +// entity.setRecordStatus(1); // 已生效 // } - } else { - entity.setRecordStatus(1); // 默认已生效 - } +// } else { +// entity.setRecordStatus(1); // 默认已生效 +// } RecordRecordDO effectiveRecordRecordDO = isEffective(entity); + effectiveRecordRecordDO.setApplyStatus(QmsCommonConstant.COMPLETED); // 审批完成 // 修改状态 recordApplyFlowStatus(effectiveRecordRecordDO); } @@ -841,6 +843,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn // 文件分发/申请-添加权限 public void recordPermissionAdd(List recordApplyDetailDOS) { // String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname(); + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); String visitDeptName = loginUser.getVisitDeptName(); for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { // 添加记录 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java index 49bab469..50135888 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java @@ -105,5 +105,7 @@ public interface RecordApplyDetailService { PageResult selectDetailAndApplyList(RecordApplyDetailPageReqVO reqVO); + List selectNotInDetailIdList(Long applyId,List detailIds); + // List updateDistributionPermissionJob(); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java index 51ce38bc..bd7df3bc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java @@ -152,5 +152,13 @@ public class RecordApplyDetailServiceImpl implements RecordApplyDetailService { return new PageResult<>(recordApplyDetailJoinVOIPage.getRecords(), recordApplyDetailJoinVOIPage.getTotal()); } + @Override + public List selectNotInDetailIdList(Long applyId,List detailIds) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(RecordApplyDetailDO::getApplyId, applyId); + queryWrapper.notIn(RecordApplyDetailDO::getId, detailIds); + return recordApplyDetailMapper.selectList(); + } + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java index b57ced27..ac663aac 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java @@ -66,7 +66,7 @@ public interface RecordCategoryService { RecordCategoryDO selectById(Long categoryId); - List selectCategoryAppraisalList(String appraisalFlag,Long categoryRootId); + RecordCategoryDO selectCategoryAppraisalDO(Long categoryRootId); List selectListByCategoryIdIdPath(String recordCategoryDO); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java index 217bb0c6..f72a4a45 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java @@ -68,11 +68,11 @@ public class RecordCategoryServiceImpl implements RecordCategoryService { @Override - public List selectCategoryAppraisalList(String appraisalFlag,Long categoryRootId) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.like(RecordCategoryDO::getCustomConfig,"%" + appraisalFlag + "%"); - if (categoryRootId != null) queryWrapper.eq(RecordCategoryDO::getId, categoryRootId); - return recordCategoryMapper.selectList(queryWrapper); + public RecordCategoryDO selectCategoryAppraisalDO(Long categoryRootId) { +// LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); +// queryWrapper.like(RecordCategoryDO::getCustomConfig,"%" + appraisalFlag + "%"); +// if (categoryRootId != null) queryWrapper.eq(RecordCategoryDO::getId, categoryRootId); + return recordCategoryMapper.selectCategoryAppraisalDO(categoryRootId); } @Override diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java index 721c156c..46d8e1b4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java @@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.record.service.recordpermission; import java.util.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionRespVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionSaveReqVO; @@ -114,5 +115,5 @@ public interface RecordPermissionService { boolean updateRecordPermissionBatch(List recordPermissionDOList); - void updatePermission(LambdaQueryWrapper queryWrapper); + void updatePermission(LambdaUpdateWrapper queryWrapper); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java index 2f297d1c..96ec845f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.record.service.recordpermission; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zt.plat.framework.common.biz.system.permission.PermissionCommonApi; import com.zt.plat.framework.common.pojo.CommonResult; @@ -247,8 +248,8 @@ public class RecordPermissionServiceImpl implements RecordPermissionService { } @Override - public void updatePermission(LambdaQueryWrapper queryWrapper) { - recordPermissionMapper.update(queryWrapper); + public void updatePermission(LambdaUpdateWrapper updateWrapper) { + recordPermissionMapper.update(updateWrapper); } @Override diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java index 3427b877..215fbc67 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java @@ -81,7 +81,7 @@ public interface RecordRecordService { void updateRecordRecordListByIds(List recordRecordDOS); - List getRecordList(RecordRecordPageReqVO pageReqVO); +// List getRecordList(RecordRecordPageReqVO pageReqVO); /** * 定时任务:将生效日期已到的记录状态更新为已生效(recordStatus = 1) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java index 53a2293a..ae9e6519 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java @@ -36,7 +36,6 @@ import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.Optional; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -173,71 +172,71 @@ public class RecordRecordServiceImpl implements RecordRecordService { // 流程--查询记录列表 // TODO - @Override - public List getRecordList(RecordRecordPageReqVO pageReqVO) { - - String appraisalFlag = pageReqVO.getAppraisalFlag(); - Long categoryId = pageReqVO.getCategoryId(); - - Page page = new Page<>(1, 999); - - if (appraisalFlag.equals("1")) { // 评审获取所有需要参加评审的列表 - // 查询所有 根分类上 appraisalFlag 为 1 的数据 - String appraisal = "\"appraisalFlag\":" + 1 + ","; - - List recordCategoryDOS = recordCategoryService.selectCategoryAppraisalList(appraisal, null); - // 获取所有 分类id - List categoryIdPath = new ArrayList<>(); - recordCategoryDOS.forEach(item -> { - Long id = item.getId(); - String idPath = "/0//" + id + "//"; // 根分类的路径 - categoryIdPath.add(idPath); - }); - if (ObjectUtils.isEmpty(categoryIdPath)) return new ArrayList<>(); - // 查询 分类下面所有的记录 - pageReqVO.setRecordStatus(1); - IPage recordRecordDOS = recordRecordMapper.selectRecordByIdPathLike(page, pageReqVO, categoryIdPath); - return BeanUtils.toBean(recordRecordDOS.getRecords(), RecordRecordRespVO.class); - - } - // TODO 待删除 - RecordCategoryDO recordCategoryDO = validateRecordCategoryExists(categoryId); - if (categoryId == null) CommonResult.error(RECORD_CATEGORY_NOT_EXISTS); - - // 校验分类存在 - if (ObjectUtils.isEmpty(recordCategoryDO)) return new ArrayList<>(); - String idPath = recordCategoryDO.getIdPath(); - - if (ObjectUtils.isEmpty(idPath)) return new ArrayList<>(); - Long rootCategoryId = getRootCategoryId(idPath); - - // 判断是否有权限 - // 判断是否有当前分类的父分类权限 (可编辑,可查看,管理员--> 任意条件) - RecordPermissionDO recordPermissionDO = new RecordPermissionDO(); - recordPermissionDO.setSourceId(categoryId); - List recordPermissionDOS = recordPermissionService.selectPermissionList(recordPermissionDO); - - List recordRecordList; - - if (recordPermissionDOS.isEmpty()) return new ArrayList<>(); - - boolean b = getRecordReviewList(rootCategoryId); - if (!b) return new ArrayList<>(); - - String businessType = pageReqVO.getBusinessType(); - if (ObjectUtils.isEmpty(businessType)) return new ArrayList<>(); - - pageReqVO.setRecordStatus(1); // 查询当前有效和 即将生效的文件 - pageReqVO.setCancelFlag(0); // 作废状态 - pageReqVO.setExpirationStatus(0); // 过期状态 - - - IPage iPage = recordRecordMapper.selectRecordWithApplyPage(page, pageReqVO); -// PageResult result = new PageResult<>(iPage.getRecords(), iPage.getTotal()); - recordRecordList = iPage.getRecords(); - return BeanUtils.toBean(recordRecordList, RecordRecordRespVO.class); - - } +// @Override +// public List getRecordList(RecordRecordPageReqVO pageReqVO) { +// +// String appraisalFlag = pageReqVO.getAppraisalFlag(); +// Long categoryId = pageReqVO.getCategoryId(); +// +// Page page = new Page<>(1, 999); +// +// if (appraisalFlag.equals("1")) { // 评审获取所有需要参加评审的列表 +// // 查询所有 根分类上 appraisalFlag 为 1 的数据 +// String appraisal = "\"appraisalFlag\":" + 1 + ","; +// +// List recordCategoryDOS = recordCategoryService.selectCategoryAppraisalList(appraisal, null); +// // 获取所有 分类id +// List categoryIdPath = new ArrayList<>(); +// recordCategoryDOS.forEach(item -> { +// Long id = item.getId(); +// String idPath = "/0//" + id + "//"; // 根分类的路径 +// categoryIdPath.add(idPath); +// }); +// if (ObjectUtils.isEmpty(categoryIdPath)) return new ArrayList<>(); +// // 查询 分类下面所有的记录 +// pageReqVO.setRecordStatus(1); +// IPage recordRecordDOS = recordRecordMapper.selectRecordByIdPathLike(page, pageReqVO, categoryIdPath); +// return BeanUtils.toBean(recordRecordDOS.getRecords(), RecordRecordRespVO.class); +// +// } +// // TODO 待删除 +// RecordCategoryDO recordCategoryDO = validateRecordCategoryExists(categoryId); +// if (categoryId == null) CommonResult.error(RECORD_CATEGORY_NOT_EXISTS); +// +// // 校验分类存在 +// if (ObjectUtils.isEmpty(recordCategoryDO)) return new ArrayList<>(); +// String idPath = recordCategoryDO.getIdPath(); +// +// if (ObjectUtils.isEmpty(idPath)) return new ArrayList<>(); +// Long rootCategoryId = getRootCategoryId(idPath); +// +// // 判断是否有权限 +// // 判断是否有当前分类的父分类权限 (可编辑,可查看,管理员--> 任意条件) +// RecordPermissionDO recordPermissionDO = new RecordPermissionDO(); +// recordPermissionDO.setSourceId(categoryId); +// List recordPermissionDOS = recordPermissionService.selectPermissionList(recordPermissionDO); +// +// List recordRecordList; +// +// if (recordPermissionDOS.isEmpty()) return new ArrayList<>(); +// +// boolean b = getRecordReviewList(rootCategoryId); +// if (!b) return new ArrayList<>(); +// +// String businessType = pageReqVO.getBusinessType(); +// if (ObjectUtils.isEmpty(businessType)) return new ArrayList<>(); +// +// pageReqVO.setRecordStatus(1); // 查询当前有效和 即将生效的文件 +// pageReqVO.setCancelFlag(0); // 作废状态 +// pageReqVO.setExpirationStatus(0); // 过期状态 +// +// +// IPage iPage = recordRecordMapper.selectRecordWithApplyPage(page, pageReqVO); +//// PageResult result = new PageResult<>(iPage.getRecords(), iPage.getTotal()); +// recordRecordList = iPage.getRecords(); +// return BeanUtils.toBean(recordRecordList, RecordRecordRespVO.class); +// +// } //通过跟分类的自定义属性判断文件状态 @@ -252,7 +251,10 @@ public class RecordRecordServiceImpl implements RecordRecordService { if (ObjectUtils.isEmpty(customConfig)) { //不需要提交,判断状态 int sts = calculateRecordStatus(effectiveDate, expirationDate); - if (sts == 3) recordDO.setExpirationStatus(1); //过期 + if (sts == 3) { + recordDO.setExpirationStatus(1); //过期 + recordDO.setRecordStatus(0);// 状态无效 + } else recordDO.setRecordStatus(sts); } else { JSONObject jsonObject = JSONObject.parseObject(customConfig); @@ -280,23 +282,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { // 是否回收 Integer collectionFlag = updateReqVO.getCollectionFlag(); if (collectionFlag != null && collectionFlag == 1) { // 不为null, 回收旧版本权限 - // TODO - // 回收文件权限 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); - queryWrapper.eq(RecordPermissionDO::getSourceId, updateObj.getId()); // 记录id - List recordPermissionDOS = recordPermissionService.selectList(queryWrapper); - List recordPermissionDOList = new ArrayList<>(); - List permissionIds = new ArrayList<>(); - for (RecordPermissionDO recordPermissionDO : recordPermissionDOS) { - recordPermissionDO.setCancelFlag("1"); - recordPermissionDOList.add(recordPermissionDO); - } - if (!ObjectUtils.isEmpty(recordPermissionDOList)) - recordPermissionService.updateRecordPermissionBatch(recordPermissionDOList); - // 回收权限 - if (!ObjectUtils.isEmpty(permissionIds)) - recordPermissionService.deleteRecordPermissionListByIds(permissionIds); + recordPermissionRecycle(updateObj.getId()); } // 创建新版本 return saveDataWithNewVersion(updateObj); @@ -306,6 +292,17 @@ public class RecordRecordServiceImpl implements RecordRecordService { return BeanUtils.toBean(updateReqVO, RecordRecordRespVO.class); } +// 回收文件权限 + public void recordPermissionRecycle(Long recordId) { + // 回收文件权限 - 直接更新,无需先查询 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); + updateWrapper.eq(RecordPermissionDO::getSourceId, recordId); + updateWrapper.set(RecordPermissionDO::getCancelFlag, "1"); + + recordPermissionService.updatePermission(updateWrapper); + } + @Override @Transactional(rollbackFor = Exception.class) public void deleteRecordRecord(Long id) { @@ -402,15 +399,28 @@ public class RecordRecordServiceImpl implements RecordRecordService { return result; } - public PageResult selectRecordPage(RecordRecordPageReqVO pageReqVO, Long categoryId, List recordIds){ + public List selectCategoryIds(Long categoryId){ // 判断当前分类上有没有子分类 String categoryIdPath = "/" + categoryId; List recordCategoryDOS = recordCategoryService.selectListByCategoryIdIdPath(categoryIdPath); // 通过分类Id获取文件记录分页 - List categoryIds = recordCategoryDOS.stream().map(RecordCategoryDO::getId).toList(); + return recordCategoryDOS.stream().map(RecordCategoryDO::getId).toList(); + } + + /** + * 查询文件记录分页 + * @param pageReqVO 分页参数 + * @param categoryId 分类Id + * @param recordIds (非必传) + * @return + */ + public PageResult selectRecordPage(RecordRecordPageReqVO pageReqVO, Long categoryId, + List recordIds){ + List categoryIds = selectCategoryIds(categoryId); LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); - pageReqVO.setCategoryId(null); +// pageReqVO.setCategoryId(null); lambdaQueryWrapper.in(RecordRecordDO::getCategoryId, categoryIds); + if (!ObjectUtils.isEmpty(pageReqVO.getCurrentFlag())) lambdaQueryWrapper.like(RecordRecordDO::getCurrentFlag, pageReqVO.getCurrentFlag());// 查询最新版本/旧版本 if (!ObjectUtils.isEmpty(pageReqVO.getName())) lambdaQueryWrapper.like(RecordRecordDO::getName, pageReqVO.getName()); if (!ObjectUtils.isEmpty(pageReqVO.getCode())) lambdaQueryWrapper.like(RecordRecordDO::getCode, pageReqVO.getCode()); if (!ObjectUtils.isEmpty(recordIds)) lambdaQueryWrapper.in(RecordRecordDO::getId, recordIds); // 获取指定文件记录 @@ -421,7 +431,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { public PageResult getRecordRecordPage(RecordRecordPageReqVO pageReqVO) { Long categoryId = pageReqVO.getCategoryId(); RecordCategoryDO recordCategoryDO = validateRecordCategoryExists(categoryId); - if (ObjectUtils.isEmpty(recordCategoryDO)) CommonResult.error(RECORD_CATEGORY_NOT_EXISTS); + if (recordCategoryDO.getId() == null) return PageResult.empty(); // 判断是否有自定义字段 String idPath = recordCategoryDO.getIdPath(); @@ -434,8 +444,6 @@ public class RecordRecordServiceImpl implements RecordRecordService { return addCustomConfig(parentId, recordRecordDOPageResult); } - Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - // 判断是否有当前分类的父分类权限 (可编辑,可查看,管理员--> 任意条件) RecordPermissionDO recordPermissionDO = new RecordPermissionDO(); recordPermissionDO.setSourceId(parentId); @@ -452,7 +460,6 @@ public class RecordRecordServiceImpl implements RecordRecordService { RecordPermissionDO permissionDO = new RecordPermissionDO(); permissionDO.setCancelFlag("0"); // 作废 permissionDO.setExpirationStatus("0"); // 过期 - LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); List permissionDOList = recordPermissionService.selectRecordPermissionList(permissionDO); if (ObjectUtils.isEmpty(permissionDOList)) return PageResult.empty(); @@ -462,7 +469,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { return result; } - PageResult result = selectRecordPage(pageReqVO, categoryId,null); + PageResult result = selectRecordPage(pageReqVO, categoryId, null); String admin = RecordConstants.PermissionType.ADMIN; //判断 recordPermissionDOS 中是否有管理员权限,customConfig(仅管理员权限时填充) @@ -488,7 +495,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { private Object customConfigParseJson(Long parentId) { RecordCategoryDO categoryDOByParent = recordCategoryService.selectById(parentId); - log.info("categoryDOByParent:{}", categoryDOByParent); +// log.info("categoryDOByParent:{}", categoryDOByParent); if (ObjectUtils.isEmpty(categoryDOByParent)) throw exception(RECORD_CATEGORY_NOT_EXISTS); Object parse = new Object(); if (!ObjectUtils.isEmpty(categoryDOByParent.getCustomConfig())) { @@ -513,23 +520,6 @@ public class RecordRecordServiceImpl implements RecordRecordService { */ @Override public Integer updateRecordStatus() { - LocalDateTime now = LocalDateTime.now(); - LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); - -// updateWrapper.isNotNull(RecordRecordDO::getEffectiveDate) -// // 1. effectiveDate <= 当前时间 -// .le(RecordRecordDO::getEffectiveDate, now) -// // 2. 当前时间 <= 过期日期(同时兼容处理“过期时间为空”或勾选了“长期有效” PMNT = '1' 的情况) -// .and(w -> w.ge(RecordRecordDO::getExpirationDate, now) -// .or().isNull(RecordRecordDO::getExpirationDate) -// .or().eq(RecordRecordDO::getPermanently, "1")) -// // 3. 必须是有效的记录状态(未作废 CNL_FLG=0 且未置为过期 EXPR_STS=0) -// .eq(RecordRecordDO::getCancelFlag, 0) -// .eq(RecordRecordDO::getExpirationStatus, 0) -// // 4. 且 recordStatus != 1(排除已经是生效状态的数据) -// .ne(RecordRecordDO::getRecordStatus, 1) -// // == 将满足上述条件的记录修改为:已生效(recordStatus = 1) == -// .set(RecordRecordDO::getRecordStatus, 1); // 查询审批之后待生效的记录 Page page = new Page<>(1, 2000); RecordRecordPageReqVO reqVO = new RecordRecordPageReqVO(); @@ -544,6 +534,25 @@ public class RecordRecordServiceImpl implements RecordRecordService { return records.size(); } + /** + * 查询生效的记录(包括需要提交,和不提交的数据) + * @param submitFlag + * @param pageReqVO + * @param categoryIds + * @return + */ + public PageResult selectEffectRecordList(int submitFlag, RecordRecordPageReqVO pageReqVO, List categoryIds) { + Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + if (submitFlag == 1) { + IPage recordRecordDOPageResult = recordRecordMapper.getNotSubmitEffectRecordPage(page,pageReqVO, categoryIds); + return new PageResult<>(recordRecordDOPageResult.getRecords(), recordRecordDOPageResult.getTotal()); + } + else { // 需要评审,且不需要提交数据 + IPage submitEffectRecordPage = recordRecordMapper.getSubmitEffectRecordPage(page, pageReqVO, categoryIds); + return new PageResult<>(submitEffectRecordPage.getRecords(), submitEffectRecordPage.getTotal()); + } + } + @Override public PageResult getEffectiveRecordPage(RecordRecordPageReqVO pageReqVO) { @@ -551,21 +560,13 @@ public class RecordRecordServiceImpl implements RecordRecordService { RecordCategoryDO recordCategoryDO = validateRecordCategoryExists(categoryId); if (categoryId == null) CommonResult.error(RECORD_CATEGORY_NOT_EXISTS); - Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - -// boolean b = recordPermissionService.judgeIsAdmin();// 如果是最高管理员 -// if (b) { -// IPage recordRecordDOPageResult = recordRecordMapper.getEffectiveRecordPage(page,pageReqVO); -// return new PageResult<>(recordRecordDOPageResult.getRecords(), recordRecordDOPageResult.getTotal()); -// } - // 校验分类存在 - if (ObjectUtils.isEmpty(recordCategoryDO)) return new PageResult().setTotal(0L); + if (ObjectUtils.isEmpty(recordCategoryDO)) return PageResult.empty(); String idPath = recordCategoryDO.getIdPath(); - if (ObjectUtils.isEmpty(idPath)) return new PageResult().setTotal(0L); + if (ObjectUtils.isEmpty(idPath)) return PageResult.empty(); Long parentId = getRootCategoryId(idPath); - if (parentId == null) return new PageResult().setTotal(0L); + if (parentId == null) return PageResult.empty(); RecordCategoryDO categoryDO = recordCategoryService.selectById(parentId); @@ -573,59 +574,33 @@ public class RecordRecordServiceImpl implements RecordRecordService { RecordPermissionDO recordPermissionDO = new RecordPermissionDO(); recordPermissionDO.setSourceId(parentId); List recordPermissionDOS = recordPermissionService.selectPermissionList(recordPermissionDO); - if (ObjectUtils.isEmpty(recordPermissionDOS)) return new PageResult().setTotal(0L); + if (ObjectUtils.isEmpty(recordPermissionDOS)) return PageResult.empty(); + + List categoryIds = selectCategoryIds(categoryId); // 获取所有子分类 String customConfig = categoryDO.getCustomConfig(); String appraisalFlag = pageReqVO.getAppraisalFlag(); + + // 判断是否需要提交(json) + Integer submitFlag = 0 ; + if (!ObjectUtils.isEmpty(customConfig)) { + JSONObject jsonObject = JSONObject.parseObject(customConfig); + submitFlag = jsonObject.getInteger("submitFlag"); // 提交标志 + } // 需要评审的文件 if (!ObjectUtils.isEmpty(appraisalFlag) && appraisalFlag.equals("1")) { // 查询所有 根分类上 appraisalFlag 为 1 的数据 - String appraisal = "\"appraisalFlag\":" + 1 + ","; + RecordCategoryDO recordCategoryDOS = recordCategoryService.selectCategoryAppraisalDO(parentId); + // 不需要评审,直接返回null + if (ObjectUtils.isEmpty(recordCategoryDOS)) return PageResult.empty(); - List recordCategoryDOS = recordCategoryService.selectCategoryAppraisalList(appraisal, parentId); - if (ObjectUtils.isEmpty(recordCategoryDOS)) return new PageResult().setTotal(0L); - // 获取所有 分类id - List categoryIdPath = new ArrayList<>(); - recordCategoryDOS.forEach(item -> { - Long id = item.getId(); - String path = "/0//" + id + "//"; // 根分类的路径 - categoryIdPath.add(path); - }); - if (ObjectUtils.isEmpty(categoryIdPath)) return new PageResult().setTotal(0L); - - if (!ObjectUtils.isEmpty(customConfig)) { - JSONObject jsonObject = JSONObject.parseObject(customConfig); - Integer submitFlag = jsonObject.getInteger("submitFlag"); // 提交标志 - if (submitFlag == 1) { // 需要提交的,需要判断流程状态 - pageReqVO.setRecordStatus(1); - pageReqVO.setPermanently("1"); - IPage effectiveRecordBySubmitFlagPage = recordRecordMapper.getEffectiveRecordBySubmitFlagPage(page, pageReqVO); - return new PageResult<>(effectiveRecordBySubmitFlagPage.getRecords(), effectiveRecordBySubmitFlagPage.getTotal()); - } - } - // 查询 分类下面所有的记录 -// pageReqVO.setRecordStatus(1); -// IPage recordRecordDOS = recordRecordMapper.selectRecordByIdPathLike(page,pageReqVO, categoryIdPath); - IPage recordRecordDOS = recordRecordMapper.getEffectiveRecordPage(page, pageReqVO); - return new PageResult<>(recordRecordDOS.getRecords(), recordRecordDOS.getTotal()); + // 查询有效,或者提交审批完成,将来生效的记录 (recordStatus = 1 or (applyStatus = 'completed' and now() > effectiveDate)) + // 需要评审,且需要提交的数据 + return selectEffectRecordList(submitFlag, pageReqVO, categoryIds); } - // 判断是否需要提交(json) - if (!ObjectUtils.isEmpty(customConfig)) { - JSONObject jsonObject = JSONObject.parseObject(customConfig); - Integer submitFlag = jsonObject.getInteger("submitFlag"); // 提交标志 - if (submitFlag == 1) { // 需要提交的,需要判断流程状态 - pageReqVO.setRecordStatus(1); - pageReqVO.setPermanently("1"); - IPage effectiveRecordBySubmitFlagPage = recordRecordMapper.getEffectiveRecordBySubmitFlagPage(page, pageReqVO); - return new PageResult<>(effectiveRecordBySubmitFlagPage.getRecords(), effectiveRecordBySubmitFlagPage.getTotal()); - } - } - - // 查询有效,且即将生效的文件 - - IPage recordRecordDOPageResult = recordRecordMapper.getEffectiveRecordPage(page, pageReqVO); - return new PageResult<>(recordRecordDOPageResult.getRecords(), recordRecordDOPageResult.getTotal()); + // 通用查询,查询,有效,或将来有效的记录 + return selectEffectRecordList(submitFlag, pageReqVO, categoryIds); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.xml index 0ca09f1d..d2e4a066 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.xml @@ -67,17 +67,12 @@ AND rp.SRC_TP = #{recordP.sourceType} AND rp.PERM = #{recordP.permission} - - - and rp.CNL_FLG = #{recordP.cancelFlag} - - - - and rp.EXPR_STS = #{recordP.expirationStatus} - - - - and rp.SVE_FLG = #{recordP.saveFlag} + + and (rp.SVE_FLG = 1 and rp.SVE_END_DT > now()) + + + + OR (rp.CNL_FLG = #{recordP.cancelFlag} AND rp.EXPR_STS = #{recordP.expirationStatus}) AND ( diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml index a1d35545..027e0de9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml @@ -32,7 +32,8 @@ trr.MAIN_ID AS mainId, trr.OPTN_FLG AS operationFlag, trr.CREATE_TIME AS createTime, - trr.TENANT_ID + trr.TENANT_ID, + trr.APL_STS AS applyStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - SELECT FROM t_rcd_rcd trr - - trr.deleted = 0 and trr.EXPR_STS = 0 and trr.CNL_FLG = 0 - - and (trr.PMNT = '1' or - trr.EXPR_DT > now() - ) + WHERE + trr.deleted = 0 and trr.EXPR_STS = 0 and trr.CNL_FLG = 0 + + and (trr.PMNT = '1' or + trr.EXPR_DT > now() + ) - - - AND trr.CNL_FLG = #{reqVO.cancelFlag} - - - - AND trr.EXPR_STS = #{reqVO.expirationStatus} - - - AND trr.CTGR_ID = #{reqVO.categoryId} - - - AND trr.CD = #{reqVO.code} - - - AND trr.NAME LIKE CONCAT('%', #{reqVO.name}, '%') - - - AND trr.VER = #{reqVO.version} - - - AND trr.CRNT_FLG = #{reqVO.currentFlag} - - - AND trr.MKE_DT BETWEEN #{reqVO.makeDate[0]} AND #{reqVO.makeDate[1]} - - - AND trr.EXPR_DT BETWEEN #{reqVO.expirationDate[0]} AND #{reqVO.expirationDate[1]} - - - AND trr.MAIN_ID = #{reqVO.mainId} - - - AND trr.CREATE_TIME BETWEEN #{reqVO.createTime[0]} AND #{reqVO.createTime[1]} - - + + and + trr.CTGR_ID IN + + #{id} + + + + AND trr.CD = #{reqVO.code} + + + AND trr.NAME LIKE CONCAT('%', #{reqVO.name}, '%') + + + AND trr.VER = #{reqVO.version} + ORDER BY trr.CREATE_TIME ASC \ No newline at end of file