diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java index 1c213b0..1124a9d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java @@ -50,4 +50,18 @@ public void setTypeName(String typeName) { this.typeName = typeName; } + + /** + * 根据 code 获取枚举实例 + * @param code 枚举的 code + * @return 对应的枚举实例,如果找不到则返回 null + */ + public static QualityAuditManagementFileTypeEnum getByCode(Integer code) { + for (QualityAuditManagementFileTypeEnum type : QualityAuditManagementFileTypeEnum.values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java index 1c213b0..1124a9d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java @@ -50,4 +50,18 @@ public void setTypeName(String typeName) { this.typeName = typeName; } + + /** + * 根据 code 获取枚举实例 + * @param code 枚举的 code + * @return 对应的枚举实例,如果找不到则返回 null + */ + public static QualityAuditManagementFileTypeEnum getByCode(Integer code) { + for (QualityAuditManagementFileTypeEnum type : QualityAuditManagementFileTypeEnum.values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java index bbb2daf..93719cb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java @@ -16,6 +16,7 @@ import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.quality.QualityAuditManagementStageOptTypeEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.enums.resource.LabCodeDictEnum; @@ -27,7 +28,6 @@ import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; import com.casic.missiles.model.quality.BizQualityInternalPlanUser; import com.casic.missiles.model.quality.base.BaseAuditManagementRelFile; -import com.casic.missiles.model.quality.base.QualityAuditManagementFileTypeEnum; import com.casic.missiles.service.quality.IBizQualityInternalAuditFileService; import com.casic.missiles.service.quality.IBizQualityInternalAuditManagementService; import com.casic.missiles.utils.QualityNoUtil; @@ -256,7 +256,7 @@ auditFileService.save(auditFile); //内审当前阶段更新 20240219 - updateCurrentStage(management.getId(), target.getManagementFileType()); + // updateCurrentStage(management.getId(), target.getManagementFileType()); } @Override @@ -282,7 +282,7 @@ } @Override - public void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum) { + public void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(BizQualityInternalAuditManagement::getCurrentStage, typeEnum.getCode()); updateWrapper.eq(BizQualityInternalAuditManagement::getId, id); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java index 1c213b0..1124a9d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java @@ -50,4 +50,18 @@ public void setTypeName(String typeName) { this.typeName = typeName; } + + /** + * 根据 code 获取枚举实例 + * @param code 枚举的 code + * @return 对应的枚举实例,如果找不到则返回 null + */ + public static QualityAuditManagementFileTypeEnum getByCode(Integer code) { + for (QualityAuditManagementFileTypeEnum type : QualityAuditManagementFileTypeEnum.values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java index bbb2daf..93719cb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java @@ -16,6 +16,7 @@ import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.quality.QualityAuditManagementStageOptTypeEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.enums.resource.LabCodeDictEnum; @@ -27,7 +28,6 @@ import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; import com.casic.missiles.model.quality.BizQualityInternalPlanUser; import com.casic.missiles.model.quality.base.BaseAuditManagementRelFile; -import com.casic.missiles.model.quality.base.QualityAuditManagementFileTypeEnum; import com.casic.missiles.service.quality.IBizQualityInternalAuditFileService; import com.casic.missiles.service.quality.IBizQualityInternalAuditManagementService; import com.casic.missiles.utils.QualityNoUtil; @@ -256,7 +256,7 @@ auditFileService.save(auditFile); //内审当前阶段更新 20240219 - updateCurrentStage(management.getId(), target.getManagementFileType()); + // updateCurrentStage(management.getId(), target.getManagementFileType()); } @Override @@ -282,7 +282,7 @@ } @Override - public void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum) { + public void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(BizQualityInternalAuditManagement::getCurrentStage, typeEnum.getCode()); updateWrapper.eq(BizQualityInternalAuditManagement::getId, id); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java index 74d9747..74d975a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java @@ -97,7 +97,7 @@ entity.setCreatorName(user.getName()); //生成文件编码 - saveEntity(entity, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + saveEntity(entity, entity.getGroupNo(),QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); entity.setApprovalStatus(ApprovalStatusEnum.DRAFT); super.save(entity); @@ -122,7 +122,7 @@ @Override public boolean updateById(BizQualityNonReviewForm entity) { BizQualityNonReviewForm old = getById(entity.getId()); - updateEntity(entity, old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + updateEntity(entity, entity.getGroupNo(), old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); entity.setUpdateTime(DateUtil.now()); super.updateById(entity); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java index 1c213b0..1124a9d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java @@ -50,4 +50,18 @@ public void setTypeName(String typeName) { this.typeName = typeName; } + + /** + * 根据 code 获取枚举实例 + * @param code 枚举的 code + * @return 对应的枚举实例,如果找不到则返回 null + */ + public static QualityAuditManagementFileTypeEnum getByCode(Integer code) { + for (QualityAuditManagementFileTypeEnum type : QualityAuditManagementFileTypeEnum.values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java index bbb2daf..93719cb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java @@ -16,6 +16,7 @@ import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.quality.QualityAuditManagementStageOptTypeEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.enums.resource.LabCodeDictEnum; @@ -27,7 +28,6 @@ import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; import com.casic.missiles.model.quality.BizQualityInternalPlanUser; import com.casic.missiles.model.quality.base.BaseAuditManagementRelFile; -import com.casic.missiles.model.quality.base.QualityAuditManagementFileTypeEnum; import com.casic.missiles.service.quality.IBizQualityInternalAuditFileService; import com.casic.missiles.service.quality.IBizQualityInternalAuditManagementService; import com.casic.missiles.utils.QualityNoUtil; @@ -256,7 +256,7 @@ auditFileService.save(auditFile); //内审当前阶段更新 20240219 - updateCurrentStage(management.getId(), target.getManagementFileType()); + // updateCurrentStage(management.getId(), target.getManagementFileType()); } @Override @@ -282,7 +282,7 @@ } @Override - public void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum) { + public void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(BizQualityInternalAuditManagement::getCurrentStage, typeEnum.getCode()); updateWrapper.eq(BizQualityInternalAuditManagement::getId, id); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java index 74d9747..74d975a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java @@ -97,7 +97,7 @@ entity.setCreatorName(user.getName()); //生成文件编码 - saveEntity(entity, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + saveEntity(entity, entity.getGroupNo(),QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); entity.setApprovalStatus(ApprovalStatusEnum.DRAFT); super.save(entity); @@ -122,7 +122,7 @@ @Override public boolean updateById(BizQualityNonReviewForm entity) { BizQualityNonReviewForm old = getById(entity.getId()); - updateEntity(entity, old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + updateEntity(entity, entity.getGroupNo(), old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); entity.setUpdateTime(DateUtil.now()); super.updateById(entity); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java index 7c3c4c2..de029bb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java @@ -25,10 +25,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.mapper.quality.BizQualityWorkRegistrationMapper; import com.casic.missiles.model.exception.ServiceException; -import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; -import com.casic.missiles.model.quality.BizQualityRegistrationScheduleUser; -import com.casic.missiles.model.quality.BizQualityWorkRegistration; -import com.casic.missiles.model.quality.BizQualityWorkRegistrationSchedule; +import com.casic.missiles.model.quality.*; import com.casic.missiles.service.Impl.GeneralApprovalServiceImpl; import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.service.quality.*; @@ -45,10 +42,7 @@ import java.io.File; import java.io.Serializable; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -76,19 +70,20 @@ private final IBizQualityWorkRegistrationScheduleService scheduleService; private final IBizQualityInternalAuditPlanService internalAuditPlanService; private final IBizQualityRegistrationScheduleUserService scheduleUserService; - + private final IBizQualityInternalAuditFileService auditFileService; private final PrintFileRegister printFileRegister; @Value("${casic.file.dir}") private String localFileDir; - public BizQualityWorkRegistrationServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, @Lazy IBizQualityInternalAuditManagementService internalAuditManagementService, IBizQualityWorkRegistrationScheduleService scheduleService, @Lazy IBizQualityInternalAuditPlanService internalAuditPlanService, IBizQualityRegistrationScheduleUserService scheduleUserService, PrintFileRegister printFileRegister) { + public BizQualityWorkRegistrationServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, @Lazy IBizQualityInternalAuditManagementService internalAuditManagementService, IBizQualityWorkRegistrationScheduleService scheduleService, @Lazy IBizQualityInternalAuditPlanService internalAuditPlanService, @Lazy IBizQualityRegistrationScheduleUserService scheduleUserService, IBizQualityInternalAuditFileService auditFileService, PrintFileRegister printFileRegister) { this.permissionContext = permissionContext; this.dictService = dictService; this.internalAuditManagementService = internalAuditManagementService; this.scheduleService = scheduleService; this.internalAuditPlanService = internalAuditPlanService; this.scheduleUserService = scheduleUserService; + this.auditFileService = auditFileService; this.printFileRegister = printFileRegister; } @@ -128,8 +123,10 @@ entity.setLogTime(new Date()); entity.setCreatorName(user.getName()); //文件名称校验 - if (count(new LambdaQueryWrapper().eq(BizQualityWorkRegistration::getFileName, entity.getFileName())) > 0) { - throw new ServiceException(500, "该工作审核登记表已存在"); + List list = list(new LambdaQueryWrapper().eq(BizQualityWorkRegistration::getFileName, entity.getFileName())); + if (CollectionUtil.isNotEmpty(list)) { + BizQualityWorkRegistration registration = list.get(0); + throw new ServiceException(500, "该工作审核登记表已由" + registration.getCreatorName() + "创建"); } saveEntity(entity, QualityTableEnum.WORK_REGISTRATION, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); @@ -294,7 +291,7 @@ LambdaQueryWrapper newScheduleQuery = new LambdaQueryWrapper<>(); newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getWorkRegistrationId, regId); newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getStageType, stageEnum.getCode()); - scheduleQuery.eq(BizQualityWorkRegistrationSchedule::getIsCompleted, 1); + newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getIsCompleted, 1); if (scheduleService.count(newScheduleQuery) > 0) { throw new ServiceException(500, "该项工作记录已完成"); } @@ -317,9 +314,35 @@ checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); checkYearNo(baseMapper, entity.getYearNo(), entity.getId(), QualityYearNoCheckEnum.WorkRegistration); entity.setUpdateTime(DateUtil.now()); + //查询最大的已完成记录更新至当前阶段 + if (CollectionUtil.isNotEmpty(entity.getScheduleList())) { + List scheduleList = entity.getScheduleList(); + try { + BizQualityWorkRegistrationSchedule max = scheduleList.stream().filter(schedule -> schedule.getIsCompleted() == 1L).max(Comparator.comparing(BizQualityWorkRegistrationSchedule::getStageType)).orElse(null); + if (max != null) { + QualityCurrentStageEnum fileType = QualityCurrentStageEnum.getByCode(max.getStageType() + 1); + //查询关联年份内审工作 并更新当前阶段 + LambdaQueryWrapper fileQuery = new LambdaQueryWrapper<>(); + fileQuery.eq(BizQualityInternalAuditFile::getTargetId, entity.getId()); + List internalAuditFiles = auditFileService.list(fileQuery); + if (CollectionUtil.isNotEmpty(internalAuditFiles)) { + BizQualityInternalAuditFile auditFile = internalAuditFiles.get(0); + if (fileType != null) { + internalAuditManagementService.updateCurrentStage(auditFile.getManagementId(), fileType); + } else { + //记录归档 + internalAuditManagementService.updateCurrentStage(auditFile.getManagementId(), QualityCurrentStageEnum.RECORD_ARCHIVING); + } + } + } + } catch (Exception e) { + log.error("BizQualityWorkRegistrationSchedule max error! id:{}", entity.getId()); + } + } super.updateById(entity); internalAuditManagementService.updateAuditFileByBaseAuditManagement(entity); scheduleService.saveBizQualityWorkRegistrationSchedules(entity); + return true; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java index 1c213b0..1124a9d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java @@ -50,4 +50,18 @@ public void setTypeName(String typeName) { this.typeName = typeName; } + + /** + * 根据 code 获取枚举实例 + * @param code 枚举的 code + * @return 对应的枚举实例,如果找不到则返回 null + */ + public static QualityAuditManagementFileTypeEnum getByCode(Integer code) { + for (QualityAuditManagementFileTypeEnum type : QualityAuditManagementFileTypeEnum.values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java index bbb2daf..93719cb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java @@ -16,6 +16,7 @@ import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.quality.QualityAuditManagementStageOptTypeEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.enums.resource.LabCodeDictEnum; @@ -27,7 +28,6 @@ import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; import com.casic.missiles.model.quality.BizQualityInternalPlanUser; import com.casic.missiles.model.quality.base.BaseAuditManagementRelFile; -import com.casic.missiles.model.quality.base.QualityAuditManagementFileTypeEnum; import com.casic.missiles.service.quality.IBizQualityInternalAuditFileService; import com.casic.missiles.service.quality.IBizQualityInternalAuditManagementService; import com.casic.missiles.utils.QualityNoUtil; @@ -256,7 +256,7 @@ auditFileService.save(auditFile); //内审当前阶段更新 20240219 - updateCurrentStage(management.getId(), target.getManagementFileType()); + // updateCurrentStage(management.getId(), target.getManagementFileType()); } @Override @@ -282,7 +282,7 @@ } @Override - public void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum) { + public void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(BizQualityInternalAuditManagement::getCurrentStage, typeEnum.getCode()); updateWrapper.eq(BizQualityInternalAuditManagement::getId, id); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java index 74d9747..74d975a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java @@ -97,7 +97,7 @@ entity.setCreatorName(user.getName()); //生成文件编码 - saveEntity(entity, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + saveEntity(entity, entity.getGroupNo(),QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); entity.setApprovalStatus(ApprovalStatusEnum.DRAFT); super.save(entity); @@ -122,7 +122,7 @@ @Override public boolean updateById(BizQualityNonReviewForm entity) { BizQualityNonReviewForm old = getById(entity.getId()); - updateEntity(entity, old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + updateEntity(entity, entity.getGroupNo(), old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); entity.setUpdateTime(DateUtil.now()); super.updateById(entity); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java index 7c3c4c2..de029bb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java @@ -25,10 +25,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.mapper.quality.BizQualityWorkRegistrationMapper; import com.casic.missiles.model.exception.ServiceException; -import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; -import com.casic.missiles.model.quality.BizQualityRegistrationScheduleUser; -import com.casic.missiles.model.quality.BizQualityWorkRegistration; -import com.casic.missiles.model.quality.BizQualityWorkRegistrationSchedule; +import com.casic.missiles.model.quality.*; import com.casic.missiles.service.Impl.GeneralApprovalServiceImpl; import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.service.quality.*; @@ -45,10 +42,7 @@ import java.io.File; import java.io.Serializable; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -76,19 +70,20 @@ private final IBizQualityWorkRegistrationScheduleService scheduleService; private final IBizQualityInternalAuditPlanService internalAuditPlanService; private final IBizQualityRegistrationScheduleUserService scheduleUserService; - + private final IBizQualityInternalAuditFileService auditFileService; private final PrintFileRegister printFileRegister; @Value("${casic.file.dir}") private String localFileDir; - public BizQualityWorkRegistrationServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, @Lazy IBizQualityInternalAuditManagementService internalAuditManagementService, IBizQualityWorkRegistrationScheduleService scheduleService, @Lazy IBizQualityInternalAuditPlanService internalAuditPlanService, IBizQualityRegistrationScheduleUserService scheduleUserService, PrintFileRegister printFileRegister) { + public BizQualityWorkRegistrationServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, @Lazy IBizQualityInternalAuditManagementService internalAuditManagementService, IBizQualityWorkRegistrationScheduleService scheduleService, @Lazy IBizQualityInternalAuditPlanService internalAuditPlanService, @Lazy IBizQualityRegistrationScheduleUserService scheduleUserService, IBizQualityInternalAuditFileService auditFileService, PrintFileRegister printFileRegister) { this.permissionContext = permissionContext; this.dictService = dictService; this.internalAuditManagementService = internalAuditManagementService; this.scheduleService = scheduleService; this.internalAuditPlanService = internalAuditPlanService; this.scheduleUserService = scheduleUserService; + this.auditFileService = auditFileService; this.printFileRegister = printFileRegister; } @@ -128,8 +123,10 @@ entity.setLogTime(new Date()); entity.setCreatorName(user.getName()); //文件名称校验 - if (count(new LambdaQueryWrapper().eq(BizQualityWorkRegistration::getFileName, entity.getFileName())) > 0) { - throw new ServiceException(500, "该工作审核登记表已存在"); + List list = list(new LambdaQueryWrapper().eq(BizQualityWorkRegistration::getFileName, entity.getFileName())); + if (CollectionUtil.isNotEmpty(list)) { + BizQualityWorkRegistration registration = list.get(0); + throw new ServiceException(500, "该工作审核登记表已由" + registration.getCreatorName() + "创建"); } saveEntity(entity, QualityTableEnum.WORK_REGISTRATION, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); @@ -294,7 +291,7 @@ LambdaQueryWrapper newScheduleQuery = new LambdaQueryWrapper<>(); newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getWorkRegistrationId, regId); newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getStageType, stageEnum.getCode()); - scheduleQuery.eq(BizQualityWorkRegistrationSchedule::getIsCompleted, 1); + newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getIsCompleted, 1); if (scheduleService.count(newScheduleQuery) > 0) { throw new ServiceException(500, "该项工作记录已完成"); } @@ -317,9 +314,35 @@ checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); checkYearNo(baseMapper, entity.getYearNo(), entity.getId(), QualityYearNoCheckEnum.WorkRegistration); entity.setUpdateTime(DateUtil.now()); + //查询最大的已完成记录更新至当前阶段 + if (CollectionUtil.isNotEmpty(entity.getScheduleList())) { + List scheduleList = entity.getScheduleList(); + try { + BizQualityWorkRegistrationSchedule max = scheduleList.stream().filter(schedule -> schedule.getIsCompleted() == 1L).max(Comparator.comparing(BizQualityWorkRegistrationSchedule::getStageType)).orElse(null); + if (max != null) { + QualityCurrentStageEnum fileType = QualityCurrentStageEnum.getByCode(max.getStageType() + 1); + //查询关联年份内审工作 并更新当前阶段 + LambdaQueryWrapper fileQuery = new LambdaQueryWrapper<>(); + fileQuery.eq(BizQualityInternalAuditFile::getTargetId, entity.getId()); + List internalAuditFiles = auditFileService.list(fileQuery); + if (CollectionUtil.isNotEmpty(internalAuditFiles)) { + BizQualityInternalAuditFile auditFile = internalAuditFiles.get(0); + if (fileType != null) { + internalAuditManagementService.updateCurrentStage(auditFile.getManagementId(), fileType); + } else { + //记录归档 + internalAuditManagementService.updateCurrentStage(auditFile.getManagementId(), QualityCurrentStageEnum.RECORD_ARCHIVING); + } + } + } + } catch (Exception e) { + log.error("BizQualityWorkRegistrationSchedule max error! id:{}", entity.getId()); + } + } super.updateById(entity); internalAuditManagementService.updateAuditFileByBaseAuditManagement(entity); scheduleService.saveBizQualityWorkRegistrationSchedules(entity); + return true; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java index f4058dc..f1b05d0 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.application.context.factory.PermissionContextFactory; import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.quality.BizQualityInternalAuditManagement; @@ -84,7 +85,7 @@ * @param id 主键 * @param typeEnum 当前关联类型 */ - void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum); + void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum); void exportZip(List managements, HttpServletResponse response); /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java index defcf65..5427b5b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityCurrentStageEnum.java @@ -46,4 +46,12 @@ return name; } + public static QualityCurrentStageEnum getByCode(Integer code) { + for (QualityCurrentStageEnum type : QualityCurrentStageEnum.values()) { + if (type.getCode().equals(code+"")) { + return type; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java index 4006351..249a8cb 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/quality/QualityDictTypeEnum.java @@ -9,7 +9,7 @@ APPROVAL_STATUS("approvalStatus", "审批状态"), SITUATION_ANALYSIS_TYPE("situationAnalysisType", "不符合情况分析类型"), //内审当前阶段 - AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementFileType", "内审阶段类型"), + AUDIT_MANAGEMENT_STAGE_TYPE("auditManagementStageType", "内审阶段类型"), AUDIT_MANAGEMENT_FILE_TYPE("auditManagementFileType", "内审关联文件类型"), EXTERNAL_FILE_TYPE("externalFileType", "外审文件类型"), CONFERENCE_RECORD_FILE_TYPE("quality_work_type", "会议记录关联文件类型"), diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java index 1c213b0..1124a9d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/quality/base/QualityAuditManagementFileTypeEnum.java @@ -50,4 +50,18 @@ public void setTypeName(String typeName) { this.typeName = typeName; } + + /** + * 根据 code 获取枚举实例 + * @param code 枚举的 code + * @return 对应的枚举实例,如果找不到则返回 null + */ + public static QualityAuditManagementFileTypeEnum getByCode(Integer code) { + for (QualityAuditManagementFileTypeEnum type : QualityAuditManagementFileTypeEnum.values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java index bbb2daf..93719cb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityInternalAuditManagementServiceImpl.java @@ -16,6 +16,7 @@ import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.quality.QualityAuditManagementStageOptTypeEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityDictTypeEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.enums.resource.LabCodeDictEnum; @@ -27,7 +28,6 @@ import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; import com.casic.missiles.model.quality.BizQualityInternalPlanUser; import com.casic.missiles.model.quality.base.BaseAuditManagementRelFile; -import com.casic.missiles.model.quality.base.QualityAuditManagementFileTypeEnum; import com.casic.missiles.service.quality.IBizQualityInternalAuditFileService; import com.casic.missiles.service.quality.IBizQualityInternalAuditManagementService; import com.casic.missiles.utils.QualityNoUtil; @@ -256,7 +256,7 @@ auditFileService.save(auditFile); //内审当前阶段更新 20240219 - updateCurrentStage(management.getId(), target.getManagementFileType()); + // updateCurrentStage(management.getId(), target.getManagementFileType()); } @Override @@ -282,7 +282,7 @@ } @Override - public void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum) { + public void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(BizQualityInternalAuditManagement::getCurrentStage, typeEnum.getCode()); updateWrapper.eq(BizQualityInternalAuditManagement::getId, id); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java index 74d9747..74d975a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityNonReviewFormServiceImpl.java @@ -97,7 +97,7 @@ entity.setCreatorName(user.getName()); //生成文件编码 - saveEntity(entity, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + saveEntity(entity, entity.getGroupNo(),QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); entity.setApprovalStatus(ApprovalStatusEnum.DRAFT); super.save(entity); @@ -122,7 +122,7 @@ @Override public boolean updateById(BizQualityNonReviewForm entity) { BizQualityNonReviewForm old = getById(entity.getId()); - updateEntity(entity, old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); + updateEntity(entity, entity.getGroupNo(), old, QualityTableEnum.NON_REVIEW_FORM, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); entity.setUpdateTime(DateUtil.now()); super.updateById(entity); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java index 7c3c4c2..de029bb 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/quality/BizQualityWorkRegistrationServiceImpl.java @@ -25,10 +25,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.mapper.quality.BizQualityWorkRegistrationMapper; import com.casic.missiles.model.exception.ServiceException; -import com.casic.missiles.model.quality.BizQualityInternalAuditPlan; -import com.casic.missiles.model.quality.BizQualityRegistrationScheduleUser; -import com.casic.missiles.model.quality.BizQualityWorkRegistration; -import com.casic.missiles.model.quality.BizQualityWorkRegistrationSchedule; +import com.casic.missiles.model.quality.*; import com.casic.missiles.service.Impl.GeneralApprovalServiceImpl; import com.casic.missiles.service.listeners.register.PrintFileRegister; import com.casic.missiles.service.quality.*; @@ -45,10 +42,7 @@ import java.io.File; import java.io.Serializable; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -76,19 +70,20 @@ private final IBizQualityWorkRegistrationScheduleService scheduleService; private final IBizQualityInternalAuditPlanService internalAuditPlanService; private final IBizQualityRegistrationScheduleUserService scheduleUserService; - + private final IBizQualityInternalAuditFileService auditFileService; private final PrintFileRegister printFileRegister; @Value("${casic.file.dir}") private String localFileDir; - public BizQualityWorkRegistrationServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, @Lazy IBizQualityInternalAuditManagementService internalAuditManagementService, IBizQualityWorkRegistrationScheduleService scheduleService, @Lazy IBizQualityInternalAuditPlanService internalAuditPlanService, IBizQualityRegistrationScheduleUserService scheduleUserService, PrintFileRegister printFileRegister) { + public BizQualityWorkRegistrationServiceImpl(AbstractPermissionContext permissionContext, AbstractDictService dictService, @Lazy IBizQualityInternalAuditManagementService internalAuditManagementService, IBizQualityWorkRegistrationScheduleService scheduleService, @Lazy IBizQualityInternalAuditPlanService internalAuditPlanService, @Lazy IBizQualityRegistrationScheduleUserService scheduleUserService, IBizQualityInternalAuditFileService auditFileService, PrintFileRegister printFileRegister) { this.permissionContext = permissionContext; this.dictService = dictService; this.internalAuditManagementService = internalAuditManagementService; this.scheduleService = scheduleService; this.internalAuditPlanService = internalAuditPlanService; this.scheduleUserService = scheduleUserService; + this.auditFileService = auditFileService; this.printFileRegister = printFileRegister; } @@ -128,8 +123,10 @@ entity.setLogTime(new Date()); entity.setCreatorName(user.getName()); //文件名称校验 - if (count(new LambdaQueryWrapper().eq(BizQualityWorkRegistration::getFileName, entity.getFileName())) > 0) { - throw new ServiceException(500, "该工作审核登记表已存在"); + List list = list(new LambdaQueryWrapper().eq(BizQualityWorkRegistration::getFileName, entity.getFileName())); + if (CollectionUtil.isNotEmpty(list)) { + BizQualityWorkRegistration registration = list.get(0); + throw new ServiceException(500, "该工作审核登记表已由" + registration.getCreatorName() + "创建"); } saveEntity(entity, QualityTableEnum.WORK_REGISTRATION, (tableEnum, queryCode) -> this.baseMapper.selectMaxNo(tableEnum.getCode(), tableEnum.getColumn(), queryCode)); @@ -294,7 +291,7 @@ LambdaQueryWrapper newScheduleQuery = new LambdaQueryWrapper<>(); newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getWorkRegistrationId, regId); newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getStageType, stageEnum.getCode()); - scheduleQuery.eq(BizQualityWorkRegistrationSchedule::getIsCompleted, 1); + newScheduleQuery.eq(BizQualityWorkRegistrationSchedule::getIsCompleted, 1); if (scheduleService.count(newScheduleQuery) > 0) { throw new ServiceException(500, "该项工作记录已完成"); } @@ -317,9 +314,35 @@ checkFileCodeExists(baseMapper, entity.getFileCode(), entity.getId()); checkYearNo(baseMapper, entity.getYearNo(), entity.getId(), QualityYearNoCheckEnum.WorkRegistration); entity.setUpdateTime(DateUtil.now()); + //查询最大的已完成记录更新至当前阶段 + if (CollectionUtil.isNotEmpty(entity.getScheduleList())) { + List scheduleList = entity.getScheduleList(); + try { + BizQualityWorkRegistrationSchedule max = scheduleList.stream().filter(schedule -> schedule.getIsCompleted() == 1L).max(Comparator.comparing(BizQualityWorkRegistrationSchedule::getStageType)).orElse(null); + if (max != null) { + QualityCurrentStageEnum fileType = QualityCurrentStageEnum.getByCode(max.getStageType() + 1); + //查询关联年份内审工作 并更新当前阶段 + LambdaQueryWrapper fileQuery = new LambdaQueryWrapper<>(); + fileQuery.eq(BizQualityInternalAuditFile::getTargetId, entity.getId()); + List internalAuditFiles = auditFileService.list(fileQuery); + if (CollectionUtil.isNotEmpty(internalAuditFiles)) { + BizQualityInternalAuditFile auditFile = internalAuditFiles.get(0); + if (fileType != null) { + internalAuditManagementService.updateCurrentStage(auditFile.getManagementId(), fileType); + } else { + //记录归档 + internalAuditManagementService.updateCurrentStage(auditFile.getManagementId(), QualityCurrentStageEnum.RECORD_ARCHIVING); + } + } + } + } catch (Exception e) { + log.error("BizQualityWorkRegistrationSchedule max error! id:{}", entity.getId()); + } + } super.updateById(entity); internalAuditManagementService.updateAuditFileByBaseAuditManagement(entity); scheduleService.saveBizQualityWorkRegistrationSchedules(entity); + return true; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java index f4058dc..f1b05d0 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/IBizQualityInternalAuditManagementService.java @@ -8,6 +8,7 @@ import com.casic.missiles.core.application.context.factory.PermissionContextFactory; import com.casic.missiles.dto.quality.DictDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.quality.QualityCurrentStageEnum; import com.casic.missiles.enums.quality.QualityYearNoCheckEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.quality.BizQualityInternalAuditManagement; @@ -84,7 +85,7 @@ * @param id 主键 * @param typeEnum 当前关联类型 */ - void updateCurrentStage(Long id, QualityAuditManagementFileTypeEnum typeEnum); + void updateCurrentStage(Long id, QualityCurrentStageEnum typeEnum); void exportZip(List managements, HttpServletResponse response); /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/base/IBaseFileService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/base/IBaseFileService.java index f4cf660..d5341b3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/quality/base/IBaseFileService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/quality/base/IBaseFileService.java @@ -85,10 +85,14 @@ * @param func 编码执行方法 */ default void saveEntity(T entity, QualityTableEnum tableEnum, BiFunction func) { + saveEntity(entity, null, tableEnum, func); + } + + default void saveEntity(T entity, String groupNo, QualityTableEnum tableEnum, BiFunction func) { entity.setYearNo(QualityNoUtil.convertToYearNo(entity.getBizLabCode(), entity.getYearTime(), entity.getYearNum())); String labCode = entity.getBizLabCode(); //编码生成根据年份选择进行生成 - String newCode = QualityNoUtil.genMaxNo(entity.getYearTime(), labCode, null, tableEnum, func); + String newCode = QualityNoUtil.genMaxNo(entity.getYearTime(), labCode, groupNo, tableEnum, func); entity.setSysCode(newCode); entity.setYearNo(QualityNoUtil.convertToYearNo(entity.getBizLabCode(), entity.getYearTime(), entity.getYearNum())); if (StrUtil.isEmpty(entity.getFileCode())) { @@ -105,11 +109,15 @@ * @param func 编码执行方法 */ default void updateEntity(T entity, T oldEntity, QualityTableEnum tableEnum, BiFunction func) { + updateEntity(entity, null, oldEntity, tableEnum, func); + } + + default void updateEntity(T entity, String groupNo, T oldEntity, QualityTableEnum tableEnum, BiFunction func) { entity.setYearNo(QualityNoUtil.convertToYearNo(entity.getBizLabCode(), entity.getYearTime(), entity.getYearNum())); //重新生成文件编号 String labCode = entity.getBizLabCode(); if (!labCode.equals(oldEntity.getBizLabCode())) { - String newCode = QualityNoUtil.genMaxNo(entity.getYearTime(), labCode, null, tableEnum, func); + String newCode = QualityNoUtil.genMaxNo(entity.getYearTime(), labCode, groupNo, tableEnum, func); entity.setSysCode(newCode); } }