diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java index d3be7786..959f4ccd 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java @@ -1331,6 +1331,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String project = source.getProject(); BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null); + if (currentBusinessAssayProjectData == null) { + continue; + } ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { List targetProjectList = Arrays.asList(target.getProject().split(",")); @@ -1362,6 +1365,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String project = source.getProject(); BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null); + if (currentBusinessAssayProjectData == null) { + continue; + } ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { List targetProjectList = Arrays.asList(target.getProject().split(",")); @@ -1393,6 +1399,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String project = source.getProject(); BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null); + if (currentBusinessAssayProjectData == null) { + continue; + } ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { List targetProjectList = Arrays.asList(target.getProject().split(",")); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java index 5e844548..38e8cae5 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java @@ -1,6 +1,8 @@ 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.common.service.BusinessFileService; +import com.zt.plat.module.qms.resource.clientManage.controller.vo.VersionManagementRespVO; 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; @@ -38,10 +40,10 @@ import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordS @Tag(name = "管理后台 - 文件、模板、记录") @RestController -@RequestMapping("/qms/record-record") +@RequestMapping("/qms/resource/record-record") @Validated @DeptDataPermissionIgnore(enable = "true") -@FileUploadController(source = "qms.recordrecord") +@FileUploadController(source = "qms.recordrecord", codeKey = "data.fileUploadBusinessCode") public class RecordRecordController extends AbstractFileUploadController implements BusinessControllerMarker{ static { @@ -53,9 +55,20 @@ public class RecordRecordController extends AbstractFileUploadController impleme @Resource private RecordRecordService recordRecordService; + @Resource + private BusinessFileService businessFileService; + +// @GetMapping("/getRecordListByCategoryId") +// @Operation(summary = "根据文件分类ID获取分类明细记录") +// @Parameter(name = "id", description = "编号", required = true, example = "1024") +// //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") +// public CommonResult> getRecordListByCategoryId(@RequestParam("id") Long categoryId) { +// PageResult recordRecordListByCategoryId = recordRecordService.getRecordListByCategoryId(categoryId); +// return success(BeanUtils.toBean(recordRecordListByCategoryId, RecordRecordRespVO.class)); +// } @PostMapping("/create") - @Operation(summary = "创建文件、模板、记录") + @Operation(summary = "创建文件、模板、记录->分类明细") //@PreAuthorize("@ss.hasPermission('qms:record-record:create')") public CommonResult createRecordRecord(@Valid @RequestBody RecordRecordSaveReqVO createReqVO) { return success(recordRecordService.createRecordRecord(createReqVO)); @@ -64,9 +77,9 @@ public class RecordRecordController extends AbstractFileUploadController impleme @PutMapping("/update") @Operation(summary = "更新文件、模板、记录") //@PreAuthorize("@ss.hasPermission('qms:record-record:update')") - public CommonResult updateRecordRecord(@Valid @RequestBody RecordRecordSaveReqVO updateReqVO) { + public CommonResult updateRecordRecord(@Valid @RequestBody RecordRecordSaveReqVO updateReqVO) { recordRecordService.updateRecordRecord(updateReqVO); - return success(true); + return success(BeanUtils.toBean(updateReqVO, RecordRecordSaveReqVO.class)); } @DeleteMapping("/delete") @@ -93,14 +106,22 @@ public class RecordRecordController extends AbstractFileUploadController impleme //@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)); + RecordRecordRespVO vo = BeanUtils.toBean(recordRecord, RecordRecordRespVO.class); + vo.setBusinessFileRet(businessFileService.getBusinessFileList(id)); + return success(vo); } @GetMapping("/page") @Operation(summary = "获得文件、模板、记录分页") //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") public CommonResult> getRecordRecordPage(@Valid RecordRecordPageReqVO pageReqVO) { - PageResult pageResult = recordRecordService.getRecordRecordPage(pageReqVO); + PageResult pageResult = new PageResult<>(); + Integer isQueryHistory = pageReqVO.getIsQueryHistory(); + if (isQueryHistory != null && isQueryHistory == 1) { // 查询历史分页 + pageResult=recordRecordService.getRecordHistoryPage(pageReqVO); + }else { + pageResult = recordRecordService.getRecordRecordPage(pageReqVO); + } return success(BeanUtils.toBean(pageResult, RecordRecordRespVO.class)); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java index 43cc6655..c4c8573d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java @@ -29,14 +29,14 @@ public class RecordRecordPageReqVO extends PageParam { private String version; @Schema(description = "是否最新版本,默认显示最新版本") - private String currentFlag; + private Integer currentFlag; @Schema(description = "编制日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] makeDate; @Schema(description = "是否涉密") - private String confidentialFlag; + private Integer confidentialFlag; @Schema(description = "密级") private String confidentialLevel; @@ -48,7 +48,7 @@ public class RecordRecordPageReqVO extends PageParam { private String confidentialKey; @Schema(description = "是否长期有效") - private String permanently; + private Integer permanently; @Schema(description = "过期日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @@ -82,4 +82,14 @@ public class RecordRecordPageReqVO extends PageParam { @Schema(description = "是否回收权限") private Integer collectionFlag; + @Schema(description = "原始父级ID") + private Long mainId; + + @Schema(description = "是否可编辑") + private Integer operationFlag; + +// ===========临时字段========== + @Schema(description = "是否查询历史数据") + private Integer isQueryHistory; // 1-查询,0-不查询 + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java index 1aa5667f..de99db4f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java @@ -1,10 +1,17 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; 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") @@ -38,7 +45,8 @@ public class RecordRecordRespVO { @Schema(description = "是否最新版本,默认显示最新版本", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("是否最新版本,默认显示最新版本") - private String currentFlag; + @Dict(dicCode = "yes_or_no") + private Integer currentFlag; @Schema(description = "编制日期") @ExcelProperty("编制日期") @@ -46,7 +54,8 @@ public class RecordRecordRespVO { @Schema(description = "是否涉密", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("是否涉密") - private String confidentialFlag; + @Dict(dicCode = "yes_or_no") + private Integer confidentialFlag; @Schema(description = "密级") @ExcelProperty("密级") @@ -62,7 +71,8 @@ public class RecordRecordRespVO { @Schema(description = "是否长期有效", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("是否长期有效") - private String permanently; + @Dict(dicCode = "yes_or_no") + private Integer permanently; @Schema(description = "过期日期") @ExcelProperty("过期日期") @@ -70,11 +80,13 @@ public class RecordRecordRespVO { @Schema(description = "过期标识,0-有效,1-过期", example = "1") @ExcelProperty("过期标识,0-有效,1-过期") - private String expirationStatus; + @Dict(dicCode = "yes_or_no") + private Integer expirationStatus; @Schema(description = "作废标志,0-有效,1-作废") @ExcelProperty("作废标志,0-有效,1-作废") - private String cancelFlag; + @Dict(dicCode = "yes_or_no") + private Integer cancelFlag; @Schema(description = "表单数据") @ExcelProperty("表单数据") @@ -100,4 +112,24 @@ public class RecordRecordRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "原始父级ID") + private Long mainId; + + @Schema(description = "是否可编辑") + @ExcelProperty("是否可编辑") + private Integer operationFlag; + + //===========临时字段=============> + @Schema(description = "文件分类名称") + @ExcelProperty("文件分类名称") + private String categoryName; + + @Schema(description = "附件上传code") + @ExcelProperty("附件上传code") + private String fileUploadBusinessCode = "qms_resource_version_manage"; + + // ===================扩展字段========================= + @Schema(description = "附件对象") + private CommonResult> businessFileRet; + } \ 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 index 121a759c..e5d6d1aa 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java @@ -1,12 +1,13 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; -import com.baomidou.mybatisplus.annotation.TableField; +import com.zt.plat.module.qms.resource.clientManage.controller.vo.UploadFileVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import jakarta.validation.constraints.*; -import org.springframework.format.annotation.DateTimeFormat; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 文件、模板、记录新增/修改 Request VO") @Data @@ -35,15 +36,14 @@ public class RecordRecordSaveReqVO { private String version; @Schema(description = "是否最新版本,默认显示最新版本", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "是否最新版本,默认显示最新版本不能为空") - private String currentFlag; + private Integer currentFlag; @Schema(description = "编制日期") private LocalDateTime makeDate; @Schema(description = "是否涉密", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "是否涉密不能为空") - private String confidentialFlag; + @NotNull(message = "是否涉密不能为空") + private Integer confidentialFlag; @Schema(description = "密级") private String confidentialLevel; @@ -55,8 +55,7 @@ public class RecordRecordSaveReqVO { private String confidentialKey; @Schema(description = "是否长期有效", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "是否长期有效不能为空") - private String permanently; + private Integer permanently; @Schema(description = "过期日期") private LocalDateTime expirationDate; @@ -84,4 +83,20 @@ public class RecordRecordSaveReqVO { @Schema(description = "是否回收权限") private Integer collectionFlag; + + @Schema(description = "原始父级ID") + private Long mainId; + + @Schema(description = "是否可编辑") + private Integer operationFlag; + + // =================临时字段==================> + @Schema(description = "是否新版本") + private String newVersion; + + @Schema(description = "上传文件列表") + private List files; + + @Schema(description = "删除的文件id") + private List deleteFileIdList; } \ 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 index b3b3adda..a5a7b067 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dao/recordrecord/RecordRecordMapper.java @@ -37,6 +37,7 @@ public interface RecordRecordMapper extends BaseMapperX { .eqIfPresent(RecordRecordDO::getSourceUrl, reqVO.getSourceUrl()) .eqIfPresent(RecordRecordDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) .eqIfPresent(RecordRecordDO::getRemark, reqVO.getRemark()) + .eqIfPresent(RecordRecordDO::getMainId, reqVO.getMainId()) .betweenIfPresent(RecordRecordDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(RecordRecordDO::getId)); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java index f3256133..ce6c34fb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java @@ -62,7 +62,7 @@ public class RecordRecordDO extends BusinessBaseDO { * 是否最新版本,默认显示最新版本 */ @TableField("CRNT_FLG") - private String currentFlag; + private Integer currentFlag; /** * 编制日期 */ @@ -72,7 +72,7 @@ public class RecordRecordDO extends BusinessBaseDO { * 是否涉密 */ @TableField("CNF_FLG") - private String confidentialFlag; + private Integer confidentialFlag; /** * 密级 */ @@ -138,5 +138,23 @@ public class RecordRecordDO extends BusinessBaseDO { */ @TableField("COLT_FLG") private Integer collectionFlag; + /** + * 原始父级ID + */ + @TableField("MAIN_ID") + private Long mainId; + /** + * 是否可编辑 + */ + @TableField("OPTN_FLG") + private Integer operationFlag; + +// =============临时字段============> + + @TableField(exist = false) + private String categoryName; + + @TableField(exist = false) + private String newVersion; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java index 0ddf61e8..f547cc57 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java @@ -72,7 +72,10 @@ public class RecordCategoryServiceImpl implements RecordCategoryService { public void updateRecordCategory(RecordCategorySaveReqVO updateReqVO) { // 校验存在 validateRecordCategoryExists(updateReqVO.getId()); - + + Long parentId1 = updateReqVO.getParentId(); + if (parentId1 == null || parentId1 == 0L) throw exception(RECORD_CATEGORY_NOT_EXISTS); + // 获取更新前的旧数据 RecordCategoryDO oldObj = recordCategoryMapper.selectById(updateReqVO.getId()); String oldIdPath = oldObj.getIdPath(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java index 8aca76d7..e96f9846 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java @@ -61,4 +61,7 @@ public interface RecordRecordService { */ PageResult getRecordRecordPage(RecordRecordPageReqVO pageReqVO); +// PageResult getRecordListByCategoryId(Long categoryId); + + PageResult getRecordHistoryPage(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 index 33cf9102..1221cc42 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java @@ -1,12 +1,20 @@ package com.zt.plat.module.qms.resource.record.service.recordrecord; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zt.plat.framework.common.exception.ServiceException; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.module.qms.common.data.controller.vo.DataTemplateSaveReqVO; +import com.zt.plat.module.qms.common.data.dal.dataobject.DataTemplateDO; +import com.zt.plat.module.qms.common.service.BusinessFileService; +import com.zt.plat.module.qms.resource.clientManage.controller.vo.UploadFileVo; 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 lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.transaction.annotation.Transactional; @@ -30,6 +38,7 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; * * @author 后台管理 */ +@Slf4j @Service @Validated public class RecordRecordServiceImpl implements RecordRecordService { @@ -40,43 +49,112 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Resource private RecordCategoryMapper recordCategoryMapper; + @Resource + private BusinessFileService businessFileService; + // 验证分类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) + //处理附件参数 + private void handleFileParam(RecordRecordSaveReqVO reqVO){ + List files = reqVO.getFiles(); + if (files == null || files.isEmpty()) + return; + UploadFileVo uploadFileVo = files.get(0); +// reqVO.setSourceUrl(uploadFileVo.getUrl()); + } + @Override + @Transactional(rollbackFor = Exception.class) public RecordRecordRespVO createRecordRecord(RecordRecordSaveReqVO createReqVO) { // 插入 RecordRecordDO recordRecord = BeanUtils.toBean(createReqVO, RecordRecordDO.class); // 判断文件记录分类ID 是否存在 Long categoryId = recordRecord.getCategoryId(); validateRecordCategoryIdExists(categoryId); - //TODO 判断版本号是否最新版 - recordRecordMapper.insert(recordRecord); + recordRecord.setCurrentFlag(1);// 是否新版本 + handleFileParam(createReqVO); + try { + recordRecordMapper.insert(recordRecord); + recordRecord.setMainId(recordRecord.getId()); + recordRecordMapper.updateById(recordRecord); + } catch (Exception e) { + throw new RuntimeException("create record error"); + } // 返回 return BeanUtils.toBean(recordRecord, RecordRecordRespVO.class); } + public void saveDataWithNewVersion(RecordRecordDO createReqVO) { + RecordRecordDO recordRecordDO = BeanUtils.toBean(createReqVO, RecordRecordDO.class); + recordRecordDO.setCurrentFlag(0); + try { + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(RecordRecordDO::getMainId,recordRecordDO.getMainId()); // 所以main_id 和 current_flag = 1 的数据 + lambdaQueryWrapper.eq(RecordRecordDO::getCurrentFlag,1); // 0,旧版本 + recordRecordMapper.update(recordRecordDO,lambdaQueryWrapper); + + //创建新版本 + recordRecordDO.setId(null); + recordRecordDO.setCurrentFlag(1); + recordRecordDO.setMainId(createReqVO.getMainId()); + recordRecordDO.setVersion(recordRecordDO.getNewVersion());// 新版本号 + recordRecordMapper.insert(recordRecordDO); + } catch (Exception e) { + throw new RuntimeException("save new version error"); + } + } + @Override @Transactional(rollbackFor = Exception.class) public void updateRecordRecord(RecordRecordSaveReqVO updateReqVO) { // 校验存在 validateRecordRecordExists(updateReqVO.getId()); - // 更新 + handleFileParam(updateReqVO); RecordRecordDO updateObj = BeanUtils.toBean(updateReqVO, RecordRecordDO.class); - recordRecordMapper.updateById(updateObj); + String newVersion = updateObj.getNewVersion();// 新版本 + if (ObjectUtils.isEmpty(newVersion)) { // 不是新版本,直接更新 + recordRecordMapper.updateById(updateObj); + }else {// 新版本 + // 是否回收 + Integer collectionFlag = updateReqVO.getCollectionFlag(); + if (collectionFlag != null) { // 不为null, 回收旧版本权限 + // TODO + } + // 创建新版本 + saveDataWithNewVersion(updateObj); + } + // 更新 + businessFileService.deleteBusinessFileList(updateReqVO.getDeleteFileIdList()); } @Override @Transactional(rollbackFor = Exception.class) public void deleteRecordRecord(Long id) { // 校验存在 - validateRecordRecordExists(id); + RecordRecordDO recordRecordDO = recordRecordMapper.selectById(id); + if (ObjectUtils.isEmpty(recordRecordDO)) throw exception(RECORD_RECORD_NOT_EXISTS); // 删除 recordRecordMapper.deleteById(id); + /* + 删除成功,需要判断是否有历史版本, + 1.有:需要把上一版变成最新版 + 2.没有:不操作 + */ + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(RecordRecordDO::getMainId,recordRecordDO.getMainId()); + lambdaQueryWrapper.orderByDesc(RecordRecordDO::getCreateTime); // 根据时间倒叙排序,取第一个 + List recordRecordDOS = recordRecordMapper.selectList(lambdaQueryWrapper); + log.info("recordRecordDOS--:{}",recordRecordDOS); + if (ObjectUtils.isEmpty(recordRecordDOS)) return ; + // 修改状态为当前最新版本 + // TODO 需要去判断文件作废状态 + recordRecordDO = recordRecordDOS.get(0); + recordRecordDO.setCurrentFlag(1); + recordRecordMapper.updateById(recordRecordDO); } @Override @@ -102,11 +180,43 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Override public RecordRecordDO getRecordRecord(Long id) { - return recordRecordMapper.selectById(id); + RecordRecordDO recordRecordDO = recordRecordMapper.selectById(id); + if (!ObjectUtils.isEmpty(recordRecordDO)){ + Long categoryId = recordRecordDO.getCategoryId(); + RecordCategoryDO recordCategoryDO = recordCategoryMapper.selectById(categoryId); + recordRecordDO.setCategoryName(recordCategoryDO.getName()); + } + return recordRecordDO; } @Override public PageResult getRecordRecordPage(RecordRecordPageReqVO pageReqVO) { + // 查询 id 和 main_id 的值相同的数据 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(RecordRecordDO.class); +// .apply("ID = MAIN_ID"); + // 添加其他查询条件 + if (pageReqVO.getCategoryId() != null) wrapper.eq(RecordRecordDO::getCategoryId, pageReqVO.getCategoryId()); + if (pageReqVO.getCode() != null) wrapper.eq(RecordRecordDO::getCode, pageReqVO.getCode()); + if (pageReqVO.getName() != null) wrapper.like(RecordRecordDO::getName, pageReqVO.getName()); + wrapper.eq(RecordRecordDO::getCurrentFlag, 1); // 默认查询最新版 + wrapper.orderByAsc(RecordRecordDO::getCreateTime); + log.info("pageReqVO:{}", pageReqVO); + + return recordRecordMapper.selectPage(pageReqVO, wrapper); + } + +// @Override +// public PageResult getRecordListByCategoryId(Long categoryId) { +// RecordRecordPageReqVO recordPageReqVO = new RecordRecordPageReqVO(); +// recordPageReqVO.setCategoryId(categoryId); +// return recordRecordMapper.selectPage(recordPageReqVO); +// } + + // 查询历史分页 + @Override + public PageResult getRecordHistoryPage(RecordRecordPageReqVO pageReqVO) { + Long mainId = pageReqVO.getMainId(); + if (ObjectUtils.isEmpty(mainId)) throw exception(RECORD_RECORD_NOT_EXISTS); return recordRecordMapper.selectPage(pageReqVO); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java index d356645b..a1396d98 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java @@ -431,6 +431,9 @@ public class XRFDataServiceImpl implements XRFDataService { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String project = source.getProject(); BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null); + if (currentBusinessAssayProjectData == null) { + continue; + } ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { List targetProjectList = Arrays.asList(target.getProject().split(",")); @@ -462,6 +465,9 @@ public class XRFDataServiceImpl implements XRFDataService { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String project = source.getProject(); BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null); + if (currentBusinessAssayProjectData == null) { + continue; + } ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { List targetProjectList = Arrays.asList(target.getProject().split(",")); @@ -493,6 +499,9 @@ public class XRFDataServiceImpl implements XRFDataService { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String project = source.getProject(); BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && project.equals(f.getSimpleName())).findFirst().orElse(null); + if (currentBusinessAssayProjectData == null) { + continue; + } ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { List targetProjectList = Arrays.asList(target.getProject().split(","));