Merge remote-tracking branch 'origin/dev-tmp1' into dev-tmp1
commit
c0183c42b2
|
|
@ -0,0 +1,5 @@
|
|||
-- org_personnel 表新增「能力认定」字段(JSON array 字符串)
|
||||
ALTER TABLE `org_personnel`
|
||||
ADD COLUMN `capability_assessment` varchar(512) DEFAULT NULL COMMENT '能力认定JSON array 字符串' AFTER `proof_material_url`;
|
||||
|
||||
ALTER TABLE org_personnel ADD COLUMN evaluator_flag tinyint DEFAULT NULL COMMENT '是否评价师 1是 0否';
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
-- org_personnel 表新增「人员岗位类型」字段
|
||||
ALTER TABLE `org_personnel`
|
||||
ADD COLUMN `personnel_position_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '人员岗位类型: TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人' AFTER `process_control_leader_flag`;
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
-- eval_process_control 新增机构负责人签字相关字段
|
||||
ALTER TABLE `eval_process_control`
|
||||
ADD COLUMN `org_head_signature_task_status` varchar(64) DEFAULT NULL COMMENT '机构负责人签字任务状态 dispatched 下发,non_dispatched 未下发 , completed 已完成',
|
||||
ADD COLUMN `org_head_personnel_id` bigint DEFAULT NULL COMMENT '机构负责人',
|
||||
ADD COLUMN `org_head_signature_url` varchar(512) DEFAULT NULL COMMENT '机构负责人签字';
|
||||
|
|
@ -12,7 +12,7 @@ import org.qinan.safetyeval.domain.constant.ChongqingDistrictEnum;
|
|||
import org.qinan.safetyeval.domain.constant.CustomerStatusEnum;
|
||||
import org.qinan.safetyeval.domain.constant.EnterpriseScaleEnum;
|
||||
import org.qinan.safetyeval.domain.constant.EnterpriseStatusEnum;
|
||||
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.basic.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalCustomerEntity;
|
||||
import org.qinan.safetyeval.domain.query.EvalCustomerQuery;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import org.qinan.safetyeval.client.dto.institution.EvalProjectPageQuery;
|
|||
import org.qinan.safetyeval.client.dto.institution.EvalProjectProgressPageQuery;
|
||||
import org.qinan.safetyeval.domain.constant.ChongqingDistrictEnum;
|
||||
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
|
||||
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.basic.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ public interface OrgPersonnelConvertor {
|
|||
@Mapping(target = "changeCount", ignore = true)
|
||||
@Mapping(target = "resignApplyId", ignore = true)
|
||||
@Mapping(target = "resignAuditStatus", ignore = true)
|
||||
@Mapping(target = "registeredSafetyEngineerCert", ignore = true)
|
||||
@Mapping(target = "evaluatorCert", ignore = true)
|
||||
OrgPersonnelCO toCO(OrgPersonnelEntity entity);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,11 +13,14 @@ import org.qinan.safetyeval.app.support.OrgPersonnelChangeRecorder;
|
|||
import org.qinan.safetyeval.app.support.OrgPersonnelExcelImporter;
|
||||
import org.qinan.safetyeval.app.support.OrgPersonnelViewEnricher;
|
||||
import org.qinan.safetyeval.client.api.OrgPersonnelApi;
|
||||
import org.qinan.safetyeval.client.co.OrgPersonnelCertCO;
|
||||
import org.qinan.safetyeval.client.co.OrgPersonnelCO;
|
||||
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
|
||||
import org.qinan.safetyeval.client.co.PersonnelProfessionalCapabilityCO;
|
||||
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
|
||||
import org.qinan.safetyeval.client.dto.*;
|
||||
import org.qinan.safetyeval.domain.constant.CertTypeCodeEnum;
|
||||
import org.qinan.safetyeval.domain.entity.OrgPersonnelCertEntity;
|
||||
import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity;
|
||||
import org.qinan.safetyeval.domain.entity.OrgPositionEntity;
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
|
|
@ -26,11 +29,13 @@ import org.qinan.safetyeval.domain.gateway.FaceCompareGateway;
|
|||
import org.qinan.safetyeval.domain.gateway.OrgResignApplyGateway;
|
||||
import org.qinan.safetyeval.domain.query.OrgPersonnelQuery;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
import org.qinan.safetyeval.domain.service.OrgPersonnelCertDomainService;
|
||||
import org.qinan.safetyeval.domain.service.OrgPersonnelDomainService;
|
||||
import org.qinan.safetyeval.domain.service.OrgPositionDomainService;
|
||||
import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
|
||||
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
||||
import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient;
|
||||
import org.qinan.safetyeval.infrastructure.convertor.OrgPersonnelCertConvertor;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
|
||||
|
|
@ -73,6 +78,13 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
@Autowired
|
||||
private OrgPersonnelConvertor orgPersonnelConvertor;
|
||||
|
||||
@Lazy
|
||||
@Autowired(required = false)
|
||||
private OrgPersonnelCertDomainService orgPersonnelCertDomainService;
|
||||
|
||||
@Autowired
|
||||
private OrgPersonnelCertConvertor orgPersonnelCertConvertor;
|
||||
|
||||
@Autowired(required = false)
|
||||
private OrgResignApplyGateway orgResignApplyGateway;
|
||||
|
||||
|
|
@ -120,6 +132,9 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
}
|
||||
OrgPersonnelCO co = orgPersonnelConvertor.toCO(result);
|
||||
enrich(co);
|
||||
// 保存证书信息
|
||||
savePersonnelCerts(cmd, result.getId());
|
||||
fillCerts(co, result.getId());
|
||||
UserAddCmd userAddCmd = new UserAddCmd();
|
||||
userAddCmd.setId(result.getId());
|
||||
userAddCmd.setAccount(result.getAccount());
|
||||
|
|
@ -148,6 +163,7 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
OrgPersonnelEntity entity = orgPersonnelDomainService.get(id);
|
||||
OrgPersonnelCO co = orgPersonnelConvertor.toCO(entity);
|
||||
enrich(co);
|
||||
fillCerts(co, id);
|
||||
return SingleResponse.success(co);
|
||||
}
|
||||
|
||||
|
|
@ -326,6 +342,48 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存人员内嵌的注安证书和评价师证书
|
||||
*/
|
||||
private void savePersonnelCerts(OrgPersonnelAddCmd cmd, Long personnelId) {
|
||||
if (orgPersonnelCertDomainService == null) {
|
||||
return;
|
||||
}
|
||||
if (cmd.getRegisteredSafetyEngineerCert() != null) {
|
||||
OrgPersonnelCertEntity certEntity = orgPersonnelCertConvertor.addCmdToEntity(cmd.getRegisteredSafetyEngineerCert());
|
||||
certEntity.setPersonnelId(personnelId);
|
||||
certEntity.setCertTypeCode(CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode());
|
||||
orgPersonnelCertDomainService.add(certEntity);
|
||||
}
|
||||
if (cmd.getEvaluatorCert() != null) {
|
||||
OrgPersonnelCertEntity certEntity = orgPersonnelCertConvertor.addCmdToEntity(cmd.getEvaluatorCert());
|
||||
certEntity.setPersonnelId(personnelId);
|
||||
certEntity.setCertTypeCode(CertTypeCodeEnum.EVALUATOR.getCode());
|
||||
orgPersonnelCertDomainService.add(certEntity);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据人员ID查询证书并填充到CO中
|
||||
*/
|
||||
private void fillCerts(OrgPersonnelCO co, Long personnelId) {
|
||||
if (orgPersonnelCertDomainService == null || personnelId == null) {
|
||||
return;
|
||||
}
|
||||
List<OrgPersonnelCertEntity> certs = orgPersonnelCertDomainService.listByPersonnelId(personnelId);
|
||||
if (certs == null) {
|
||||
return;
|
||||
}
|
||||
for (OrgPersonnelCertEntity cert : certs) {
|
||||
OrgPersonnelCertCO certCO = orgPersonnelCertConvertor.entityToCO(cert);
|
||||
if (CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode().equals(cert.getCertTypeCode())) {
|
||||
co.setRegisteredSafetyEngineerCert(certCO);
|
||||
} else if (CertTypeCodeEnum.EVALUATOR.getCode().equals(cert.getCertTypeCode())) {
|
||||
co.setEvaluatorCert(certCO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<OrgPersonnelCO> updateOriginFace(OrgPersonnelUpdateOriginFaceCmd cmd) {
|
||||
OrgPersonnelEntity existing = orgPersonnelDomainService.get(cmd.getId());
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import org.qinan.safetyeval.client.dto.institution.EvalCustomerModifyCmd;
|
|||
import org.qinan.safetyeval.client.dto.institution.EvalCustomerPageQuery;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalProjectPageQuery;
|
||||
import org.qinan.safetyeval.domain.constant.*;
|
||||
import org.qinan.safetyeval.domain.constant.basic.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalCustomerEntity;
|
||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||
import org.qinan.safetyeval.domain.query.EvalCustomerQuery;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import org.qinan.safetyeval.client.co.institution.dashboard.InstitutionDashboard
|
|||
import org.qinan.safetyeval.client.co.institution.dashboard.InstitutionDashboardProjectNodeStatsCO;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
|
||||
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.basic.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalCustomerEntity;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||
import org.qinan.safetyeval.domain.gateway.EvalCustomerGateway;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import org.qinan.safetyeval.client.co.regulator.cockpit.CockpitRegionDistributio
|
|||
import org.qinan.safetyeval.client.co.regulator.cockpit.CockpitReviewSummaryCO;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
|
||||
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.basic.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingStatusEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||
import org.qinan.safetyeval.domain.entity.InspNoticeEntity;
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ import org.qinan.safetyeval.client.dto.SingleResponse;
|
|||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectSurveyPageQuery;
|
||||
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
|
||||
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.ProjectProcessWaringStatusEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ import org.qinan.safetyeval.domain.major.gateway.BasicDisciplineMajorGateway;
|
|||
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.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.ProfessionalCapabilityEnum;
|
||||
import org.qinan.safetyeval.domain.constant.basic.IndustryEnum;
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
@ -102,6 +103,9 @@ public class OrgPersonnelCO {
|
|||
@ApiModelProperty(value = "是否注册安全工程师(1是2否)")
|
||||
private Integer registerEngineerFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否评价师(1是0否)")
|
||||
private Integer evaluatorFlag;
|
||||
|
||||
@ApiModelProperty(value = "发表著作")
|
||||
private String publications;
|
||||
|
||||
|
|
@ -114,6 +118,9 @@ public class OrgPersonnelCO {
|
|||
@ApiModelProperty(value = "证明材料附件地址")
|
||||
private String proofMaterialUrl;
|
||||
|
||||
@ApiModelProperty(value = "能力认定")
|
||||
private List<CapabilityAssessmentDTO> capabilityAssessment;
|
||||
|
||||
@ApiModelProperty(value = "原始人像地址(人脸比对基准图)")
|
||||
private String originFaceUrl;
|
||||
|
||||
|
|
@ -123,6 +130,9 @@ public class OrgPersonnelCO {
|
|||
@ApiModelProperty(value = "是否过程控制负责人")
|
||||
private Boolean processControlLeaderFlag;
|
||||
|
||||
@ApiModelProperty(value = "人员岗位类型: TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人")
|
||||
private String personnelPositionType;
|
||||
|
||||
@ApiModelProperty(value = "部门名称(列表展示,非持久化)")
|
||||
private String deptName;
|
||||
|
||||
|
|
@ -144,6 +154,12 @@ public class OrgPersonnelCO {
|
|||
@ApiModelProperty(value = "离职申请审核状态(列表展示,非持久化)")
|
||||
private Integer resignAuditStatus;
|
||||
|
||||
@ApiModelProperty(value = "注安证书信息")
|
||||
private OrgPersonnelCertCO registeredSafetyEngineerCert;
|
||||
|
||||
@ApiModelProperty(value = "评价师证书信息")
|
||||
private OrgPersonnelCertCO evaluatorCert;
|
||||
|
||||
@ApiModelProperty(value = "租户ID")
|
||||
private Long tenantId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ import java.util.List;
|
|||
import javax.validation.constraints.Pattern;
|
||||
import javax.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import org.qinan.safetyeval.client.co.OrgPersonnelCertCO;
|
||||
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
|
||||
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
|
||||
|
||||
/**
|
||||
|
|
@ -111,6 +113,9 @@ public class OrgPersonnelAddCmd {
|
|||
@ApiModelProperty(value = "是否注册安全工程师(1是2否)")
|
||||
private Integer registerEngineerFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否评价师(1是0否)")
|
||||
private Integer evaluatorFlag;
|
||||
|
||||
@Size(max = 1000, message = "出版学术专著等长度不能超过1000个字符")
|
||||
@ApiModelProperty(value = "出版学术专著专利获奖论文等")
|
||||
private String publications;
|
||||
|
|
@ -127,12 +132,24 @@ public class OrgPersonnelAddCmd {
|
|||
@ApiModelProperty(value = "申报专业能力证明材料地址")
|
||||
private String proofMaterialUrl;
|
||||
|
||||
@ApiModelProperty(value = "能力认定")
|
||||
private List<CapabilityAssessmentDTO> capabilityAssessment;
|
||||
|
||||
@ApiModelProperty(value = "注安证书信息")
|
||||
private OrgPersonnelCertAddCmd registeredSafetyEngineerCert;
|
||||
|
||||
@ApiModelProperty(value = "评价师证书信息")
|
||||
private OrgPersonnelCertAddCmd evaluatorCert;
|
||||
|
||||
@ApiModelProperty(value = "是否技术负责人")
|
||||
private Boolean technicalDirectorFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否过程控制负责人")
|
||||
private Boolean processControlLeaderFlag;
|
||||
|
||||
@ApiModelProperty(value = "人员岗位类型: TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人")
|
||||
private String personnelPositionType;
|
||||
|
||||
@ApiModelProperty(value = "部门id")
|
||||
private Long deptId;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
@ -114,6 +115,9 @@ public class OrgPersonnelModifyCmd {
|
|||
@ApiModelProperty(value = "是否注册安全工程师(1是2否)")
|
||||
private Integer registerEngineerFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否评价师(1是0否)")
|
||||
private Integer evaluatorFlag;
|
||||
|
||||
@Size(max = 1000, message = "出版学术专著等长度不能超过1000个字符")
|
||||
@ApiModelProperty(value = "出版学术专著专利获奖论文等")
|
||||
private String publications;
|
||||
|
|
@ -130,12 +134,18 @@ public class OrgPersonnelModifyCmd {
|
|||
@ApiModelProperty(value = "申报专业能力证明材料地址")
|
||||
private String proofMaterialUrl;
|
||||
|
||||
@ApiModelProperty(value = "能力认定")
|
||||
private List<CapabilityAssessmentDTO> capabilityAssessment;
|
||||
|
||||
@ApiModelProperty(value = "是否技术负责人")
|
||||
private Boolean technicalDirectorFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否过程控制负责人")
|
||||
private Boolean processControlLeaderFlag;
|
||||
|
||||
@ApiModelProperty(value = "人员岗位类型: TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人")
|
||||
private String personnelPositionType;
|
||||
|
||||
@ApiModelProperty(value = "部门id")
|
||||
private Long deptId;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package org.qinan.safetyeval.domain.constant;
|
||||
package org.qinan.safetyeval.domain.constant.basic;
|
||||
|
||||
/**
|
||||
* 行业类型枚举
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package org.qinan.safetyeval.domain.constant.basic;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 人员岗位类型
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum PersonnelPositionTypeEnum {
|
||||
|
||||
TECHNICAL_LEADER("TECHNICAL_LEADER", "技术负责人"),
|
||||
PROCESS_CONTROL_LEADER("PROCESS_CONTROL_LEADER", "过程控制负责人"),
|
||||
;
|
||||
|
||||
private final String value;
|
||||
private final String label;
|
||||
|
||||
public static final String REMARKS = "人员岗位类型: TECHNICAL_LEADER=>技术负责人;" +
|
||||
"PROCESS_CONTROL_LEADER=>过程控制负责人";
|
||||
}
|
||||
|
|
@ -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) {
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package org.qinan.safetyeval.domain.constant.basic;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 专业能力来源
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum ProfessionalCapabilitySourceEnum {
|
||||
|
||||
REGISTERED_SAFETY_ENGINEER("REGISTERED_SAFETY_ENGINEER", "注册安全工程师"),
|
||||
EDUCATION("EDUCATION", "学历"),
|
||||
PROFESSIONAL_TITLE("PROFESSIONAL_TITLE", "职称"),
|
||||
ACADEMIC_ACHIEVEMENT("ACADEMIC_ACHIEVEMENT", "出版学术专著、专利、获奖、发表学术论文等"),
|
||||
;
|
||||
|
||||
private final String value;
|
||||
private final String label;
|
||||
|
||||
public static final String REMARKS = "专业能力来源: REGISTERED_SAFETY_ENGINEER=>注册安全工程师;" +
|
||||
"EDUCATION=>学历;" +
|
||||
"PROFESSIONAL_TITLE=>职称;" +
|
||||
"ACADEMIC_ACHIEVEMENT=>出版学术专著、专利、获奖、发表学术论文等";
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package org.qinan.safetyeval.domain.constant.basic;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 安全类别
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum SafetyCategoryEnum {
|
||||
|
||||
COAL_MINE("COAL_MINE", "煤矿安全"),
|
||||
METAL_NONMETAL_MINE("METAL_NONMETAL_MINE", "金属非金属矿山安全"),
|
||||
CHEMICAL("CHEMICAL", "化工安全"),
|
||||
METAL_SMELTING("METAL_SMELTING", "金属冶炼安全"),
|
||||
CONSTRUCTION("CONSTRUCTION", "建筑施工安全"),
|
||||
ROAD_TRANSPORT("ROAD_TRANSPORT", "道路运输安全"),
|
||||
OTHER("OTHER", "其他安全"),
|
||||
;
|
||||
|
||||
private final String value;
|
||||
private final String label;
|
||||
|
||||
public static final String REMARKS = "注安专业类别: COAL_MINE=>煤矿安全 ;" +
|
||||
"METAL_NONMETAL_MINE=>金属非金属矿山安全;" +
|
||||
"CHEMICAL=>化工安全 ;" +
|
||||
"METAL_SMELTING=>金属冶炼安全;" +
|
||||
"CONSTRUCTION=>建筑施工安全 ;" +
|
||||
"ROAD_TRANSPORT=>道路运输安全;" +
|
||||
"OTHER=>其他安全" ;
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package org.qinan.safetyeval.domain.constant.basic;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 职称能力
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum TitleCapabilityEnum {
|
||||
|
||||
SAFETY_ENGINEERING("P01", "安全工程", "安全"),
|
||||
MECHANICAL_ENGINEERING("P02", "机械工程", "机械、化工机械"),
|
||||
CHEMICAL_MACHINERY("P03", "化工机械", "化工机械"),
|
||||
CHEMICAL_ENGINEERING("P04", "化学工程", "化工工艺"),
|
||||
AUTOMATION("P05", "自动化/测控技术", "仪表自动化"),
|
||||
ELECTRICAL_ENGINEERING("P06", "电气工程", "电气"),
|
||||
MINING_ENGINEERING("P07", "采矿工程", "采矿"),
|
||||
VENTILATION_ENGINEERING("P08", "通风工程", "通风"),
|
||||
GEOLOGICAL_ENGINEERING("P09", "地质工程", "地质"),
|
||||
MINE_CONSTRUCTION_ENGINEERING("P10", "矿建工程", "矿建"),
|
||||
PETROLEUM_ENGINEERING("P11", "石油工程", "油气开发"),
|
||||
OIL_GAS_STORAGE_TRANSPORT("P12", "油气储运工程", "油气储运"),
|
||||
CORROSION_PROTECTION("P13", "腐蚀与防护", "防腐"),
|
||||
METALLURGY_ENGINEERING("P14", "冶金工程", "冶金"),
|
||||
NONFERROUS_METALLURGY("P15", "有色金属冶金", "有色金属"),
|
||||
EXPLOSIVES("P16", "火炸药/爆炸技术", "火炸药"),
|
||||
CIVIL_ENGINEERING("P17", "土木工程", "水工结构"),
|
||||
;
|
||||
|
||||
private final String value;
|
||||
private final String label;
|
||||
private final String capability;
|
||||
|
||||
public static final String REMARKS = "职称能力: P01=>安全工程(安全);" +
|
||||
"P02=>机械工程(机械、化工机械);" +
|
||||
"P03=>化工机械(化工机械);" +
|
||||
"P04=>化学工程(化工工艺);" +
|
||||
"P05=>自动化/测控技术(仪表自动化);" +
|
||||
"P06=>电气工程(电气);" +
|
||||
"P07=>采矿工程(采矿);" +
|
||||
"P08=>通风工程(通风);" +
|
||||
"P09=>地质工程(地质);" +
|
||||
"P10=>矿建工程(矿建);" +
|
||||
"P11=>石油工程(油气开发);" +
|
||||
"P12=>油气储运工程(油气储运);" +
|
||||
"P13=>腐蚀与防护(防腐);" +
|
||||
"P14=>冶金工程(冶金);" +
|
||||
"P15=>有色金属冶金(有色金属);" +
|
||||
"P16=>火炸药/爆炸技术(火炸药);" +
|
||||
"P17=>土木工程(水工结构)";
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -100,6 +100,9 @@ public class OrgPersonnelEntity {
|
|||
/** 是否注册安全工程师(1是2否) */
|
||||
private Integer registerEngineerFlag;
|
||||
|
||||
/** 是否评价师(1是0否) */
|
||||
private Integer evaluatorFlag;
|
||||
|
||||
/** 出版学术专著专利获奖论文等 */
|
||||
private String publications;
|
||||
|
||||
|
|
@ -112,6 +115,9 @@ public class OrgPersonnelEntity {
|
|||
/** 申报专业能力证明材料(多个逗号分隔) */
|
||||
private String proofMaterialUrl;
|
||||
|
||||
/** 能力认定(JSON数组字符串持久化,DO层为String) */
|
||||
private List<CapabilityAssessmentDTO> capabilityAssessment;
|
||||
|
||||
/** 原始人像地址(人脸比对基准图) */
|
||||
private String originFaceUrl;
|
||||
|
||||
|
|
@ -121,6 +127,9 @@ public class OrgPersonnelEntity {
|
|||
/** 是否过程控制负责人 */
|
||||
private Boolean processControlLeaderFlag;
|
||||
|
||||
/** 人员岗位类型: TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人 */
|
||||
private String personnelPositionType;
|
||||
|
||||
/** 租户ID */
|
||||
private Long tenantId;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.qinan.safetyeval.domain.gateway.OrgPersonnelCertGateway;
|
|||
import org.qinan.safetyeval.domain.query.OrgPersonnelCertQuery;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
|
||||
import java.util.List;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -29,6 +30,10 @@ public class OrgPersonnelCertDomainService {
|
|||
return orgPersonnelCertGateway.get(id);
|
||||
}
|
||||
|
||||
public List<OrgPersonnelCertEntity> listByPersonnelId(Long personnelId) {
|
||||
return orgPersonnelCertGateway.listByPersonnelId(personnelId);
|
||||
}
|
||||
|
||||
public OrgPersonnelCertEntity modify(OrgPersonnelCertEntity entity) {
|
||||
OrgPersonnelCertEntity existing = orgPersonnelCertGateway.get(entity.getId());
|
||||
if (existing == null) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
|
|||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.Named;
|
||||
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
|
||||
import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity;
|
||||
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
|
||||
|
|
@ -25,6 +26,7 @@ public interface OrgPersonnelDoConvertor {
|
|||
* @return
|
||||
*/
|
||||
@Mapping(target = "titleCodeArr", source = "titleCodeArr", qualifiedByName = "titleCodeListToJson")
|
||||
@Mapping(target = "capabilityAssessment", source = "capabilityAssessment", qualifiedByName = "capabilityAssessmentListToJson")
|
||||
OrgPersonnelDO convertEeToDo(OrgPersonnelEntity orgPersonnelEntity);
|
||||
|
||||
/**
|
||||
|
|
@ -34,6 +36,7 @@ public interface OrgPersonnelDoConvertor {
|
|||
* @return
|
||||
*/
|
||||
@Mapping(target = "titleCodeArr", source = "titleCodeArr", qualifiedByName = "jsonToTitleCodeList")
|
||||
@Mapping(target = "capabilityAssessment", source = "capabilityAssessment", qualifiedByName = "jsonToCapabilityAssessmentList")
|
||||
OrgPersonnelEntity converDoToEe(OrgPersonnelDO orgPersonnelDO);
|
||||
|
||||
/**
|
||||
|
|
@ -53,4 +56,14 @@ public interface OrgPersonnelDoConvertor {
|
|||
default String titleCodeListToJson(List<TitleCodeCo> list) {
|
||||
return list == null || list.isEmpty() ? null : JSONUtil.toJsonStr(list);
|
||||
}
|
||||
|
||||
@Named("jsonToCapabilityAssessmentList")
|
||||
default List<CapabilityAssessmentDTO> jsonToCapabilityAssessmentList(String json) {
|
||||
return json == null || json.isEmpty() ? null : JSONUtil.toList(json, CapabilityAssessmentDTO.class);
|
||||
}
|
||||
|
||||
@Named("capabilityAssessmentListToJson")
|
||||
default String capabilityAssessmentListToJson(List<CapabilityAssessmentDTO> list) {
|
||||
return list == null || list.isEmpty() ? null : JSONUtil.toJsonStr(list);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,16 +47,19 @@ public class OrgPersonnelDO {
|
|||
private String educationLevelName;
|
||||
private String titleCodeArr;
|
||||
private Integer registerEngineerFlag;
|
||||
private Integer evaluatorFlag;
|
||||
private String publications;
|
||||
private String abilityDeclaration;
|
||||
private String workExperience;
|
||||
private String proofMaterialUrl;
|
||||
private String capabilityAssessment;
|
||||
|
||||
@TableField(value = "origin_face_url", updateStrategy = FieldStrategy.NOT_NULL)
|
||||
private String originFaceUrl;
|
||||
|
||||
private Boolean technicalDirectorFlag;
|
||||
private Boolean processControlLeaderFlag;
|
||||
private String personnelPositionType;
|
||||
|
||||
// ---- GBS默认字段 ----
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ import org.qinan.safetyeval.client.co.OrgPersonnelCertCapabilityComplianceCheckC
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
`id`, `org_id`, `dept_id`, `post_id`, `user_name`, `account`, `gender_code`, `gender_name`, `birth_date`, `id_card_no`, `current_address`, `office_address`, `education_code`, `education_name`, `graduate_school`, `major`, `employment_status_code`, `employment_status_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
|
||||
`id`, `org_id`, `dept_id`, `post_id`, `user_name`, `account`, `gender_code`, `gender_name`, `birth_date`, `id_card_no`, `current_address`, `office_address`, `education_code`, `education_name`, `graduate_school`, `major`, `employment_status_code`, `employment_status_name`, `evaluator_flag`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
|
||||
</sql>
|
||||
|
||||
<!-- 根据人员id列表统计技术负责人和过程控制负责人数量(按业务范围分组) -->
|
||||
|
|
|
|||
Loading…
Reference in New Issue