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