From 68de07f23235885c49777a194d5e5a54a8d5dc3e Mon Sep 17 00:00:00 2001 From: YBP Date: Wed, 11 Feb 2026 14:06:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/qms/enums/ErrorCodeConstants.java | 13 ++ .../RecordRelationController.java | 126 ++++++++++++ .../vo/RecordRelationPageReqVO.java | 35 ++++ .../vo/RecordRelationRespVO.java | 43 ++++ .../vo/RecordRelationSaveReqVO.java | 33 +++ .../recordapply/RecordApplyController.java | 120 +++++++++++ .../recordapply/vo/RecordApplyPageReqVO.java | 70 +++++++ .../recordapply/vo/RecordApplyRespVO.java | 87 ++++++++ .../recordapply/vo/RecordApplySaveReqVO.java | 70 +++++++ .../RecordApplyDetailController.java | 120 +++++++++++ .../vo/RecordApplyDetailPageReqVO.java | 46 +++++ .../vo/RecordApplyDetailRespVO.java | 55 +++++ .../vo/RecordApplyDetailSaveReqVO.java | 41 ++++ .../RecordCategoryController.java | 124 ++++++++++++ .../vo/RecordCategoryPageReqVO.java | 53 +++++ .../vo/RecordCategoryRespVO.java | 67 ++++++ .../vo/RecordCategorySaveReqVO.java | 49 +++++ .../RecordPermissionController.java | 120 +++++++++++ .../vo/RecordPermissionPageReqVO.java | 60 ++++++ .../vo/RecordPermissionRespVO.java | 75 +++++++ .../vo/RecordPermissionSaveReqVO.java | 56 ++++++ .../recordrecord/RecordRecordController.java | 120 +++++++++++ .../vo/RecordRecordPageReqVO.java | 85 ++++++++ .../recordrecord/vo/RecordRecordRespVO.java | 103 ++++++++++ .../vo/RecordRecordSaveReqVO.java | 87 ++++++++ .../recordRelation/RecordRelationMapper.java | 29 +++ .../dao/recordapply/RecordApplyMapper.java | 40 ++++ .../RecordApplyDetailMapper.java | 32 +++ .../recordcategory/RecordCategoryMapper.java | 35 ++++ .../RecordPermissionMapper.java | 37 ++++ .../dao/recordrecord/RecordRecordMapper.java | 44 ++++ .../recordRelation/RecordRelationDO.java | 60 ++++++ .../dataobject/recordapply/RecordApplyDO.java | 117 +++++++++++ .../RecordApplyDetailDO.java | 77 +++++++ .../recordcategory/RecordCategoryDO.java | 90 +++++++++ .../recordpermission/RecordPermissionDO.java | 101 ++++++++++ .../recordrecord/RecordRecordDO.java | 142 +++++++++++++ .../recordRelation/RecordRelationService.java | 64 ++++++ .../RecordRelationServiceImpl.java | 92 +++++++++ .../recordapply/RecordApplyService.java | 64 ++++++ .../recordapply/RecordApplyServiceImpl.java | 92 +++++++++ .../RecordApplyDetailService.java | 64 ++++++ .../RecordApplyDetailServiceImpl.java | 92 +++++++++ .../recordcategory/RecordCategoryService.java | 65 ++++++ .../RecordCategoryServiceImpl.java | 190 ++++++++++++++++++ .../RecordPermissionService.java | 64 ++++++ .../RecordPermissionServiceImpl.java | 92 +++++++++ .../recordrecord/RecordRecordService.java | 64 ++++++ .../recordrecord/RecordRecordServiceImpl.java | 113 +++++++++++ .../recordRelation/RecordRelationMapper.xml | 12 ++ .../mapper/recordapply/RecordApplyMapper.xml | 12 ++ .../RecordApplyDetailMapper.xml | 12 ++ .../recordcategory/RecordCategoryMapper.xml | 12 ++ .../RecordPermissionMapper.xml | 12 ++ .../recordrecord/RecordRecordMapper.xml | 12 ++ 55 files changed, 3790 insertions(+) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/RecordRelationController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationSaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/RecordApplyDetailController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/RecordCategoryController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategoryPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategoryRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategorySaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordRelation/RecordRelationMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapply/RecordApplyMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapplydetail/RecordApplyDetailMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordcategory/RecordCategoryMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordpermission/RecordPermissionMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordRelation/RecordRelationDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordcategory/RecordCategoryDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordRelation/RecordRelationMapper.xml create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapply/RecordApplyMapper.xml create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapplydetail/RecordApplyDetailMapper.xml create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordcategory/RecordCategoryMapper.xml create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordpermission/RecordPermissionMapper.xml create 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-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java index 31a92206..c5428561 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java @@ -220,4 +220,17 @@ public interface ErrorCodeConstants { /*================================= dzj 大质检 1_032_300_000 ~ 1_032_349_999 ==================================*/ + + + + + + /*================================= document.record 文件记录 1_032_350_000 ~ 1_032_399_999 ==================================*/ + ErrorCode RCD_CTGR_NOT_EXISTS = new ErrorCode(1_032_350_000, "文件记录分类不存在"); + ErrorCode RECORD_APPLY_NOT_EXISTS = new ErrorCode(1_032_350_000, "文件记录通用申请不存在"); + ErrorCode RECORD_APPLY_DETAIL_NOT_EXISTS = new ErrorCode(1_032_350_000, "文件记录通用申请明细不存在"); + ErrorCode RECORD_CATEGORY_NOT_EXISTS = new ErrorCode(1_032_350_000, "文件记录分类不存在"); + ErrorCode RECORD_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_350_000, "记录权限不存在"); + ErrorCode RECORD_RECORD_NOT_EXISTS = new ErrorCode(1_032_350_000, "文件、模板、记录不存在"); + ErrorCode RECORD_RELATION_NOT_EXISTS = new ErrorCode(1_032_350_000, "文件记录关系不存在"); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/RecordRelationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/RecordRelationController.java new file mode 100644 index 00000000..ef82bcef --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/RecordRelationController.java @@ -0,0 +1,126 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordRelation; + +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationPageReqVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationRespVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationSaveReqVO; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.business.annotation.FileUploadController; +import com.zt.plat.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; +import java.util.stream.Collectors; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordRelation.RecordRelationDO; +import com.zt.plat.module.qms.resource.record.service.recordRelation.RecordRelationService; + +@Tag(name = "管理后台 - 文件记录关系") +@RestController +@RequestMapping("/qms/record-relation") +@Validated +@DeptDataPermissionIgnore(enable = "true") +@FileUploadController(source = "qms.recordRelation") +public class RecordRelationController extends AbstractFileUploadController implements BusinessControllerMarker{ + + static { + FileUploadController annotation = RecordRelationController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private RecordRelationService recordRelationService; + + @PostMapping("/create") + @Operation(summary = "创建文件记录关系") + //@PreAuthorize("@ss.hasPermission('qms:record-relation:create')") + public CommonResult createRecordRelation(@Valid @RequestBody RecordRelationSaveReqVO createReqVO) { + return success(recordRelationService.createRecordRelation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新文件记录关系") + //@PreAuthorize("@ss.hasPermission('qms:record-relation:update')") + public CommonResult updateRecordRelation(@Valid @RequestBody RecordRelationSaveReqVO updateReqVO) { + recordRelationService.updateRecordRelation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除文件记录关系") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('qms:record-relation:delete')") + public CommonResult deleteRecordRelation(@RequestParam("id") String id) { + recordRelationService.deleteRecordRelation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除文件记录关系") + //@PreAuthorize("@ss.hasPermission('qms:record-relation:delete')") + public CommonResult deleteRecordRelationList(@RequestBody BatchDeleteReqVO req) { + recordRelationService.deleteRecordRelationListByIds( + req.getIds().stream() + .map(String::valueOf) + .collect(Collectors.toList()) + ); + + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得文件记录关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('qms:record-relation:query')") + public CommonResult getRecordRelation(@RequestParam("id") String id) { + RecordRelationDO recordRelation = recordRelationService.getRecordRelation(id); + return success(BeanUtils.toBean(recordRelation, RecordRelationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得文件记录关系分页") + //@PreAuthorize("@ss.hasPermission('qms:record-relation:query')") + public CommonResult> getRecordRelationPage(@Valid RecordRelationPageReqVO pageReqVO) { + PageResult pageResult = recordRelationService.getRecordRelationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RecordRelationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出文件记录关系 Excel") + //@PreAuthorize("@ss.hasPermission('qms:record-relation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRecordRelationExcel(@Valid RecordRelationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = recordRelationService.getRecordRelationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "文件记录关系.xls", "数据", RecordRelationRespVO.class, + BeanUtils.toBean(list, RecordRelationRespVO.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/recordRelation/vo/RecordRelationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationPageReqVO.java new file mode 100644 index 00000000..02978f60 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationPageReqVO.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +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 RecordRelationPageReqVO extends PageParam { + + @Schema(description = "文件记录id", example = "30001") + private Long rcdId; + + @Schema(description = "目标对象id", example = "16509") + private Long tgtId; + + @Schema(description = "目标对象类型,业务类型:设备、物料试剂、原始记录等") + private String tgtTp; + + @Schema(description = "所属部门") + private String sysDeptCd; + + @Schema(description = "备注") + private String rmk; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ 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/recordRelation/vo/RecordRelationRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationRespVO.java new file mode 100644 index 00000000..b3bc1434 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationRespVO.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 文件记录关系 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RecordRelationRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28532") + @ExcelProperty("主键") + private String id; + + @Schema(description = "文件记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30001") + @ExcelProperty("文件记录id") + private Long rcdId; + + @Schema(description = "目标对象id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16509") + @ExcelProperty("目标对象id") + private Long tgtId; + + @Schema(description = "目标对象类型,业务类型:设备、物料试剂、原始记录等", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("目标对象类型,业务类型:设备、物料试剂、原始记录等") + private String tgtTp; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String sysDeptCd; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String rmk; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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/recordRelation/vo/RecordRelationSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationSaveReqVO.java new file mode 100644 index 00000000..a5cd0a3b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordRelation/vo/RecordRelationSaveReqVO.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 文件记录关系新增/修改 Request VO") +@Data +public class RecordRelationSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28532") + private String id; + + @Schema(description = "文件记录id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30001") + @NotNull(message = "文件记录id不能为空") + private Long rcdId; + + @Schema(description = "目标对象id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16509") + @NotNull(message = "目标对象id不能为空") + private Long tgtId; + + @Schema(description = "目标对象类型,业务类型:设备、物料试剂、原始记录等", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "目标对象类型,业务类型:设备、物料试剂、原始记录等不能为空") + private String tgtTp; + + @Schema(description = "所属部门") + private String sysDeptCd; + + @Schema(description = "备注") + private String rmk; + +} \ 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/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 new file mode 100644 index 00000000..b35748cd --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java @@ -0,0 +1,120 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapply; + +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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 org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.business.annotation.FileUploadController; +import com.zt.plat.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; +import com.zt.plat.module.qms.resource.record.service.recordapply.RecordApplyService; + +@Tag(name = "管理后台 - 文件记录通用申请") +@RestController +@RequestMapping("/qms/record-apply") +@Validated +@DeptDataPermissionIgnore(enable = "true") +@FileUploadController(source = "qms.recordapply") +public class RecordApplyController extends AbstractFileUploadController implements BusinessControllerMarker{ + + static { + FileUploadController annotation = RecordApplyController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private RecordApplyService recordApplyService; + + @PostMapping("/create") + @Operation(summary = "创建文件记录通用申请") + //@PreAuthorize("@ss.hasPermission('qms:record-apply:create')") + public CommonResult createRecordApply(@Valid @RequestBody RecordApplySaveReqVO createReqVO) { + return success(recordApplyService.createRecordApply(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新文件记录通用申请") + //@PreAuthorize("@ss.hasPermission('qms:record-apply:update')") + public CommonResult updateRecordApply(@Valid @RequestBody RecordApplySaveReqVO updateReqVO) { + recordApplyService.updateRecordApply(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除文件记录通用申请") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('qms:record-apply:delete')") + public CommonResult deleteRecordApply(@RequestParam("id") Long id) { + recordApplyService.deleteRecordApply(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除文件记录通用申请") + //@PreAuthorize("@ss.hasPermission('qms:record-apply:delete')") + public CommonResult deleteRecordApplyList(@RequestBody BatchDeleteReqVO req) { + recordApplyService.deleteRecordApplyListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得文件记录通用申请") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@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)); + } + + @GetMapping("/page") + @Operation(summary = "获得文件记录通用申请分页") + //@PreAuthorize("@ss.hasPermission('qms:record-apply:query')") + public CommonResult> getRecordApplyPage(@Valid RecordApplyPageReqVO pageReqVO) { + PageResult pageResult = recordApplyService.getRecordApplyPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RecordApplyRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出文件记录通用申请 Excel") + //@PreAuthorize("@ss.hasPermission('qms:record-apply:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRecordApplyExcel(@Valid RecordApplyPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = recordApplyService.getRecordApplyPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "文件记录通用申请.xls", "数据", RecordApplyRespVO.class, + BeanUtils.toBean(list, RecordApplyRespVO.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/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 new file mode 100644 index 00000000..082036c6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java @@ -0,0 +1,70 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +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 RecordApplyPageReqVO extends PageParam { + + @Schema(description = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审") + private String title; + + @Schema(description = "业务类型", example = "1") + private String businessType; + + @Schema(description = "申请人id", example = "15000") + private Long applyUserId; + + @Schema(description = "申请人姓名", example = "张三") + private String applyUserName; + + @Schema(description = "部门id") + private Long departmentCode; + + @Schema(description = "评审范围") + private String reviewRange; + + @Schema(description = "参加评审人员", example = "赵六") + private String reviewUserName; + + @Schema(description = "参加评审人员id") + private String reviewUserIds; + + @Schema(description = "申请事由") + private String applyContent; + + @Schema(description = "更改前内容") + private String changeBefore; + + @Schema(description = "更改后内容") + private String changeAfter; + + @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 systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ 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/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 new file mode 100644 index 00000000..c3e0dd2a --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java @@ -0,0 +1,87 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 文件记录通用申请 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RecordApplyRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9976") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审") + private String title; + + @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("业务类型") + private String businessType; + + @Schema(description = "申请人id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15000") + @ExcelProperty("申请人id") + private Long applyUserId; + + @Schema(description = "申请人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("申请人姓名") + private String applyUserName; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("部门id") + private Long departmentCode; + + @Schema(description = "评审范围") + @ExcelProperty("评审范围") + private String reviewRange; + + @Schema(description = "参加评审人员", example = "赵六") + @ExcelProperty("参加评审人员") + private String reviewUserName; + + @Schema(description = "参加评审人员id") + @ExcelProperty("参加评审人员id") + private String reviewUserIds; + + @Schema(description = "申请事由") + @ExcelProperty("申请事由") + private String applyContent; + + @Schema(description = "更改前内容") + @ExcelProperty("更改前内容") + private String changeBefore; + + @Schema(description = "更改后内容") + @ExcelProperty("更改后内容") + private String changeAfter; + + @Schema(description = "是否长期有效") + @ExcelProperty("是否长期有效") + private String permanently; + + @Schema(description = "开始日期") + @ExcelProperty("开始日期") + private LocalDateTime applyStartDate; + + @Schema(description = "截止日期") + @ExcelProperty("截止日期") + private LocalDateTime applyEndDate; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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 new file mode 100644 index 00000000..4dc041e6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java @@ -0,0 +1,70 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 文件记录通用申请新增/修改 Request VO") +@Data +public class RecordApplySaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9976") + private Long id; + + @Schema(description = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审不能为空") + private String title; + + @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "业务类型不能为空") + private String businessType; + + @Schema(description = "申请人id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15000") + @NotNull(message = "申请人id不能为空") + private Long applyUserId; + + @Schema(description = "申请人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "申请人姓名不能为空") + private String applyUserName; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "部门id不能为空") + private Long departmentCode; + + @Schema(description = "评审范围") + private String reviewRange; + + @Schema(description = "参加评审人员", example = "赵六") + private String reviewUserName; + + @Schema(description = "参加评审人员id") + private String reviewUserIds; + + @Schema(description = "申请事由") + private String applyContent; + + @Schema(description = "更改前内容") + private String changeBefore; + + @Schema(description = "更改后内容") + private String changeAfter; + + @Schema(description = "是否长期有效") + private String permanently; + + @Schema(description = "开始日期") + private LocalDateTime applyStartDate; + + @Schema(description = "截止日期") + private LocalDateTime applyEndDate; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ 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/RecordApplyDetailController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/RecordApplyDetailController.java new file mode 100644 index 00000000..b2832bc1 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/RecordApplyDetailController.java @@ -0,0 +1,120 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail; + +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.business.annotation.FileUploadController; +import com.zt.plat.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; +import com.zt.plat.module.qms.resource.record.service.recordapplydetail.RecordApplyDetailService; + +@Tag(name = "管理后台 - 文件记录通用申请明细") +@RestController +@RequestMapping("/qms/record-apply-detail") +@Validated +@DeptDataPermissionIgnore(enable = "true") +@FileUploadController(source = "qms.recordapplydetail") +public class RecordApplyDetailController extends AbstractFileUploadController implements BusinessControllerMarker{ + + static { + FileUploadController annotation = RecordApplyDetailController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private RecordApplyDetailService recordApplyDetailService; + + @PostMapping("/create") + @Operation(summary = "创建文件记录通用申请明细") + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:create')") + public CommonResult createRecordApplyDetail(@Valid @RequestBody RecordApplyDetailSaveReqVO createReqVO) { + return success(recordApplyDetailService.createRecordApplyDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新文件记录通用申请明细") + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:update')") + public CommonResult updateRecordApplyDetail(@Valid @RequestBody RecordApplyDetailSaveReqVO updateReqVO) { + recordApplyDetailService.updateRecordApplyDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除文件记录通用申请明细") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:delete')") + public CommonResult deleteRecordApplyDetail(@RequestParam("id") Long id) { + recordApplyDetailService.deleteRecordApplyDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除文件记录通用申请明细") + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:delete')") + public CommonResult deleteRecordApplyDetailList(@RequestBody BatchDeleteReqVO req) { + recordApplyDetailService.deleteRecordApplyDetailListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得文件记录通用申请明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:query')") + public CommonResult getRecordApplyDetail(@RequestParam("id") Long id) { + RecordApplyDetailDO recordApplyDetail = recordApplyDetailService.getRecordApplyDetail(id); + return success(BeanUtils.toBean(recordApplyDetail, RecordApplyDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得文件记录通用申请明细分页") + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:query')") + public CommonResult> getRecordApplyDetailPage(@Valid RecordApplyDetailPageReqVO pageReqVO) { + PageResult pageResult = recordApplyDetailService.getRecordApplyDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RecordApplyDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出文件记录通用申请明细 Excel") + //@PreAuthorize("@ss.hasPermission('qms:record-apply-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRecordApplyDetailExcel(@Valid RecordApplyDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = recordApplyDetailService.getRecordApplyDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "文件记录通用申请明细.xls", "数据", RecordApplyDetailRespVO.class, + BeanUtils.toBean(list, RecordApplyDetailRespVO.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/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 new file mode 100644 index 00000000..6414bd65 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java @@ -0,0 +1,46 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +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 RecordApplyDetailPageReqVO extends PageParam { + + @Schema(description = "父id", example = "28812") + private Long applyId; + + @Schema(description = "文件id", example = "3188") + private Long documentId; + + @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 sortNo; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ 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/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 new file mode 100644 index 00000000..2efbbd13 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java @@ -0,0 +1,55 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 文件记录通用申请明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RecordApplyDetailRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23921") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "父id", example = "28812") + @ExcelProperty("父id") + private Long applyId; + + @Schema(description = "文件id", example = "3188") + @ExcelProperty("文件id") + private Long documentId; + + @Schema(description = "是否长期有效") + @ExcelProperty("是否长期有效") + private String permanently; + + @Schema(description = "开始日期") + @ExcelProperty("开始日期") + private LocalDateTime applyStartDate; + + @Schema(description = "截止日期") + @ExcelProperty("截止日期") + private LocalDateTime applyEndDate; + + @Schema(description = "排序号") + @ExcelProperty("排序号") + private String sortNo; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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/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 new file mode 100644 index 00000000..c2966d20 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java @@ -0,0 +1,41 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 文件记录通用申请明细新增/修改 Request VO") +@Data +public class RecordApplyDetailSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23921") + private Long id; + + @Schema(description = "父id", example = "28812") + private Long applyId; + + @Schema(description = "文件id", example = "3188") + private Long documentId; + + @Schema(description = "是否长期有效") + private String permanently; + + @Schema(description = "开始日期") + private LocalDateTime applyStartDate; + + @Schema(description = "截止日期") + private LocalDateTime applyEndDate; + + @Schema(description = "排序号") + private String sortNo; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ 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/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 new file mode 100644 index 00000000..5f03bbfb --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/RecordCategoryController.java @@ -0,0 +1,124 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordcategory; + +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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 org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.business.annotation.FileUploadController; +import com.zt.plat.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; +import com.zt.plat.module.qms.resource.record.service.recordcategory.RecordCategoryService; + +@Tag(name = "管理后台 - 文件记录分类") +@RestController +@RequestMapping("/qms/record-category") +@Validated +@DeptDataPermissionIgnore(enable = "true") +@FileUploadController(source = "qms.recordcategory") +public class RecordCategoryController extends AbstractFileUploadController implements BusinessControllerMarker{ + + private static final Logger log = LoggerFactory.getLogger(RecordCategoryController.class); + + static { + FileUploadController annotation = RecordCategoryController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private RecordCategoryService recordCategoryService; + + @PostMapping("/create") + @Operation(summary = "创建文件记录分类") + //@PreAuthorize("@ss.hasPermission('qms:record-category:create')") + public CommonResult createRecordCategory(@Valid @RequestBody RecordCategorySaveReqVO createReqVO) { + return success(recordCategoryService.createRecordCategory(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新文件记录分类") + //@PreAuthorize("@ss.hasPermission('qms:record-category:update')") + public CommonResult updateRecordCategory(@Valid @RequestBody RecordCategorySaveReqVO updateReqVO) { + recordCategoryService.updateRecordCategory(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除文件记录分类") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('qms:record-category:delete')") + public CommonResult deleteRecordCategory(@RequestParam("id") Long id) { + recordCategoryService.deleteRecordCategory(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除文件记录分类") + //@PreAuthorize("@ss.hasPermission('qms:record-category:delete')") + public CommonResult deleteRecordCategoryList(@RequestBody BatchDeleteReqVO req) { + recordCategoryService.deleteRecordCategoryListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得文件记录分类") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('qms:record-category:query')") + public CommonResult getRecordCategory(@RequestParam("id") Long id) { + RecordCategoryDO recordCategory = recordCategoryService.getRecordCategory(id); + return success(BeanUtils.toBean(recordCategory, RecordCategoryRespVO.class)); + } + + @GetMapping("/getRecordCategoryTree") + @Operation(summary = "获得文件记录分类") + //@PreAuthorize("@ss.hasPermission('qms:record-category:query')") + public CommonResult> getRecordCategoryTree(@Valid RecordCategoryPageReqVO pageReqVO) { + List list = recordCategoryService.getRecordCategoryTree(pageReqVO); + return success(BeanUtils.toBean(list, RecordCategoryRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出文件记录分类 Excel") + //@PreAuthorize("@ss.hasPermission('qms:record-category:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRecordCategoryExcel(@Valid RecordCategoryPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = recordCategoryService.getRecordCategoryPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "文件记录分类.xls", "数据", RecordCategoryRespVO.class, + BeanUtils.toBean(list, RecordCategoryRespVO.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/recordcategory/vo/RecordCategoryPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategoryPageReqVO.java new file mode 100644 index 00000000..925c35ef --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategoryPageReqVO.java @@ -0,0 +1,53 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +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 RecordCategoryPageReqVO extends PageParam { + + @Schema(description = "上级id", example = "7013") + private Long parentId; + + @Schema(description = "id路径") + private String idPath; + + @Schema(description = "名称", example = "ZT") + private String name; + + @Schema(description = "业务类型,文件、记录、模板", example = "1") + private String businessType; + + @Schema(description = "模块名称", example = "ZT") + private String moduleName; + + @Schema(description = "模块编码") + private String moduleCode; + + @Schema(description = "排序号") + private Integer sortNo; + + @Schema(description = "数据来源,手工录入、手工归档、自动采集") + private String dataSource; + + @Schema(description = "数据维度,单次、自然月") + private String dataDimension; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ 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/recordcategory/vo/RecordCategoryRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategoryRespVO.java new file mode 100644 index 00000000..98c586a2 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategoryRespVO.java @@ -0,0 +1,67 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 文件记录分类 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RecordCategoryRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10196") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "上级id", example = "7013") + @ExcelProperty("上级id") + private Long parentId; + + @Schema(description = "id路径") + @ExcelProperty("id路径") + private String idPath; + + @Schema(description = "名称", example = "ZT") + @ExcelProperty("名称") + private String name; + + @Schema(description = "业务类型,文件、记录、模板", example = "1") + @ExcelProperty("业务类型,文件、记录、模板") + private String businessType; + + @Schema(description = "模块名称", example = "ZT") + @ExcelProperty("模块名称") + private String moduleName; + + @Schema(description = "模块编码") + @ExcelProperty("模块编码") + private String moduleCode; + + @Schema(description = "排序号") + @ExcelProperty("排序号") + private Integer sortNo; + + @Schema(description = "数据来源,手工录入、手工归档、自动采集") + @ExcelProperty("数据来源,手工录入、手工归档、自动采集") + private String dataSource; + + @Schema(description = "数据维度,单次、自然月") + @ExcelProperty("数据维度,单次、自然月") + private String dataDimension; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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/recordcategory/vo/RecordCategorySaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategorySaveReqVO.java new file mode 100644 index 00000000..bf048e5b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordcategory/vo/RecordCategorySaveReqVO.java @@ -0,0 +1,49 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 文件记录分类新增/修改 Request VO") +@Data +public class RecordCategorySaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10196") + private Long id; + + @Schema(description = "上级id", example = "7013") + private Long parentId; + + @Schema(description = "id路径") + private String idPath; + + @Schema(description = "名称", example = "ZT") + private String name; + + @Schema(description = "业务类型,文件、记录、模板", example = "1") + private String businessType; + + @Schema(description = "模块名称", example = "ZT") + private String moduleName; + + @Schema(description = "模块编码") + private String moduleCode; + + @Schema(description = "排序号") + @NotNull(message = "排序号不能为空") + private Integer sortNo; + + @Schema(description = "数据来源,手工录入、手工归档、自动采集") + private String dataSource; + + @Schema(description = "数据维度,单次、自然月") + private String dataDimension; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ 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/recordpermission/RecordPermissionController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java new file mode 100644 index 00000000..2364bf8e --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java @@ -0,0 +1,120 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordpermission; + +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.business.annotation.FileUploadController; +import com.zt.plat.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; +import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPermissionService; + +@Tag(name = "管理后台 - 记录权限") +@RestController +@RequestMapping("/qms/record-permission") +@Validated +@DeptDataPermissionIgnore(enable = "true") +@FileUploadController(source = "qms.recordpermission") +public class RecordPermissionController extends AbstractFileUploadController implements BusinessControllerMarker{ + + static { + FileUploadController annotation = RecordPermissionController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private RecordPermissionService recordPermissionService; + + @PostMapping("/create") + @Operation(summary = "创建记录权限") + //@PreAuthorize("@ss.hasPermission('qms:record-permission:create')") + public CommonResult createRecordPermission(@Valid @RequestBody RecordPermissionSaveReqVO createReqVO) { + return success(recordPermissionService.createRecordPermission(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新记录权限") + //@PreAuthorize("@ss.hasPermission('qms:record-permission:update')") + public CommonResult updateRecordPermission(@Valid @RequestBody RecordPermissionSaveReqVO updateReqVO) { + recordPermissionService.updateRecordPermission(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除记录权限") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('qms:record-permission:delete')") + public CommonResult deleteRecordPermission(@RequestParam("id") Long id) { + recordPermissionService.deleteRecordPermission(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除记录权限") + //@PreAuthorize("@ss.hasPermission('qms:record-permission:delete')") + public CommonResult deleteRecordPermissionList(@RequestBody BatchDeleteReqVO req) { + recordPermissionService.deleteRecordPermissionListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得记录权限") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('qms:record-permission:query')") + public CommonResult getRecordPermission(@RequestParam("id") Long id) { + RecordPermissionDO recordPermission = recordPermissionService.getRecordPermission(id); + return success(BeanUtils.toBean(recordPermission, RecordPermissionRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得记录权限分页") + //@PreAuthorize("@ss.hasPermission('qms:record-permission:query')") + public CommonResult> getRecordPermissionPage(@Valid RecordPermissionPageReqVO pageReqVO) { + PageResult pageResult = recordPermissionService.getRecordPermissionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RecordPermissionRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出记录权限 Excel") + //@PreAuthorize("@ss.hasPermission('qms:record-permission:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRecordPermissionExcel(@Valid RecordPermissionPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = recordPermissionService.getRecordPermissionPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "记录权限.xls", "数据", RecordPermissionRespVO.class, + BeanUtils.toBean(list, RecordPermissionRespVO.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/recordpermission/vo/RecordPermissionPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java new file mode 100644 index 00000000..daec89ff --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +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 RecordPermissionPageReqVO extends PageParam { + + @Schema(description = "父id", example = "8883") + private Long parentId; + + @Schema(description = "记录类型", example = "1") + private String sourceType; + + @Schema(description = "记录id", example = "1104") + private Long sourceId; + + @Schema(description = "授权类型", example = "1") + private String targetType; + + @Schema(description = "授权对象", example = "9264") + private String targetId; + + @Schema(description = "权限类型") + private String permission; + + @Schema(description = "密级") + private String confidentialLevel; + + @Schema(description = "是否长期有效") + private String permanently; + + @Schema(description = "过期日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expirationDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + private String expirationStatus; + + @Schema(description = "作废标识,0-有效,1-作废") + private String cancelFlag; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ 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/recordpermission/vo/RecordPermissionRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java new file mode 100644 index 00000000..38cfed03 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java @@ -0,0 +1,75 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 记录权限 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RecordPermissionRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "30482") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "父id", example = "8883") + @ExcelProperty("父id") + private Long parentId; + + @Schema(description = "记录类型", example = "1") + @ExcelProperty("记录类型") + private String sourceType; + + @Schema(description = "记录id", example = "1104") + @ExcelProperty("记录id") + private Long sourceId; + + @Schema(description = "授权类型", example = "1") + @ExcelProperty("授权类型") + private String targetType; + + @Schema(description = "授权对象", example = "9264") + @ExcelProperty("授权对象") + private String targetId; + + @Schema(description = "权限类型") + @ExcelProperty("权限类型") + private String permission; + + @Schema(description = "密级") + @ExcelProperty("密级") + private String confidentialLevel; + + @Schema(description = "是否长期有效") + @ExcelProperty("是否长期有效") + private String permanently; + + @Schema(description = "过期日期") + @ExcelProperty("过期日期") + private LocalDateTime expirationDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + @ExcelProperty("过期标识,0-有效,1-过期") + private String expirationStatus; + + @Schema(description = "作废标识,0-有效,1-作废") + @ExcelProperty("作废标识,0-有效,1-作废") + private String cancelFlag; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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/recordpermission/vo/RecordPermissionSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java new file mode 100644 index 00000000..1219ead4 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java @@ -0,0 +1,56 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 记录权限新增/修改 Request VO") +@Data +public class RecordPermissionSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "30482") + private Long id; + + @Schema(description = "父id", example = "8883") + private Long parentId; + + @Schema(description = "记录类型", example = "1") + private String sourceType; + + @Schema(description = "记录id", example = "1104") + private Long sourceId; + + @Schema(description = "授权类型", example = "1") + private String targetType; + + @Schema(description = "授权对象", example = "9264") + private String targetId; + + @Schema(description = "权限类型") + private String permission; + + @Schema(description = "密级") + private String confidentialLevel; + + @Schema(description = "是否长期有效") + private String permanently; + + @Schema(description = "过期日期") + private LocalDateTime expirationDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + private String expirationStatus; + + @Schema(description = "作废标识,0-有效,1-作废") + private String cancelFlag; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ 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/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 new file mode 100644 index 00000000..5e844548 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java @@ -0,0 +1,120 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord; + +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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 org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.business.annotation.FileUploadController; +import com.zt.plat.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; +import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordService; + +@Tag(name = "管理后台 - 文件、模板、记录") +@RestController +@RequestMapping("/qms/record-record") +@Validated +@DeptDataPermissionIgnore(enable = "true") +@FileUploadController(source = "qms.recordrecord") +public class RecordRecordController extends AbstractFileUploadController implements BusinessControllerMarker{ + + static { + FileUploadController annotation = RecordRecordController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private RecordRecordService recordRecordService; + + @PostMapping("/create") + @Operation(summary = "创建文件、模板、记录") + //@PreAuthorize("@ss.hasPermission('qms:record-record:create')") + public CommonResult createRecordRecord(@Valid @RequestBody RecordRecordSaveReqVO createReqVO) { + return success(recordRecordService.createRecordRecord(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新文件、模板、记录") + //@PreAuthorize("@ss.hasPermission('qms:record-record:update')") + public CommonResult updateRecordRecord(@Valid @RequestBody RecordRecordSaveReqVO updateReqVO) { + recordRecordService.updateRecordRecord(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除文件、模板、记录") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('qms:record-record:delete')") + public CommonResult deleteRecordRecord(@RequestParam("id") Long id) { + recordRecordService.deleteRecordRecord(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除文件、模板、记录") + //@PreAuthorize("@ss.hasPermission('qms:record-record:delete')") + public CommonResult deleteRecordRecordList(@RequestBody BatchDeleteReqVO req) { + recordRecordService.deleteRecordRecordListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得文件、模板、记录") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") + public CommonResult getRecordRecord(@RequestParam("id") Long id) { + RecordRecordDO recordRecord = recordRecordService.getRecordRecord(id); + return success(BeanUtils.toBean(recordRecord, RecordRecordRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得文件、模板、记录分页") + //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") + public CommonResult> getRecordRecordPage(@Valid RecordRecordPageReqVO pageReqVO) { + PageResult pageResult = recordRecordService.getRecordRecordPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, 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 new file mode 100644 index 00000000..43cc6655 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java @@ -0,0 +1,85 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +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 RecordRecordPageReqVO extends PageParam { + + @Schema(description = "分类id", example = "7849") + private Long categoryId; + + @Schema(description = "文件编号") + private String code; + + @Schema(description = "表单key") + private String formKey; + + @Schema(description = "文件名称", example = "王五") + private String name; + + @Schema(description = "版本") + private String version; + + @Schema(description = "是否最新版本,默认显示最新版本") + private String currentFlag; + + @Schema(description = "编制日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] makeDate; + + @Schema(description = "是否涉密") + private String confidentialFlag; + + @Schema(description = "密级") + private String confidentialLevel; + + @Schema(description = "加密方式") + private String confidentialWay; + + @Schema(description = "秘钥") + private String confidentialKey; + + @Schema(description = "是否长期有效") + private String permanently; + + @Schema(description = "过期日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expirationDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + private Integer expirationStatus; + + @Schema(description = "作废标志,0-有效,1-作废") + private Integer cancelFlag; + + @Schema(description = "表单数据") + private String formData; + + @Schema(description = "数据集配置ID", example = "23466") + private Long dataCollectionId; + + @Schema(description = "源文件链接", example = "https://www.iocoder.cn") + private String sourceUrl; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @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/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 new file mode 100644 index 00000000..1aa5667f --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java @@ -0,0 +1,103 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 文件、模板、记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RecordRecordRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4317") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "分类id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7849") + @ExcelProperty("分类id") + private Long categoryId; + + @Schema(description = "文件编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("文件编号") + private String code; + + @Schema(description = "表单key") + @ExcelProperty("表单key") + private String formKey; + + @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("文件名称") + private String name; + + @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("版本") + private String version; + + @Schema(description = "是否最新版本,默认显示最新版本", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否最新版本,默认显示最新版本") + private String currentFlag; + + @Schema(description = "编制日期") + @ExcelProperty("编制日期") + private LocalDateTime makeDate; + + @Schema(description = "是否涉密", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否涉密") + private String confidentialFlag; + + @Schema(description = "密级") + @ExcelProperty("密级") + private String confidentialLevel; + + @Schema(description = "加密方式") + @ExcelProperty("加密方式") + private String confidentialWay; + + @Schema(description = "秘钥") + @ExcelProperty("秘钥") + private String confidentialKey; + + @Schema(description = "是否长期有效", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否长期有效") + private String permanently; + + @Schema(description = "过期日期") + @ExcelProperty("过期日期") + private LocalDateTime expirationDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + @ExcelProperty("过期标识,0-有效,1-过期") + private String expirationStatus; + + @Schema(description = "作废标志,0-有效,1-作废") + @ExcelProperty("作废标志,0-有效,1-作废") + private String cancelFlag; + + @Schema(description = "表单数据") + @ExcelProperty("表单数据") + private String formData; + + @Schema(description = "数据集配置ID", example = "23466") + @ExcelProperty("数据集配置ID") + private Long dataCollectionId; + + @Schema(description = "源文件链接", example = "https://www.iocoder.cn") + @ExcelProperty("源文件链接") + private String sourceUrl; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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/RecordRecordSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java new file mode 100644 index 00000000..121a759c --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java @@ -0,0 +1,87 @@ +package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 文件、模板、记录新增/修改 Request VO") +@Data +public class RecordRecordSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4317") + private Long id; + + @Schema(description = "分类id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7849") + @NotNull(message = "分类id不能为空") + private Long categoryId; + + @Schema(description = "文件编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "文件编号不能为空") + private String code; + + @Schema(description = "表单key") + private String formKey; + + @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "文件名称不能为空") + private String name; + + @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "版本不能为空") + private String version; + + @Schema(description = "是否最新版本,默认显示最新版本", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否最新版本,默认显示最新版本不能为空") + private String currentFlag; + + @Schema(description = "编制日期") + private LocalDateTime makeDate; + + @Schema(description = "是否涉密", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否涉密不能为空") + private String confidentialFlag; + + @Schema(description = "密级") + private String confidentialLevel; + + @Schema(description = "加密方式") + private String confidentialWay; + + @Schema(description = "秘钥") + private String confidentialKey; + + @Schema(description = "是否长期有效", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否长期有效不能为空") + private String permanently; + + @Schema(description = "过期日期") + private LocalDateTime expirationDate; + + @Schema(description = "过期标识,0-有效,1-过期", example = "1") + private Integer expirationStatus; + + @Schema(description = "作废标志,0-有效,1-作废") + private Integer cancelFlag; + + @Schema(description = "表单数据") + private String formData; + + @Schema(description = "数据集配置ID", example = "23466") + private Long dataCollectionId; + + @Schema(description = "源文件链接", example = "https://www.iocoder.cn") + private String sourceUrl; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @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/dal/dao/recordRelation/RecordRelationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordRelation/RecordRelationMapper.java new file mode 100644 index 00000000..5a5cbb2b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordRelation/RecordRelationMapper.java @@ -0,0 +1,29 @@ +package com.zt.plat.module.qms.resource.record.dal.dao.recordRelation; + +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.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordRelation.RecordRelationDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件记录关系 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface RecordRelationMapper extends BaseMapperX { + + default PageResult selectPage(RecordRelationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RecordRelationDO::getRcdId, reqVO.getRcdId()) + .eqIfPresent(RecordRelationDO::getTgtId, reqVO.getTgtId()) + .eqIfPresent(RecordRelationDO::getTgtTp, reqVO.getTgtTp()) + .eqIfPresent(RecordRelationDO::getSysDeptCd, reqVO.getSysDeptCd()) + .eqIfPresent(RecordRelationDO::getRmk, reqVO.getRmk()) + .betweenIfPresent(RecordRelationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RecordRelationDO::getId)); + } + +} \ 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/recordapply/RecordApplyMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapply/RecordApplyMapper.java new file mode 100644 index 00000000..4856d3b5 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapply/RecordApplyMapper.java @@ -0,0 +1,40 @@ +package com.zt.plat.module.qms.resource.record.dal.dao.recordapply; + +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.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplyPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件记录通用申请 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface RecordApplyMapper extends BaseMapperX { + + default PageResult selectPage(RecordApplyPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RecordApplyDO::getTitle, reqVO.getTitle()) + .eqIfPresent(RecordApplyDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(RecordApplyDO::getApplyUserId, reqVO.getApplyUserId()) + .likeIfPresent(RecordApplyDO::getApplyUserName, reqVO.getApplyUserName()) + .eqIfPresent(RecordApplyDO::getDepartmentCode, reqVO.getDepartmentCode()) + .eqIfPresent(RecordApplyDO::getReviewRange, reqVO.getReviewRange()) + .likeIfPresent(RecordApplyDO::getReviewUserName, reqVO.getReviewUserName()) + .eqIfPresent(RecordApplyDO::getReviewUserIds, reqVO.getReviewUserIds()) + .eqIfPresent(RecordApplyDO::getApplyContent, reqVO.getApplyContent()) + .eqIfPresent(RecordApplyDO::getChangeBefore, reqVO.getChangeBefore()) + .eqIfPresent(RecordApplyDO::getChangeAfter, reqVO.getChangeAfter()) + .eqIfPresent(RecordApplyDO::getPermanently, reqVO.getPermanently()) + .betweenIfPresent(RecordApplyDO::getApplyStartDate, reqVO.getApplyStartDate()) + .betweenIfPresent(RecordApplyDO::getApplyEndDate, reqVO.getApplyEndDate()) + .eqIfPresent(RecordApplyDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(RecordApplyDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RecordApplyDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RecordApplyDO::getId)); + } + +} \ 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/recordapplydetail/RecordApplyDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapplydetail/RecordApplyDetailMapper.java new file mode 100644 index 00000000..a360fc39 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordapplydetail/RecordApplyDetailMapper.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.qms.resource.record.dal.dao.recordapplydetail; + +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.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件记录通用申请明细 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface RecordApplyDetailMapper extends BaseMapperX { + + default PageResult selectPage(RecordApplyDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RecordApplyDetailDO::getApplyId, reqVO.getApplyId()) + .eqIfPresent(RecordApplyDetailDO::getDocumentId, reqVO.getDocumentId()) + .eqIfPresent(RecordApplyDetailDO::getPermanently, reqVO.getPermanently()) + .betweenIfPresent(RecordApplyDetailDO::getApplyStartDate, reqVO.getApplyStartDate()) + .betweenIfPresent(RecordApplyDetailDO::getApplyEndDate, reqVO.getApplyEndDate()) + .eqIfPresent(RecordApplyDetailDO::getSortNo, reqVO.getSortNo()) + .eqIfPresent(RecordApplyDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(RecordApplyDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RecordApplyDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RecordApplyDetailDO::getId)); + } + +} \ 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/recordcategory/RecordCategoryMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordcategory/RecordCategoryMapper.java new file mode 100644 index 00000000..5d4ff9b8 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordcategory/RecordCategoryMapper.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.qms.resource.record.dal.dao.recordcategory; + +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.module.qms.resource.record.controller.admin.recordcategory.vo.RecordCategoryPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件记录分类 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface RecordCategoryMapper extends BaseMapperX { + + default PageResult selectPage(RecordCategoryPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RecordCategoryDO::getParentId, reqVO.getParentId()) + .eqIfPresent(RecordCategoryDO::getIdPath, reqVO.getIdPath()) + .likeIfPresent(RecordCategoryDO::getName, reqVO.getName()) + .eqIfPresent(RecordCategoryDO::getBusinessType, reqVO.getBusinessType()) + .likeIfPresent(RecordCategoryDO::getModuleName, reqVO.getModuleName()) + .eqIfPresent(RecordCategoryDO::getModuleCode, reqVO.getModuleCode()) + .eqIfPresent(RecordCategoryDO::getSortNo, reqVO.getSortNo()) + .eqIfPresent(RecordCategoryDO::getDataSource, reqVO.getDataSource()) + .eqIfPresent(RecordCategoryDO::getDataDimension, reqVO.getDataDimension()) + .eqIfPresent(RecordCategoryDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(RecordCategoryDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RecordCategoryDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RecordCategoryDO::getId)); + } + +} \ 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/recordpermission/RecordPermissionMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordpermission/RecordPermissionMapper.java new file mode 100644 index 00000000..aa3bcd4f --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordpermission/RecordPermissionMapper.java @@ -0,0 +1,37 @@ +package com.zt.plat.module.qms.resource.record.dal.dao.recordpermission; + +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.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 记录权限 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface RecordPermissionMapper extends BaseMapperX { + + default PageResult selectPage(RecordPermissionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RecordPermissionDO::getParentId, reqVO.getParentId()) + .eqIfPresent(RecordPermissionDO::getSourceType, reqVO.getSourceType()) + .eqIfPresent(RecordPermissionDO::getSourceId, reqVO.getSourceId()) + .eqIfPresent(RecordPermissionDO::getTargetType, reqVO.getTargetType()) + .eqIfPresent(RecordPermissionDO::getTargetId, reqVO.getTargetId()) + .eqIfPresent(RecordPermissionDO::getPermission, reqVO.getPermission()) + .eqIfPresent(RecordPermissionDO::getConfidentialLevel, reqVO.getConfidentialLevel()) + .eqIfPresent(RecordPermissionDO::getPermanently, reqVO.getPermanently()) + .betweenIfPresent(RecordPermissionDO::getExpirationDate, reqVO.getExpirationDate()) + .eqIfPresent(RecordPermissionDO::getExpirationStatus, reqVO.getExpirationStatus()) + .eqIfPresent(RecordPermissionDO::getCancelFlag, reqVO.getCancelFlag()) + .eqIfPresent(RecordPermissionDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(RecordPermissionDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RecordPermissionDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RecordPermissionDO::getId)); + } + +} \ 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/recordrecord/RecordRecordMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java new file mode 100644 index 00000000..b3b3adda --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java @@ -0,0 +1,44 @@ +package com.zt.plat.module.qms.resource.record.dal.dao.recordrecord; + +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.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordPageReqVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件、模板、记录 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface RecordRecordMapper extends BaseMapperX { + + default PageResult selectPage(RecordRecordPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RecordRecordDO::getCategoryId, reqVO.getCategoryId()) + .eqIfPresent(RecordRecordDO::getCode, reqVO.getCode()) + .eqIfPresent(RecordRecordDO::getFormKey, reqVO.getFormKey()) + .likeIfPresent(RecordRecordDO::getName, reqVO.getName()) + .eqIfPresent(RecordRecordDO::getVersion, reqVO.getVersion()) + .eqIfPresent(RecordRecordDO::getCurrentFlag, reqVO.getCurrentFlag()) + .betweenIfPresent(RecordRecordDO::getMakeDate, reqVO.getMakeDate()) + .eqIfPresent(RecordRecordDO::getConfidentialFlag, reqVO.getConfidentialFlag()) + .eqIfPresent(RecordRecordDO::getConfidentialLevel, reqVO.getConfidentialLevel()) + .eqIfPresent(RecordRecordDO::getConfidentialWay, reqVO.getConfidentialWay()) + .eqIfPresent(RecordRecordDO::getConfidentialKey, reqVO.getConfidentialKey()) + .eqIfPresent(RecordRecordDO::getPermanently, reqVO.getPermanently()) + .betweenIfPresent(RecordRecordDO::getExpirationDate, reqVO.getExpirationDate()) + .eqIfPresent(RecordRecordDO::getExpirationStatus, reqVO.getExpirationStatus()) + .eqIfPresent(RecordRecordDO::getCancelFlag, reqVO.getCancelFlag()) + .eqIfPresent(RecordRecordDO::getFormData, reqVO.getFormData()) + .eqIfPresent(RecordRecordDO::getDataCollectionId, reqVO.getDataCollectionId()) + .eqIfPresent(RecordRecordDO::getSourceUrl, reqVO.getSourceUrl()) + .eqIfPresent(RecordRecordDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(RecordRecordDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RecordRecordDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RecordRecordDO::getId)); + } + +} \ 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/recordRelation/RecordRelationDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordRelation/RecordRelationDO.java new file mode 100644 index 00000000..f87d518e --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordRelation/RecordRelationDO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.qms.resource.record.dal.dataobject.recordRelation; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 文件记录关系 DO +* +* @author 后台管理 +*/ +@TableName("t_rcd_rela") +@KeySequence("t_rcd_rela_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class RecordRelationDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.INPUT) + private String id; + /** + * 文件记录id + */ + @TableField("RCD_ID") + private Long rcdId; + /** + * 目标对象id + */ + @TableField("TGT_ID") + private Long tgtId; + /** + * 目标对象类型,业务类型:设备、物料试剂、原始记录等 + */ + @TableField("TGT_TP") + private String tgtTp; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String sysDeptCd; + /** + * 备注 + */ + @TableField("RMK") + private String rmk; + +} \ 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/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 new file mode 100644 index 00000000..b360bb6e --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java @@ -0,0 +1,117 @@ +package com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 文件记录通用申请 DO +* +* @author 后台管理 +*/ +@TableName("t_rcd_apl") +@KeySequence("t_rcd_apl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class RecordApplyDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 申请标题,【字典】【jy_record_apply_bsn_type】分发、查看申请、作废、评审 + */ + @TableField("TTL") + private String title; + /** + * 业务类型 + */ + @TableField("BSN_TP") + private String businessType; + /** + * 申请人id + */ + @TableField("APL_USER_ID") + private Long applyUserId; + /** + * 申请人姓名 + */ + @TableField("APL_USER_NAME") + private String applyUserName; + /** + * 部门id + */ + @TableField("DEPT_CD") + private Long departmentCode; + /** + * 评审范围 + */ + @TableField("RVW_RNG") + private String reviewRange; + /** + * 参加评审人员 + */ + @TableField("RVW_USER_NAME") + private String reviewUserName; + /** + * 参加评审人员id + */ + @TableField("RVW_USER_IDS") + private String reviewUserIds; + /** + * 申请事由 + */ + @TableField("APL_CNTT") + private String applyContent; + /** + * 更改前内容 + */ + @TableField("CHG_BFR") + private String changeBefore; + /** + * 更改后内容 + */ + @TableField("CHG_AFT") + private String changeAfter; + /** + * 是否长期有效 + */ + @TableField("PMNT") + private String permanently; + /** + * 开始日期 + */ + @TableField("APL_STRT_DT") + private LocalDateTime applyStartDate; + /** + * 截止日期 + */ + @TableField("APL_END_DT") + private LocalDateTime applyEndDate; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ 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 new file mode 100644 index 00000000..a44d8ec8 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java @@ -0,0 +1,77 @@ +package com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 文件记录通用申请明细 DO +* +* @author 后台管理 +*/ +@TableName("t_rcd_apl_dtl") +@KeySequence("t_rcd_apl_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class RecordApplyDetailDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 父id + */ + @TableField("APL_ID") + private Long applyId; + /** + * 文件id + */ + @TableField("DOC_ID") + private Long documentId; + /** + * 是否长期有效 + */ + @TableField("PMNT") + private String permanently; + /** + * 开始日期 + */ + @TableField("APL_STRT_DT") + private LocalDateTime applyStartDate; + /** + * 截止日期 + */ + @TableField("APL_END_DT") + private LocalDateTime applyEndDate; + /** + * 排序号 + */ + @TableField("SRT_NO") + private String sortNo; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ 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/recordcategory/RecordCategoryDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordcategory/RecordCategoryDO.java new file mode 100644 index 00000000..0e9e6367 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordcategory/RecordCategoryDO.java @@ -0,0 +1,90 @@ +package com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 文件记录分类 DO +* +* @author 后台管理 +*/ +@TableName("t_rcd_ctgr") +@KeySequence("t_rcd_ctgr_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class RecordCategoryDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 上级id + */ + @TableField("PRN_ID") + private Long parentId; + /** + * id路径 + */ + @TableField("ID_PATH") + private String idPath; + /** + * 名称 + */ + @TableField("NAME") + private String name; + /** + * 业务类型,文件、记录、模板 + */ + @TableField("BSN_TP") + private String businessType; + /** + * 模块名称 + */ + @TableField("MDUL_NAME") + private String moduleName; + /** + * 模块编码 + */ + @TableField("MDUL_CD") + private String moduleCode; + /** + * 排序号 + */ + @TableField("SRT_NO") + private Integer sortNo; + /** + * 数据来源,手工录入、手工归档、自动采集 + */ + @TableField("DAT_SRC") + private String dataSource; + /** + * 数据维度,单次、自然月 + */ + @TableField("DAT_DIM") + private String dataDimension; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ 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/recordpermission/RecordPermissionDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java new file mode 100644 index 00000000..a966a7c4 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java @@ -0,0 +1,101 @@ +package com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 记录权限 DO +* +* @author 后台管理 +*/ +@TableName("t_rcd_perm") +@KeySequence("t_rcd_perm_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class RecordPermissionDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 父id + */ + @TableField("PRN_ID") + private Long parentId; + /** + * 记录类型 + */ + @TableField("SRC_TP") + private String sourceType; + /** + * 记录id + */ + @TableField("SRC_ID") + private Long sourceId; + /** + * 授权类型 + */ + @TableField("TGT_TP") + private String targetType; + /** + * 授权对象 + */ + @TableField("TGT_ID") + private String targetId; + /** + * 权限类型 + */ + @TableField("PERM") + private String permission; + /** + * 密级 + */ + @TableField("CNF_LVL") + private String confidentialLevel; + /** + * 是否长期有效 + */ + @TableField("PMNT") + private String permanently; + /** + * 过期日期 + */ + @TableField("EXPR_DT") + private LocalDateTime expirationDate; + /** + * 过期标识,0-有效,1-过期 + */ + @TableField("EXPR_STS") + private String expirationStatus; + /** + * 作废标识,0-有效,1-作废 + */ + @TableField("CNL_FLG") + private String cancelFlag; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ 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/recordrecord/RecordRecordDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java new file mode 100644 index 00000000..f3256133 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java @@ -0,0 +1,142 @@ +package com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 文件、模板、记录 DO +* +* @author 后台管理 +*/ +@TableName("t_rcd_rcd") +@KeySequence("t_rcd_rcd_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class RecordRecordDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 分类id + */ + @TableField("CTGR_ID") + private Long categoryId; + /** + * 文件编号 + */ + @TableField("CD") + private String code; + /** + * 表单key + */ + @TableField("FORM_KY") + private String formKey; + /** + * 文件名称 + */ + @TableField("NAME") + private String name; + /** + * 版本 + */ + @TableField("VER") + private String version; + /** + * 是否最新版本,默认显示最新版本 + */ + @TableField("CRNT_FLG") + private String currentFlag; + /** + * 编制日期 + */ + @TableField("MKE_DT") + private LocalDateTime makeDate; + /** + * 是否涉密 + */ + @TableField("CNF_FLG") + private String confidentialFlag; + /** + * 密级 + */ + @TableField("CNF_LVL") + private String confidentialLevel; + /** + * 加密方式 + */ + @TableField("CNF_WY") + private String confidentialWay; + /** + * 秘钥 + */ + @TableField("CNF_KY") + private String confidentialKey; + /** + * 是否长期有效 + */ + @TableField("PMNT") + private String permanently; + /** + * 过期日期 + */ + @TableField("EXPR_DT") + private LocalDateTime expirationDate; + /** + * 过期标识,0-有效,1-过期 + */ + @TableField("EXPR_STS") + private Integer expirationStatus; + /** + * 作废标志,0-有效,1-作废 + */ + @TableField("CNL_FLG") + private Integer cancelFlag; + /** + * 表单数据 + */ + @TableField("FORM_DAT") + private String formData; + /** + * 数据集配置ID + */ + @TableField("DAT_COLT_ID") + private Long dataCollectionId; + /** + * 源文件链接 + */ + @TableField("SRC_URL") + private String sourceUrl; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + /** + * 是否回收权限 + */ + @TableField("COLT_FLG") + 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/service/recordRelation/RecordRelationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationService.java new file mode 100644 index 00000000..b69c8c72 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.resource.record.service.recordRelation; + +import java.util.*; + +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationPageReqVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationRespVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationSaveReqVO; +import jakarta.validation.*; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordRelation.RecordRelationDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 文件记录关系 Service 接口 + * + * @author 后台管理 + */ +public interface RecordRelationService { + + /** + * 创建文件记录关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + RecordRelationRespVO createRecordRelation(@Valid RecordRelationSaveReqVO createReqVO); + + /** + * 更新文件记录关系 + * + * @param updateReqVO 更新信息 + */ + void updateRecordRelation(@Valid RecordRelationSaveReqVO updateReqVO); + + /** + * 删除文件记录关系 + * + * @param id 编号 + */ + void deleteRecordRelation(String id); + + /** + * 批量删除文件记录关系 + * + * @param ids 编号 + */ + void deleteRecordRelationListByIds(List ids); + + /** + * 获得文件记录关系 + * + * @param id 编号 + * @return 文件记录关系 + */ + RecordRelationDO getRecordRelation(String id); + + /** + * 获得文件记录关系分页 + * + * @param pageReqVO 分页查询 + * @return 文件记录关系分页 + */ + PageResult getRecordRelationPage(RecordRelationPageReqVO 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/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 new file mode 100644 index 00000000..7d099edb --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordRelation/RecordRelationServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.resource.record.service.recordRelation; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationPageReqVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationRespVO; +import com.zt.plat.module.qms.resource.record.controller.admin.recordRelation.vo.RecordRelationSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordRelation.RecordRelationDO; +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 static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 文件记录关系 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class RecordRelationServiceImpl implements RecordRelationService { + + @Resource + private RecordRelationMapper recordRelationMapper; + + @Override + public RecordRelationRespVO createRecordRelation(RecordRelationSaveReqVO createReqVO) { + // 插入 + RecordRelationDO recordRelation = BeanUtils.toBean(createReqVO, RecordRelationDO.class); + recordRelationMapper.insert(recordRelation); + // 返回 + return BeanUtils.toBean(recordRelation, RecordRelationRespVO.class); + } + + @Override + public void updateRecordRelation(RecordRelationSaveReqVO updateReqVO) { + // 校验存在 + validateRecordRelationExists(updateReqVO.getId()); + // 更新 + RecordRelationDO updateObj = BeanUtils.toBean(updateReqVO, RecordRelationDO.class); + recordRelationMapper.updateById(updateObj); + } + + @Override + public void deleteRecordRelation(String id) { + // 校验存在 + validateRecordRelationExists(id); + // 删除 + recordRelationMapper.deleteById(id); + } + + @Override + public void deleteRecordRelationListByIds(List ids) { + // 校验存在 + validateRecordRelationExists(ids); + // 删除 + recordRelationMapper.deleteByIds(ids); + } + + private void validateRecordRelationExists(List ids) { + List list = recordRelationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(RECORD_RELATION_NOT_EXISTS); + } + } + + private void validateRecordRelationExists(String id) { + if (recordRelationMapper.selectById(id) == null) { + throw exception(RECORD_RELATION_NOT_EXISTS); + } + } + + @Override + public RecordRelationDO getRecordRelation(String id) { + return recordRelationMapper.selectById(id); + } + + @Override + public PageResult getRecordRelationPage(RecordRelationPageReqVO pageReqVO) { + return recordRelationMapper.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/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 new file mode 100644 index 00000000..e73245d1 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.resource.record.service.recordapply; + +import java.util.*; + +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 jakarta.validation.*; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 文件记录通用申请 Service 接口 + * + * @author 后台管理 + */ +public interface RecordApplyService { + + /** + * 创建文件记录通用申请 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + RecordApplyRespVO createRecordApply(@Valid RecordApplySaveReqVO createReqVO); + + /** + * 更新文件记录通用申请 + * + * @param updateReqVO 更新信息 + */ + void updateRecordApply(@Valid RecordApplySaveReqVO updateReqVO); + + /** + * 删除文件记录通用申请 + * + * @param id 编号 + */ + void deleteRecordApply(Long id); + + /** + * 批量删除文件记录通用申请 + * + * @param ids 编号 + */ + void deleteRecordApplyListByIds(List ids); + + /** + * 获得文件记录通用申请 + * + * @param id 编号 + * @return 文件记录通用申请 + */ + RecordApplyDO getRecordApply(Long id); + + /** + * 获得文件记录通用申请分页 + * + * @param pageReqVO 分页查询 + * @return 文件记录通用申请分页 + */ + PageResult getRecordApplyPage(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 new file mode 100644 index 00000000..dd08bd39 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.resource.record.service.recordapply; + +import cn.hutool.core.collection.CollUtil; +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 org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; +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.recordapply.RecordApplyMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 文件记录通用申请 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class RecordApplyServiceImpl implements RecordApplyService { + + @Resource + private RecordApplyMapper recordApplyMapper; + + @Override + public RecordApplyRespVO createRecordApply(RecordApplySaveReqVO createReqVO) { + // 插入 + RecordApplyDO recordApply = BeanUtils.toBean(createReqVO, RecordApplyDO.class); + recordApplyMapper.insert(recordApply); + // 返回 + return BeanUtils.toBean(recordApply, RecordApplyRespVO.class); + } + + @Override + public void updateRecordApply(RecordApplySaveReqVO updateReqVO) { + // 校验存在 + validateRecordApplyExists(updateReqVO.getId()); + // 更新 + RecordApplyDO updateObj = BeanUtils.toBean(updateReqVO, RecordApplyDO.class); + recordApplyMapper.updateById(updateObj); + } + + @Override + public void deleteRecordApply(Long id) { + // 校验存在 + validateRecordApplyExists(id); + // 删除 + recordApplyMapper.deleteById(id); + } + + @Override + public void deleteRecordApplyListByIds(List ids) { + // 校验存在 + validateRecordApplyExists(ids); + // 删除 + recordApplyMapper.deleteByIds(ids); + } + + private void validateRecordApplyExists(List ids) { + List list = recordApplyMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(RECORD_APPLY_NOT_EXISTS); + } + } + + private void validateRecordApplyExists(Long id) { + if (recordApplyMapper.selectById(id) == null) { + throw exception(RECORD_APPLY_NOT_EXISTS); + } + } + + @Override + public RecordApplyDO getRecordApply(Long id) { + return recordApplyMapper.selectById(id); + } + + @Override + public PageResult getRecordApplyPage(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 new file mode 100644 index 00000000..4e4f2bff --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.resource.record.service.recordapplydetail; + +import java.util.*; + +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; +import jakarta.validation.*; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 文件记录通用申请明细 Service 接口 + * + * @author 后台管理 + */ +public interface RecordApplyDetailService { + + /** + * 创建文件记录通用申请明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + RecordApplyDetailRespVO createRecordApplyDetail(@Valid RecordApplyDetailSaveReqVO createReqVO); + + /** + * 更新文件记录通用申请明细 + * + * @param updateReqVO 更新信息 + */ + void updateRecordApplyDetail(@Valid RecordApplyDetailSaveReqVO updateReqVO); + + /** + * 删除文件记录通用申请明细 + * + * @param id 编号 + */ + void deleteRecordApplyDetail(Long id); + + /** + * 批量删除文件记录通用申请明细 + * + * @param ids 编号 + */ + void deleteRecordApplyDetailListByIds(List ids); + + /** + * 获得文件记录通用申请明细 + * + * @param id 编号 + * @return 文件记录通用申请明细 + */ + RecordApplyDetailDO getRecordApplyDetail(Long id); + + /** + * 获得文件记录通用申请明细分页 + * + * @param pageReqVO 分页查询 + * @return 文件记录通用申请明细分页 + */ + PageResult getRecordApplyDetailPage(RecordApplyDetailPageReqVO 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/RecordApplyDetailServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java new file mode 100644 index 00000000..61a50af4 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.resource.record.service.recordapplydetail; + +import cn.hutool.core.collection.CollUtil; +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; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; +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 static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 文件记录通用申请明细 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class RecordApplyDetailServiceImpl implements RecordApplyDetailService { + + @Resource + private RecordApplyDetailMapper recordApplyDetailMapper; + + @Override + public RecordApplyDetailRespVO createRecordApplyDetail(RecordApplyDetailSaveReqVO createReqVO) { + // 插入 + RecordApplyDetailDO recordApplyDetail = BeanUtils.toBean(createReqVO, RecordApplyDetailDO.class); + recordApplyDetailMapper.insert(recordApplyDetail); + // 返回 + return BeanUtils.toBean(recordApplyDetail, RecordApplyDetailRespVO.class); + } + + @Override + public void updateRecordApplyDetail(RecordApplyDetailSaveReqVO updateReqVO) { + // 校验存在 + validateRecordApplyDetailExists(updateReqVO.getId()); + // 更新 + RecordApplyDetailDO updateObj = BeanUtils.toBean(updateReqVO, RecordApplyDetailDO.class); + recordApplyDetailMapper.updateById(updateObj); + } + + @Override + public void deleteRecordApplyDetail(Long id) { + // 校验存在 + validateRecordApplyDetailExists(id); + // 删除 + recordApplyDetailMapper.deleteById(id); + } + + @Override + public void deleteRecordApplyDetailListByIds(List ids) { + // 校验存在 + validateRecordApplyDetailExists(ids); + // 删除 + recordApplyDetailMapper.deleteByIds(ids); + } + + private void validateRecordApplyDetailExists(List ids) { + List list = recordApplyDetailMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(RECORD_APPLY_DETAIL_NOT_EXISTS); + } + } + + private void validateRecordApplyDetailExists(Long id) { + if (recordApplyDetailMapper.selectById(id) == null) { + throw exception(RECORD_APPLY_DETAIL_NOT_EXISTS); + } + } + + @Override + public RecordApplyDetailDO getRecordApplyDetail(Long id) { + return recordApplyDetailMapper.selectById(id); + } + + @Override + public PageResult getRecordApplyDetailPage(RecordApplyDetailPageReqVO pageReqVO) { + return recordApplyDetailMapper.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/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 new file mode 100644 index 00000000..472f5f1b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java @@ -0,0 +1,65 @@ +package com.zt.plat.module.qms.resource.record.service.recordcategory; + +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 jakarta.validation.*; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 文件记录分类 Service 接口 + * + * @author 后台管理 + */ +public interface RecordCategoryService { + + /** + * 创建文件记录分类 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + RecordCategoryRespVO createRecordCategory(@Valid RecordCategorySaveReqVO createReqVO); + + /** + * 更新文件记录分类 + * + * @param updateReqVO 更新信息 + */ + void updateRecordCategory(@Valid RecordCategorySaveReqVO updateReqVO); + + /** + * 删除文件记录分类 + * + * @param id 编号 + */ + void deleteRecordCategory(Long id); + + /** + * 批量删除文件记录分类 + * + * @param ids 编号 + */ + void deleteRecordCategoryListByIds(List ids); + + /** + * 获得文件记录分类 + * + * @param id 编号 + * @return 文件记录分类 + */ + RecordCategoryDO getRecordCategory(Long id); + + /** + * 获得文件记录分类分页 + * + * @param pageReqVO 分页查询 + * @return 文件记录分类分页 + */ + PageResult getRecordCategoryPage(RecordCategoryPageReqVO pageReqVO); + + List getRecordCategoryTree(RecordCategoryPageReqVO 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/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 new file mode 100644 index 00000000..07e8cac8 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java @@ -0,0 +1,190 @@ +package com.zt.plat.module.qms.resource.record.service.recordcategory; + +import cn.hutool.core.collection.CollUtil; +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; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; +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.dataobject.recordcategory.RecordCategoryDO; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.RECORD_CATEGORY_NOT_EXISTS; + +/** + * 文件记录分类 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class RecordCategoryServiceImpl implements RecordCategoryService { + + private int id_path_update_level_limit = 7; + + @Resource + private RecordCategoryMapper recordCategoryMapper; + + @Transactional(rollbackFor = Exception.class) + @Override + public RecordCategoryRespVO createRecordCategory(RecordCategorySaveReqVO createReqVO) { + // 插入 + RecordCategoryDO recordCategory = BeanUtils.toBean(createReqVO, RecordCategoryDO.class); + int insert = recordCategoryMapper.insert(recordCategory); + if (insert <= 0) throw exception(RECORD_CATEGORY_NOT_EXISTS); + Long id = recordCategory.getId();// 获取插入后的ID + Long parentId = recordCategory.getParentId(); + // 判断父节点是否为null或者0,如果是,则设置父节点ID为0,否则查询父节点信息并设置ID路径 + if (parentId == null || parentId == 0L) {// 没有父节点 + recordCategory.setParentId(0L); + // 更新ID_Path + recordCategory.setIdPath("/" + recordCategory.getParentId() + "//" + id + "/"); + } else { // 存在父节点的新建 + RecordCategoryDO parent = recordCategoryMapper.selectById(parentId); // 存在父节点,查询父节点信息 + if (ObjectUtils.isEmpty(parent)) throw exception(RECORD_CATEGORY_NOT_EXISTS); + else { + String idPath = parent.getIdPath(); + recordCategory.setIdPath("/" + idPath + "/" + id + "/"); + } + } + int i = recordCategoryMapper.updateById(recordCategory); + if (i <= 0) throw exception(RECORD_CATEGORY_NOT_EXISTS); + return BeanUtils.toBean(recordCategory, RecordCategoryRespVO.class); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void updateRecordCategory(RecordCategorySaveReqVO updateReqVO) { + // 校验存在 + validateRecordCategoryExists(updateReqVO.getId()); + // 更新 + RecordCategoryDO updateObj = BeanUtils.toBean(updateReqVO, RecordCategoryDO.class); + Long parentId = updateObj.getParentId(); + // 更新所有的 + // 查询父节点是否存在 +// if (parentId != 0L) { +// RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(parentId); +// if (ObjectUtils.isEmpty(recordCategoryDO)) throw exception(RECORD_CATEGORY_NOT_EXISTS); +// String idPath = recordCategoryDO.getIdPath(); +// updateObj.setIdPath("/" + idPath + "/" + parentId + "//" + updateObj.getId() + "/"); +// recordCategoryMapper.updateById(updateObj); +// }else { + // parentId 设为0 , 子节点转换成父节点 + // TODO + updateAllIdPath(updateObj.getId(), 1); + // 更新树结构 + // 1.根据父节点查询所以关联节点 + + //2.更新ID_Path + +// } + } + + public RecordCategoryDO getDeviceProduct(Long id) { + return recordCategoryMapper.selectById(id); + } + + public List listByParId(Long parId) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(RecordCategoryDO::getParentId, parId); + query.orderByAsc(RecordCategoryDO::getSortNo); + return recordCategoryMapper.selectList(query); + } + + public CommonResult updateAllIdPath(Long parentId, Integer level) { + if(level > id_path_update_level_limit) + return CommonResult.success("更新完成(超出层数限制:"+id_path_update_level_limit+")"); + List list = listByParId(parentId); + RecordCategoryDO parEntity = this.getDeviceProduct(parentId); + if(list.isEmpty()) + return CommonResult.success(""); + String parIdPath = "/0/"; + if(parEntity != null) + parIdPath = parEntity.getIdPath(); + for(RecordCategoryDO entity : list){ + entity.setIdPath(parIdPath + "/" + entity.getId() + "/"); + recordCategoryMapper.updateById( entity); + updateAllIdPath(entity.getId(),level+1); + } + return CommonResult.success(""); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void deleteRecordCategory(Long id) { + // 校验存在 + validateRecordCategoryExists(id); + // 验证是否存在字节点 + validateRecordCategoryHasChildNode(id); + // 逻辑删除 + RecordCategoryDO recordCategoryDO = new RecordCategoryDO(); + recordCategoryDO.setId(id); + recordCategoryDO.setDeleted(true); + recordCategoryMapper.updateById(recordCategoryDO); +// recordCategoryMapper.deleteById(id); + } + + @Override + public void deleteRecordCategoryListByIds(List ids) { + // 校验存在 + validateRecordCategoryExists(ids); + // 删除 + recordCategoryMapper.deleteByIds(ids); + } + + // 验证删除的节点是否存在字节点,如果存在字节点,则不允许删除 + public void validateRecordCategoryHasChildNode(Long id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List list = recordCategoryMapper.selectList( + queryWrapper.like(RecordCategoryDO::getIdPath, id)); + if (CollUtil.isNotEmpty(list)) { + throw exception(RECORD_CATEGORY_NOT_EXISTS); + } + } + + private void validateRecordCategoryExists(List ids) { + List list = recordCategoryMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(RECORD_CATEGORY_NOT_EXISTS); + } + } + + private void validateRecordCategoryExists(Long id) { + if (recordCategoryMapper.selectById(id) == null) { + throw exception(RECORD_CATEGORY_NOT_EXISTS); + } + } + + @Override + public RecordCategoryDO getRecordCategory(Long id) { + return recordCategoryMapper.selectById(id); + } + + @Override + public PageResult getRecordCategoryPage(RecordCategoryPageReqVO pageReqVO) { + return recordCategoryMapper.selectPage(pageReqVO); + } + + @Override + public List getRecordCategoryTree(RecordCategoryPageReqVO pageReqVO) { + String name = pageReqVO.getName(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (!ObjectUtils.isEmpty(name)) { + queryWrapper.eq(RecordCategoryDO::getName, name); + queryWrapper.orderByAsc(RecordCategoryDO::getSortNo); // 升序 + } + return recordCategoryMapper.selectList(queryWrapper); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java new file mode 100644 index 00000000..fb4da786 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.resource.record.service.recordpermission; + +import java.util.*; + +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; +import jakarta.validation.*; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 记录权限 Service 接口 + * + * @author 后台管理 + */ +public interface RecordPermissionService { + + /** + * 创建记录权限 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + RecordPermissionRespVO createRecordPermission(@Valid RecordPermissionSaveReqVO createReqVO); + + /** + * 更新记录权限 + * + * @param updateReqVO 更新信息 + */ + void updateRecordPermission(@Valid RecordPermissionSaveReqVO updateReqVO); + + /** + * 删除记录权限 + * + * @param id 编号 + */ + void deleteRecordPermission(Long id); + + /** + * 批量删除记录权限 + * + * @param ids 编号 + */ + void deleteRecordPermissionListByIds(List ids); + + /** + * 获得记录权限 + * + * @param id 编号 + * @return 记录权限 + */ + RecordPermissionDO getRecordPermission(Long id); + + /** + * 获得记录权限分页 + * + * @param pageReqVO 分页查询 + * @return 记录权限分页 + */ + PageResult getRecordPermissionPage(RecordPermissionPageReqVO 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/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 new file mode 100644 index 00000000..1f9cc37a --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.resource.record.service.recordpermission; + +import cn.hutool.core.collection.CollUtil; +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; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; +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 static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 记录权限 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class RecordPermissionServiceImpl implements RecordPermissionService { + + @Resource + private RecordPermissionMapper recordPermissionMapper; + + @Override + public RecordPermissionRespVO createRecordPermission(RecordPermissionSaveReqVO createReqVO) { + // 插入 + RecordPermissionDO recordPermission = BeanUtils.toBean(createReqVO, RecordPermissionDO.class); + recordPermissionMapper.insert(recordPermission); + // 返回 + return BeanUtils.toBean(recordPermission, RecordPermissionRespVO.class); + } + + @Override + public void updateRecordPermission(RecordPermissionSaveReqVO updateReqVO) { + // 校验存在 + validateRecordPermissionExists(updateReqVO.getId()); + // 更新 + RecordPermissionDO updateObj = BeanUtils.toBean(updateReqVO, RecordPermissionDO.class); + recordPermissionMapper.updateById(updateObj); + } + + @Override + public void deleteRecordPermission(Long id) { + // 校验存在 + validateRecordPermissionExists(id); + // 删除 + recordPermissionMapper.deleteById(id); + } + + @Override + public void deleteRecordPermissionListByIds(List ids) { + // 校验存在 + validateRecordPermissionExists(ids); + // 删除 + recordPermissionMapper.deleteByIds(ids); + } + + private void validateRecordPermissionExists(List ids) { + List list = recordPermissionMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(RECORD_PERMISSION_NOT_EXISTS); + } + } + + private void validateRecordPermissionExists(Long id) { + if (recordPermissionMapper.selectById(id) == null) { + throw exception(RECORD_PERMISSION_NOT_EXISTS); + } + } + + @Override + public RecordPermissionDO getRecordPermission(Long id) { + return recordPermissionMapper.selectById(id); + } + + @Override + public PageResult getRecordPermissionPage(RecordPermissionPageReqVO pageReqVO) { + return recordPermissionMapper.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/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 new file mode 100644 index 00000000..8aca76d7 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.resource.record.service.recordrecord; + +import java.util.*; + +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 jakarta.validation.*; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 文件、模板、记录 Service 接口 + * + * @author 后台管理 + */ +public interface RecordRecordService { + + /** + * 创建文件、模板、记录 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + RecordRecordRespVO createRecordRecord(@Valid RecordRecordSaveReqVO createReqVO); + + /** + * 更新文件、模板、记录 + * + * @param updateReqVO 更新信息 + */ + void updateRecordRecord(@Valid RecordRecordSaveReqVO updateReqVO); + + /** + * 删除文件、模板、记录 + * + * @param id 编号 + */ + void deleteRecordRecord(Long id); + + /** + * 批量删除文件、模板、记录 + * + * @param ids 编号 + */ + void deleteRecordRecordListByIds(List ids); + + /** + * 获得文件、模板、记录 + * + * @param id 编号 + * @return 文件、模板、记录 + */ + RecordRecordDO getRecordRecord(Long id); + + /** + * 获得文件、模板、记录分页 + * + * @param pageReqVO 分页查询 + * @return 文件、模板、记录分页 + */ + PageResult getRecordRecordPage(RecordRecordPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/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 new file mode 100644 index 00000000..33cf9102 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java @@ -0,0 +1,113 @@ +package com.zt.plat.module.qms.resource.record.service.recordrecord; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.common.exception.ServiceException; +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.dataobject.recordcategory.RecordCategoryDO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; +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.recordrecord.RecordRecordMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 文件、模板、记录 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class RecordRecordServiceImpl implements RecordRecordService { + + @Resource + private RecordRecordMapper recordRecordMapper; + + @Resource + private RecordCategoryMapper recordCategoryMapper; + + // 验证分类ID 是否存在 + private void validateRecordCategoryIdExists(Long categoryId) { + RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(categoryId); + if (ObjectUtils.isEmpty(recordCategoryDO)) throw exception(RCD_CTGR_NOT_EXISTS); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public RecordRecordRespVO createRecordRecord(RecordRecordSaveReqVO createReqVO) { + // 插入 + RecordRecordDO recordRecord = BeanUtils.toBean(createReqVO, RecordRecordDO.class); + // 判断文件记录分类ID 是否存在 + Long categoryId = recordRecord.getCategoryId(); + validateRecordCategoryIdExists(categoryId); + //TODO 判断版本号是否最新版 + recordRecordMapper.insert(recordRecord); + // 返回 + return BeanUtils.toBean(recordRecord, RecordRecordRespVO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateRecordRecord(RecordRecordSaveReqVO updateReqVO) { + // 校验存在 + validateRecordRecordExists(updateReqVO.getId()); + // 更新 + RecordRecordDO updateObj = BeanUtils.toBean(updateReqVO, RecordRecordDO.class); + recordRecordMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteRecordRecord(Long id) { + // 校验存在 + validateRecordRecordExists(id); + // 删除 + recordRecordMapper.deleteById(id); + } + + @Override + public void deleteRecordRecordListByIds(List ids) { + // 校验存在 + validateRecordRecordExists(ids); + // 删除 + recordRecordMapper.deleteByIds(ids); + } + + private void validateRecordRecordExists(List ids) { + List list = recordRecordMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(RECORD_RECORD_NOT_EXISTS); + } + } + + private void validateRecordRecordExists(Long id) { + if (recordRecordMapper.selectById(id) == null) { + throw exception(RECORD_RECORD_NOT_EXISTS); + } + } + + @Override + public RecordRecordDO getRecordRecord(Long id) { + return recordRecordMapper.selectById(id); + } + + @Override + public PageResult getRecordRecordPage(RecordRecordPageReqVO pageReqVO) { + return recordRecordMapper.selectPage(pageReqVO); + } + +} \ 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/mapper/recordRelation/RecordRelationMapper.xml new file mode 100644 index 00000000..e481e7b9 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordRelation/RecordRelationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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/recordapply/RecordApplyMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapply/RecordApplyMapper.xml new file mode 100644 index 00000000..5a573ebb --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapply/RecordApplyMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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/recordapplydetail/RecordApplyDetailMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapplydetail/RecordApplyDetailMapper.xml new file mode 100644 index 00000000..e7c2c0e0 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordapplydetail/RecordApplyDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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/recordcategory/RecordCategoryMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordcategory/RecordCategoryMapper.xml new file mode 100644 index 00000000..6dfccb1b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordcategory/RecordCategoryMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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/recordpermission/RecordPermissionMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordpermission/RecordPermissionMapper.xml new file mode 100644 index 00000000..4b0b2202 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordpermission/RecordPermissionMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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/recordrecord/RecordRecordMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordrecord/RecordRecordMapper.xml new file mode 100644 index 00000000..21e68e28 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/mapper/recordrecord/RecordRecordMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file