From 45ff5661c00ac825e74f160d075e81d74b0b313d Mon Sep 17 00:00:00 2001 From: zhanglei Date: Wed, 22 Jul 2026 09:40:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../convertor/EvalProjectCmdConvertor.java | 1 + .../client/co/institution/EvalProjectCO.java | 3 + .../client/co/institution/ProjectNodeCO.java | 18 ++++++ .../domain/constant/ProjectStageEnum.java | 63 +++++++++++++++++++ .../domain/entity/EvalProjectEntity.java | 2 + .../dataobject/EvalProjectDO.java | 1 + 6 files changed, 88 insertions(+) create mode 100644 safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java create mode 100644 safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectStageEnum.java diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalProjectCmdConvertor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalProjectCmdConvertor.java index 110df9f..78ac74e 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalProjectCmdConvertor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalProjectCmdConvertor.java @@ -35,6 +35,7 @@ public interface EvalProjectCmdConvertor { @Mapping(target = "projectNo", ignore = true) @Mapping(target = "customerId", expression = "java(cmd.getCustomerId() == null ? null : Long.parseLong(cmd.getCustomerId()))") @Mapping(target = "participantsJson", expression = "java(toParticipantsJson(cmd.getParticipants()))") + @Mapping(target = "projectNode", constant = "") @Mapping(target = "archiveFlag", expression = "java(cmd.getArchiveFlag() == null ? 0 : cmd.getArchiveFlag())") @Mapping(target = "tenantId", ignore = true) EvalProjectEntity convertAddCmdToE(EvalProjectAddCmd cmd); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java index d6ea10e..457c8aa 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java @@ -63,6 +63,9 @@ public class EvalProjectCO { @ApiModelProperty("项目负责人") private String projectLeaderName; + @ApiModelProperty("项目节点完成进度") + private String projectNode; + @ApiModelProperty(value = "项目归档:1归档 0未归档", example = "0") private Integer archiveFlag; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java new file mode 100644 index 0000000..5814163 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/ProjectNodeCO.java @@ -0,0 +1,18 @@ +package org.qinan.safetyeval.client.co.institution; + +import lombok.Data; + +/** + * 项目节点完成进度中的单个节点对象 + */ +@Data +public class ProjectNodeCO { + /** + * @ProjectNode + */ + private String type; + /** + * 0未完成 1完成 + */ + private Integer state; +} \ No newline at end of file diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectStageEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectStageEnum.java new file mode 100644 index 0000000..6f8d377 --- /dev/null +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectStageEnum.java @@ -0,0 +1,63 @@ +package org.qinan.safetyeval.domain.constant; + +/** + * 项目阶段枚举 + * val: 英文大写标识(如 RISK_ANALYSIS) + * msg: 中文阶段名称(如 风险分析) + */ +public enum ProjectStageEnum { + + RISK_ANALYSIS("RISK_ANALYSIS", "风险分析"), + BUSINESS_CONTRACT("BUSINESS_CONTRACT", "业务合同"), + PROJECT_GROUP("PROJECT_GROUP", "项目组"), + SITE_SURVEY("SITE_SURVEY", "现场踏勘"), + REPORT_PREPARATION("REPORT_PREPARATION", "报告编制"), + INTERNAL_REVIEW("INTERNAL_REVIEW", "内部审核"), + TECHNICAL_REVIEW("TECHNICAL_REVIEW", "技术审核"), + PROCESS_CONTROL("PROCESS_CONTROL", "过程控制"); + + private final String val; // 英文大写标识 + private final String msg; // 中文阶段名称 + + ProjectStageEnum(String val, String msg) { + this.val = val; + this.msg = msg; + } + + public String getVal() { + return val; + } + + public String getMsg() { + return msg; + } + + /** + * 根据 val(英文大写)查找枚举 + */ + public static ProjectStageEnum fromVal(String val) { + for (ProjectStageEnum stage : values()) { + if (stage.val.equals(val)) { + return stage; + } + } + return null; + } + + /** + * 根据 msg(中文名称)查找枚举 + */ + public static ProjectStageEnum fromMsg(String msg) { + for (ProjectStageEnum stage : values()) { + if (stage.msg.equals(msg)) { + return stage; + } + } + return null; + } + + @Override + public String toString() { + return msg; // 默认返回中文名称 + } +} \ No newline at end of file diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java index fe5d5ce..3415ac1 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java @@ -25,6 +25,8 @@ public class EvalProjectEntity { /** JSON: [{"name":"名称","id":1}] */ private String participantsJson; private String projectLeaderName; + /** 项目节点完成进度 */ + private String projectNode; /** 1归档 0未归档 */ private Integer archiveFlag; private Long tenantId; diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java index 78d5d02..bf77783 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java @@ -27,6 +27,7 @@ public class EvalProjectDO { private Integer checkinRadiusMeters; private String participantsJson; private String projectLeaderName; + private String projectNode; private Integer archiveFlag; private String deleteEnum; private String remarks;