From df5ea6970e24d5432ba045f56fe70182fed96254 Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Mon, 26 Apr 2021 14:31:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=B8=8D=E5=8F=AF=E8=A7=81?= =?UTF-8?q?=E8=A7=92=E8=89=B2,=E5=A2=9E=E5=8A=A0=E6=9F=A5=E9=87=8C?= =?UTF-8?q?=E7=A8=8B=E7=A2=91=E6=88=96=E5=85=A8=E9=83=A8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ccsens/tall/bean/po/ProShow.java | 11 ++++ .../ccsens/tall/bean/po/ProShowExample.java | 60 +++++++++++++++++++ .../com/ccsens/tall/bean/vo/ProjectVo.java | 10 ++++ .../ccsens/tall/persist/dao/ProRoleDao.java | 7 +++ .../ccsens/tall/service/ProRoleService.java | 21 ++++++- .../main/resources/mapper_dao/ProRoleDao.xml | 55 +++++++++++------ .../resources/mapper_raw/ProShowMapper.xml | 25 ++++++-- 7 files changed, 165 insertions(+), 24 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java index 8a8a13ba..8dacaa85 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java @@ -42,6 +42,8 @@ public class ProShow implements Serializable { private Byte roleBelong; + private Byte milestoneSubtask; + private static final long serialVersionUID = 1L; public Long getId() { @@ -196,6 +198,14 @@ public class ProShow implements Serializable { this.roleBelong = roleBelong; } + public Byte getMilestoneSubtask() { + return milestoneSubtask; + } + + public void setMilestoneSubtask(Byte milestoneSubtask) { + this.milestoneSubtask = milestoneSubtask; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -221,6 +231,7 @@ public class ProShow implements Serializable { sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); sb.append(", roleBelong=").append(roleBelong); + sb.append(", milestoneSubtask=").append(milestoneSubtask); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java index 59f56608..7383b642 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java @@ -1274,6 +1274,66 @@ public class ProShowExample { addCriterion("role_belong not between", value1, value2, "roleBelong"); return (Criteria) this; } + + public Criteria andMilestoneSubtaskIsNull() { + addCriterion("milestone_subtask is null"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskIsNotNull() { + addCriterion("milestone_subtask is not null"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskEqualTo(Byte value) { + addCriterion("milestone_subtask =", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskNotEqualTo(Byte value) { + addCriterion("milestone_subtask <>", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskGreaterThan(Byte value) { + addCriterion("milestone_subtask >", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskGreaterThanOrEqualTo(Byte value) { + addCriterion("milestone_subtask >=", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskLessThan(Byte value) { + addCriterion("milestone_subtask <", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskLessThanOrEqualTo(Byte value) { + addCriterion("milestone_subtask <=", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskIn(List values) { + addCriterion("milestone_subtask in", values, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskNotIn(List values) { + addCriterion("milestone_subtask not in", values, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskBetween(Byte value1, Byte value2) { + addCriterion("milestone_subtask between", value1, value2, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskNotBetween(Byte value1, Byte value2) { + addCriterion("milestone_subtask not between", value1, value2, "milestoneSubtask"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java index 93a0cc16..6b052c17 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java @@ -185,6 +185,8 @@ public class ProjectVo { private String relevanceProjectName; @ApiModelProperty("成员信息") private List members; + @ApiModelProperty("对谁不可见") + private List roleOfNoLook = new ArrayList<>(); @JsonIgnore private Long parentId; //一级角色Id @JsonIgnore @@ -194,6 +196,14 @@ public class ProjectVo { } @ApiModel @Data + public static class RolesOfNoLook{ + @ApiModelProperty("不可见角色id") + private Long id; + @ApiModelProperty("不可见角色名称") + private String name; + } + @ApiModel + @Data public static class ProMemberVo{ @JsonIgnore private Long mUserId;//成员的userId diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index b3fd7016..24a14f76 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -121,6 +121,13 @@ public interface ProRoleDao extends ProRoleMapper{ */ List selectMemberOfRole(Long roleId); + /** + * 根据角色id查询不可见角色列表 + * @param roleId 二级角色id + * @return 不可见角色list + */ + List selectRoleOfNoLook(Long roleId); + diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 1201b29d..468ce041 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -251,6 +251,14 @@ public class ProRoleService implements IProRoleService { private List getRealMemberRolesShowByProjectIdAll(Long projectId, Long currentUserId) { List memberRoleList; memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); + //查找对谁不可见 + for (ProjectVo.RoleInfo roleInfo : memberRoleList) { + List noLookList = proRoleDao.selectRoleOfNoLook(roleInfo.getId()); + if (CollectionUtil.isNotEmpty(noLookList)){ + roleInfo.getRoleOfNoLook().addAll(noLookList); + } + } + return memberRoleList; } @@ -773,6 +781,16 @@ public class ProRoleService implements IProRoleService { if (ObjectUtil.isNull(project)) { throw new BaseException(CodeEnum.NOT_PROJECT); } + //查找项目配置 + String milestone = ""; + ProShowExample proShowExample = new ProShowExample(); + proShowExample.createCriteria().andProjectIdEqualTo(projectId.getProjectId()); + List proShows = proShowDao.selectByExample(proShowExample); + if (CollectionUtil.isNotEmpty(proShows)){ + Byte milestoneSubtask = proShows.get(0).getMilestoneSubtask(); + milestone = milestoneSubtask == 0 ? "里程碑":null; + } + long beginTime = projectId.getStartTime() == null ? project.getBeginTime() : projectId.getStartTime(); long endTime = projectId.getEndTime() == null ? project.getEndTime() : projectId.getEndTime(); //1、查找一级任务 @@ -783,6 +801,7 @@ public class ProRoleService implements IProRoleService { List firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); log.info("查找到一级任务:{}", firstTaskDetailList); if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { + String finalMilestone = milestone; firstTaskDetailList.forEach(firstTaskDetail -> { int sequence = 1; TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); @@ -790,7 +809,7 @@ public class ProRoleService implements IProRoleService { normalTask.setDetailId(firstTaskDetail.getId()); normalTask.setSequence(sequence); - List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), "里程碑",beginTime,endTime); + List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), finalMilestone,beginTime,endTime); List secondList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(secondTaskList)) { secondTaskList.forEach(secondTask -> { diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 184f860a..1b2cd0ca 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -70,28 +70,28 @@ @@ -445,4 +445,23 @@ pmr.role_id = #{roleId} AND pmr.rec_status = 0 + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/ProShowMapper.xml b/tall/src/main/resources/mapper_raw/ProShowMapper.xml index dd83eae0..06e24aca 100644 --- a/tall/src/main/resources/mapper_raw/ProShowMapper.xml +++ b/tall/src/main/resources/mapper_raw/ProShowMapper.xml @@ -21,6 +21,7 @@ + @@ -83,7 +84,7 @@ id, project_id, slide, filter, is_show_mvp, style, create_task, time_show, duration, show_shortcuts, select_task_type, detail_path, pims_nav_type, share_change, share_change_code, - created_at, updated_at, rec_status, role_belong + created_at, updated_at, rec_status, role_belong, milestone_subtask @@ -318,6 +325,9 @@ role_belong = #{record.roleBelong,jdbcType=TINYINT}, + + milestone_subtask = #{record.milestoneSubtask,jdbcType=TINYINT}, + @@ -343,7 +353,8 @@ created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, rec_status = #{record.recStatus,jdbcType=TINYINT}, - role_belong = #{record.roleBelong,jdbcType=TINYINT} + role_belong = #{record.roleBelong,jdbcType=TINYINT}, + milestone_subtask = #{record.milestoneSubtask,jdbcType=TINYINT} @@ -405,6 +416,9 @@ role_belong = #{roleBelong,jdbcType=TINYINT}, + + milestone_subtask = #{milestoneSubtask,jdbcType=TINYINT}, + where id = #{id,jdbcType=BIGINT} @@ -427,7 +441,8 @@ created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, rec_status = #{recStatus,jdbcType=TINYINT}, - role_belong = #{roleBelong,jdbcType=TINYINT} + role_belong = #{roleBelong,jdbcType=TINYINT}, + milestone_subtask = #{milestoneSubtask,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file