Browse Source

20220318LWBS

ptos
zy_Java 3 years ago
parent
commit
0086302c1d
  1. 7
      src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java
  2. 14
      src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java
  3. 23
      src/main/java/com/ccsens/ptccsens/service/TallService.java
  4. 15
      src/main/resources/mapper_dao/ProRoleDao.xml
  5. 76
      src/main/resources/mapper_dao/ProTaskDetailDao.xml

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

@ -83,4 +83,11 @@ public interface ProRoleDao extends ProRoleMapper {
List<TallWbsVo.WbsRole> getWbsRoleInfo(@Param("projectId")Long projectId, @Param("isPm")int isPm);
void insertReplace(ProRole role);
/**
* 根据userID查找所有所属的角色
* @param userId 用户id
* @return 返回角色id
*/
List<Long> allRoleByUserId(@Param("userId")Long userId);
}

14
src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java

@ -105,7 +105,7 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @param roleId 角色id
* @return 返回任务列表
*/
List<TallTaskVo.QueryTask> pageQueryRegularTask(@Param("roleId")Long roleId, @Param("timeNode")Long timeNode, @Param("timeUnit")int timeUnit, @Param("queryType")int queryType);
List<TallTaskVo.QueryTask> pageQueryRegularTask(@Param("roleId")Long roleId, @Param("timeNode")Long timeNode, @Param("timeUnit")int timeUnit, @Param("queryType")int queryType, @Param("taskId")Long taskId);
/**
* 通过分解任务id查找任务关联的交付物插件id
@ -134,4 +134,16 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @return 返回二级任务信息
*/
List<TallWbsVo.WbsSecondTask> getSecondTask(@Param("firstId")String firstId);
/**
* 查找所有任务不分项目
* @param roleList 角色列表
* @param timeNode 时间基准点
* @param timeUnit 时间颗粒度
* @param queryType 上查下查
* @param taskId 任务id
* @return 返回任务列表
*/
List<TallTaskVo.QueryTask> getAllTaskByRoleList(@Param("roleList")List<Long> roleList, @Param("timeNode")Long timeNode, @Param("timeUnit")int timeUnit, @Param("queryType")int queryType, @Param("taskId")String taskId);
}

23
src/main/java/com/ccsens/ptccsens/service/TallService.java

@ -694,8 +694,9 @@ public class TallService implements ITallService {
}
//获取任务列表
Long taskId = param.getTriggerType() == 0 ? param.getTaskId() : null;
PageHelper.startPage(param.getPageNum(),param.getPageSize());
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType());
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType(),taskId);
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo = new PageInfo<>(regularTask);
if(CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())){
if(param.getQueryType() == 0){
@ -716,4 +717,24 @@ public class TallService implements ITallService {
return queryTaskPageInfo;
}
@Override
public List<TallTaskVo.QueryTask> queryAllTask(TallTaskDto.QueryAllTask param) {
List<TallTaskVo.QueryTask> queryTaskList = null;
//通过手机号查找服务内的用户
ProUser user = userDao.getUserIdByPhone(param.getPhone());
if(ObjectUtil.isNull(user)){
return queryTaskList;
}
//查找用户所属的成员,查找所属的角色
List<Long> roleList = roleDao.allRoleByUserId(user.getId());
if(CollectionUtil.isNotEmpty(roleList)){
//通过角色和时间等信息,查找任务,如果传入的参数有任务id且code符合当前服务,则排除该任务
String taskId = Constant.BUSINESS_CODE.equals(param.getBusinessCode()) ? param.getTaskId() : null;
PageHelper.startPage(param.getPageNum(),param.getPageSize());
queryTaskList = taskDetailDao.getAllTaskByRoleList(roleList,param.getTimeNode(),param.getTimeUnit(),param.getQueryType(),taskId);
}
return queryTaskList;
}
}

15
src/main/resources/mapper_dao/ProRoleDao.xml

@ -236,4 +236,19 @@
LEFT JOIN t_pro_member_stakeholder ms on m.id = ms.memeber_id and ms.rec_status = 0
</select>
<select id="allRoleByUserId" resultType="java.lang.Long">
SELECT
r.id
FROM
t_pro_role r
LEFT JOIN t_pro_role_member rm on r.id = rm.role_id and rm.rec_status = 0
LEFT JOIN t_pro_member m on m.id = rm.member_id and m.rec_status = 0
LEFT JOIN t_pro_task_detail d on r.project_id = d.id
WHERE
m.user_id = #{userId}
and r.rec_status = 0
and d.rec_status = 0
GROUP BY r.id
</select>
</mapper>

76
src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -543,6 +543,9 @@
<if test="queryType == 1">
AND plan_start_time >= #{timeNode}
</if>
<if test="taskId != null">
and ts.id != #{taskId}
</if>
) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id
LEFT JOIN t_label AS ll ON llbb.label_id = ll.id
@ -646,4 +649,77 @@
LEFT JOIN t_pro_task_plugin tp on tp.task_detail_id = task.detailId and tp.rec_status = 0
GROUP BY task.subId
</select>
<select id="getAllTaskByRoleList" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$QueryTask">
SELECT
alltask.*
FROM
(
SELECT
ts.id,
td.id AS detailId,
td.`name`,
td.description,
ts.plan_start_time AS planStart,
ts.plan_duration,
ts.plan_end_time,
ts.real_end_time,
ts.real_start_time AS realStart,
ts.real_duration,
ts.task_status AS process,
r.project_id as projectId,
rt.role_id as executorRoleId
FROM
t_pro_task_detail AS td
LEFT JOIN t_pro_task_sub AS ts ON ts.task_detail_id = td.id
LEFT JOIN t_pro_role_task AS rt ON rt.task_id = td.id
LEFT JOIN t_pro_role as r on rt.role_id = r.id
LEFT JOIN t_label_business AS lb ON td.id = lb.business_id
LEFT JOIN t_label AS l ON l.id = lb.label_id
LEFT JOIN t_label_type AS lt ON lt.id = l.label_type_id
WHERE
td.rec_status = 0
AND ts.rec_status = 0
AND lb.rec_status = 0
AND l.rec_status = 0
AND lt.rec_status = 0
AND rt.rec_status = 0
AND r.rec_status = 0
AND lb.business_type = 0
AND l.`level` = 3
AND lt.label_type = 1
AND ts.plan_start_time != 0
AND ts.plan_duration != 0
AND rt.role_id in
<foreach collection="roleList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="queryType == 0">
AND plan_start_time &lt; #{timeNode}
</if>
<if test="queryType == 1">
AND plan_start_time >= #{timeNode}
</if>
<if test="taskId != null">
and ts.id != #{taskId}
</if>
) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id
LEFT JOIN t_label AS ll ON llbb.label_id = ll.id
LEFT JOIN t_label_type AS lltt ON ll.label_type_id = lltt.id
WHERE
llbb.rec_status = 0
AND ll.rec_status = 0
AND lltt.rec_status = 0
AND lltt.label_type = 0
AND llbb.business_type = 0
AND ll.`level` >= #{timeUnit}
<if test="queryType == 0">
ORDER BY alltask.planStart DESC,id DESC
</if>
<if test="queryType == 1">
ORDER BY alltask.planStart,id
</if>
</select>
</mapper>
Loading…
Cancel
Save