From a12aefade80df0f93ec6007a5621579b5addc523 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Thu, 16 Jul 2026 16:44:50 +0800 Subject: [PATCH] init --- .../web/OrgPersonnelCertController.java | 3 +- .../executor/OrgPersonnelCertExecutor.java | 12 +++++-- .../client/api/OrgPersonnelCertApi.java | 3 +- .../client/co/OrgPersonnelCertDetailCO.java | 18 +++++++++++ .../mapper/OrgPersonnelCertMapper.java | 9 ++++++ .../utils/ComplianceCheckUtil.java | 6 ++-- .../utils/{Dinic.java => DinicUtil.java} | 4 +-- .../mapper/OrgPersonnelCertMapper.xml | 31 +++++++++++++++++++ 8 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCertDetailCO.java rename safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/{Dinic.java => DinicUtil.java} (97%) diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelCertController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelCertController.java index 4c2c8f5..9cd2032 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelCertController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgPersonnelCertController.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.qinan.safetyeval.client.api.OrgPersonnelCertApi; import org.qinan.safetyeval.client.co.OrgPersonnelCertCO; +import org.qinan.safetyeval.client.co.OrgPersonnelCertDetailCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.infrastructure.dataobject.base.Req; import org.springframework.validation.annotation.Validated; @@ -33,7 +34,7 @@ public class OrgPersonnelCertController { @ApiOperation("查询人员证书详情") @GetMapping("/get") - public SingleResponse get(@ApiParam("主键ID") @RequestParam Long id) { + public SingleResponse get(@ApiParam("主键ID") @RequestParam Long id) { return orgPersonnelCertApi.get(id); } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelCertExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelCertExecutor.java index af691d9..942550c 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelCertExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgPersonnelCertExecutor.java @@ -4,6 +4,7 @@ import org.qinan.safetyeval.client.api.OrgPersonnelCertApi; import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.co.OrgPersonnelCertCO; +import org.qinan.safetyeval.client.co.OrgPersonnelCertDetailCO; import org.qinan.safetyeval.client.dto.OrgPersonnelCertAddCmd; import org.qinan.safetyeval.client.dto.OrgPersonnelCertModifyCmd; import org.qinan.safetyeval.client.dto.OrgPersonnelCertPageQuery; @@ -14,7 +15,9 @@ import org.qinan.safetyeval.domain.service.OrgPersonnelCertDomainService; import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; import org.qinan.safetyeval.infrastructure.convertor.OrgPersonnelCertConvertor; +import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelCertMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.commons.util.InetUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -33,6 +36,9 @@ public class OrgPersonnelCertExecutor implements OrgPersonnelCertApi { @Autowired private OrgPersonnelCertConvertor orgPersonnelCertConvertor; + @Autowired + private OrgPersonnelCertMapper orgPersonnelCertMapper; + @Override public SingleResponse add(OrgPersonnelCertAddCmd cmd) { OrgPersonnelCertEntity entity = orgPersonnelCertConvertor.addCmdToEntity(cmd); @@ -42,9 +48,9 @@ public class OrgPersonnelCertExecutor implements OrgPersonnelCertApi { } @Override - public SingleResponse get(Long id) { - OrgPersonnelCertEntity entity = orgPersonnelCertDomainService.get(id); - return SingleResponse.success(orgPersonnelCertConvertor.entityToCO(entity)); + public SingleResponse get(Long id) { + OrgPersonnelCertDetailCO co = orgPersonnelCertMapper.selectDetailById(id); + return SingleResponse.success(co); } @Override diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgPersonnelCertApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgPersonnelCertApi.java index 2eb209d..bdb39be 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgPersonnelCertApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgPersonnelCertApi.java @@ -1,6 +1,7 @@ package org.qinan.safetyeval.client.api; import org.qinan.safetyeval.client.co.OrgPersonnelCertCO; +import org.qinan.safetyeval.client.co.OrgPersonnelCertDetailCO; import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.OrgPersonnelCertAddCmd; @@ -16,7 +17,7 @@ public interface OrgPersonnelCertApi { SingleResponse add(OrgPersonnelCertAddCmd cmd); - SingleResponse get(Long id); + SingleResponse get(Long id); SingleResponse modify(OrgPersonnelCertModifyCmd cmd); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCertDetailCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCertDetailCO.java new file mode 100644 index 0000000..de02858 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgPersonnelCertDetailCO.java @@ -0,0 +1,18 @@ +package org.qinan.safetyeval.client.co; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 人员证书详情CO(包含专业能力名称) + * + * @author safety-eval + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OrgPersonnelCertDetailCO extends OrgPersonnelCertCO { + + @ApiModelProperty(value = "专业能力名称") + private String professionalCapabilityName; +} diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java index 203f2da..8fe12fe 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java @@ -3,6 +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.OrgPersonnelCertDetailCO; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelCertDO; import java.util.List; @@ -17,4 +18,12 @@ public interface OrgPersonnelCertMapper extends BaseMapper { * @return 证书专业能力列表 */ List selectCapabilityByPersonnelIds(@Param("personnelIds") List personnelIds); + + /** + * 根据主键ID查询人员证书详情(关联industry_professional_standards获取专业能力名称) + * + * @param id 主键ID + * @return 人员证书详情 + */ + OrgPersonnelCertDetailCO selectDetailById(@Param("id") Long id); } 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 a9006b9..75a2d78 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 @@ -431,7 +431,7 @@ public class ComplianceCheckUtil { int T = P + C + 1; int totalNodes = T + 1; - Dinic dinic = new Dinic(totalNodes); + DinicUtil dinic = new DinicUtil(totalNodes); // 建立人员ID到节点编号的映射 Map personNode = new HashMap<>(); @@ -462,7 +462,7 @@ public class ComplianceCheckUtil { } // 能力 → 汇点 (容量 = 需求人数),记录正向边引用以便后续读取实际流量 - Map capSinkEdgeMap = new HashMap<>(); + Map capSinkEdgeMap = new HashMap<>(); for (Map.Entry entry : requiredMap.entrySet()) { String cap = entry.getKey(); long req = entry.getValue() == null ? 0L : entry.getValue(); @@ -480,7 +480,7 @@ public class ComplianceCheckUtil { Map assignedMap = new LinkedHashMap<>(); for (String capCode : capCodes) { long req = requiredMap.get(capCode) == null ? 0L : requiredMap.get(capCode); - Dinic.Edge edge = capSinkEdgeMap.get(capCode); + DinicUtil.Edge edge = capSinkEdgeMap.get(capCode); long assigned = edge == null ? 0L : req - edge.cap; assignedMap.put(capCode, assigned); } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/Dinic.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/DinicUtil.java similarity index 97% rename from safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/Dinic.java rename to safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/DinicUtil.java index 4c09222..32c04c0 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/Dinic.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/DinicUtil.java @@ -5,7 +5,7 @@ import java.util.*; /** * Dinic 算法实现 */ -public class Dinic { +public class DinicUtil { static class Edge { int to, rev; long cap; @@ -21,7 +21,7 @@ public class Dinic { int[] level, iter; @SuppressWarnings("unchecked") - Dinic(int n) { + DinicUtil(int n) { graph = new ArrayList[n]; for (int i = 0; i < n; i++) graph[i] = new ArrayList<>(); level = new int[n]; diff --git a/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml index 010f9e0..b1da090 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml @@ -56,4 +56,35 @@ + + +