diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java index 3844ba7a..c0f63280 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelExecutor.java @@ -13,11 +13,7 @@ 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.co.*; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.constant.CertTypeCodeEnum; import org.qinan.safetyeval.domain.entity.OrgPersonnelCertEntity; @@ -40,7 +36,6 @@ import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO; import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.support.UserOrgIdResolver; -import org.qinan.safetyeval.infrastructure.utils.CommonUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -54,7 +49,10 @@ import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; -import java.util.*; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -275,20 +273,14 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi { if (CollectionUtils.isEmpty(personnelIdList)) { return; } - List capabilityList = + List capabilityList = qualFilingPersonnelCertMapper.getProfessionalCapabilityCodeList(personnelIdList); - Map> capabilityMap = capabilityList.stream() - .filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCodeList())) - .collect(Collectors.toMap( - PersonnelProfessionalCapabilityCO::getPersonnelId, - item -> Arrays.asList(item.getProfessionalCapabilityCodeList() - .split(CommonUtil.COMMA)), - (a, b) -> a)); + Map> capabilityMap = capabilityList.stream() + .filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCode())) + .collect(Collectors.groupingBy( + PersonnelCertFilingPageCO::getPersonnelId)); for (QualFilingPersonnelInfoCO personnel : personnelList) { - List codes = capabilityMap.get(personnel.getSourcePersonnelId()); - if (codes != null) { - personnel.setProfessionalCapabilityCodeList(codes); - } + personnel.setPersonnelCertFilingPageCOList(capabilityMap.get(personnel.getSourcePersonnelId())); } } 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 9064ad30..f36df094 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 @@ -474,15 +474,15 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { if (CollectionUtils.isEmpty(personnelIdList)) { return; } - List capabilityList = + List capabilityList = qualFilingPersonnelCertMapper.getProfessionalCapabilityCodeList(personnelIdList); Map> capabilityMap = capabilityList.stream() - .filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCodeList())) - .collect(Collectors.toMap( - PersonnelProfessionalCapabilityCO::getPersonnelId, - item -> Arrays.asList(item.getProfessionalCapabilityCodeList() - .split(CommonUtil.COMMA)), - (a, b) -> a)); + .filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCode())) + .collect(Collectors.groupingBy( + PersonnelCertFilingPageCO::getPersonnelId, + Collectors.mapping( + PersonnelCertFilingPageCO::getProfessionalCapabilityCode, + Collectors.toList()))); for (QualFilingPersonnelChangeInfoCO personnel : personnelList) { List codes = capabilityMap.get(personnel.getSourcePersonnelId()); if (codes != null) { 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 29312674..eec2fd06 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 @@ -34,7 +34,6 @@ import org.qinan.safetyeval.infrastructure.mapper.QualFilingMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelMapper; import org.qinan.safetyeval.infrastructure.support.OrgContextResolver; -import org.qinan.safetyeval.infrastructure.utils.CommonUtil; import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,7 +45,10 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -258,20 +260,14 @@ public class QualFilingOrchestrator { if (CollectionUtils.isEmpty(personnelIdList)) { return; } - List capabilityList = + List capabilityList = qualFilingPersonnelCertMapper.getProfessionalCapabilityCodeList(personnelIdList); - Map> capabilityMap = capabilityList.stream() - .filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCodeList())) - .collect(Collectors.toMap( - PersonnelProfessionalCapabilityCO::getPersonnelId, - item -> Arrays.asList(item.getProfessionalCapabilityCodeList() - .split(CommonUtil.COMMA)), - (a, b) -> a)); + Map> capabilityMap = capabilityList.stream() + .filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCode())) + .collect(Collectors.groupingBy( + PersonnelCertFilingPageCO::getPersonnelId)); for (QualFilingPersonnelInfoCO personnel : personnelList) { - List codes = capabilityMap.get(personnel.getSourcePersonnelId()); - if (codes != null) { - personnel.setProfessionalCapabilityCodeList(codes); - } + personnel.setPersonnelCertFilingPageCOList(capabilityMap.get(personnel.getSourcePersonnelId())); } } @@ -746,7 +742,7 @@ public class QualFilingOrchestrator { private String resolveOperatorName() { String userName = AuthUserContextAdapter.getCurrentUserName(); - return StringUtils.hasText(userName) ? userName : "系统"; + return StringUtils.hasText(userName) ? userName : "系统" ; } private QualFilingCO toCO(QualFilingEntity entity) { diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/PersonnelCertFilingPageCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/PersonnelCertFilingPageCO.java new file mode 100644 index 00000000..552ac866 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/PersonnelCertFilingPageCO.java @@ -0,0 +1,41 @@ +package org.qinan.safetyeval.client.co; + +import lombok.Data; + +/** + * 人员专业能力证书类型编码聚合结果 + * + * @author safety-eval + */ +@Data +public class PersonnelCertFilingPageCO { + /** + * 人员id + */ + private Long id; + + /** + * 人员id + */ + private Long personnelId; + + /** + * 专业能力证书类型编码 + */ + private String professionalCapabilityCode; + + /** + * 证书类型编码 + */ + private String certTypeCode; + + /** + * 证书等级 + */ + private String certLevel; + + /** + * 证书编号 + */ + private String certNo; +} diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/PersonnelProfessionalCapabilityCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/PersonnelProfessionalCapabilityCO.java deleted file mode 100644 index 7b4b918c..00000000 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/PersonnelProfessionalCapabilityCO.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.qinan.safetyeval.client.co; - -import lombok.Data; - -/** - * 人员专业能力证书类型编码聚合结果 - * - * @author safety-eval - */ -@Data -public class PersonnelProfessionalCapabilityCO { - - /** - * 人员id - */ - private Long personnelId; - - /** - * 专业能力证书类型编码列表(GROUP_CONCAT 逗号分隔) - */ - private String professionalCapabilityCodeList; -} diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java index 71384004..695f914f 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java @@ -51,5 +51,5 @@ public class QualFilingPersonnelInfoCO { private LocalDate joinWorkDate; @ApiModelProperty(value = "能力codeList") - private List professionalCapabilityCodeList; + private List personnelCertFilingPageCOList; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/SafetyCategoryEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/SafetyCategoryEnum.java index bab0dd1a..bcdd5f23 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/SafetyCategoryEnum.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/SafetyCategoryEnum.java @@ -4,7 +4,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; /** - * 安全类别 + * 注安专业类别 */ @Getter @RequiredArgsConstructor diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/TitleCapabilityEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/TitleCapabilityEnum.java index 88166d67..cb91deb8 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/TitleCapabilityEnum.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/basic/TitleCapabilityEnum.java @@ -10,23 +10,23 @@ import lombok.RequiredArgsConstructor; @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", "土木工程", "水工结构"), + SAFETY_ENGINEERING("P01", "安全工程", "SAFETY"), + MECHANICAL_ENGINEERING("P02", "机械工程", "MECHANICAL、CHEMICAL_MECHANICAL"), + CHEMICAL_MACHINERY("P03", "化工机械", "CHEMICAL_MECHANICAL"), + CHEMICAL_ENGINEERING("P04", "化学工程", "CHEMICAL_PROCESS"), + AUTOMATION("P05", "自动化/测控技术", "AUTOMATION_INSTRUMENT、AUTOMATION"), + ELECTRICAL_ENGINEERING("P06", "电气工程", "ELECTRICAL"), + MINING_ENGINEERING("P07", "采矿工程", "MINING"), + VENTILATION_ENGINEERING("P08", "通风工程", "VENTILATION"), + GEOLOGICAL_ENGINEERING("P09", "地质工程", "GEOLOGY"), + MINE_CONSTRUCTION_ENGINEERING("P10", "矿建工程", "MINE_CONSTRUCTION"), + PETROLEUM_ENGINEERING("P11", "石油工程", "OIL_PRODUCTION"), + OIL_GAS_STORAGE_TRANSPORT("P12", "油气储运工程", "OIL_GAS_STORAGE_TRANSPORT"), + CORROSION_PROTECTION("P13", "腐蚀与防护", "ANTICORROSION"), + METALLURGY_ENGINEERING("P14", "冶金工程", "METALLURGY"), + NONFERROUS_METALLURGY("P15", "有色金属冶金", "NONFERROUS_METAL"), + EXPLOSIVES("P16", "火炸药/爆炸技术", "EXPLOSIVES"), + CIVIL_ENGINEERING("P17", "土木工程", "HYDRAULIC_STRUCTURE"), ; private final String value; diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingPersonnelCertMapper.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingPersonnelCertMapper.java index fb147756..489b8a27 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingPersonnelCertMapper.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingPersonnelCertMapper.java @@ -3,7 +3,7 @@ package org.qinan.safetyeval.infrastructure.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.qinan.safetyeval.client.co.PersonnelProfessionalCapabilityCO; +import org.qinan.safetyeval.client.co.PersonnelCertFilingPageCO; import org.qinan.safetyeval.infrastructure.dataobject.QualFilingPersonnelCertDO; import java.util.List; @@ -17,6 +17,6 @@ public interface QualFilingPersonnelCertMapper extends BaseMapper getProfessionalCapabilityCodeList( + List getProfessionalCapabilityCodeList( @Param("personnelIds") List personnelIds); } diff --git a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingPersonnelCertMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingPersonnelCertMapper.xml index bb6c5ad3..234cfaec 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingPersonnelCertMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingPersonnelCertMapper.xml @@ -42,18 +42,20 @@ `id`, `filing_id`, `filing_personnel_id`, `cert_name`, `cert_type_code`, `cert_level`, `cert_category_code`, `cert_category_name`, `operation_category_code`, `operation_category_name`, `cert_no`, `issue_org`, `valid_start_date`, `valid_end_date`, `review_date`, `cert_attachment_url`, `source_cert_id`, `business_scope`, `professional_capability_code`, `industry_professional_standards_id`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `org_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env` - +