diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelController.java index 0c6ad0b2..21705fc8 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelController.java @@ -61,6 +61,13 @@ public class OrgPersonnelController { return orgPersonnelApi.page(query); } + @ApiOperation("监管端评价师查询人员信息") + @GetMapping("/regulationPage") + public PageResponse regulationPage(@Validated OrgPersonnelPageQuery query) { + query.setEvaluatorList(true); + return orgPersonnelApi.page(query); + } + @ApiOperation("班级选择人员分页查询") @GetMapping("/classSelect/page") public PageResponse classSelectPage(@Validated ClassSelectPersonnelPageQuery query) { 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 b4185e64..d8852181 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 @@ -34,8 +34,10 @@ 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.OrgInfoDO; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDeptCountDO; +import org.qinan.safetyeval.infrastructure.mapper.OrgInfoMapper; import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.support.UserOrgIdResolver; @@ -54,10 +56,7 @@ import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.time.LocalDate; import java.time.temporal.ChronoUnit; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -122,6 +121,8 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi { private boolean gbsUserSyncFailFast; @Value("${template.personnel.import.url:}") private String personImportTemplateUrl; + @Autowired + private OrgInfoMapper orgInfoMapper; @Override @@ -241,21 +242,35 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi { domainQuery.setPostId(query.getPostId()); domainQuery.setUserName(query.getUserName()); domainQuery.setAccount(query.getAccount()); + domainQuery.setRegisterEngineerFlag(query.getRegisterEngineerFlag()); domainQuery.setEmploymentStatusCode(query.getEmploymentStatusCode()); + domainQuery.setEvaluatorList(query.getEvaluatorList()); if (query.getResignAuditStatus() != null && orgResignApplyGateway != null) { domainQuery.setPersonnelIds(orgResignApplyGateway.listPersonnelIdsByAuditStatus( query.getResignAuditStatus(), query.getOrgId())); } PageResult pageResult = orgPersonnelDomainService.page(domainQuery); - - List records = pageResult.getRecords().stream() - .map(item -> orgPersonnelConvertor.toCO(item)) - .collect(java.util.stream.Collectors.toList()); + Map orgNameMap; + if (pageResult != null && !CollectionUtils.isEmpty(pageResult.getRecords())) { + List orgIds = pageResult.getRecords().stream().map(OrgPersonnelEntity::getOrgId).filter(Objects::nonNull).collect(Collectors.toList()); + orgNameMap = orgInfoMapper.selectBatchIds(CollectionUtils.isEmpty(orgIds) ? Collections.singletonList(0) : orgIds).stream().collect(Collectors.toMap(OrgInfoDO::getId, OrgInfoDO::getUnitName)); + } else { + orgNameMap = new HashMap<>(); + } + List records = null; + if (pageResult != null) { + records = pageResult.getRecords().stream() + .map(item -> { + OrgPersonnelCO co = orgPersonnelConvertor.toCO(item); + co.setOrgName(orgNameMap.getOrDefault(item.getOrgId(), "")); + return co; + }) + .collect(Collectors.toList()); + } if (orgPersonnelViewEnricher != null) { orgPersonnelViewEnricher.enrichPersonnelBatch(records); } - return PageResponse.of(records, pageResult.getTotal()); } 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 7f89602d..2b173199 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 @@ -1,5 +1,7 @@ package org.qinan.safetyeval.client.co; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO; @@ -20,6 +22,7 @@ public class OrgPersonnelCO { private Long id; @ApiModelProperty(value = "部门ID") + @JsonSerialize(using = ToStringSerializer.class) private Long deptId; @ApiModelProperty(value = "岗位ID") @@ -168,4 +171,9 @@ public class OrgPersonnelCO { @ApiModelProperty(value = "租户ID") private Long tenantId; + + @ApiModelProperty(value = "人员状态: 1正常,2异常") + private Integer personnelStatus = 1; + @ApiModelProperty(value = "机构名称") + private String orgName; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelPageQuery.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelPageQuery.java index 5d4c4c8d..9279ed28 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelPageQuery.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgPersonnelPageQuery.java @@ -22,7 +22,7 @@ public class OrgPersonnelPageQuery extends BasePageQuery { @ApiModelProperty(value = "岗位id") private Long postId; - @ApiModelProperty(value = "用户名称/姓名") + @ApiModelProperty(value = "用户名称/姓名/评价师名称") private String userName; @ApiModelProperty(value = "账号") @@ -36,4 +36,10 @@ public class OrgPersonnelPageQuery extends BasePageQuery { @ApiModelProperty(value = "是否员工变更管理页面") private Boolean employeeChange = false; + + @ApiModelProperty(value = "是否注册安全工程师(1是2否)") + private Integer registerEngineerFlag; + + @ApiModelProperty(value = "评价师列表") + private Boolean evaluatorList = false; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgPersonnelQuery.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgPersonnelQuery.java index c5bf4342..b949a742 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgPersonnelQuery.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgPersonnelQuery.java @@ -1,5 +1,6 @@ package org.qinan.safetyeval.domain.query; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -42,4 +43,9 @@ public class OrgPersonnelQuery { /** 人员 ID 列表(离职审核状态筛选) */ private java.util.List personnelIds; + @ApiModelProperty(value = "是否注册安全工程师(1是2否)") + private Integer registerEngineerFlag; + @ApiModelProperty(value = "评价师列表") + private Boolean evaluatorList = false; + } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgPersonnelGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgPersonnelGatewayImpl.java index d990d8c6..44649c62 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgPersonnelGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgPersonnelGatewayImpl.java @@ -153,6 +153,13 @@ public class OrgPersonnelGatewayImpl implements OrgPersonnelGateway { if (query.getEmploymentStatusCode() != null) { wrapper.eq(OrgPersonnelDO::getEmploymentStatusCode, query.getEmploymentStatusCode()); } + if (query.getRegisterEngineerFlag() != null) { + wrapper.eq(OrgPersonnelDO::getRegisterEngineerFlag, query.getRegisterEngineerFlag()); + } + if (query.getEvaluatorList()) { + // 查看有能力,专职人员 + wrapper.isNotNull(OrgPersonnelDO::getCapabilityAssessment); + } if (query.getPersonnelIds() != null) { if (query.getPersonnelIds().isEmpty()) { wrapper.eq(OrgPersonnelDO::getId, -1L);