diff --git a/docs/sql/add_capability_assessment_to_org_personnel.sql b/docs/sql/add_capability_assessment_to_org_personnel.sql new file mode 100644 index 00000000..4d3d5f9d --- /dev/null +++ b/docs/sql/add_capability_assessment_to_org_personnel.sql @@ -0,0 +1,3 @@ +-- org_personnel 表新增「能力认定」字段(JSON array 字符串) +ALTER TABLE `org_personnel` + ADD COLUMN `capability_assessment` varchar(512) DEFAULT NULL COMMENT '能力认定JSON array 字符串' AFTER `proof_material_url`; diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelViewEnricher.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelViewEnricher.java index 27438ace..61b8c06a 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelViewEnricher.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelViewEnricher.java @@ -9,7 +9,7 @@ import org.qinan.safetyeval.domain.major.model.BasicDisciplineMajorE; import org.qinan.safetyeval.domain.query.OrgPersonnelCertQuery; import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.constant.basic.IndustryEnum; -import org.qinan.safetyeval.domain.constant.ProfessionalCapabilityEnum; +import org.qinan.safetyeval.domain.constant.basic.ProfessionalCapabilityEnum; import org.qinan.safetyeval.domain.standards.gateway.IndustryProfessionalStandardsGateway; import org.qinan.safetyeval.domain.standards.model.IndustryProfessionalStandardsE; import org.springframework.beans.factory.annotation.Autowired; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCO.java index fceba187..3f5ec906 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCO.java @@ -5,6 +5,7 @@ import java.time.LocalDate; import java.util.List; import lombok.Data; +import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO; import org.qinan.safetyeval.domain.entity.TitleCodeCo; /** @@ -114,6 +115,9 @@ public class OrgPersonnelCO { @ApiModelProperty(value = "证明材料附件地址") private String proofMaterialUrl; + @ApiModelProperty(value = "能力认定") + private List capabilityAssessment; + @ApiModelProperty(value = "原始人像地址(人脸比对基准图)") private String originFaceUrl; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelAddCmd.java index 46090a6b..2c2be9b5 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelAddCmd.java @@ -6,6 +6,7 @@ import java.util.List; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import lombok.Data; +import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO; import org.qinan.safetyeval.domain.entity.TitleCodeCo; /** @@ -127,6 +128,9 @@ public class OrgPersonnelAddCmd { @ApiModelProperty(value = "申报专业能力证明材料地址") private String proofMaterialUrl; + @ApiModelProperty(value = "能力认定") + private List capabilityAssessment; + @ApiModelProperty(value = "是否技术负责人") private Boolean technicalDirectorFlag; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelModifyCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelModifyCmd.java index 7b985bf8..8e6bd6df 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelModifyCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelModifyCmd.java @@ -6,6 +6,7 @@ import java.util.List; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import lombok.Data; +import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO; import org.qinan.safetyeval.domain.entity.TitleCodeCo; /** @@ -130,6 +131,9 @@ public class OrgPersonnelModifyCmd { @ApiModelProperty(value = "申报专业能力证明材料地址") private String proofMaterialUrl; + @ApiModelProperty(value = "能力认定") + private List capabilityAssessment; + @ApiModelProperty(value = "是否技术负责人") private Boolean technicalDirectorFlag; diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProfessionalCapabilityEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/ProfessionalCapabilityEnum.java similarity index 89% rename from safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProfessionalCapabilityEnum.java rename to safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/ProfessionalCapabilityEnum.java index ee48ae8c..2d7a42ef 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProfessionalCapabilityEnum.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/ProfessionalCapabilityEnum.java @@ -1,8 +1,13 @@ -package org.qinan.safetyeval.domain.constant; +package org.qinan.safetyeval.domain.constant.basic; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * 专业能力 */ +@Getter +@RequiredArgsConstructor public enum ProfessionalCapabilityEnum { SAFETY("SAFETY", "安全"), @@ -39,18 +44,6 @@ public enum ProfessionalCapabilityEnum { ",ANTICORROSION:防腐,CHEMICAL_PROCESS:化工工艺,CHEMICAL_MECHANICAL:化工机械,AUTOMATION:自动化,EXPLOSIVES:火炸药" + ",EXPLOSION_TECHNOLOGY:爆炸技术,METALLURGY:冶金,NONFERROUS_METAL:有色金属,EQUIPMENT:设备,INSTRUMENT:仪表"; - ProfessionalCapabilityEnum(String code, String value) { - this.code = code; - this.value = value; - } - - public String getCode() { - return code; - } - - public String getValue() { - return value; - } public static ProfessionalCapabilityEnum ofCode(String code) { if (code == null) { diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/CapabilityAssessmentDTO.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/CapabilityAssessmentDTO.java new file mode 100644 index 00000000..e2b6c157 --- /dev/null +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/CapabilityAssessmentDTO.java @@ -0,0 +1,29 @@ +package org.qinan.safetyeval.domain.entity; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 能力认定信息(专业能力编码 + 专业能力来源编码) + * + * @author safety-eval + */ +@Data +public class CapabilityAssessmentDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 专业能力编码,取值见 + * {@link org.qinan.safetyeval.domain.constant.basic.ProfessionalCapabilityEnum} + * {@link org.qinan.safetyeval.domain.constant.basic.ProfessionalCapabilitySourceEnum} + */ + private String professionalCapabilityCode; + + /** + * 专业能力来源编码,取值见 + * {@link org.qinan.safetyeval.domain.constant.basic.ProfessionalCapabilitySourceEnum} + */ + private String professionalCapabilitySourceCode; +} diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgPersonnelEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgPersonnelEntity.java index ba4f59d0..4ba20e3a 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgPersonnelEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgPersonnelEntity.java @@ -112,6 +112,9 @@ public class OrgPersonnelEntity { /** 申报专业能力证明材料(多个逗号分隔) */ private String proofMaterialUrl; + /** 能力认定(JSON数组字符串持久化,DO层为String) */ + private List capabilityAssessment; + /** 原始人像地址(人脸比对基准图) */ private String originFaceUrl; diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/OrgPersonnelDoConvertor.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/OrgPersonnelDoConvertor.java index bb08278c..593cb4ce 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/OrgPersonnelDoConvertor.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/OrgPersonnelDoConvertor.java @@ -34,6 +34,7 @@ public interface OrgPersonnelDoConvertor { * @return */ @Mapping(target = "titleCodeArr", source = "titleCodeArr", qualifiedByName = "jsonToTitleCodeList") + @Mapping(target = "capabilityAssessment", source = "capabilityAssessment", qualifiedByName = "jsonToCapabilityAssessmentList") OrgPersonnelEntity converDoToEe(OrgPersonnelDO orgPersonnelDO); /** diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/OrgPersonnelDO.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/OrgPersonnelDO.java index 0754540a..67e8ff32 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/OrgPersonnelDO.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/OrgPersonnelDO.java @@ -51,6 +51,7 @@ public class OrgPersonnelDO { private String abilityDeclaration; private String workExperience; private String proofMaterialUrl; + private String capabilityAssessment; @TableField(value = "origin_face_url", updateStrategy = FieldStrategy.NOT_NULL) private String originFaceUrl; diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java index 87ec1bc7..be2c5dc3 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java @@ -12,6 +12,7 @@ import org.qinan.safetyeval.client.co.QualFilingComplianceCheckResultCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.constant.*; import org.qinan.safetyeval.domain.constant.basic.IndustryEnum; +import org.qinan.safetyeval.domain.constant.basic.ProfessionalCapabilityEnum; import org.qinan.safetyeval.domain.entity.TitleCodeCo; import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;