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 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();
}

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");
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 {

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

@ -185,6 +185,8 @@ public class ProjectVo {
private String relevanceProjectName;
@ApiModelProperty("成员信息")
private List<ProMemberVo> members;
@ApiModelProperty("对谁不可见")
private List<RolesOfNoLook> 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

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);
/**
* 根据角色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) {
List<ProjectVo.RoleInfo> memberRoleList;
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;
}
@ -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<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 endTime = projectId.getEndTime() == null ? project.getEndTime() : projectId.getEndTime();
//1、查找一级任务
@ -783,6 +801,7 @@ public class ProRoleService implements IProRoleService {
List<ProTaskDetail> 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<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<>();
if (CollectionUtil.isNotEmpty(secondTaskList)) {
secondTaskList.forEach(secondTask -> {

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

@ -70,28 +70,28 @@
<select id="selectSecondRolesByProjectId" parameterType="java.util.Map"
resultMap="resultMap_ProRoleInfo">
select
pr.id as rId,
pr.name as rName,
pr.parent_id as parentId,
m.id as mId,
m.nickname as mName,
m.phone as mPhone,
m.user_id as mUserId,
m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole,
pr.relevance_project_id as relevanceProjectId,
(SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName
from
t_pro_role pr 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
pr.id as rId,
pr.name as rName,
pr.parent_id as parentId,
m.id as mId,
m.nickname as mName,
m.phone as mPhone,
m.user_id as mUserId,
m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole,
pr.relevance_project_id as relevanceProjectId,
(SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName
from t_pro_role pr
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
where
pr.project_id = #{projectId}
pr.project_id = #{projectId}
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
pr.name not IN ('全体成员','观众','MVP')
pr.name not IN ('全体成员','观众','MVP')
AND
pr.rec_status = 0
pr.rec_status = 0
AND (mr.rec_status = 0 or mr.rec_status is null)
AND (m.rec_status = 0 or m.rec_status is null)
</select>
@ -445,4 +445,23 @@
pmr.role_id = #{roleId}
AND pmr.rec_status = 0
</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>

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

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