Browse Source

20210723修改任务状态

tall3
zy_Java 4 years ago
parent
commit
1ac2743790
  1. 9
      common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java
  2. 5
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java
  3. 12
      common/src/main/java/com/ccsens/common/service/TaskService.java
  4. 33
      common/src/main/resources/mapper_dao/ProRoleDao.xml
  5. 21
      common/src/main/resources/mapper_dao/ProTaskDetailDao.xml

9
common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java

@ -17,4 +17,13 @@ public interface ProRoleDao extends ProRoleMapper {
*/
Long findRoleOfProjectId(@Param("roleId") Long roleId);
/**
* 查看当前用户所属角色的标签等级权限
*/
Integer isPmByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId);
/**
* 查看当前用户是否是任务的负责人
*/
Integer isExecutorByUserId(@Param("userId")Long userId, @Param("taskDetailId")Long taskDetailId);
}

5
common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java

@ -53,4 +53,9 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
*/
List<TaskVo.QueryTask> continueQueryTask(@Param("roleId") Long roleId,@Param("timeUnit") int timeUnit,@Param("timeNode") Long timeNode
,@Param("queryType") int queryType,@Param("query") String query,@Param("timeFormat") String timeFormat);
/**
* 根据任务详情id查找项目id
*/
Long projectIdByTaskDetailId(@Param("taskDetailId") Long taskDetailId);
}

12
common/src/main/java/com/ccsens/common/service/TaskService.java

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.common.bean.dto.TaskDto;
import com.ccsens.common.bean.po.ProTaskDetail;
import com.ccsens.common.bean.po.ProTaskSub;
import com.ccsens.common.bean.vo.TaskVo;
import com.ccsens.common.persist.dao.*;
@ -202,7 +203,18 @@ public class TaskService implements ITaskService{
if(ObjectUtil.isNull(proTaskSub)){
throw new BaseException(CommonCodeError.NOT_TASK);
}
//根据任务查找项目id
Long projectId = taskDetailDao.projectIdByTaskDetailId(proTaskSub.getTaskDetailId());
if(ObjectUtil.isNull(projectId)){
throw new BaseException(CommonCodeError.NOT_TASK);
}
//验证当前成员的权限(是该任务的负责人,或是项目经理,可以修改)
Integer pm = roleDao.isPmByUserId(userId,projectId);
//验证是否是任务负责人
Integer executor = roleDao.isExecutorByUserId(userId,proTaskSub.getTaskDetailId());
if(pm < 2 && executor == 0){
throw new BaseException(CommonCodeError.NOT_TASK);
}
//根据状态修改信息
//开始 添加操作记录 修改任务的状态为进行中,实际开始时间为当前时间,实际时长清空
//暂停 判断任务是否是进行中, 修改任务的状态为暂停,计算实际时长 添加操作记录

33
common/src/main/resources/mapper_dao/ProRoleDao.xml

@ -22,5 +22,38 @@
rec_status = 0
AND id = #{roleId}
</select>
<select id="isPmByUserId" resultType="java.lang.Integer">
SELECT
Max(l.`level`)
FROM
t_pro_member m,
t_pro_role_member rm,
t_pro_role r,
t_label l
WHERE
m.user_id = #{userId}
and m.project_id = #{projectId}
and m.id = rm .member_id
and rm.role_id = r.id
and r.label_id = l.id
and m.rec_status = 0
and rm.rec_status = 0
and r.rec_status = 0
and l.rec_status = 0
</select>
<select id="isExecutorByUserId" resultType="java.lang.Integer">
SELECT
count(*)
FROM
t_pro_member m
LEFT JOIN t_pro_role_member rm on m.id = rm.member_id
LEFT JOIN t_pro_role_task rt on rm.role_id = rt.role_id
WHERE
m.user_id = #{userId}
and m.rec_status = 0
and rm.rec_status = 0
and rt.task_id = #{taskDetailId}
and rt.rec_status = 0
</select>
</mapper>

21
common/src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -271,5 +271,26 @@
AND llbb.business_type = 0
AND ll.`level` >= #{timeUnit}
</select>
<select id="projectIdByTaskDetailId" resultType="java.lang.Long">
SELECT
b.business_id
FROM
(SELECT l.id as labelId FROM t_label l LEFT JOIN t_label_type lt on l.label_type_id = lt.id WHERE lt.label_type = 1 and l.level = 0 and l.rec_status = 0 and lt.rec_status = 0) l,
(SELECT
@r as _id ,
@r:=(SELECT @r:=parent_task_detail_id FROM t_pro_parent_task WHERE task_detail_id = _id and rec_status = 0) as parentId
FROM
(SELECT @r := #{taskDetailId}) d,
t_pro_parent_task p
WHERE
@r is not null
)p,
t_label_business b
WHERE
l.labelId = b.label_id
and p.parentId = b.business_id
and b.rec_status = 0
limit 1
</select>
</mapper>
Loading…
Cancel
Save