From b5ef91613be1c31c39c83a30edc9206558e121ee Mon Sep 17 00:00:00 2001 From: YBP Date: Fri, 6 Mar 2026 18:31:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=AE=B0=E5=BD=95-=E7=94=B3?= =?UTF-8?q?=E8=AF=B7-=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recordapply/RecordApplyController.java | 51 ++- .../vo/RecordApplyDetailJoinPageVO.java | 142 ++++++++ .../recordapply/vo/RecordApplyPageReqVO.java | 16 +- .../recordapply/vo/RecordApplyRespVO.java | 45 ++- .../recordapply/vo/RecordApplySaveReqVO.java | 36 ++- .../vo/RecordApplyDetailPageReqVO.java | 8 + .../vo/RecordApplyDetailRespVO.java | 10 + .../vo/RecordApplyDetailSaveReqVO.java | 8 + .../RecordCategoryController.java | 12 + .../recordrecord/RecordRecordController.java | 24 +- .../vo/RecordRecordPageReqVO.java | 5 + .../recordrecord/vo/RecordRecordRespVO.java | 2 + .../dataobject/recordapply/RecordApplyDO.java | 23 +- .../RecordApplyDetailDO.java | 11 + .../RecordApplyDetailMapper.java | 2 +- .../RecordApplyMapper.java | 4 +- .../RecordCategoryMapper.java | 2 +- .../RecordPermissionMapper.java | 2 +- .../RecordRecordMapper.java | 40 ++- .../RecordRelationMapper.java | 2 +- .../RecordRelationServiceImpl.java | 2 +- .../recordapply/RecordApplyService.java | 23 +- .../recordapply/RecordApplyServiceImpl.java | 302 +++++++++--------- .../RecordApplyDetailService.java | 4 + .../RecordApplyDetailServiceImpl.java | 7 +- .../recordcategory/RecordCategoryService.java | 10 + .../RecordCategoryServiceImpl.java | 180 +++++------ .../RecordPermissionService.java | 3 + .../RecordPermissionServiceImpl.java | 9 +- .../recordrecord/RecordRecordService.java | 11 + .../recordrecord/RecordRecordServiceImpl.java | 28 +- .../mapper}/RecordApplyDetailMapper.xml | 2 +- .../mapper}/RecordApplyMapper.xml | 2 +- .../mapper}/RecordCategoryMapper.xml | 2 +- .../mapper}/RecordPermissionMapper.xml | 2 +- .../record/dal/mapper/RecordRecordMapper.xml | 106 ++++++ .../mapper}/RecordRelationMapper.xml | 2 +- .../recordrecord/RecordRecordMapper.xml | 12 - 38 files changed, 823 insertions(+), 329 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyDetailJoinPageVO.java rename zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/{dao/recordapplydetail => mapper}/RecordApplyDetailMapper.java (97%) rename zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/{dao/recordapply => mapper}/RecordApplyMapper.java (93%) rename zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/{dao/recordcategory => mapper}/RecordCategoryMapper.java (96%) rename zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/{dao/recordpermission => mapper}/RecordPermissionMapper.java (96%) rename zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/{dao/recordrecord => mapper}/RecordRecordMapper.java (59%) rename zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/{dao/recordRelation => mapper}/RecordRelationMapper.java (94%) rename zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/{mapper/recordapplydetail => dal/mapper}/RecordApplyDetailMapper.xml (83%) rename zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/{mapper/recordapply => dal/mapper}/RecordApplyMapper.xml (82%) rename zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/{mapper/recordcategory => dal/mapper}/RecordCategoryMapper.xml (83%) rename zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/{mapper/recordpermission => dal/mapper}/RecordPermissionMapper.xml (83%) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml rename zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/{mapper/recordRelation => dal/mapper}/RecordRelationMapper.xml (83%) delete mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordrecord/RecordRecordMapper.xml diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java index d6a90217..0afb4867 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapply; +import com.alibaba.fastjson2.JSONObject; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.business.annotation.FileUploadController; import com.zt.plat.framework.business.controller.AbstractFileUploadController; @@ -11,12 +12,15 @@ 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.qms.resource.record.controller.admin.recordapply.vo.RecordApplyDetailJoinPageVO; 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; import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplySaveReqVO; +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.recordapply.RecordApplyDO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; import com.zt.plat.module.qms.resource.record.service.recordapply.RecordApplyService; import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordService; import io.swagger.v3.oas.annotations.Operation; @@ -25,6 +29,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; +import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -60,10 +65,17 @@ public class RecordApplyController extends AbstractFileUploadController implemen return success(recordApplyService.createRecordApply(createReqVO)); } + @PostMapping("/createApplyData") + @Operation(summary = "创建文件申请数据") + //@PreAuthorize("@ss.hasPermission('qms:record-apply:create')") + public CommonResult createApplyData(@Valid @RequestBody RecordApplySaveReqVO respVO) { + return recordApplyService.createApplyData(respVO); + } + @PostMapping("/submitApply") @Operation(summary = "创建文件记录通用申请") //@PreAuthorize("@ss.hasPermission('qms:record-apply:create')") - public CommonResult submitApply(@Valid @RequestBody RecordApplyRespVO respVO) { + public CommonResult submitApply(@Valid @RequestBody RecordApplySaveReqVO respVO) { return recordApplyService.submitRecordApply(respVO); } @@ -99,7 +111,17 @@ public class RecordApplyController extends AbstractFileUploadController implemen //@PreAuthorize("@ss.hasPermission('qms:record-apply:query')") public CommonResult getRecordApply(@RequestParam("id") Long id) { RecordApplyDO recordApply = recordApplyService.getRecordApply(id); - return success(BeanUtils.toBean(recordApply, RecordApplyRespVO.class)); + + // 先转换为VO,避免JSONObject中包含ArrayList导致的转换错误 + RecordApplyRespVO respVO = BeanUtils.toBean(recordApply, RecordApplyRespVO.class); + +// // 单独处理formDataObject字段 +// String formData = recordApply.getFormData(); +// if (!ObjectUtils.isEmpty(formData)) { +// JSONObject jsonObject = JSONObject.parseObject(formData, JSONObject.class); +// respVO.setFormDataObject(jsonObject); +// } + return success(respVO); } @GetMapping("/page") @@ -108,6 +130,31 @@ public class RecordApplyController extends AbstractFileUploadController implemen public CommonResult> getRecordApplyPage(@Valid RecordApplyPageReqVO pageReqVO) { PageResult pageResult = recordApplyService.getRecordApplyPage(pageReqVO); return success(BeanUtils.toBean(pageResult, RecordApplyRespVO.class)); +// List list = pageResult.getList(); +// +// // 先转换为VO列表 +// List respVOList = BeanUtils.toBean(list, RecordApplyRespVO.class); +// PageResult result = new PageResult<>(); +// result.setList(respVOList); +// result.setTotal(pageResult.getTotal()); +// return success(result); + } + + + @GetMapping("/recordReviewPage") + @Operation(summary = "文件评审分页") + //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") + public CommonResult> recordReviewPage(@Valid RecordApplyPageReqVO pageReqVO) { + PageResult pageResult = recordApplyService.getRecordApplyPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RecordApplyPageReqVO.class)); + } + + @GetMapping("/recordDistributePage") + @Operation(summary = "文件分发分页") + //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") + public CommonResult> recordDistributePage(@Valid RecordApplyPageReqVO pageReqVO) { + PageResult pageResult = recordApplyService.recordDistributePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RecordApplyPageReqVO.class)); } @GetMapping("/export-excel") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyDetailJoinPageVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyDetailJoinPageVO.java new file mode 100644 index 00000000..0382e756 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyDetailJoinPageVO.java @@ -0,0 +1,142 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 文件评审分页 Request VO") +@Data +public class RecordApplyDetailJoinPageVO extends PageParam { + + // ============recordApply=================> + + @Schema(description = "id", example = "28812") + private Long id; + + @Schema(description = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审") + private String title; + + @Schema(description = "业务类型", example = "1") + @Dict(dicCode = "record_apply_review") + private String businessType; + + @Schema(description = "申请人id", example = "15000") + private Long applyUserId; + + @Schema(description = "申请人姓名", example = "张三") + private String applyUserName; + + @Schema(description = "部门id") + private Long applyDepartmentId; + + @Schema(description = "部门名称", example = "研发部") + private String applyDepartmentName; + + @Schema(description = "评审范围") + private String reviewRange; + + @Schema(description = "参加评审人员", example = "赵六") + private String reviewUserName; + + @Schema(description = "参加评审人员id") + private String reviewUserIds; + + @Schema(description = "表单数据") + private String formData; + + @Schema(description = "申请事由") + private String applyContent; + + @Schema(description = "是否长期有效") + private String permanently; + + @Schema(description = "开始日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] applyStartDate; + + @Schema(description = "截止日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] applyEndDate; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + // ============recordApplyDetail=================> + @Schema(description = "applyDetailId", example = "28812") + private Long applyDetailId; + + @Schema(description = "父id", example = "28812") + private Long applyId; + + @Schema(description = "文件id", example = "3188") + private Long documentId; + + @Schema(description = "授权类型") + private String TargetType; + + @Schema(description = "授权Id") + private Long targetId; + + // ============recordRecord=================> + + @Schema(description = "记录id", example = "7849") + private Long recordId; + + @Schema(description = "分类id", example = "7849") + private Long categoryId; + + @Schema(description = "文件编号") + private String code; + + @Schema(description = "文件名称", example = "王五") + private String name; + + @Schema(description = "版本") + private String version; + + @Schema(description = "是否最新版本,默认显示最新版本") + private Integer currentFlag; + + @Schema(description = "编制日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] makeDate; + +// @Schema(description = "是否长期有效") +// private Integer permanently; + + @Schema(description = "是否需要提交(用来判断文件是否需要走流程)") + private String submitFlag; + + @Schema(description = "文件记录状态,0: 无效,1: 有效") + private Integer recordStatus; + + @Schema(description = "过期日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expirationDate; + + @Schema(description = "生效日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] effectiveDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + private Integer expirationStatus; + + @Schema(description = "作废标志,0-有效,1-作废") + private Integer cancelFlag; + + @Schema(description = "是否回收权限") + private Integer collectionFlag; + + + +} \ 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/controller/admin/recordapply/vo/RecordApplyPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java index 877c0d0c..4c957cec 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java @@ -1,6 +1,8 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -20,6 +22,10 @@ public class RecordApplyPageReqVO extends PageParam { @Schema(description = "业务类型", example = "1") private String businessType; + @Schema(description = "业务状态") + @Dict(dicCode = "flow_status") + private String businessStatus; + @Schema(description = "申请人id", example = "15000") private Long applyUserId; @@ -32,11 +38,17 @@ public class RecordApplyPageReqVO extends PageParam { @Schema(description = "部门名称", example = "研发部") private String applyDepartmentName; + @Schema(description = "评审时间") + private LocalDateTime reviewTime; + @Schema(description = "评审范围") private String reviewRange; - @Schema(description = "参加评审人员", example = "赵六") - private String reviewUserName; + @Schema(description = "分发目标") + private String assignTarget; + + @Schema(description = "参加评审部门") + private String reviewDepartmentIds; @Schema(description = "参加评审人员id") private String reviewUserIds; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java index f81fbc2b..54410317 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java @@ -1,11 +1,18 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; +import com.alibaba.fastjson2.JSONObject; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; +import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailRespVO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import lombok.*; + import java.util.*; + import org.springframework.format.annotation.DateTimeFormat; + import java.time.LocalDateTime; + import com.alibaba.excel.annotation.*; @Schema(description = "管理后台 - 文件记录通用申请 Response VO") @@ -42,13 +49,20 @@ public class RecordApplyRespVO { @ExcelProperty("部门名称") private String applyDepartmentName; + @Schema(description = "评审时间") + @ExcelProperty("评审时间") + private LocalDateTime reviewTime; + @Schema(description = "评审范围") @ExcelProperty("评审范围") private String reviewRange; - @Schema(description = "参加评审人员", example = "赵六") - @ExcelProperty("参加评审人员") - private String reviewUserName; + @Schema(description = "分发目标") + private String assignTarget; + + @Schema(description = "参加评审部门") + @ExcelProperty("参加评审部门") + private String reviewDepartmentIds; @Schema(description = "参加评审人员id") @ExcelProperty("参加评审人员id") @@ -96,29 +110,30 @@ public class RecordApplyRespVO { @Schema(description = "业务状态") @ExcelProperty("业务状态") + @Dict(dicCode = "record_apply_review") private String businessStatus; @Schema(description = "创建时间") @ExcelProperty("创建时间") private LocalDateTime createTime; + // // ===============临时字段=================》 + @Schema(description = "明细列表") + private List dataList; + // ===============临时字段=================》 - // needApply : 是否需要申请,true-需要,false-不需要 - @Schema(description = "是否需要申请") - private Boolean needApply; +// @Schema(description = "文件记录ID") +// private Long recordId; - @Schema(description = "文件记录ID") - private Long recordId; +// @Schema(description = "用户IDs") +// private Long[] userIds; +// +// @Schema(description = "用户IDs") +// private Long[] deptIds; - @Schema(description = "文件记录IDS") - private Long[] recordIdS; + private List paramsList; - @Schema(description = "用户IDs") - private Long[] userIds; - - @Schema(description = "用户IDs") - private Long[] deptIds; } \ 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/controller/admin/recordapply/vo/RecordApplySaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java index 455e5bee..c4495091 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java @@ -1,6 +1,7 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; import com.alibaba.excel.annotation.ExcelProperty; +import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -16,32 +17,44 @@ public class RecordApplySaveReqVO { private Long id; @Schema(description = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审不能为空") +// @NotEmpty(message = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审不能为空") private String title; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotEmpty(message = "业务类型不能为空") +// @NotEmpty(message = "业务类型不能为空") private String businessType; + @Schema(description = "业务状态") + private String businessStatus; + @Schema(description = "申请人id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15000") - @NotNull(message = "申请人id不能为空") +// @NotNull(message = "申请人id不能为空") private Long applyUserId; @Schema(description = "申请人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") - @NotEmpty(message = "申请人姓名不能为空") +// @NotEmpty(message = "申请人姓名不能为空") private String applyUserName; @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "部门id不能为空") +// @NotNull(message = "部门id不能为空") private Long applyDepartmentId; @Schema(description = "部门名称", example = "研发部") @ExcelProperty("部门名称") private String applyDepartmentName; + @Schema(description = "分发目标") + private String assignTarget; + + @Schema(description = "评审时间") + private LocalDateTime reviewTime; + @Schema(description = "评审范围") private String reviewRange; + @Schema(description = "参加评审部门") + private String reviewDepartmentIds; + @Schema(description = "参加评审人员", example = "赵六") private String reviewUserName; @@ -78,7 +91,16 @@ public class RecordApplySaveReqVO { @Schema(description = "流程实例ID") private String flowInstanceId; - @Schema(description = "业务状态") - private String businessStatus; + @Schema(description = "文件记录ID") + private Long recordId; + + @Schema(description = "用户IDs") + private Long[] userIds; + + @Schema(description = "用户IDs") + private Long[] deptIds; + + private List paramsList; + } \ 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/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 4b9c4952..99c5817e 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 @@ -1,6 +1,7 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo; import com.baomidou.mybatisplus.annotation.TableField; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import jakarta.validation.constraints.NotEmpty; import lombok.*; import java.util.*; @@ -27,6 +28,13 @@ public class RecordApplyDetailPageReqVO extends PageParam { @Schema(description = "授权Id") private Long targetId; + @Schema(description = "是否需要更改") + @Dict(dicCode = "yes_or_no") + private Integer isModify; + + @Schema(description = "更改原因") + private String modifyCause; + @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 a69f0224..8174c2d7 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 @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -32,6 +33,15 @@ public class RecordApplyDetailRespVO { @ExcelProperty("授权Id") private Long targetId; + @Schema(description = "是否需要更改") + @Dict(dicCode = "yes_or_no") + @ExcelProperty("是否需要更改") + private Integer isModify; + + @Schema(description = "更改原因") + @ExcelProperty("更改原因") + private String modifyCause; + @Schema(description = "是否长期有效") @ExcelProperty("是否长期有效") 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/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 f299d07e..70728dab 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 @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -26,6 +27,13 @@ public class RecordApplyDetailSaveReqVO { @Schema(description = "授权Id") private Long targetId; + @Schema(description = "是否需要更改") + @Dict(dicCode = "yes_or_no") + private Integer isModify; + + @Schema(description = "更改原因") + private String modifyCause; + @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/recordcategory/RecordCategoryController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/RecordCategoryController.java index f1b7440c..289f85ca 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/RecordCategoryController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/RecordCategoryController.java @@ -4,6 +4,7 @@ import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIg import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryRespVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategorySaveReqVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordRespVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.ObjectUtils; @@ -111,6 +112,17 @@ public class RecordCategoryController extends AbstractFileUploadController imple return success(BeanUtils.toBean(recordCategory, RecordCategoryRespVO.class)); } + + // 文件评审,获取满足当前账户权限的记录列表 + @GetMapping("/getReviewRecordList") + @Operation(summary = "获得文件记录分类") + //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") + public CommonResult> getReviewRecordList() { + List recordRecords = recordCategoryService.getReviewRecordList(); + return success(recordRecords); + } + + @GetMapping("/getRecordCategoryTree") @Operation(summary = "获得文件记录分类") //@PreAuthorize("@ss.hasPermission('qms:record-category:query')") 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 a34828a7..78b1d8e0 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 @@ -141,17 +141,17 @@ public class RecordRecordController extends AbstractFileUploadController impleme return success(BeanUtils.toBean(matchedPermissionList, RecordPermissionRespVO.class)); } - @GetMapping("/export-excel") - @Operation(summary = "导出文件、模板、记录 Excel") - //@PreAuthorize("@ss.hasPermission('qms:record-record:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportRecordRecordExcel(@Valid RecordRecordPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = recordRecordService.getRecordRecordPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "文件、模板、记录.xls", "数据", RecordRecordRespVO.class, - BeanUtils.toBean(list, RecordRecordRespVO.class)); - } +// @GetMapping("/export-excel") +// @Operation(summary = "导出文件、模板、记录 Excel") +// //@PreAuthorize("@ss.hasPermission('qms:record-record:export')") +// @ApiAccessLog(operateType = EXPORT) +// public void exportRecordRecordExcel(@Valid RecordRecordPageReqVO pageReqVO, +// HttpServletResponse response) throws IOException { +// pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); +// List list = recordRecordService.getRecordRecordPage(pageReqVO).getList(); +// // 导出 Excel +// ExcelUtils.write(response, "文件、模板、记录.xls", "数据", RecordRecordRespVO.class, +// BeanUtils.toBean(list, RecordRecordRespVO.class)); +// } } \ 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/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 5241c5f5..ab802aae 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 @@ -1,6 +1,7 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; import com.baomidou.mybatisplus.annotation.TableField; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -61,9 +62,11 @@ public class RecordRecordPageReqVO extends PageParam { private Integer permanently; @Schema(description = "是否需要提交(用来判断文件是否需要走流程)") + @Dict(dicCode = "yes_or_no") private String submitFlag; @Schema(description = "文件记录状态,0: 无效,1: 有效") + @Dict(dicCode = "file_record_status") private Integer recordStatus; @Schema(description = "过期日期") @@ -112,4 +115,6 @@ public class RecordRecordPageReqVO extends PageParam { @Schema(description = "是否查询历史数据") private Integer isQueryHistory; // 1-查询,0-不查询 + private String ew; + } \ 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/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 e9b5112a..c5888b62 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 @@ -90,11 +90,13 @@ public class RecordRecordRespVO { private Integer permanently; @Schema(description = "是否需要提交(用来判断文件是否需要走流程)") + @Dict(dicCode = "yes_or_no") @ExcelProperty("是否需要提交(用来判断文件是否需要走流程)") private String submitFlag; @Schema(description = "文件记录状态,0: 无效,1: 有效") @ExcelProperty("文件记录状态,0: 无效,1: 有效") + @Dict(dicCode = "file_record_status") private Integer recordStatus; @Schema(description = "过期日期") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java index 3304ece7..d254f362 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java @@ -1,5 +1,7 @@ package com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply; +import com.alibaba.fastjson2.JSONObject; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -74,15 +76,25 @@ public class RecordApplyDO extends BusinessBaseDO { @TableField("APL_DEPT_NAME") private String applyDepartmentName; /** + * 评审时间 + */ + @TableField("RVW_TM") + private LocalDateTime reviewTime; + /** * 评审范围 */ @TableField("RVW_RNG") private String reviewRange; /** - * 参加评审人员 + * 分发目标 + */ + @TableField("ASN_TGT") + private String assignTarget; + /** + * 参加评审部门 */ - @TableField("RVW_USER_NAME") - private String reviewUserName; + @TableField("RVW_DEPT_IDS") + private String reviewDepartmentIds; /** * 参加评审人员id */ @@ -134,4 +146,9 @@ public class RecordApplyDO extends BusinessBaseDO { @TableField("RMK") private String remark; +// ========================== + + @TableField(exist = false) + private List dataList; + } \ 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/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 f92d704d..39df48e4 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 @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -54,6 +55,16 @@ public class RecordApplyDetailDO extends BusinessBaseDO { */ @TableField("TGT_ID") private Long targetId; + /** + * 是否需要更改 + */ + @TableField("IS_MDF") + private Integer isModify; + /** + * 更改原因 + */ + @TableField("MDF_CAUS") + private String modifyCause; /** * 是否长期有效 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapplydetail/RecordApplyDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java similarity index 97% rename from zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapplydetail/RecordApplyDetailMapper.java rename to zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java index 8419a3e8..fac81b2c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapplydetail/RecordApplyDetailMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.qms.resource.record.dal.dao.recordapplydetail; +package com.zt.plat.module.qms.resource.record.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapply/RecordApplyMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java similarity index 93% rename from zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapply/RecordApplyMapper.java rename to zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java index 1d3cf9d9..79388168 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapply/RecordApplyMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.qms.resource.record.dal.dao.recordapply; +package com.zt.plat.module.qms.resource.record.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -24,7 +24,7 @@ public interface RecordApplyMapper extends BaseMapperX { .eqIfPresent(RecordApplyDO::getApplyDepartmentName, reqVO.getApplyDepartmentName()) .eqIfPresent(RecordApplyDO::getApplyDepartmentId, reqVO.getApplyDepartmentId()) .eqIfPresent(RecordApplyDO::getReviewRange, reqVO.getReviewRange()) - .likeIfPresent(RecordApplyDO::getReviewUserName, reqVO.getReviewUserName()) + .likeIfPresent(RecordApplyDO::getReviewDepartmentIds, reqVO.getReviewDepartmentIds()) .eqIfPresent(RecordApplyDO::getReviewUserIds, reqVO.getReviewUserIds()) .eqIfPresent(RecordApplyDO::getApplyContent, reqVO.getApplyContent()) .eqIfPresent(RecordApplyDO::getChangeBefore, reqVO.getChangeBefore()) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordcategory/RecordCategoryMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java similarity index 96% rename from zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordcategory/RecordCategoryMapper.java rename to zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java index 5d4ff9b8..ba71363d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordcategory/RecordCategoryMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordCategoryMapper.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.qms.resource.record.dal.dao.recordcategory; +package com.zt.plat.module.qms.resource.record.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordpermission/RecordPermissionMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.java similarity index 96% rename from zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordpermission/RecordPermissionMapper.java rename to zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.java index 89c88d95..29b4abcb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordpermission/RecordPermissionMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordPermissionMapper.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.qms.resource.record.dal.dao.recordpermission; +package com.zt.plat.module.qms.resource.record.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java similarity index 59% rename from zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java rename to zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java index a5a7b067..3f036c69 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java @@ -1,11 +1,19 @@ -package com.zt.plat.module.qms.resource.record.dal.dao.recordrecord; +package com.zt.plat.module.qms.resource.record.dal.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.PageResult; -import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplyDetailJoinPageVO; 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.dal.dataobject.recordrecord.RecordRecordDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * 文件、模板、记录 Mapper @@ -42,4 +50,32 @@ public interface RecordRecordMapper extends BaseMapperX { .orderByDesc(RecordRecordDO::getId)); } + /** + * 多表关联分页查询:recordRecord、recordApplyDetail、recordApply + * 关联关系:recordRecord.id = recordApplyDetail.documentId + * recordApplyDetail.applyId = recordApply.id + */ + IPage selectRecordWithApplyPage(Page page,@Param("reqVO") RecordRecordPageReqVO reqVO); + + /** + * 文件评审分页查询:关联查询 recordApply、recordApplyDetail、recordRecord + * 查询条件:recordApply 的 businessType = '文件评审' + */ + @Select("SELECT DISTINCT trr.* FROM t_rcd_rcd trr " + + "INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID " + + "INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID " + + "WHERE tra.BSN_TP = #{businessType} " + + "ORDER BY trr.ID DESC " + + "LIMIT #{offset}, #{pageSize}") + List selectRecordReviewPage(String businessType, int offset, int pageSize); + + /** + * 获取文件评审总数 + */ + @Select("SELECT COUNT(DISTINCT trr.ID) FROM t_rcd_rcd trr " + + "INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID " + + "INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID " + + "WHERE tra.BSN_TP = #{businessType}") + Long selectRecordReviewCount(String businessType); + } \ 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/dao/recordRelation/RecordRelationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRelationMapper.java similarity index 94% rename from zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordRelation/RecordRelationMapper.java rename to zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRelationMapper.java index 5a5cbb2b..7606e277 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordRelation/RecordRelationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRelationMapper.java @@ -1,4 +1,4 @@ -package com.zt.plat.module.qms.resource.record.dal.dao.recordRelation; +package com.zt.plat.module.qms.resource.record.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationServiceImpl.java index 7d099edb..1f092fa0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationServiceImpl.java @@ -14,7 +14,7 @@ import com.zt.plat.module.qms.resource.record.dal.dataobject.recordRelation.Reco import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.module.qms.resource.record.dal.dao.recordRelation.RecordRelationMapper; +import com.zt.plat.module.qms.resource.record.dal.mapper.RecordRelationMapper; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java index 7b430f4a..ca02e5c3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java @@ -5,9 +5,12 @@ import java.util.*; import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplyDetailJoinPageVO; 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; import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplySaveReqVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; import jakarta.validation.*; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; import com.zt.plat.framework.common.pojo.PageResult; @@ -70,15 +73,8 @@ public interface RecordApplyService { * @param createReqVO 创建信息 * @return 申请信息 */ - CommonResult createTempData(@Valid RecordApplySaveReqVO createReqVO); + CommonResult createApplyData(@Valid RecordApplySaveReqVO createReqVO); - /** - * 增加明细 - * - * @param param 参数 - * @return 结果 - */ - CommonResult addDetail(JSONObject param); /** * 删除明细 @@ -102,7 +98,7 @@ public interface RecordApplyService { * @param param 参数 * @return 申请信息 */ - CommonResult submitRecordApply(@Valid RecordApplyRespVO param); + CommonResult submitRecordApply(@Valid RecordApplySaveReqVO param); /** * 获取申请及意见 @@ -120,4 +116,13 @@ public interface RecordApplyService { */ CommonResult callback(QmsBpmDTO reqDTO); + /** + * 文件评审分页查询 + * @param pageReqVO + * @return + */ + + PageResult recordReviewPage(@Valid RecordRecordPageReqVO pageReqVO); + + PageResult recordDistributePage(@Valid RecordApplyPageReqVO 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 2c3ee1d7..ecc3ac2a 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 @@ -2,7 +2,7 @@ package com.zt.plat.module.qms.resource.record.service.recordapply; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; -import com.zt.plat.framework.common.exception.ServerException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; @@ -20,12 +20,15 @@ import com.zt.plat.module.qms.enums.QmsBpmConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.resource.record.common.RecordCommonUtils; import com.zt.plat.module.qms.resource.record.constant.RecordConstants; +import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplyDetailJoinPageVO; 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; import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplySaveReqVO; 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.RecordPermissionSaveReqVO; -import com.zt.plat.module.qms.resource.record.dal.dao.recordapply.RecordApplyMapper; +import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailRespVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.mapper.RecordApplyMapper; +import com.zt.plat.module.qms.resource.record.dal.mapper.RecordRecordMapper; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; @@ -37,6 +40,7 @@ import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPer import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -82,6 +86,9 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Resource private RecordPermissionService recordPermissionService; + @Resource + private RecordRecordMapper recordRecordMapper; + private LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); @Override @@ -133,7 +140,11 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Override public RecordApplyDO getRecordApply(Long id) { - return recordApplyMapper.selectById(id); + RecordApplyDO recordApplyDO = recordApplyMapper.selectById(id); + if (ObjectUtils.isEmpty(recordApplyDO)) return recordApplyDO; + List recordApplyDetailDOS = recordApplyDetailService.selectAllList(id); + if (!recordApplyDetailDOS.isEmpty()) recordApplyDO.setDataList(recordApplyDetailDOS); + return recordApplyDO; } @Override @@ -144,13 +155,13 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn //创建临时数据 @Override @Transactional(rollbackFor = Exception.class) - public CommonResult createTempData(RecordApplySaveReqVO createReqVO) { - String businessType = createReqVO.getBusinessType(); + public CommonResult createApplyData(RecordApplySaveReqVO param) { + String businessType = param.getBusinessType(); if (ObjectUtils.isEmpty(businessType)) - return CommonResult.error(RECORD_APPLY_NOT_EXISTS.getCode(), "请选择业务类型"); + throw exception0(RECORD_APPLY_NOT_EXISTS.getCode(), "请选择业务类型"); - RecordApplyDO recordApply = BeanUtils.toBean(createReqVO, RecordApplyDO.class); - recordApply.setBusinessStatus(QmsCommonConstant.TEMP_DATA_CODE); + RecordApplyDO recordApply = BeanUtils.toBean(param, RecordApplyDO.class); + recordApply.setBusinessStatus(QmsCommonConstant.NOT_START); // 未发起 //取当前用户 LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); @@ -161,59 +172,89 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApply.setApplyDepartmentName(loginUser.getVisitDeptName()); //生成标题 - String title = nickName + "的文件下发申请_" + new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date()); + String title = nickName + "的"+ businessType +"_" + new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date()); recordApply.setTitle(title); recordApplyMapper.insert(recordApply); + addDetail(param,recordApply); + return CommonResult.success(BeanUtils.toBean(recordApply, RecordApplyRespVO.class)); } //增加明细 - @Override @Transactional(rollbackFor = Exception.class) - public CommonResult addDetail(JSONObject param) { - String documentIds = param.getString("documentIds"); - String applyId = param.getString("applyId"); - if (ObjectUtils.isEmpty(documentIds)) - return CommonResult.error(RECORD_APPLY_NOT_EXISTS.getCode(), "请选择文件"); - if (ObjectUtils.isEmpty(applyId)) - return CommonResult.error(RECORD_APPLY_NOT_EXISTS.getCode(), "缺少申请id参数,请刷新后重试!"); - - Long id = Long.valueOf(applyId); - RecordApplyDO apply = getRecordApply(id); - if (apply == null) - return CommonResult.error(RECORD_APPLY_NOT_EXISTS.getCode(), "申请不存在"); - - List documentIdList = Arrays.stream(documentIds.split(",")).map(Long::valueOf).toList(); - - //查询已有明细,避免重复添加 - RecordApplyDetailPageReqVO detailPageReqVO = new RecordApplyDetailPageReqVO(); - detailPageReqVO.setApplyId(id); - List detailList = recordApplyDetailService.getRecordApplyDetailPage(detailPageReqVO).getList(); - - //过滤已添加文件 - List addDocumentIds = documentIdList.stream().filter(docId -> - detailList.stream().noneMatch(detail -> detail.getDocumentId().equals(docId))).toList(); - - List detailDOList = new ArrayList<>(); - for (Long documentId : addDocumentIds) { - RecordApplyDetailDO detail = new RecordApplyDetailDO(); - detail.setApplyId(id); - detail.setDocumentId(documentId); - detailDOList.add(detail); - } - - if (!detailDOList.isEmpty()) { - for (RecordApplyDetailDO detail : detailDOList) { - recordApplyDetailService.createRecordApplyDetail( - BeanUtils.toBean(detail, com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailSaveReqVO.class) - ); + public CommonResult addDetail(RecordApplySaveReqVO param,RecordApplyDO recordApplyDO) { + String businessType = param.getBusinessType(); + List paramsList = param.getParamsList(); + //申请通用明细记录 + List detailSaveReqVOList = new ArrayList<>(); + // 判断是否是评审,如果是评审,一批评审文件对应一个申请记录,对应多条申请明细记录 + if (RecordConstants.BusinessType.REVIEW.equals(businessType) + || RecordConstants.BusinessType.RECORD_UPDATE.equals(businessType) + || RecordConstants.BusinessType.VIEW_APPLY.equals(businessType) + || RecordConstants.BusinessType.INVALID.equals(businessType)) { // 评审,或修改申请,或查看申请,或文件作废 + if (ObjectUtils.isEmpty(paramsList)) throw exception(RECORD_RECORD_NOT_EXISTS, "请选择至少一条文件记录"); + for (RecordApplyDetailRespVO item : paramsList) { + RecordApplyDetailDO recordApplyDetailDO = getRecordApplyDetailDO(recordApplyDO, item, businessType); + detailSaveReqVOList.add(recordApplyDetailDO); + } + } else if (RecordConstants.BusinessType.DISTRIBUTION.equals(businessType)) { // 分发 + Long recordId = param.getRecordId(); + Long[] userIds = param.getUserIds(); + Long[] deptIds = param.getDeptIds(); + if (!ObjectUtils.isEmpty(userIds)) { // 用户 + for (Long userId : userIds) { + RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); + recordApplyDetailDO.setApplyId(recordApplyDO.getId()); + recordApplyDetailDO.setDocumentId(recordId); + recordApplyDetailDO.setTargetId(userId);//用户Id + recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); + recordApplyDetailDO.setApplyStartDate(LocalDateTime.now()); // TODO 申请开始时间 + detailSaveReqVOList.add(recordApplyDetailDO); + } + } else { + if (ObjectUtils.isEmpty(deptIds)) throw exception(RECORD_RECORD_NOT_EXISTS, "请选择分发对象"); + for (Long deptId : deptIds) { + RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); + recordApplyDetailDO.setApplyId(recordApplyDO.getId()); + recordApplyDetailDO.setDocumentId(recordId); + recordApplyDetailDO.setTargetId(deptId);//部门Id + recordApplyDetailDO.setTargetType(RecordConstants.TargetType.DEPT); + recordApplyDetailDO.setApplyStartDate(LocalDateTime.now()); // TODO 申请开始时间 + detailSaveReqVOList.add(recordApplyDetailDO); + } } } + else { // 分发 + RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); + Long recordId = param.getRecordId(); + recordApplyDetailDO.setApplyId(recordApplyDO.getId()); + recordApplyDetailDO.setDocumentId(recordId); // 文件Id + detailSaveReqVOList.add(recordApplyDetailDO); + } + boolean recordApplyDetailBatch = recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); + if (!recordApplyDetailBatch) + throw exception(RECORD_APPLY_NOT_EXISTS, "保存申请明细失败"); return CommonResult.success(true); } + @NotNull + private RecordApplyDetailDO getRecordApplyDetailDO(RecordApplyDO recordApplyDO, RecordApplyDetailRespVO item, String businessType) { + RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); + recordApplyDetailDO.setApplyId(recordApplyDO.getId()); + recordApplyDetailDO.setDocumentId(item.getDocumentId()); // 文件Id + if (RecordConstants.BusinessType.VIEW_APPLY.equals(businessType)){ + recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); + recordApplyDetailDO.setTargetId(loginUser.getId()); // 申请人,当前用户 + } + if (RecordConstants.BusinessType.REVIEW.equals(businessType)){ // 评审 是否 修改文件 + recordApplyDetailDO.setIsModify(item.getIsModify()); + recordApplyDetailDO.setModifyCause(item.getModifyCause()); + } + return recordApplyDetailDO; + } + @Override public CommonResult removeDetail(JSONObject param) { String detailIds = param.getString("detailIds"); @@ -304,14 +345,15 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn return false; } - public void updateReviewFlag(RecordApplyRespVO param) { - Long[] recordIdS = param.getRecordIdS(); + public void updateReviewFlag(RecordApplySaveReqVO param) { +// Long[] recordIdS = param.getRecordIdS(); + List paramsList = param.getParamsList(); // 修改recordRecord的submitFlag 字段状态为0,评审中 List recordRecordDOS = new ArrayList<>(); - for (Long recordId : recordIdS) { + for (RecordApplyDetailRespVO it : paramsList) { RecordRecordDO recordRecordDO = new RecordRecordDO(); recordRecordDO.setSubmitFlag("0"); // 评审中 - recordRecordDO.setId(recordId); + recordRecordDO.setId(it.getDocumentId()); recordRecordDOS.add(recordRecordDO); } recordRecordService.updateRecordRecordListByIds(recordRecordDOS); @@ -320,43 +362,32 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn //提交申请-发起流程 @Override @Transactional(rollbackFor = Exception.class) - public CommonResult submitRecordApply(RecordApplyRespVO param) { + public CommonResult submitRecordApply(RecordApplySaveReqVO param) { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (ObjectUtils.isEmpty(loginUser)) throw exception0(1_032_350_401,"请重新登录"); String nickName = SecurityFrameworkUtils.getLoginUserNickname(); Long recordId = param.getRecordId();// 文件Id - - String businessType = param.getBusinessType(); + Long applyId = param.getId(); // 申请Id + if (ObjectUtils.isEmpty(applyId)) throw exception0(1_032_350_401,"申请记录不存在"); + RecordApplyDO recordApplyDO = recordApplyMapper.selectById(applyId); JSONObject formData = new JSONObject(); -// formData.put("mainId", recordId); - - Long[] recordIdS = param.getRecordIdS(); -// if (RecordConstants.BusinessType.REVIEW.equals(businessType)) {// 文件评审 -// if (ObjectUtils.isEmpty(recordIdS)) -// return CommonResult.error(RECORD_APPLY_NOT_EXISTS.getCode(), "请选择文件"); -// } else { -// if (ObjectUtils.isEmpty(recordId)) -// return CommonResult.error(RECORD_APPLY_NOT_EXISTS.getCode(), "请选择文件记录"); -// entity = recordRecordService.getRecordById(recordId); -//// formData.put("mainId", recordId); -// } -// if (ObjectUtils.isEmpty(entity)) throw exception(RECORD_APPLY_NOT_EXISTS); BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO(); // 通用申请 - RecordApplyDO recordApplyDO = new RecordApplyDO(); - recordApplyDO.setApplyUserId(loginUser.getId()); - recordApplyDO.setApplyUserName(SecurityFrameworkUtils.getLoginUserNickname()); - recordApplyDO.setApplyDepartmentId(loginUser.getVisitDeptId()); - recordApplyDO.setApplyDepartmentName(loginUser.getVisitDeptName()); - recordApplyDO.setBusinessType(businessType); // 业务类型:记录提交 - recordApplyDO.setTitle(businessType); - // recordApplyDO.setTitle(entity.getName()); - recordApplyMapper.insert(recordApplyDO); +// RecordApplyDO recordApplyDO = new RecordApplyDO(); +// recordApplyDO.setApplyUserId(loginUser.getId()); +// recordApplyDO.setApplyUserName(SecurityFrameworkUtils.getLoginUserNickname()); +// recordApplyDO.setApplyDepartmentId(loginUser.getVisitDeptId()); +// recordApplyDO.setApplyDepartmentName(loginUser.getVisitDeptName()); +// recordApplyDO.setBusinessType(businessType); // 业务类型:记录提交 +// recordApplyDO.setTitle(businessType); +// // recordApplyDO.setTitle(entity.getName()); +// recordApplyMapper.insert(recordApplyDO); - reqDTO.setBusinessKey(String.valueOf(recordApplyDO.getId())); - // TODO 流程定义key 待定 + reqDTO.setBusinessKey(String.valueOf(applyId)); + String businessType = recordApplyDO.getBusinessType(); switch (businessType) { case RecordConstants.BusinessType.RECORD_SUBMIT: // 判断根分类上是否配置自定义配置,允许提交,则需要走流程,否则直接提交 @@ -417,68 +448,9 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn String wfInsId = result.getData(); recordApplyDO.setFlowInstanceId(wfInsId); // 更新申请实例Id - recordApplyDO.setBusinessStatus(QmsCommonConstant.RUNNING); + recordApplyDO.setBusinessStatus(QmsCommonConstant.RUNNING); // recordApplyMapper.updateById(recordApplyDO); - - //申请通用明细记录 - List detailSaveReqVOList = new ArrayList<>(); - // 判断是否是评审,如果是评审,一批评审文件对应一个申请记录,对应多条申请明细记录 - if (RecordConstants.BusinessType.REVIEW.equals(businessType) - || RecordConstants.BusinessType.RECORD_UPDATE.equals(businessType) - || RecordConstants.BusinessType.VIEW_APPLY.equals(businessType) - || RecordConstants.BusinessType.INVALID.equals(businessType)) { // 评审,或修改申请,或查看申请,或文件作废 - if (ObjectUtils.isEmpty(recordIdS)) throw exception(RECORD_RECORD_NOT_EXISTS, "请选择至少一条文件记录"); - for (Long id : recordIdS) { - RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); - recordApplyDetailDO.setApplyId(recordApplyDO.getId()); - recordApplyDetailDO.setDocumentId(id); // 文件Id - if (RecordConstants.BusinessType.VIEW_APPLY.equals(businessType)){ - recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); - recordApplyDetailDO.setTargetId(loginUser.getId()); // 申请人,当前用户 - } - detailSaveReqVOList.add(recordApplyDetailDO); - } - } else if (RecordConstants.BusinessType.DISTRIBUTION.equals(businessType)) { // 分发 - Long[] userIds = param.getUserIds(); - Long[] deptIds = param.getDeptIds(); - if (!ObjectUtils.isEmpty(userIds)) { // 用户 - for (Long userId : userIds) { - RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); - recordApplyDetailDO.setApplyId(recordApplyDO.getId()); - recordApplyDetailDO.setDocumentId(recordId); - recordApplyDetailDO.setTargetId(userId);//用户Id - recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); - recordApplyDetailDO.setApplyStartDate(LocalDateTime.now()); // TODO 申请开始时间 - detailSaveReqVOList.add(recordApplyDetailDO); - } - } else { - if (ObjectUtils.isEmpty(deptIds)) throw exception(RECORD_RECORD_NOT_EXISTS, "请选择分发对象"); - for (Long deptId : deptIds) { - RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); - recordApplyDetailDO.setApplyId(recordApplyDO.getId()); - recordApplyDetailDO.setDocumentId(recordId); - recordApplyDetailDO.setTargetId(deptId);//部门Id - recordApplyDetailDO.setTargetType(RecordConstants.TargetType.DEPT); - recordApplyDetailDO.setApplyStartDate(LocalDateTime.now()); // TODO 申请开始时间 - detailSaveReqVOList.add(recordApplyDetailDO); - } - } - } -// else if (RecordConstants.BusinessType.RECORD_UPDATE.equals(businessType)) { // 修改申请 -// -// -// } - else { // 分发 - RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); - recordApplyDetailDO.setApplyId(recordApplyDO.getId()); - recordApplyDetailDO.setDocumentId(recordId); // 文件Id - detailSaveReqVOList.add(recordApplyDetailDO); - } - boolean recordApplyDetailBatch = recordApplyDetailService.createRecordApplyDetailBatch(detailSaveReqVOList); - if (!recordApplyDetailBatch) - throw exception(RECORD_APPLY_NOT_EXISTS, "保存申请明细失败"); - return CommonResult.success(BeanUtils.toBean(recordApplyDO, RecordApplyRespVO.class)); } @@ -519,6 +491,15 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); + String lastActivityFlag = variables.getString("lastActivityFlag"); + if ("1".equals(lastActivityFlag)) { // 执行到申请人节点,修改状态 + if (PROCESS_STATUS.equals("1") || PROCESS_STATUS.equals("2")) { + recordApplyDO.setBusinessStatus(QmsCommonConstant.RUNNING); + recordApplyMapper.updateById(recordApplyDO); + JSONObject ret = new JSONObject(); + return CommonResult.success(ret); + } + } if (("1").equals(returnFlag)) { //驳回,状态变更为未发起 TODO @@ -543,14 +524,19 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApplyFlowStatus(entity); break; case RecordConstants.BusinessType.REVIEW: // 评审 + List detailDOList = new ArrayList<>(); // 1条申请----> 多条明细记录 ----> 多条文件记录 for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { - RecordRecordDO recordRecordDO = new RecordRecordDO(); - recordRecordDO.setId(applyDetailDO.getDocumentId()); - recordRecordDO.setSubmitFlag("1"); // 评审通过 - recordRecordDOS.add(recordRecordDO); + if (applyDetailDO.getIsModify() == 1){ + RecordApplyDetailRespVO detailDO = new RecordApplyDetailRespVO(); + detailDOList.add(detailDO); + } } - recordReviewFlowStatus(recordRecordDOS); + // 文件评审通过了,如果需要修改文件,直接发起修改申请流程 + RecordApplySaveReqVO recordApplyRespVO = new RecordApplySaveReqVO(); + recordApplyRespVO.setBusinessType(RecordConstants.BusinessType.RECORD_UPDATE); + recordApplyRespVO.setParamsList(detailDOList); + submitRecordApply(recordApplyRespVO); break; case RecordConstants.BusinessType.DISTRIBUTION: // 分发 recordPermissionAdd(recordApplyDetailDOS); @@ -628,4 +614,32 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn if (!b) throw exception(RECORD_APPLY_NOT_EXISTS, "保存分发权限失败"); } } + + + /** + * 文件评审分页查询,我需要查询出 recordApply 和 recordApplyDetail 和recordRecord 关联的数据,其中: + * recordApply 对 recordApplyDetail 一对多的关系 + * recordApplyDetail 对 和recordRecord 一对一的关系 + * 查询条件:recordApply 的 businessType = '文件评审' + * */ + @Override + public PageResult recordReviewPage(RecordRecordPageReqVO pageReqVO) { + // 使用多表连接查询获取文件评审数据 + int pageNo = pageReqVO.getPageNo(); + int pageSize = pageReqVO.getPageSize(); + int offset = (pageNo - 1) * pageSize; + + // 查询分页数据 + List list = recordRecordMapper.selectRecordReviewPage(RecordConstants.BusinessType.REVIEW, offset, pageSize); + + // 查询总数 + Long total = recordRecordMapper.selectRecordReviewCount(RecordConstants.BusinessType.REVIEW); + + return new PageResult<>(list, total); + } + + @Override + public PageResult recordDistributePage(RecordApplyPageReqVO pageReqVO) { + return recordApplyMapper.selectPage(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/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 d55aea19..440d8436 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 @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.record.service.recordapplydetail; import java.util.*; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailRespVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailSaveReqVO; @@ -80,4 +81,7 @@ public interface RecordApplyDetailService { List getRecordApplyDetailJoinList(Long documentId, String businessType); boolean createRecordApplyDetailBatch(List detailSaveReqVOList); + + // 查询明细不分页 + List selectAllList(Long applyId) ; } \ 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 91555848..2e3776c8 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 @@ -16,7 +16,7 @@ import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.R import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.module.qms.resource.record.dal.dao.recordapplydetail.RecordApplyDetailMapper; +import com.zt.plat.module.qms.resource.record.dal.mapper.RecordApplyDetailMapper; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; @@ -107,4 +107,9 @@ public class RecordApplyDetailServiceImpl implements RecordApplyDetailService { return recordApplyDetailMapper.insertBatch(detailSaveReqVOList); } + @Override + public List selectAllList(Long applyId) { + return recordApplyDetailMapper.selectList(RecordApplyDetailDO::getApplyId, applyId); + } + } \ 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 472f5f1b..06b54fda 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 @@ -5,6 +5,7 @@ import java.util.*; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryRespVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategorySaveReqVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordRespVO; import jakarta.validation.*; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; import com.zt.plat.framework.common.pojo.PageResult; @@ -62,4 +63,13 @@ public interface RecordCategoryService { PageResult getRecordCategoryPage(RecordCategoryPageReqVO pageReqVO); List getRecordCategoryTree(RecordCategoryPageReqVO pageReqVO); + + RecordCategoryDO selectById(Long categoryId); + + /** + * // 文件评审,获取满足当前账户权限的记录列表 + * @return + */ + + List getReviewRecordList(); } \ 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 e2607399..2dcc29ef 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 @@ -14,7 +14,7 @@ import com.zt.plat.module.qms.resource.record.constant.RecordConstants; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryRespVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategorySaveReqVO; -import com.zt.plat.module.qms.resource.record.dal.dao.recordcategory.RecordCategoryMapper; +import com.zt.plat.module.qms.resource.record.dal.mapper.RecordCategoryMapper; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPermissionService; @@ -32,9 +32,9 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; /** @@ -155,6 +155,91 @@ public class RecordCategoryServiceImpl implements RecordCategoryService { // return pass.get(); // } + + // 文件评审,获取满足当前账户权限的记录列表 + @Override + public List getReviewRecordList() { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (ObjectUtils.isEmpty(loginUser)) throw exception0(1, "用户未登录"); + + Long userId = loginUser.getId(); + Long visitDeptId = loginUser.getVisitDeptId(); + + // 获取当前用户的所有角色 + CommonResult> userRoleIdListResult = permissionApi.getUserRoleIdListByUserId(userId); + Set userRoleIds = userRoleIdListResult.getData(); + if (ObjectUtils.isEmpty(userRoleIds)) { + userRoleIds = new java.util.HashSet<>(); + } + + // 获取权限字典值 + businessDOList = selectDictPermissionByKey(RecordConstants.PermissionType.PERMISSION_KEY); + String permissionAdmin = getDictValueByKey(businessDOList, RecordConstants.PermissionType.ADMIN); + + // 获取目标类型字典值 + dictionaryBusinessDOS = selectDictTargetTypeByKey(RecordConstants.TargetType.TARGET_KEY); + String targetUser = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.USER); + String targetDept = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.DEPT); + String targetRole = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.ROLE); + + // 查询所有权限为"管理员"的权限记录 + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(RecordPermissionDO::getPermission, permissionAdmin); + List adminPermissions = recordPermissionService.selectList(queryWrapper); + + if (CollUtil.isEmpty(adminPermissions)) { + return new ArrayList<>(); + } + + // 收集满足条件的 recordCategory ID + Set categoryIds = new java.util.HashSet<>(); + + for (RecordPermissionDO permission : adminPermissions) { + // 条件1:权限必须是"管理员"(已在上面的查询中过滤) + // 条件2、3、4:targetType 和 targetId 需要满足以下任意一个 + boolean isMatched = false; + + // 条件2:targetType='用户' 且 targetId=用户id + if (targetUser.equals(permission.getTargetType()) && + userId.toString().equals(permission.getTargetId())) { + isMatched = true; + } + + // 条件3:targetType='部门' 且 targetId=部门id + if (!isMatched && targetDept.equals(permission.getTargetType()) && + visitDeptId.toString().equals(permission.getTargetId())) { + isMatched = true; + } + + // 条件4:targetType='角色' 且 targetId 在用户角色列表中 + if (!isMatched && targetRole.equals(permission.getTargetType())) { + try { + Long roleId = Long.parseLong(permission.getTargetId()); + if (userRoleIds.contains(roleId)) { + isMatched = true; + } + } catch (NumberFormatException e) { + log.warn("Invalid role ID format: {}", permission.getTargetId()); + } + } + + // 如果满足条件,添加 sourceId(recordCategory ID) + if (isMatched && permission.getSourceId() != null) { + categoryIds.add(permission.getSourceId()); + } + } + + // 根据 categoryIds 查询 recordCategory 列表 + if (CollUtil.isEmpty(categoryIds)) { + return new ArrayList<>(); + } + + List recordCategories = recordCategoryMapper.selectByIds(new ArrayList<>(categoryIds)); + + // 转换为 RespVO 返回 + return BeanUtils.toBean(recordCategories, RecordCategoryRespVO.class); + } + @Transactional(rollbackFor = Exception.class) @Override public void updateRecordCategory(RecordCategorySaveReqVO updateReqVO) { @@ -354,93 +439,10 @@ public class RecordCategoryServiceImpl implements RecordCategoryService { queryWrapper.ne(RecordCategoryDO::getName, ""); // 排除 name 为空字符串的数据 return recordCategoryMapper.selectList(queryWrapper); } -// public List getRecordCategoryTree(RecordCategoryPageReqVO pageReqVO) { -// // 判断权限 -// //当前登录用户 -// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); -// Long userId = loginUser.getId(); -// //当前登录用户昵称 -// Long currentDeptId = loginUser.getVisitDeptId(); -// -// //通过DeptApi获取完整部门信息(包括父部门) -// CommonResult deptResult = deptApi.getDept(currentDeptId); -// DeptRespDTO currentDept = deptResult.getData(); -// Long parentDeptId = currentDept.getParentId(); // 获取父部门ID -// -// // 如果需要递归获取所有父部门 -// List parentDepts = getParentDepts(parentDeptId); -// parentDepts.add(currentDept); -// -// // 查询满足条件(1)的所以文件记录分类 -// LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); -// queryWrapper.eq(RecordCategoryDO::getDeleted, 0);// 没有删除的数据 -// queryWrapper.orderByAsc(RecordCategoryDO::getSortNo); // 升序 -// -// String name = pageReqVO.getName(); -// if (!ObjectUtils.isEmpty(name)) queryWrapper.eq(RecordCategoryDO::getName, name); -// -// // 授权对象 -// selectDictTargetTypeByKey(RecordConstants.TargetType.TARGET_KEY); -// // 通过key 获取字典的值 -// String targetUser = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.USER);// 用户权限 -// -// // 管理权限 -// businessDOList=selectDictPermissionByKey(RecordConstants.PermissionType.PERMISSION_KEY); -// String permissionAdmin = getDictValueByKey(businessDOList, RecordConstants.PermissionType.ADMIN);// 管理员权限 -// -// // 首先判断当前账户是不是管理员,如果是管理员,则直接查询所有数据返回 -// RecordPermissionDO permission = judgeIsAdmin(targetUser, userId, permissionAdmin); -// if (!ObjectUtils.isEmpty(permission)) { -// return recordCategoryMapper.selectList(queryWrapper); -// } -// -// -// List recordCategoryDOS = new ArrayList<>(); -// -// // 获取所有权限数据,判断当前登录用户是否在授权范围内 -// List recordPermissionDOS = recordPermissionService.selectAllList(new RecordPermissionDO()); -// List allPermissionList = getAllPermissionList(recordPermissionDOS, userId, parentDepts); -// if (!ObjectUtils.isEmpty(allPermissionList)) { -// // 查询满足条件的所以文件记录分类 -// List sourceIds = allPermissionList.stream().map(RecordPermissionDO::getSourceId).toList(); -// if (!ObjectUtils.isEmpty(name)) queryWrapper.eq(RecordCategoryDO::getName, name); -// queryWrapper.in(RecordCategoryDO::getId, sourceIds); -// recordCategoryDOS = recordCategoryMapper.selectList(queryWrapper); -// } -// -// return recordCategoryDOS; -// } - // 判断是否在授权范围内 -// public List getAllPermissionList(List recordPermissionDOS, Long userId, List parentDepts) { -// String targetUser = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.USER);// 用户权限 -// String targetDept = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.DEPT);// 部门权限 -// String targetRole = getDictValueByKey(dictionaryBusinessDOS, RecordConstants.TargetType.ROLE);// 部门权限 -// List permissionDOList = new ArrayList<>(); -// if (!ObjectUtils.isEmpty(recordPermissionDOS)) { -// // 判断授权类型 -// recordPermissionDOS.forEach(item -> { -// // 1.用户 -// if (item.getTargetType().equals(targetUser) && item.getTargetId().equals(userId.toString())) { -// permissionDOList.add(item); -// } -// // 2.部门 --> 需要判断当前登录用户所在部门和父部门是否在授权范围内 -// if (item.getTargetType().equals(targetDept)) { -// parentDepts.forEach(it->{ -// if (item.getTargetId().equals(it.getId().toString())) permissionDOList.add(item); -// }); -// } -// // 3.角色 --> 需要查询当前登录用户的角色列表,判断是否在授权范围内 -// if (item.getTargetType().equals(targetRole)) { -// CommonResult> roleResult = permissionApi.getUserRoleIdListByUserId(userId); -// Set roleIds = roleResult.getData(); -// roleIds.forEach(roleId -> { -// if (item.getTargetId().equals(roleId.toString())) permissionDOList.add(item); -// }); -// } -// }); -// } -// return permissionDOList; -// } + @Override + public RecordCategoryDO selectById(Long categoryId) { + return recordCategoryMapper.selectById(categoryId); + } } \ 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/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 109ad5ac..7eaeaaaf 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 @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.record.service.recordpermission; import java.util.*; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -67,4 +68,6 @@ public interface RecordPermissionService { // 批量查询 boolean insertRecordPermissionBatch(List recordPermissionDO); + + List selectList(LambdaQueryWrapper lambdaQueryWrapper); } \ 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 d91da87b..5ac83227 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 @@ -3,8 +3,6 @@ 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.toolkit.Wrappers; -import com.zt.plat.framework.security.core.LoginUser; -import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; 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; @@ -20,7 +18,7 @@ import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.Re import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.module.qms.resource.record.dal.dao.recordpermission.RecordPermissionMapper; +import com.zt.plat.module.qms.resource.record.dal.mapper.RecordPermissionMapper; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; @@ -68,6 +66,11 @@ public class RecordPermissionServiceImpl implements RecordPermissionService { return recordPermissionMapper.insertBatch(permissionDOList); } + @Override + public List selectList(LambdaQueryWrapper lambdaQueryWrapper) { + return recordPermissionMapper.selectList(lambdaQueryWrapper); + } + @Override public RecordPermissionRespVO createRecordPermission(RecordPermissionSaveReqVO createReqVO) { // 插入 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 18962bd4..52ec529b 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 @@ -80,7 +80,18 @@ public interface RecordRecordService { RecordRecordDO getRecordById(Long id); + /** + * 更新单条 + * @param recordDO + * @return + */ + RecordRecordRespVO updateRecordRecordById(RecordRecordDO recordDO); + /** + * 通过记录Id 批量更新 + * @param recordRecordDOS + */ + void updateRecordRecordListByIds(List recordRecordDOS); } \ 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/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 441ee3d8..fb4f0a1b 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 @@ -16,12 +16,12 @@ import com.zt.plat.module.qms.resource.record.constant.RecordConstants; 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.dao.recordcategory.RecordCategoryMapper; -import com.zt.plat.module.qms.resource.record.dal.dao.recordpermission.RecordPermissionMapper; -import com.zt.plat.module.qms.resource.record.dal.dao.recordrecord.RecordRecordMapper; +//import com.zt.plat.module.qms.resource.record.dal.dao.recordrecord.RecordRecordMapper; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; 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.dal.mapper.RecordRecordMapper; +import com.zt.plat.module.qms.resource.record.service.recordcategory.RecordCategoryService; import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPermissionService; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.dept.dto.DeptRespDTO; @@ -54,9 +54,6 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Resource private RecordRecordMapper recordRecordMapper; - @Resource - private RecordCategoryMapper recordCategoryMapper; - @Resource private BusinessFileService businessFileService; @@ -66,9 +63,6 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Resource private DeptApi deptApi; - @Resource - private RecordPermissionMapper recordPermissionMapper; - @Resource private PermissionApi permissionApi; @@ -91,10 +85,12 @@ public class RecordRecordServiceImpl implements RecordRecordService { private List dictionaryBusinessDOS = new ArrayList<>(); private List businessDOList = new ArrayList<>(); + @Autowired + private RecordCategoryService recordCategoryService; // 验证分类ID 是否存在 private RecordCategoryDO validateRecordCategoryIdExists(Long categoryId) { - RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(categoryId); + RecordCategoryDO recordCategoryDO = recordCategoryService.selectById(categoryId); if (ObjectUtils.isEmpty(recordCategoryDO)) throw exception(RCD_CTGR_NOT_EXISTS); else return recordCategoryDO; } @@ -241,7 +237,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { hasPermissionByCategoryId(recordRecordDO.getCategoryId()); if (!ObjectUtils.isEmpty(recordRecordDO)) { Long categoryId = recordRecordDO.getCategoryId(); - RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(categoryId); + RecordCategoryDO recordCategoryDO = recordCategoryService.selectById(categoryId); Long parentId = recordCategoryDO.getParentId(); String dept = RecordConstants.TargetType.DEPT; @@ -253,7 +249,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { // 判断当前用户的管理员权限 LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(RecordPermissionDO::getTargetId, id); - List recordPermissionDOS = recordPermissionMapper.selectList(lambdaQueryWrapper); + List recordPermissionDOS = recordPermissionService.selectList(lambdaQueryWrapper); if (!ObjectUtils.isEmpty(recordPermissionDOS)) return CommonResult.success(RecordConstants.PermissionType.ADMIN); String s = hasPermissionByCategoryId(parentId); @@ -268,7 +264,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { hasPermissionByCategoryId(recordRecordDO.getCategoryId()); if (!ObjectUtils.isEmpty(recordRecordDO)) { Long categoryId = recordRecordDO.getCategoryId(); - RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(categoryId); + RecordCategoryDO recordCategoryDO = recordCategoryService.selectById(categoryId); recordRecordDO.setCategoryName(recordCategoryDO.getName()); // 判断当前操作记录可执行的权限 Long parentId = recordCategoryDO.getParentId(); @@ -499,7 +495,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { //不是管理员,判断部门、角色权限 // 获取分类ID 的父节点,并校验当前用户是否有权限 - RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(categoryId); + RecordCategoryDO recordCategoryDO = recordCategoryService.selectById(categoryId); if (ObjectUtils.isEmpty(recordCategoryDO)) return new PageResult().setTotal(0L); Long parentId = recordCategoryDO.getParentId(); @@ -512,7 +508,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { // 通过 categoryId 查询所属分类的 customConfig(存储为JSON字符串),解析后追加到每条记录中 // 使用 Map 缓存已查询的分类,避免同分类重复查库 // Map categoryCache = new HashMap<>(); - Object finalParse = customConfigParseJson(parentId);; + Object finalParse = customConfigParseJson(parentId); recordRecordDOPageResult.getList().forEach(record -> { try { record.setCustomConfig(finalParse); @@ -531,7 +527,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { } private Object customConfigParseJson(Long parentId) { - RecordCategoryDO categoryDOByParent = recordCategoryMapper.selectById(parentId); + RecordCategoryDO categoryDOByParent = recordCategoryService.selectById(parentId); log.info("categoryDOByParent:{}", categoryDOByParent); if (ObjectUtils.isEmpty(categoryDOByParent)) throw exception(RECORD_CATEGORY_NOT_EXISTS); Object parse=new Object(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapplydetail/RecordApplyDetailMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml similarity index 83% rename from zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapplydetail/RecordApplyDetailMapper.xml rename to zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml index e7c2c0e0..1a0258fe 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapplydetail/RecordApplyDetailMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml @@ -1,6 +1,6 @@ - + + + + + \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordRelation/RecordRelationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRelationMapper.xml similarity index 83% rename from zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordRelation/RecordRelationMapper.xml rename to zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRelationMapper.xml index e481e7b9..a38e4766 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordRelation/RecordRelationMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRelationMapper.xml @@ -1,6 +1,6 @@ - + - - \ No newline at end of file