Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

recovery
zy_Java 4 years ago
parent
commit
ea429a061f
  1. 3
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  2. 10
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
  3. 7
      tall/src/main/java/com/ccsens/tall/service/LwbsService.java
  4. 114
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  5. 7
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  6. 36
      tall/src/main/resources/mapper_dao/TaskDetailDao.xml

3
tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java

@ -13,6 +13,7 @@ import lombok.Setter;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Data @Data
@ -148,7 +149,7 @@ public class TaskVo {
@ApiModelProperty("插件") @ApiModelProperty("插件")
private List<PluginVo> plugins; private List<PluginVo> plugins;
@ApiModelProperty("二级任务") @ApiModelProperty("二级任务")
private List<NormalTask> secondTasks; private List<NormalTask> secondTasks = new ArrayList<>();
@ApiModelProperty("时间状态 0:正常 1:任务开始 2:任务结束") @ApiModelProperty("时间状态 0:正常 1:任务开始 2:任务结束")
private Byte timeStatus = 0; private Byte timeStatus = 0;
@ApiModelProperty("当前周期内任务的序号") @ApiModelProperty("当前周期内任务的序号")

10
tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java

@ -68,7 +68,8 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
* @param startTime 开始时间 * @param startTime 开始时间
* @param endTime 结束时间 * @param endTime 结束时间
* @param userId 当前用户的userId * @param userId 当前用户的userId
* @return * @param roleIds 角色id
* @return lwb任务
*/ */
List<TaskVo.NormalTask> queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId,@Param("roleIds") List<Long> roleIds); List<TaskVo.NormalTask> queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId,@Param("roleIds") List<Long> roleIds);
@ -95,4 +96,11 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
* @return 分解任务 List * @return 分解任务 List
*/ */
List<TaskVo.AboutWeekTask> selectTaskByExecutorRoleId(@Param("roleIds") List<Long> roleIds,@Param("startTime") Long startTime,@Param("endTime") Long endTime); List<TaskVo.AboutWeekTask> selectTaskByExecutorRoleId(@Param("roleIds") List<Long> roleIds,@Param("startTime") Long startTime,@Param("endTime") Long endTime);
/**
* 根据任务详情id查询二级任务
* @param detailId 任务详情id
* @return 二级任务
*/
List<TaskVo.NormalTask> getSecondTasks(Long detailId);
} }

7
tall/src/main/java/com/ccsens/tall/service/LwbsService.java

@ -117,6 +117,13 @@ public class LwbsService implements ILwbsService{
TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess());
proTaskInfo.setGlobalTaskList(task.getGlobal()); proTaskInfo.setGlobalTaskList(task.getGlobal());
proTaskInfo.setNormalTaskList(task.getCommonTask()); proTaskInfo.setNormalTaskList(task.getCommonTask());
//查看普通任务下是否有子任务
if (CollectionUtil.isNotEmpty(proTaskInfo.getNormalTaskList())){
for (TaskVo.NormalTask normalTask : proTaskInfo.getNormalTaskList()) {
List<TaskVo.NormalTask> secondTasks = taskDetailDao.getSecondTasks(normalTask.getDetailId());
normalTask.getSecondTasks().addAll(secondTasks);
}
}
} }
} }
return proTaskInfo; return proTaskInfo;

114
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -5,18 +5,12 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.cloudutil.feign.MtFeignClient;
import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.dto.TaskDto;
import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.*; import com.ccsens.tall.bean.vo.*;
import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.persist.dao.ProTaskShowDao; import com.ccsens.tall.persist.dao.ProTaskShowDao;
import com.ccsens.tall.persist.mapper.ProPluginConfigMapper;
import com.ccsens.tall.persist.mapper.ProTaskDeliverMapper; import com.ccsens.tall.persist.mapper.ProTaskDeliverMapper;
import com.ccsens.tall.persist.mapper.ProTaskInputDocMapper;
import com.ccsens.tall.util.TallConstant;
import com.ccsens.tall.util.TaskUtil; import com.ccsens.tall.util.TaskUtil;
import com.ccsens.util.CodeEnum; import com.ccsens.util.CodeEnum;
import com.ccsens.util.DateUtil; import com.ccsens.util.DateUtil;
@ -25,18 +19,14 @@ import com.ccsens.util.WebConstant;
import com.ccsens.util.cron.CronConstant; import com.ccsens.util.cron.CronConstant;
import com.ccsens.util.cron.NatureToDate; import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
@ -204,6 +194,39 @@ public class ProTaskDetailService implements IProTaskDetailService {
normalTask.setDetailId(firstTaskDetail.getId()); normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setId(taskDeliverService.isTaskOrSubTime(firstTaskDetail.getId())); normalTask.setId(taskDeliverService.isTaskOrSubTime(firstTaskDetail.getId()));
normalTask.setSequence(sequence); normalTask.setSequence(sequence);
if(ObjectUtil.isNotNull(firstTaskDetail.getProjectId())){
SysProject sysProject = sysProjectDao.selectByPrimaryKey(firstTaskDetail.getProjectId());
if(ObjectUtil.isNotNull(sysProject)){
normalTask.setProjectName(sysProject.getName());
}
}
//负责人
if(ObjectUtil.isNotNull(firstTaskDetail.getExecutorRole())){
ProRole proRole = proRoleDao.selectByPrimaryKey(firstTaskDetail.getExecutorRole());
if(ObjectUtil.isNotNull(proRole)){
normalTask.setExecutorRoleName(proRole.getName());
}
}
//检查人
if(ObjectUtil.isNotNull(firstTaskDetail.getCheckerRole())){
ProRole proRole = proRoleDao.selectByPrimaryKey(firstTaskDetail.getCheckerRole());
if(ObjectUtil.isNotNull(proRole)){
normalTask.setCheckerRoleName(proRole.getName());
}
}
//查询当前任务的父任务
if(null != firstTaskDetail.getParentId() && 0 != firstTaskDetail.getParentId()){
ProTaskDetail parentTask = taskDetailDao.selectByPrimaryKey(firstTaskDetail.getParentId());
if(ObjectUtil.isNotNull(parentTask)){
normalTask.setParentId(parentTask.getId());
normalTask.setParentName(parentTask.getName());
}
}
//firstTaskDetail.getProjectId(); //项目id
//firstTaskDetail.getExecutorRole(); //负责人id
//firstTaskDetail.getCheckerRole(); //检查人id
// 查询任务对应的配置 // 查询任务对应的配置
ProPluginConfigExample configExample = new ProPluginConfigExample(); ProPluginConfigExample configExample = new ProPluginConfigExample();
configExample.createCriteria().andTaskIdEqualTo(firstTaskDetail.getId()).andPlaceLocationEqualTo((byte) 0); configExample.createCriteria().andTaskIdEqualTo(firstTaskDetail.getId()).andPlaceLocationEqualTo((byte) 0);
@ -232,6 +255,52 @@ public class ProTaskDetailService implements IProTaskDetailService {
// if (ObjectUtil.isNotNull(score)) { // if (ObjectUtil.isNotNull(score)) {
// task.setScore(score); // task.setScore(score);
// } // }
ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(task.getDetailId());
if(ObjectUtil.isNotNull(proTaskDetail.getParentId())){
task.setParentId(proTaskDetail.getParentId());
ProTaskDetail proTaskDetail1 = taskDetailDao.selectByPrimaryKey(proTaskDetail.getParentId());
if(ObjectUtil.isNotNull(proTaskDetail1)){
task.setParentName(proTaskDetail1.getName());
}
}else{
task.setParentId(proTaskDetail.getParentId());
}
if(ObjectUtil.isNotNull(proTaskDetail)){
//proTaskDetail.getProjectId()//项目id
//proTaskDetail.getCheckerRole(); //检查人id
//proTaskDetail.getExecutorRole(); // 负责人id
if(ObjectUtil.isNotNull(proTaskDetail.getProjectId())){
SysProject sysProject = sysProjectDao.selectByPrimaryKey(proTaskDetail.getProjectId());
if(ObjectUtil.isNotNull(sysProject)){
task.setProjectName(sysProject.getName());
}
}
//检查人
if(ObjectUtil.isNotNull(proTaskDetail.getCheckerRole())){
ProRole proRole = proRoleDao.selectByPrimaryKey(proTaskDetail.getCheckerRole());
if(ObjectUtil.isNotNull(proRole)){
task.setExecutorRoleName(proRole.getName());
}
}
//负责人
if(ObjectUtil.isNotNull(proTaskDetail.getExecutorRole())){
ProRole proRole = proRoleDao.selectByPrimaryKey(proTaskDetail.getExecutorRole());
if(ObjectUtil.isNotNull(proRole)){
task.setCheckerRoleName(proRole.getName());
}
}
//查询当前任务的父任务
if(null != proTaskDetail.getParentId() && 0 != proTaskDetail.getParentId()){
ProTaskDetail parentTask = taskDetailDao.selectByPrimaryKey(proTaskDetail.getParentId());
if(ObjectUtil.isNotNull(parentTask)){
task.setParentId(parentTask.getId());
task.setParentName(parentTask.getName());
}
}
}
//处理插件 //处理插件
managePlugin(currentUserId, roleId, task, imitation); managePlugin(currentUserId, roleId, task, imitation);
//二级任务完成状态 //二级任务完成状态
@ -434,6 +503,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
// normalTask.setScore(score); // normalTask.setScore(score);
// } // }
// } // }
//查找所属项目名
if (null!=normalTask.getProjectId() && 0!=normalTask.getProjectId()){
SysProject project = sysProjectDao.selectByPrimaryKey(normalTask.getProjectId());
if (ObjectUtil.isNotNull(project)){
normalTask.setProjectName(project.getName());
}
}
//通过角色id查找 负责人名称 检查人名称 //通过角色id查找 负责人名称 检查人名称
Long executorRole = normalTask.getExecutorRole(); Long executorRole = normalTask.getExecutorRole();
ProRole executor = proRoleDao.selectByPrimaryKey(executorRole); ProRole executor = proRoleDao.selectByPrimaryKey(executorRole);
@ -454,6 +530,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
normalTask.setCheckerRoleName(proRole.getName()); normalTask.setCheckerRoleName(proRole.getName());
} }
//查询当前任务的父任务
if(null != normalTask.getParentId() && 0 != normalTask.getParentId()){
ProTaskDetail parentTask = taskDetailDao.selectByPrimaryKey(normalTask.getParentId());
if(ObjectUtil.isNotNull(parentTask)){
normalTask.setParentId(parentTask.getId());
normalTask.setParentName(parentTask.getName());
}
}
//处理插件 //处理插件
managePlugin(currentUserId, roleId, normalTask, imitation); managePlugin(currentUserId, roleId, normalTask, imitation);
@ -850,10 +934,20 @@ public class ProTaskDetailService implements IProTaskDetailService {
//根据任务id查询项目下项目经理 //根据任务id查询项目下项目经理
Long pmId = taskDetailDao.selectPmByTaskId(task.getId()); Long pmId = taskDetailDao.selectPmByTaskId(task.getId());
ProRole proRole = proRoleDao.selectByPrimaryKey(pmId); ProRole proRole = proRoleDao.selectByPrimaryKey(pmId);
if (ObjectUtil.isNotNull(proRole)){
taskDetail.setCheckerRole(proRole.getId()); taskDetail.setCheckerRole(proRole.getId());
taskDetail.setCheckerRoleName(proRole.getName()); taskDetail.setCheckerRoleName(proRole.getName());
} }
} }
//查询当前任务的父任务
if(null != taskDetail.getParentId() && 0 != taskDetail.getParentId()){
ProTaskDetail parentTask = taskDetailDao.selectByPrimaryKey(taskDetail.getParentId());
if(ObjectUtil.isNotNull(parentTask)){
taskDetail.setParentId(parentTask.getId());
taskDetail.setParentName(parentTask.getName());
}
}
}
return taskDetail; return taskDetail;
} }

7
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -1254,14 +1254,19 @@ public class TaskDeliverService implements ITaskDeliverService {
//查找任务详情id //查找任务详情id
Long taskDetailId = null; Long taskDetailId = null;
//查找项目id
Long projectId = null;
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(param.getTaskId()); ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(param.getTaskId());
if(ObjectUtil.isNotNull(taskDetail)){ if(ObjectUtil.isNotNull(taskDetail)){
taskDetailId = taskDetail.getId(); taskDetailId = taskDetail.getId();
projectId = taskDetail.getProjectId();
}else { }else {
ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId());
if(ObjectUtil.isNotNull(proTaskSubTime)){ if(ObjectUtil.isNotNull(proTaskSubTime)){
ProTaskDetail task = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); ProTaskDetail task = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId());
if(ObjectUtil.isNotNull(task)){ if(ObjectUtil.isNotNull(task)){
projectId = task.getId();
taskDetailId = task.getId(); taskDetailId = task.getId();
} }
} }
@ -1288,7 +1293,7 @@ public class TaskDeliverService implements ITaskDeliverService {
taskDeliverDao.insertSelective(proTaskDeliver); taskDeliverDao.insertSelective(proTaskDeliver);
} }
normalTask = taskDetailService.getTaskInfoByTaskId(userId, taskDetail.getProjectId(), param.getTaskId(), null); normalTask = taskDetailService.getTaskInfoByTaskId(userId, projectId, param.getTaskId(), null);
return normalTask; return normalTask;
} }

36
tall/src/main/resources/mapper_dao/TaskDetailDao.xml

@ -40,6 +40,7 @@
<result column="importParam" property="importParam" /> <result column="importParam" property="importParam" />
<result column="priority" property="priority" /> <result column="priority" property="priority" />
<result column="milestone" property="milestone" /> <result column="milestone" property="milestone" />
<result column="tParentId" property="parentId" />
<collection property="plugins" ofType="com.ccsens.tall.bean.vo.TaskVo$PluginVo"> <collection property="plugins" ofType="com.ccsens.tall.bean.vo.TaskVo$PluginVo">
<id column="pId" property="id"/> <id column="pId" property="id"/>
<result column="pName" property="name"/> <result column="pName" property="name"/>
@ -97,7 +98,8 @@
sp.id as spid, sp.id as spid,
sp.show_type as spShowType, sp.show_type as spShowType,
d.priority as priority, d.priority as priority,
d.milestone as milestone d.milestone as milestone,
d.parent_id AS tParentId
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id 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 LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -162,6 +164,7 @@
d.project_id as tProjectId, d.project_id as tProjectId,
d.description as tDescription, d.description as tDescription,
d.executor_role as tExecutorRole, d.executor_role as tExecutorRole,
d.checker_role as checkerRole,
s.begin_time as tBeginTime, s.begin_time as tBeginTime,
s.end_time as tEndTime, s.end_time as tEndTime,
d.cycle as tCycle, d.cycle as tCycle,
@ -254,7 +257,8 @@
sp.description as spDescription, sp.description as spDescription,
sp.id as spid, sp.id as spid,
sp.show_type as spShowType, sp.show_type as spShowType,
d.milestone as milestone d.milestone as milestone,
d.parent_id AS tParentId
FROM FROM
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id 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 LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id
@ -660,6 +664,7 @@
s.rec_status = 0 s.rec_status = 0
and d.executor_role = #{userId} and d.executor_role = #{userId}
AND d.project_id = 0 AND d.project_id = 0
AND d.parent_id = 0
order by s.begin_time order by s.begin_time
)t )t
LEFT JOIN LEFT JOIN
@ -797,4 +802,31 @@
AND tst.begin_time &gt;= #{startTime} AND tst.begin_time &gt;= #{startTime}
AND tst.end_time &lt;= #{endTime} AND tst.end_time &lt;= #{endTime}
</select> </select>
<select id="getSecondTasks" resultType="com.ccsens.tall.bean.vo.TaskVo$NormalTask">
SELECT
td.id AS detailId,
td.executor_role AS executorRole,
td.parent_id AS parentId,
(
SELECT
`name`
FROM
t_pro_task_detail
WHERE
id = #{detailId}
) AS parentName,
td.begin_time AS beginTime,
td.end_time AS endTime,
td.priority AS priority,
td.name AS name,
tst.id AS id,
td.project_id AS projectId
FROM
t_pro_task_detail AS td
LEFT JOIN t_pro_task_sub_time AS tst ON tst.task_detail_id = td.id AND tst.rec_status = 0
WHERE
td.parent_id = #{detailId}
AND td.rec_status = 0
</select>
</mapper> </mapper>
Loading…
Cancel
Save