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. 118
      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 java.io.ByteArrayInputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Data
@ -148,7 +149,7 @@ public class TaskVo {
@ApiModelProperty("插件")
private List<PluginVo> plugins;
@ApiModelProperty("二级任务")
private List<NormalTask> secondTasks;
private List<NormalTask> secondTasks = new ArrayList<>();
@ApiModelProperty("时间状态 0:正常 1:任务开始 2:任务结束")
private Byte timeStatus = 0;
@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 endTime 结束时间
* @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);
@ -95,4 +96,11 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
* @return 分解任务 List
*/
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());
proTaskInfo.setGlobalTaskList(task.getGlobal());
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;

118
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.util.ObjectUtil;
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.po.*;
import com.ccsens.tall.bean.vo.*;
import com.ccsens.tall.persist.dao.*;
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.ProTaskInputDocMapper;
import com.ccsens.tall.util.TallConstant;
import com.ccsens.tall.util.TaskUtil;
import com.ccsens.util.CodeEnum;
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.NatureToDate;
import com.ccsens.util.exception.BaseException;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
@ -204,6 +194,39 @@ public class ProTaskDetailService implements IProTaskDetailService {
normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setId(taskDeliverService.isTaskOrSubTime(firstTaskDetail.getId()));
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();
configExample.createCriteria().andTaskIdEqualTo(firstTaskDetail.getId()).andPlaceLocationEqualTo((byte) 0);
@ -232,6 +255,52 @@ public class ProTaskDetailService implements IProTaskDetailService {
// if (ObjectUtil.isNotNull(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);
//二级任务完成状态
@ -434,6 +503,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
// 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查找 负责人名称 检查人名称
Long executorRole = normalTask.getExecutorRole();
ProRole executor = proRoleDao.selectByPrimaryKey(executorRole);
@ -454,6 +530,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
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);
@ -850,8 +934,18 @@ public class ProTaskDetailService implements IProTaskDetailService {
//根据任务id查询项目下项目经理
Long pmId = taskDetailDao.selectPmByTaskId(task.getId());
ProRole proRole = proRoleDao.selectByPrimaryKey(pmId);
taskDetail.setCheckerRole(proRole.getId());
taskDetail.setCheckerRoleName(proRole.getName());
if (ObjectUtil.isNotNull(proRole)){
taskDetail.setCheckerRole(proRole.getId());
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());
}
}
}

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

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

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

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