diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java index d59058a..a8c2e06 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java @@ -169,8 +169,10 @@ public class EvalProjectExecutor implements EvalProjectApi { evalProjectPageQuery.setMyProject(true); List data = page(evalProjectPageQuery).getData(); EvalProjectStatisticsCO co = new EvalProjectStatisticsCO(); - long pendingMyHandlingSum = data.stream().map(item -> item.getParticipants().stream().map(EvalProjectParticipantItemCO::getId).distinct().count()).distinct().count(); - co.setParticipatingProjectSum(pendingMyHandlingSum); + co.setDelayedProjectSum(data.stream().filter(item -> "DELAY".equals(item.getProjectPhaseCode()) && item.getArchiveFlag() == 0).count()); + co.setOnSiteTaskSum((long) data.size()); + co.setPendingMyHandlingSum(data.stream().filter(item -> "NORMAL".equals(item.getProjectPhaseCode()) && item.getArchiveFlag() == 0).count()); + co.setParticipatingProjectSum((long) data.size()); return null; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectParticipantItemCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectParticipantItemCO.java index 4f7a24c..3622725 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectParticipantItemCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectParticipantItemCO.java @@ -15,4 +15,10 @@ public class EvalProjectParticipantItemCO { @ApiModelProperty("人员名称") private String name; + @ApiModelProperty("部门名称") + private String deptName; + @ApiModelProperty("岗位名称") + private String posName; + @ApiModelProperty("能力") + private String capacity; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectRoleEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectRoleEnum.java new file mode 100644 index 0000000..a63d397 --- /dev/null +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectRoleEnum.java @@ -0,0 +1,42 @@ +package org.qinan.safetyeval.domain.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 安平项目角色枚举 + * 对应业务流程图中的各岗位角色 + */ +@AllArgsConstructor +public enum ProjectRoleEnum { + MARKETING_BUSINESS_REP("市场部业务员", "MARKETING_BUSINESS_REP"), + TECHNICAL_LEAD("技术负责人", "TECHNICAL_LEAD"), + PROCESS_CONTROL_LEAD("过程控制负责人(单人唯一)", "PROCESS_CONTROL_LEAD"), + FINANCE_STAFF("财务人员", "FINANCE_STAFF"), + EVALUATION_AGENCY_HEAD("评价机构负责人", "EVALUATION_AGENCY_HEAD"), + EVALUATION_DEPT_MANAGER("评价部经理", "EVALUATION_DEPT_MANAGER"), + PROJECT_LEAD("项目负责人(项目组组长,单人唯一)", "PROJECT_LEAD"), + PROJECT_TEAM_MEMBERS("项目组各专业组员", "PROJECT_TEAM_MEMBERS"), + INTERNAL_AUDITOR("内审人", "INTERNAL_AUDITOR"), + REPORT_COMPILER("报告编制人", "REPORT_COMPILER"), + ARCHIVES_ADMIN("档案管理员", "ARCHIVES_ADMIN"); + + @Getter + private final String mas; // 中文描述 + @Getter + private final String val; // 英文标识(大写下划线格式) + + /** + * 根据英文标识(大写下划线)获取对应的枚举常量(精确匹配) + * @param val 英文标识,如 "PROJECT_LEAD" + * @return 匹配的枚举,若未找到则返回 null + */ + public static ProjectRoleEnum fromVal(String val) { + for (ProjectRoleEnum projectRoleEnum : values()) { + if (projectRoleEnum.val.equals(val)) { + return projectRoleEnum; + } + } + return null; + } +} \ No newline at end of file