From 6c67fd8107c7fcdcd6e08bbaa2195d6b5d0e18be Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Mon, 24 May 2021 15:30:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A2=9E=E5=8A=A0=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=80=85,=E5=88=9B=E5=BB=BA=E8=80=85=E5=8F=AF?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=BF=AE=E6=94=B9=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/tall/bean/po/ProTaskDetail.java | 11 ++++ .../tall/bean/po/ProTaskDetailExample.java | 60 +++++++++++++++++++ .../java/com/ccsens/tall/bean/vo/TaskVo.java | 6 ++ .../tall/service/ProTaskDetailService.java | 40 +++++++++++-- .../tall/service/TaskSubTimeService.java | 1 + .../resources/mapper_dao/TaskDetailDao.xml | 7 ++- .../mapper_raw/ProTaskDetailMapper.xml | 25 ++++++-- 7 files changed, 137 insertions(+), 13 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java index 7fe7fd1b..e13a5eaa 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java @@ -60,6 +60,8 @@ public class ProTaskDetail implements Serializable { private String milestone; + private Long buildUser; + private static final long serialVersionUID = 1L; public Long getId() { @@ -286,6 +288,14 @@ public class ProTaskDetail implements Serializable { this.milestone = milestone == null ? null : milestone.trim(); } + public Long getBuildUser() { + return buildUser; + } + + public void setBuildUser(Long buildUser) { + this.buildUser = buildUser; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -320,6 +330,7 @@ public class ProTaskDetail implements Serializable { sb.append(", recStatus=").append(recStatus); sb.append(", priority=").append(priority); sb.append(", milestone=").append(milestone); + sb.append(", buildUser=").append(buildUser); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java index 82303f41..e7b86b5a 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java @@ -1844,6 +1844,66 @@ public class ProTaskDetailExample { addCriterion("milestone not between", value1, value2, "milestone"); return (Criteria) this; } + + public Criteria andBuildUserIsNull() { + addCriterion("build_user is null"); + return (Criteria) this; + } + + public Criteria andBuildUserIsNotNull() { + addCriterion("build_user is not null"); + return (Criteria) this; + } + + public Criteria andBuildUserEqualTo(Long value) { + addCriterion("build_user =", value, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserNotEqualTo(Long value) { + addCriterion("build_user <>", value, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserGreaterThan(Long value) { + addCriterion("build_user >", value, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserGreaterThanOrEqualTo(Long value) { + addCriterion("build_user >=", value, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserLessThan(Long value) { + addCriterion("build_user <", value, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserLessThanOrEqualTo(Long value) { + addCriterion("build_user <=", value, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserIn(List values) { + addCriterion("build_user in", values, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserNotIn(List values) { + addCriterion("build_user not in", values, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserBetween(Long value1, Long value2) { + addCriterion("build_user between", value1, value2, "buildUser"); + return (Criteria) this; + } + + public Criteria andBuildUserNotBetween(Long value1, Long value2) { + addCriterion("build_user not between", value1, value2, "buildUser"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java index e1d61885..acd62ac0 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java @@ -74,8 +74,11 @@ public class TaskVo { private Byte routineLocation; @ApiModelProperty("入参") private String importParam; + @ApiModelProperty("任务创建人(userId)") + private String buildUser; @ApiModelProperty("任务配置") private ProTaskShow proTaskConfig = new ProTaskShow(); + public Long getDuration(){ if(ObjectUtil.isNotNull(beginTime) && ObjectUtil.isNotNull(endTime)) { return endTime - beginTime; @@ -172,6 +175,9 @@ public class TaskVo { private List outputDoc; @ApiModelProperty("提醒的信息") private List remindInfoList; + @ApiModelProperty("任务创建人(userId)") + private String buildUser; + public Long getDuration(){ if(ObjectUtil.isNotNull(beginTime) && ObjectUtil.isNotNull(endTime)) { return endTime - beginTime; diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index 3e902ef2..543e5300 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -1380,7 +1380,30 @@ public class ProTaskDetailService implements IProTaskDetailService { } //用户在项目中的最高权限 int power = proRoleService.selectPowerByRoleName(currentUserId, taskDetail.getProjectId()); - if (power > 1) { + boolean flag = false; + ProRole executorRole = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); + if (executorRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { + flag = true; + } else { + ProMemberExample memberExample = new ProMemberExample(); + memberExample.createCriteria().andUserIdEqualTo(currentUserId).andProjectIdEqualTo(taskDetail.getProjectId()); + List memberList = proMemberDao.selectByExample(memberExample); + if (CollectionUtil.isNotEmpty(memberList)) { + if (ObjectUtil.isNotNull(executorRole)) { + ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); + memberRoleExample.createCriteria().andRoleIdEqualTo(executorRole.getId()).andMemberIdEqualTo(memberList.get(0).getId()); + if (proMemberRoleDao.countByExample(memberRoleExample) != 0) { + flag = true; + } + } + } + } + //判断用户是否是此任务的的创建人 + if(taskDetail.getBuildUser().equals(currentUserId)){ + flag = true; + } + + if (power > WebConstant.ROLE_POWER.LOOK_POWER.value || flag) { if (ObjectUtil.isNotNull(taskDetail)) { //修改任务删除状态 taskDetail.setRecStatus(WebConstant.REC_STATUS.Deleted.value); @@ -1441,7 +1464,8 @@ public class ProTaskDetailService implements IProTaskDetailService { if (ObjectUtil.isNotNull(taskSubTime)) { taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTime.getTaskDetailId()); } else { - taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); //任务详情 + //任务详情 + taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); } if (ObjectUtil.isNotNull(taskDetail)) { @@ -1468,8 +1492,12 @@ public class ProTaskDetailService implements IProTaskDetailService { } } } + //判断用户是否是此任务的的创建人 + if(taskDetail.getBuildUser().equals(currentUserId)){ + flag = true; + } - if (power > 1 || flag) { + if (power > WebConstant.ROLE_POWER.LOOK_POWER.value || flag) { //任务名 if (StrUtil.isNotEmpty(updateTaskInfo.getName())) { taskDetail.setName(updateTaskInfo.getName()); @@ -1632,9 +1660,9 @@ public class ProTaskDetailService implements IProTaskDetailService { taskDetailDao.updateByPrimaryKeySelective(proTaskDetail); }); - for (ProTaskDetail proTaskDetail : proTaskDetailList) { - - } +// for (ProTaskDetail proTaskDetail : proTaskDetailList) { +// +// } } } else { //父任务id diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java index b063d9cd..5bc740df 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java @@ -363,6 +363,7 @@ public class TaskSubTimeService implements ITaskSubTimeService { detail.setParentId(addTask.getParentTaskId()); detail.setExecutorRole(addTask.getExecutorId()); detail.setMilestone(addTask.getMilestone()); + detail.setBuildUser(currentUserId); //添加任务优先级 if(ObjectUtil.isNotNull(addTask.getPriority())){ detail.setPriority(addTask.getPriority()); diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index 0558492a..8838dae6 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -41,6 +41,7 @@ + @@ -99,7 +100,8 @@ sp.show_type as spShowType, d.priority as priority, d.milestone as milestone, - d.parent_id AS tParentId + d.parent_id AS tParentId, + d.build_user AS buildUser FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id @@ -258,7 +260,8 @@ sp.id as spid, sp.show_type as spShowType, d.milestone as milestone, - d.parent_id AS tParentId + d.parent_id AS tParentId, + d.build_user AS buildUser FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id diff --git a/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml b/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml index 2aa7ca77..2c384c30 100644 --- a/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml +++ b/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml @@ -30,6 +30,7 @@ + @@ -93,7 +94,7 @@ id, project_id, name, description, begin_time, end_time, cycle, parent_id, sub_task, sub_project_id, sub_project, executor_role, checker_role, money, delay, delay_time, loop_to, loop_times, virtual, level, has_group, finish_need_all, all_member, created_at, - updated_at, rec_status, priority, milestone + updated_at, rec_status, priority, milestone, build_user @@ -415,6 +422,9 @@ milestone = #{record.milestone,jdbcType=VARCHAR}, + + build_user = #{record.buildUser,jdbcType=BIGINT}, + @@ -449,7 +459,8 @@ updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, rec_status = #{record.recStatus,jdbcType=TINYINT}, priority = #{record.priority,jdbcType=TINYINT}, - milestone = #{record.milestone,jdbcType=VARCHAR} + milestone = #{record.milestone,jdbcType=VARCHAR}, + build_user = #{record.buildUser,jdbcType=BIGINT} @@ -538,6 +549,9 @@ milestone = #{milestone,jdbcType=VARCHAR}, + + build_user = #{buildUser,jdbcType=BIGINT}, + where id = #{id,jdbcType=BIGINT} @@ -569,7 +583,8 @@ updated_at = #{updatedAt,jdbcType=TIMESTAMP}, rec_status = #{recStatus,jdbcType=TINYINT}, priority = #{priority,jdbcType=TINYINT}, - milestone = #{milestone,jdbcType=VARCHAR} + milestone = #{milestone,jdbcType=VARCHAR}, + build_user = #{buildUser,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file