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 5e6c19fe..cfc4485b 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 @@ -12,6 +12,7 @@ import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.*; import org.qinan.safetyeval.domain.constant.EvalProjectProgressStatEnum; import org.qinan.safetyeval.domain.constant.EvalTypeEnum; +import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.entity.EvalProjectEntity; import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; @@ -279,11 +280,32 @@ public class EvalProjectExecutor implements EvalProjectApi { Map customerNameMap = evalCustomerMapper.selectBatchIds(co.stream() .map(EvalProjectCO::getCustomerId).collect(Collectors.toList())) .stream().collect(Collectors.toMap(EvalCustomerDO::getId, EvalCustomerDO::getCustomerName)); - co.forEach(item -> item.setCustomerName(customerNameMap.get(Long.valueOf(item.getCustomerId())))); + Map projectRole = getProjectRole(co.stream().map(EvalProjectCO::getId).map(Long::new).collect(Collectors.toList())); + co.forEach(item -> { + item.setCustomerName(customerNameMap.get(Long.valueOf(item.getCustomerId()))); + item.setRole(projectRole.get(Long.valueOf(item.getId()))); + }); } return PageResponse.of(co, pageResult.getTotal()); } + /** + * 获取当前登录人,在项目中的角色 + * @return + */ + public Map getProjectRole(List projectIds) { + List evalProjectMemberDOS = evalProjectMemberMapper.selectList(new LambdaQueryWrapper() + .eq(EvalProjectMemberDO::getProjectId, projectIds) + .eq(EvalProjectMemberDO::getPersonnelId, AuthUserContextAdapter.getCurrentUserId())); + if (CollectionUtils.isEmpty(evalProjectMemberDOS)) { + return null; + } + for (EvalProjectMemberDO evalProjectMemberDO : evalProjectMemberDOS) { + evalProjectMemberDO.setRole(ProjectRoleEnum.fromVals(evalProjectMemberDO.getRole())); + } + return evalProjectMemberDOS.stream().collect(Collectors.toMap(EvalProjectMemberDO::getId, EvalProjectMemberDO::getRole)); + } + @Override public SingleResponse appProjectStatistics() { EvalProjectPageQuery evalProjectPageQuery = new EvalProjectPageQuery(); diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java index e13afd28..3b84ac42 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java @@ -8,6 +8,7 @@ import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.EvalProjectMemberAddCmd; import org.qinan.safetyeval.client.dto.institution.EvalProjectMemberPageQuery; +import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.exception.ErrorCode; @@ -69,8 +70,12 @@ public class EvalProjectMemberExecutor implements EvalProjectMemberApi { EvalProjectMemberQuery domainQuery = evalProjectMemberCmdConvertor.convertPageQueryToQ(query); domainQuery.setOrgId(institutionOrgSupport.resolveCurrentOrgId()); PageResult pageResult = evalProjectMemberDomainService.page(domainQuery); - return PageResponse.of( - evalProjectMemberCmdConvertor.convertEListToCOList(pageResult.getRecords()), + List evalProjectMemberCOS = evalProjectMemberCmdConvertor.convertEListToCOList(pageResult.getRecords()); + for (EvalProjectMemberCO evalProjectMemberCO : evalProjectMemberCOS) { + evalProjectMemberCO.setRole(ProjectRoleEnum.froms(evalProjectMemberCO.getRole())); + } + return PageResponse.of(evalProjectMemberCOS + , pageResult.getTotal()); } } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java index 98550098..7d35cba1 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java @@ -10,6 +10,7 @@ import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.EvalSurveyPageQuery; import org.qinan.safetyeval.client.dto.institution.EvalSurveySaveCmd; +import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.entity.EvalSurveyEntity; import org.qinan.safetyeval.domain.exception.ErrorCode; @@ -106,6 +107,8 @@ public class EvalSurveyExecutor implements EvalSurveyApi { return SingleResponse.success(null); } List dbList = evalProjectMemberDOS.stream().map(evalProjectMemberDoConvertor::convertDoToE).collect(Collectors.toList()); - return SingleResponse.success(evalProjectMemberCmdConvertor.convertEListToCOList(dbList).get(0)); + EvalProjectMemberCO evalProjectMemberCO = evalProjectMemberCmdConvertor.convertEListToCOList(dbList).get(0); + evalProjectMemberCO.setRole(ProjectRoleEnum.froms(evalProjectMemberCO.getRole())); + return SingleResponse.success(evalProjectMemberCO); } } 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 5e8c50fb..07ae2575 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 @@ -104,4 +104,7 @@ public class EvalProjectCO { @ApiModelProperty("app项目勘察类型: 0-待勘察, 1-已完成") private int surveyType; + + @ApiModelProperty("角色") + private String role; } 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 index ba27c7d7..ab153e81 100644 --- 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 @@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.ArrayList; import java.util.List; /** @@ -54,6 +55,16 @@ public enum ProjectRoleEnum { return sb.toString(); } + public static List froms(List vals) { + List strings = new ArrayList<>(); + for (ProjectRoleEnum stage : values()) { + if (vals.contains(stage.val)) { + strings.add(stage.mas); + } + } + return strings; + } + public static List jsonToList(String json) { return json == null ? null : JSONUtil.toList(json, String.class); }