Browse Source

返回不可见角色,增加查里程碑或全部字段

recovery
ma 4 years ago
parent
commit
df5ea6970e
  1. 11
      tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java
  2. 60
      tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java
  3. 10
      tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java
  4. 7
      tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java
  5. 21
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  6. 55
      tall/src/main/resources/mapper_dao/ProRoleDao.xml
  7. 25
      tall/src/main/resources/mapper_raw/ProShowMapper.xml

11
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 roleBelong;
private Byte milestoneSubtask;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -196,6 +198,14 @@ public class ProShow implements Serializable {
this.roleBelong = roleBelong; this.roleBelong = roleBelong;
} }
public Byte getMilestoneSubtask() {
return milestoneSubtask;
}
public void setMilestoneSubtask(Byte milestoneSubtask) {
this.milestoneSubtask = milestoneSubtask;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -221,6 +231,7 @@ public class ProShow implements Serializable {
sb.append(", updatedAt=").append(updatedAt); sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);
sb.append(", roleBelong=").append(roleBelong); sb.append(", roleBelong=").append(roleBelong);
sb.append(", milestoneSubtask=").append(milestoneSubtask);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

60
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"); addCriterion("role_belong not between", value1, value2, "roleBelong");
return (Criteria) this; 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<Byte> values) {
addCriterion("milestone_subtask in", values, "milestoneSubtask");
return (Criteria) this;
}
public Criteria andMilestoneSubtaskNotIn(List<Byte> 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 { public static class Criteria extends GeneratedCriteria {

10
tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java

@ -185,6 +185,8 @@ public class ProjectVo {
private String relevanceProjectName; private String relevanceProjectName;
@ApiModelProperty("成员信息") @ApiModelProperty("成员信息")
private List<ProMemberVo> members; private List<ProMemberVo> members;
@ApiModelProperty("对谁不可见")
private List<RolesOfNoLook> roleOfNoLook = new ArrayList<>();
@JsonIgnore @JsonIgnore
private Long parentId; //一级角色Id private Long parentId; //一级角色Id
@JsonIgnore @JsonIgnore
@ -194,6 +196,14 @@ public class ProjectVo {
} }
@ApiModel @ApiModel
@Data @Data
public static class RolesOfNoLook{
@ApiModelProperty("不可见角色id")
private Long id;
@ApiModelProperty("不可见角色名称")
private String name;
}
@ApiModel
@Data
public static class ProMemberVo{ public static class ProMemberVo{
@JsonIgnore @JsonIgnore
private Long mUserId;//成员的userId private Long mUserId;//成员的userId

7
tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java

@ -121,6 +121,13 @@ public interface ProRoleDao extends ProRoleMapper{
*/ */
List<ProjectVo.ProMemberVo> selectMemberOfRole(Long roleId); List<ProjectVo.ProMemberVo> selectMemberOfRole(Long roleId);
/**
* 根据角色id查询不可见角色列表
* @param roleId 二级角色id
* @return 不可见角色list
*/
List<ProjectVo.RolesOfNoLook> selectRoleOfNoLook(Long roleId);

21
tall/src/main/java/com/ccsens/tall/service/ProRoleService.java

@ -251,6 +251,14 @@ public class ProRoleService implements IProRoleService {
private List<ProjectVo.RoleInfo> getRealMemberRolesShowByProjectIdAll(Long projectId, Long currentUserId) { private List<ProjectVo.RoleInfo> getRealMemberRolesShowByProjectIdAll(Long projectId, Long currentUserId) {
List<ProjectVo.RoleInfo> memberRoleList; List<ProjectVo.RoleInfo> memberRoleList;
memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId);
//查找对谁不可见
for (ProjectVo.RoleInfo roleInfo : memberRoleList) {
List<ProjectVo.RolesOfNoLook> noLookList = proRoleDao.selectRoleOfNoLook(roleInfo.getId());
if (CollectionUtil.isNotEmpty(noLookList)){
roleInfo.getRoleOfNoLook().addAll(noLookList);
}
}
return memberRoleList; return memberRoleList;
} }
@ -773,6 +781,16 @@ public class ProRoleService implements IProRoleService {
if (ObjectUtil.isNull(project)) { if (ObjectUtil.isNull(project)) {
throw new BaseException(CodeEnum.NOT_PROJECT); throw new BaseException(CodeEnum.NOT_PROJECT);
} }
//查找项目配置
String milestone = "";
ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId.getProjectId());
List<ProShow> 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 beginTime = projectId.getStartTime() == null ? project.getBeginTime() : projectId.getStartTime();
long endTime = projectId.getEndTime() == null ? project.getEndTime() : projectId.getEndTime(); long endTime = projectId.getEndTime() == null ? project.getEndTime() : projectId.getEndTime();
//1、查找一级任务 //1、查找一级任务
@ -783,6 +801,7 @@ public class ProRoleService implements IProRoleService {
List<ProTaskDetail> firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); List<ProTaskDetail> firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample);
log.info("查找到一级任务:{}", firstTaskDetailList); log.info("查找到一级任务:{}", firstTaskDetailList);
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
String finalMilestone = milestone;
firstTaskDetailList.forEach(firstTaskDetail -> { firstTaskDetailList.forEach(firstTaskDetail -> {
int sequence = 1; int sequence = 1;
TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
@ -790,7 +809,7 @@ public class ProRoleService implements IProRoleService {
normalTask.setDetailId(firstTaskDetail.getId()); normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setSequence(sequence); normalTask.setSequence(sequence);
List<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), "里程碑",beginTime,endTime); List<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), finalMilestone,beginTime,endTime);
List<TaskVo.NormalTask> secondList = new ArrayList<>(); List<TaskVo.NormalTask> secondList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(secondTaskList)) { if (CollectionUtil.isNotEmpty(secondTaskList)) {
secondTaskList.forEach(secondTask -> { secondTaskList.forEach(secondTask -> {

55
tall/src/main/resources/mapper_dao/ProRoleDao.xml

@ -70,28 +70,28 @@
<select id="selectSecondRolesByProjectId" parameterType="java.util.Map" <select id="selectSecondRolesByProjectId" parameterType="java.util.Map"
resultMap="resultMap_ProRoleInfo"> resultMap="resultMap_ProRoleInfo">
select select
pr.id as rId, pr.id as rId,
pr.name as rName, pr.name as rName,
pr.parent_id as parentId, pr.parent_id as parentId,
m.id as mId, m.id as mId,
m.nickname as mName, m.nickname as mName,
m.phone as mPhone, m.phone as mPhone,
m.user_id as mUserId, m.user_id as mUserId,
m.stakeholder_id as stakeholderId, m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole, if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole,
pr.relevance_project_id as relevanceProjectId, pr.relevance_project_id as relevanceProjectId,
(SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName (SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName
from from t_pro_role pr
t_pro_role pr LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id
LEFT JOIN t_pro_member m ON mr.member_id = m.id LEFT JOIN t_pro_member m ON mr.member_id = m.id
where where
pr.project_id = #{projectId} pr.project_id = #{projectId}
and and
(SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole') (SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole')
AND AND
pr.name not IN ('全体成员','观众','MVP') pr.name not IN ('全体成员','观众','MVP')
AND AND
pr.rec_status = 0 pr.rec_status = 0
AND (mr.rec_status = 0 or mr.rec_status is null) AND (mr.rec_status = 0 or mr.rec_status is null)
AND (m.rec_status = 0 or m.rec_status is null) AND (m.rec_status = 0 or m.rec_status is null)
</select> </select>
@ -445,4 +445,23 @@
pmr.role_id = #{roleId} pmr.role_id = #{roleId}
AND pmr.rec_status = 0 AND pmr.rec_status = 0
</select> </select>
<select id="selectRoleOfNoLook" resultType="com.ccsens.tall.bean.vo.ProjectVo$RolesOfNoLook">
SELECT
r.id,r.`name`
FROM
t_pro_role AS r
RIGHT JOIN (
SELECT
ree.other_role_id AS id
FROM
t_pro_role AS rr
LEFT JOIN t_pro_role_execlude AS ree ON rr.id = ree.other_role_id
WHERE
ree.rec_status = 0
AND ree.role_id = #{roleId}
) AS nolook ON r.id = nolook.id
WHERE
r.rec_status = 0
</select>
</mapper> </mapper>

25
tall/src/main/resources/mapper_raw/ProShowMapper.xml

@ -21,6 +21,7 @@
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> <result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="role_belong" jdbcType="TINYINT" property="roleBelong" /> <result column="role_belong" jdbcType="TINYINT" property="roleBelong" />
<result column="milestone_subtask" jdbcType="TINYINT" property="milestoneSubtask" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -83,7 +84,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, project_id, slide, filter, is_show_mvp, style, create_task, time_show, duration, 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, 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
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProShowExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProShowExample" resultMap="BaseResultMap">
select select
@ -122,14 +123,14 @@
show_shortcuts, select_task_type, detail_path, show_shortcuts, select_task_type, detail_path,
pims_nav_type, share_change, share_change_code, pims_nav_type, share_change, share_change_code,
created_at, updated_at, rec_status, created_at, updated_at, rec_status,
role_belong) role_belong, milestone_subtask)
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{slide,jdbcType=TINYINT}, values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{slide,jdbcType=TINYINT},
#{filter,jdbcType=TINYINT}, #{isShowMvp,jdbcType=TINYINT}, #{style,jdbcType=TINYINT}, #{filter,jdbcType=TINYINT}, #{isShowMvp,jdbcType=TINYINT}, #{style,jdbcType=TINYINT},
#{createTask,jdbcType=TINYINT}, #{timeShow,jdbcType=VARCHAR}, #{duration,jdbcType=TINYINT}, #{createTask,jdbcType=TINYINT}, #{timeShow,jdbcType=VARCHAR}, #{duration,jdbcType=TINYINT},
#{showShortcuts,jdbcType=TINYINT}, #{selectTaskType,jdbcType=TINYINT}, #{detailPath,jdbcType=VARCHAR}, #{showShortcuts,jdbcType=TINYINT}, #{selectTaskType,jdbcType=TINYINT}, #{detailPath,jdbcType=VARCHAR},
#{pimsNavType,jdbcType=TINYINT}, #{shareChange,jdbcType=TINYINT}, #{shareChangeCode,jdbcType=VARCHAR}, #{pimsNavType,jdbcType=TINYINT}, #{shareChange,jdbcType=TINYINT}, #{shareChangeCode,jdbcType=VARCHAR},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{roleBelong,jdbcType=TINYINT}) #{roleBelong,jdbcType=TINYINT}, #{milestoneSubtask,jdbcType=TINYINT})
</insert> </insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProShow"> <insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProShow">
insert into t_pro_show insert into t_pro_show
@ -191,6 +192,9 @@
<if test="roleBelong != null"> <if test="roleBelong != null">
role_belong, role_belong,
</if> </if>
<if test="milestoneSubtask != null">
milestone_subtask,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -250,6 +254,9 @@
<if test="roleBelong != null"> <if test="roleBelong != null">
#{roleBelong,jdbcType=TINYINT}, #{roleBelong,jdbcType=TINYINT},
</if> </if>
<if test="milestoneSubtask != null">
#{milestoneSubtask,jdbcType=TINYINT},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProShowExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProShowExample" resultType="java.lang.Long">
@ -318,6 +325,9 @@
<if test="record.roleBelong != null"> <if test="record.roleBelong != null">
role_belong = #{record.roleBelong,jdbcType=TINYINT}, role_belong = #{record.roleBelong,jdbcType=TINYINT},
</if> </if>
<if test="record.milestoneSubtask != null">
milestone_subtask = #{record.milestoneSubtask,jdbcType=TINYINT},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -343,7 +353,8 @@
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}, rec_status = #{record.recStatus,jdbcType=TINYINT},
role_belong = #{record.roleBelong,jdbcType=TINYINT} role_belong = #{record.roleBelong,jdbcType=TINYINT},
milestone_subtask = #{record.milestoneSubtask,jdbcType=TINYINT}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -405,6 +416,9 @@
<if test="roleBelong != null"> <if test="roleBelong != null">
role_belong = #{roleBelong,jdbcType=TINYINT}, role_belong = #{roleBelong,jdbcType=TINYINT},
</if> </if>
<if test="milestoneSubtask != null">
milestone_subtask = #{milestoneSubtask,jdbcType=TINYINT},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -427,7 +441,8 @@
created_at = #{createdAt,jdbcType=TIMESTAMP}, created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}, 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} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>
Loading…
Cancel
Save