diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingChangeCmdConvertor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingChangeCmdConvertor.java index bd32bc5..5a1bfa5 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingChangeCmdConvertor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingChangeCmdConvertor.java @@ -27,7 +27,7 @@ public interface QualFilingChangeCmdConvertor { * 变更实体转备案实体 * id 由调用方手动设置(使用 changeFilingId) */ - @Mapping(target = "id", ignore = true) + @Mapping(target = "id", source = "filingId") @Mapping(target = "originFilingId", ignore = true) @Mapping(target = "rejectReason", ignore = true) @Mapping(target = "submitTime", ignore = true) diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java index cac3346..13ade60 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java @@ -9,6 +9,7 @@ import org.qinan.safetyeval.client.co.*; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.change.gateway.*; import org.qinan.safetyeval.domain.change.model.*; +import org.qinan.safetyeval.domain.constant.QualFilingComplianceCheckEnum; import org.qinan.safetyeval.domain.constant.QualFilingFormStepEnum; import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum; import org.qinan.safetyeval.domain.constant.QualFilingStatusEnum; @@ -238,10 +239,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { return SingleResponse.success(); } - @Override - public SingleResponse> complianceCheck(Long id) { - return SingleResponse.success(qualFilingOrchestrator.complianceCheckChange(id)); - } + @Override + public SingleResponse> complianceCheck(Long id) { + return SingleResponse.success(qualFilingOrchestrator.complianceCheckChange(id)); + } @Override @Transactional(rollbackFor = Exception.class) @@ -301,6 +302,17 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { Long id = qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity , equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); + // 合规性校验:只要有一项未通过则抛出异常 + List complianceResults = qualFilingOrchestrator.complianceCheckChange(id); + List failedItems = complianceResults.stream() + .filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus())) + .map(QualFilingChangeComplianceCheckResultCO::getTitle) + .collect(Collectors.toList()); + if (!failedItems.isEmpty()) { + throw new BizException(ErrorCode.QUAL_FILING_COMPLIANCE_CHECK_FAIL, + "合规性校验未通过:" + String.join("、", failedItems)); + } + QualFilingChangeCO co = new QualFilingChangeCO(); co.setId(id); return SingleResponse.success(co); @@ -344,7 +356,7 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { // 转换变更基本信息 → 备案实体 QualFilingEntity entity = qualFilingChangeCmdConvertor.convertChangeEToEntity(changeEntity); - entity.setId(changeEntity.getChangeFilingId()); + entity.setFilingStatusCode(QualFilingStatusEnum.FILED.getCode()); // 查询并转换承诺书 QualFilingCommitmentChangeE commitmentChangeE = qualFilingCommitmentChangeGateway.getByFilingId(changeFilingId); diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingMaterialExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingMaterialExecutor.java index 092579d..8589a3f 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingMaterialExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingMaterialExecutor.java @@ -38,6 +38,7 @@ public class QualFilingMaterialExecutor implements QualFilingMaterialApi { entity.setMaterialFormat(cmd.getMaterialFormat()); entity.setAttachmentUrl(cmd.getAttachmentUrl()); entity.setMaterialRemark(cmd.getMaterialRemark()); + entity.setHasSatisfy(cmd.getHasSatisfy()); QualFilingMaterialEntity result = qualFilingMaterialDomainService.add(entity); return SingleResponse.success(toCO(result)); @@ -57,6 +58,7 @@ public class QualFilingMaterialExecutor implements QualFilingMaterialApi { entity.setMaterialFormat(cmd.getMaterialFormat()); entity.setAttachmentUrl(cmd.getAttachmentUrl()); entity.setMaterialRemark(cmd.getMaterialRemark()); + entity.setHasSatisfy(cmd.getHasSatisfy()); QualFilingMaterialEntity result = qualFilingMaterialDomainService.modify(entity); return SingleResponse.success(toCO(result)); @@ -116,6 +118,7 @@ public class QualFilingMaterialExecutor implements QualFilingMaterialApi { co.setAttachmentDesc(entity.getAttachmentDesc()); co.setAttachmentUrl(entity.getAttachmentUrl()); co.setMaterialRemark(entity.getMaterialRemark()); + co.setHasSatisfy(entity.getHasSatisfy()); co.setTenantId(entity.getTenantId()); return co; } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/orchestrator/QualFilingOrchestrator.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/orchestrator/QualFilingOrchestrator.java index 5d42722..eaeb158 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/orchestrator/QualFilingOrchestrator.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/orchestrator/QualFilingOrchestrator.java @@ -726,6 +726,7 @@ public class QualFilingOrchestrator { co.setAttachmentUrl(entity.getAttachmentUrl()); co.setMaterialType(entity.getMaterialType()); co.setMaterialRemark(entity.getMaterialRemark()); + co.setHasSatisfy(entity.getHasSatisfy()); co.setTenantId(entity.getTenantId()); return co; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeAddCmd.java index e68c87a..7f2b921 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeAddCmd.java @@ -75,6 +75,11 @@ public class QualFilingMaterialChangeAddCmd implements Serializable { */ @ApiModelProperty(value = "注释") private String materialRemark; + /** + * 是否符合(1符合2不符合) + */ + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Long hasSatisfy; /** * 环境 */ diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangePageQry.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangePageQry.java index 9e08d3a..701aadd 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangePageQry.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangePageQry.java @@ -69,6 +69,11 @@ public class QualFilingMaterialChangePageQry extends PageQuery { */ @ApiModelProperty(value = "注释") private String materialRemark; + /** + * 是否符合(1符合2不符合) + */ + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Long hasSatisfy; /** * 环境 */ diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeUpdateCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeUpdateCmd.java index 0da8f86..60b0762 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeUpdateCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingMaterialChangeUpdateCmd.java @@ -77,6 +77,11 @@ public class QualFilingMaterialChangeUpdateCmd implements Serializable { */ @ApiModelProperty(value = "注释") private String materialRemark; + /** + * 是否符合(1符合2不符合) + */ + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Long hasSatisfy; /** * 环境 */ diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/response/QualFilingMaterialChangeCo.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/response/QualFilingMaterialChangeCo.java index c3d9f29..306a12f 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/response/QualFilingMaterialChangeCo.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/response/QualFilingMaterialChangeCo.java @@ -71,6 +71,11 @@ public class QualFilingMaterialChangeCo extends ClientObject { */ @ApiModelProperty(value = "注释") private String materialRemark; + /** + * 是否符合(1符合2不符合) + */ + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Long hasSatisfy; /** * 环境 */ diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingMaterialCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingMaterialCO.java index 2908b61..3e4f624 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingMaterialCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingMaterialCO.java @@ -47,6 +47,9 @@ public class QualFilingMaterialCO { @ApiModelProperty(value = "材料备注") private String materialRemark; + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Integer hasSatisfy; + @ApiModelProperty(value = "租户ID") private Long tenantId; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialAddCmd.java index 5e04c97..9c185c3 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialAddCmd.java @@ -40,4 +40,7 @@ public class QualFilingMaterialAddCmd { @ApiModelProperty(value = "附件描述") private String attachmentDesc; + + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Integer hasSatisfy; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialModifyCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialModifyCmd.java index fd6fe64..4d13f45 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialModifyCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/QualFilingMaterialModifyCmd.java @@ -31,4 +31,7 @@ public class QualFilingMaterialModifyCmd { @ApiModelProperty(value = "租户id") private Long tenantId; + + @ApiModelProperty(value = "是否符合(1符合2不符合)") + private Integer hasSatisfy; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/change/model/QualFilingMaterialChangeE.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/change/model/QualFilingMaterialChangeE.java index d04c085..32659a3 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/change/model/QualFilingMaterialChangeE.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/change/model/QualFilingMaterialChangeE.java @@ -64,6 +64,10 @@ public class QualFilingMaterialChangeE extends BaseE { * 注释 */ private String materialRemark; + /** + * 是否符合(1符合2不符合) + */ + private Long hasSatisfy; /** * 环境 */ diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/QualFilingMaterialEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/QualFilingMaterialEntity.java index d93e213..392c9be 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/QualFilingMaterialEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/QualFilingMaterialEntity.java @@ -47,6 +47,9 @@ public class QualFilingMaterialEntity { /** 注释 */ private String materialRemark; + /** 是否符合(1符合2不符合) */ + private Integer hasSatisfy; + /** 租户ID */ private Long tenantId; diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java index be48c00..d1af5c2 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java @@ -74,6 +74,7 @@ public enum ErrorCode { QUAL_FILING_EQUIPMENT_DUPLICATE("02-05-101", "备案装备已存在,请勿重复添加"), QUAL_FILING_CHANGE_NO_DIFF("02-02-101", "备案信息无变更,无需提交"), QUAL_FILING_CHANGE_IN_PROGRESS("02-02-102", "存在进行中的备案变更"), + QUAL_FILING_COMPLIANCE_CHECK_FAIL("02-02-103", "合规性校验未通过"), // ---- 用户 ---- ACCOUNT_NOT_FOUND("04-01-001", "用户不存在"), diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/QualFilingMaterialDO.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/QualFilingMaterialDO.java index 04cb5b6..27a3755 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/QualFilingMaterialDO.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/QualFilingMaterialDO.java @@ -26,6 +26,8 @@ public class QualFilingMaterialDO { private String attachmentDesc; private String attachmentUrl; private String materialRemark; + /** 是否符合(1符合2不符合) */ + private Integer hasSatisfy; // ---- GBS默认字段 ---- private String deleteEnum; diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingMaterialGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingMaterialGatewayImpl.java index af184c2..4cfbd5e 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingMaterialGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingMaterialGatewayImpl.java @@ -110,6 +110,7 @@ public class QualFilingMaterialGatewayImpl implements QualFilingMaterialGateway dataObject.setAttachmentUrl(entity.getAttachmentUrl()); dataObject.setMaterialRemark(entity.getMaterialRemark()); dataObject.setMaterialType(entity.getMaterialType()); + dataObject.setHasSatisfy(entity.getHasSatisfy()); dataObject.setTenantId(entity.getTenantId()); return dataObject; } @@ -131,6 +132,7 @@ public class QualFilingMaterialGatewayImpl implements QualFilingMaterialGateway entity.setAttachmentUrl(dataObject.getAttachmentUrl()); entity.setMaterialRemark(dataObject.getMaterialRemark()); entity.setMaterialType(dataObject.getMaterialType()); + entity.setHasSatisfy(dataObject.getHasSatisfy()); entity.setTenantId(dataObject.getTenantId()); return entity; } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/domainobject/QualFilingMaterialChangeDO.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/domainobject/QualFilingMaterialChangeDO.java index 6395c01..49b7bf5 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/domainobject/QualFilingMaterialChangeDO.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/domainobject/QualFilingMaterialChangeDO.java @@ -62,6 +62,10 @@ public class QualFilingMaterialChangeDO extends BaseDO { * 注释 */ private String materialRemark; + /** + * 是否符合(1符合2不符合) + */ + private Long hasSatisfy; /** * 环境 */ diff --git a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialChangeMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialChangeMapper.xml index 5c67a3e..99d698f 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialChangeMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialChangeMapper.xml @@ -18,6 +18,7 @@ + @@ -45,6 +46,7 @@ attachment_desc, attachment_url, material_remark, + has_satisfy, delete_enum, remarks, create_name, diff --git a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialMapper.xml index e2c74d2..58d3a57 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingMaterialMapper.xml @@ -16,6 +16,7 @@ + @@ -32,7 +33,7 @@ - `id`, `filing_id`, `material_type`, `material_content`, `material_format`, `sort_order`, `required_flag`, `upload_status_code`, `upload_status_name`, `attachment_desc`, `attachment_url`, `material_remark`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `org_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env` + `id`, `filing_id`, `material_type`, `material_content`, `material_format`, `sort_order`, `required_flag`, `upload_status_code`, `upload_status_name`, `attachment_desc`, `attachment_url`, `material_remark`, `has_satisfy`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `org_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env` diff --git a/safety-eval-start/src/main/resources/nacos/config-mybatis.yml b/safety-eval-start/src/main/resources/nacos/config-mybatis.yml index 65061cf..bbe4f81 100644 --- a/safety-eval-start/src/main/resources/nacos/config-mybatis.yml +++ b/safety-eval-start/src/main/resources/nacos/config-mybatis.yml @@ -5,7 +5,8 @@ banner: false db-config: id-type: assign_id - logic-delete-value: 1 - logic-not-delete-value: 0 + logic-delete-field: deleteEnum + logic-delete-value: "true" + logic-not-delete-value: "false" configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl