Browse Source

20210417重写lwbs

recovery
zy_Java 4 years ago
parent
commit
e21c352b42
  1. 23
      tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java
  2. 4
      tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java
  3. 22
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  4. 23
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
  5. 18
      tall/src/main/java/com/ccsens/tall/service/ILwbsService.java
  6. 202
      tall/src/main/java/com/ccsens/tall/service/InputDocService.java
  7. 169
      tall/src/main/java/com/ccsens/tall/service/LwbsService.java
  8. 12
      tall/src/main/java/com/ccsens/tall/util/TaskUtil.java
  9. 18
      tall/src/main/java/com/ccsens/tall/web/LwbsController.java
  10. 7
      tall/src/main/resources/mapper_dao/SysProjectDao.xml
  11. 150
      tall/src/main/resources/mapper_dao/TaskDetailDao.xml

23
tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java

@ -1,5 +1,6 @@
package com.ccsens.tall.bean.dto;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -25,19 +26,31 @@ public class LwbsDto {
public static class SelByProjectIdToTaskDto {
@ApiModelProperty("项目id")
private Long id;
@NotNull
@ApiModelProperty("开始时间")
private Long startTime;
@NotNull
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("完成状态 0全部,1完成,2未完成")
private Integer process = 0;
@ApiModelProperty("优先级排序 0无 1倒叙(优先级高的在前) 2正序")
private Integer priority = 0;
@ApiModelProperty("任务等级")
private Byte level=(byte)2;
// @ApiModelProperty("任务等级")
// private Byte level=(byte)2;
@ApiModelProperty("查询类型(0-我的,1-项目,2-其他)")
private Byte queryType = 1;
private Byte queryType = 0;
public Long getStartTime() {
if(startTime == null){
return DateUtil.beginOfWeek(new Date()).getTime();
}
return startTime;
}
public Long getEndTime() {
if(startTime == null){
return DateUtil.endOfWeek(new Date()).getTime();
}
return endTime;
}
}
}

4
tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java

@ -20,6 +20,10 @@ public class LwbsVo {
private String name;
@ApiModelProperty("项目id")
private Long id;
@ApiModelProperty("开始时间")
private Long beginTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("类型 0我的 1正常的项目 2其他")
private int type = 1;
}

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

@ -66,7 +66,7 @@ public class TaskVo {
@ApiModelProperty("所属项目名称")
private String projectName;
@ApiModelProperty("项目下得全局任务")
private List<NormalTask> normalTaskList;
private List<GlobalTask> normalTaskList;
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")
@ -146,7 +146,7 @@ public class TaskVo {
@ApiModelProperty("当前周期内任务的序号")
private int sequence;
@ApiModelProperty("任务配置")
private ProTaskShow proTaskConfig;
private ProTaskShow proTaskConfig = new ProTaskShow();
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")
@ -204,22 +204,24 @@ public class TaskVo {
@ApiModel
@Data
public static class ProTaskShow{
@JsonIgnore
private Long id;
@ApiModelProperty("开始时间显示样式(默认 MM-DD HH:mm) 为空时不展示时间")
private String timeShow;
private String timeShow = "MM-DD HH:mm";
@ApiModelProperty("时长展示单位 0:根据时长转换成对应分钟或小时 1:不展示 2:转化成分钟 3:转化成小时")
private int duration;
private int duration = 0;
@ApiModelProperty("是否显示新建任务按钮 0不展示 1展示")
private int createTask;
private int createTask = 1;
@ApiModelProperty("是否展示硬件按钮 0不展示 1展示")
private int showHardware;
private int showHardware = 1;
@ApiModelProperty("是否展示交付物按钮 0不展示 1展示")
private int showDeliver;
private int showDeliver = 1;
@ApiModelProperty("是否展示奖惩金额按钮 0不展示 1展示")
private int showMoney;
private int showMoney = 1;
@ApiModelProperty("时间轴上显示计划时间还是实际时间 0计划时间,1实际时间")
private int showRealTime;
private int showRealTime = 0;
@ApiModelProperty("是否展示完成按钮 0不展示 1展示")
private int showFinish;
private int showFinish = 1;
}
@ApiModel

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

@ -62,15 +62,16 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
*/
List<TaskVo.NormalTask> selectOtherTask(Long userId);
// /**
// * 批量添加任务详情表
// * @param taskDetailList
// */
// void saveTaskList(List<ProTaskDetail> taskDetailList);
//
// /**
// * 批量添加subtime
// * @param subList
// */
// void saveSubTimeTaskList(List<ProTaskSubTime> subList);
/**
* 通过项目id获取lwbs的内容
* @param projectId 项目id
* @param startTime 开始时间
* @param endTime 结束时间
* @param userId 当前用户的userId
* @return
*/
List<TaskVo.NormalTask> queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId);
}

18
tall/src/main/java/com/ccsens/tall/service/ILwbsService.java

@ -1,7 +1,25 @@
package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import java.util.List;
/**
* @author
*/
public interface ILwbsService {
/**
* 获取lwbs内的任务
*/
TaskVo.ProTaskInfo queryLwbs(LwbsDto.SelByProjectIdToTaskDto param, Long userId);
/**
* 查询该用户的所有项目
* @param param 开始结束时间
* @param userId userId
* @return 返回项目信息
*/
List<LwbsVo.SelByUserIdToComProjectVo> queryProjectByUserId(LwbsDto.SelByUserIdToComProject param, Long userId);
}

202
tall/src/main/java/com/ccsens/tall/service/InputDocService.java

@ -114,107 +114,107 @@ public class InputDocService implements IInputDocService {
@Override
public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo();
//查询其他
if (param.getQueryType() == 2){
List<TaskVo.NormalTask> taskList = taskDetailDao.selectOtherTask(userId);
//区分全局任务和普通任务
TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess());
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
//如果全局任务不为空
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
for (TaskVo.NormalTask normalTask : task.getGlobalTask()) {
BeanUtil.copyProperties(normalTask,globalTask);
globalTaskList.add(globalTask);
}
taskInfo.setGlobalTaskList(globalTaskList);
}
//如果普通任务不为空
if (CollectionUtil.isNotEmpty(task.getCommonTask())){
taskInfo.setNormalTaskList(task.getCommonTask());
}
return taskInfo;
}
if (param.getQueryType() == 0){
param.setId(null);
}
//普通的任务和全局的
List<TaskVo.NormalTask> normalTaskList1= iInputDocDao.selectByCompany(param,userId);
//给二级任务下添加子任务
//遍历项目
if(param.getId()!=null){
for (int i = 0; i < normalTaskList1.size(); i++) {
//遍历任务
for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) {
Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId();
//查询该任务下的子任务
List<TaskVo.NormalTask> list = selByTwoTaskId(param, userId, taskId);
//给二级任务添加子任务
if(CollectionUtil.isNotEmpty(list)){
// 第i个项目 i1个二级任务 添加二级任务的子任务
normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list);
}
}
}
}
//拆分后得全局任务和普通任务
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
for (int i = 0; i < normalTaskList1.size(); i++) {
//拆分项目下得普通任务和全局任务
List<TaskVo.NormalTask> list= normalTaskList1.get(i).getSecondTasks();
//判断全局还是普通任务
TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess());
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
if(param.getId()==null) {
//给全局任务下先存项目名称
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(normalTaskList1.get(i), globalTask);
globalTask.setNormalTaskList(task.getGlobalTask());
globalTaskList.add(globalTask);
}else {
//直接存二级任务信息
task.getGlobalTask().forEach(ac->{
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(ac,globalTask);
globalTask.setNormalTaskList(ac.getSecondTasks());
globalTaskList.add(globalTask);
});
}
}
if(CollectionUtil.isNotEmpty(task.getCommonTask())){
if(param.getId()==null) {
//给普通任务下先存项目
TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(normalTaskList1.get(i), normalTask);
normalTask.setSecondTasks(task.getCommonTask());
normalTaskList.add(normalTask);
}else {
//自查项目不要项目信息
task.getCommonTask().forEach(ac1->{
normalTaskList.add(ac1);
});
}
}
}
taskInfo.setGlobalTaskList(globalTaskList);
taskInfo.setNormalTaskList(normalTaskList);
for (TaskVo.NormalTask normalTask : taskInfo.getNormalTaskList()) {
if (null != normalTask.getDetailId()){
ProPluginConfigExample configExample = new ProPluginConfigExample();
configExample.createCriteria().andTaskIdEqualTo(normalTask.getDetailId()).andPlaceLocationEqualTo((byte) 0);
List<ProPluginConfig> proPluginConfigs = pluginConfigDao.selectByExample(configExample);
if (CollectionUtil.isNotEmpty(proPluginConfigs)){
ProPluginConfig config = proPluginConfigs.get(0);
normalTask.setImportParam(config.getImportParam());
normalTask.setRoutineLocation(config.getRoutineLocation());
normalTask.setWebPath(config.getWebPath());
}
}
}
// //查询其他
// if (param.getQueryType() == 2){
// List<TaskVo.NormalTask> taskList = taskDetailDao.selectOtherTask(userId);
// //区分全局任务和普通任务
// TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess());
// List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
// //如果全局任务不为空
// if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
// for (TaskVo.NormalTask normalTask : task.getGlobalTask()) {
// BeanUtil.copyProperties(normalTask,globalTask);
// globalTaskList.add(globalTask);
// }
// taskInfo.setGlobalTaskList(globalTaskList);
// }
// //如果普通任务不为空
// if (CollectionUtil.isNotEmpty(task.getCommonTask())){
// taskInfo.setNormalTaskList(task.getCommonTask());
// }
// return taskInfo;
// }
//
// if (param.getQueryType() == 0){
// param.setId(null);
// }
//
// //普通的任务和全局的
// List<TaskVo.NormalTask> normalTaskList1= iInputDocDao.selectByCompany(param,userId);
//
// //给二级任务下添加子任务
// //遍历项目
// if(param.getId()!=null){
// for (int i = 0; i < normalTaskList1.size(); i++) {
// //遍历任务
// for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) {
// Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId();
// //查询该任务下的子任务
// List<TaskVo.NormalTask> list = selByTwoTaskId(param, userId, taskId);
// //给二级任务添加子任务
// if(CollectionUtil.isNotEmpty(list)){
// // 第i个项目 i1个二级任务 添加二级任务的子任务
// normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list);
// }
// }
// }
// }
// //拆分后得全局任务和普通任务
// List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
// List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
// for (int i = 0; i < normalTaskList1.size(); i++) {
// //拆分项目下得普通任务和全局任务
// List<TaskVo.NormalTask> list= normalTaskList1.get(i).getSecondTasks();
// //判断全局还是普通任务
// TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess());
// if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
// if(param.getId()==null) {
// //给全局任务下先存项目名称
// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
// BeanUtil.copyProperties(normalTaskList1.get(i), globalTask);
// globalTask.setNormalTaskList(task.getGlobalTask());
// globalTaskList.add(globalTask);
// }else {
// //直接存二级任务信息
// task.getGlobalTask().forEach(ac->{
// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
// BeanUtil.copyProperties(ac,globalTask);
// globalTask.setNormalTaskList(ac.getSecondTasks());
// globalTaskList.add(globalTask);
// });
// }
// }
// if(CollectionUtil.isNotEmpty(task.getCommonTask())){
// if(param.getId()==null) {
// //给普通任务下先存项目
// TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
// BeanUtil.copyProperties(normalTaskList1.get(i), normalTask);
// normalTask.setSecondTasks(task.getCommonTask());
// normalTaskList.add(normalTask);
// }else {
// //自查项目不要项目信息
// task.getCommonTask().forEach(ac1->{
// normalTaskList.add(ac1);
// });
// }
// }
// }
// taskInfo.setGlobalTaskList(globalTaskList);
// taskInfo.setNormalTaskList(normalTaskList);
// for (TaskVo.NormalTask normalTask : taskInfo.getNormalTaskList()) {
// if (null != normalTask.getDetailId()){
// ProPluginConfigExample configExample = new ProPluginConfigExample();
// configExample.createCriteria().andTaskIdEqualTo(normalTask.getDetailId()).andPlaceLocationEqualTo((byte) 0);
// List<ProPluginConfig> proPluginConfigs = pluginConfigDao.selectByExample(configExample);
// if (CollectionUtil.isNotEmpty(proPluginConfigs)){
// ProPluginConfig config = proPluginConfigs.get(0);
// normalTask.setImportParam(config.getImportParam());
// normalTask.setRoutineLocation(config.getRoutineLocation());
// normalTask.setWebPath(config.getWebPath());
// }
// }
// }
return taskInfo;
}

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

@ -8,13 +8,17 @@ import com.ccsens.tall.bean.po.ProRole;
import com.ccsens.tall.bean.po.ProShow;
import com.ccsens.tall.bean.po.ProShowExample;
import com.ccsens.tall.bean.po.ProSubTimeMember;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.SysProjectDao;
import com.ccsens.tall.persist.dao.TaskDetailDao;
import com.ccsens.tall.util.TaskUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@ -25,78 +29,111 @@ import java.util.List;
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class LwbsService implements ILwbsService{
@Resource
private TaskDetailDao taskDetailDao;
@Resource
public SysProjectDao sysProjectDao;
/**
* 查询该用户的所有项目
* @param param 开始结束时间
* @param userId userId
* @return 返回项目信息
*/
@Override
public List<LwbsVo.SelByUserIdToComProjectVo> queryProjectByUserId(LwbsDto.SelByUserIdToComProject param, Long userId){
List<LwbsVo.SelByUserIdToComProjectVo> projectVoList = new ArrayList<>();
//"我的"
LwbsVo.SelByUserIdToComProjectVo mine =new LwbsVo.SelByUserIdToComProjectVo();
mine.setName("我的");
mine.setType(0);
mine.setId(userId);
projectVoList.add(mine);
//查询普通项目
List<LwbsVo.SelByUserIdToComProjectVo> projectList = sysProjectDao.queryByUserId(param.getStartTime(),param.getEndTime(),userId);
projectVoList.addAll(projectList);
//"其他"
LwbsVo.SelByUserIdToComProjectVo other =new LwbsVo.SelByUserIdToComProjectVo();
other.setName("其他");
other.setType(2);
projectVoList.add(other);
return projectVoList;
}
public TaskVo.ProTaskInfo queryLwbs(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
if(ObjectUtil.isNotNull(param.getId())){
//如果项目id为空。则查询所有
@Override
public TaskVo.ProTaskInfo queryLwbs(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
TaskVo.ProTaskInfo proTaskInfo;
if (param.getQueryType() == 0){
//“我的”查询所有项目的任务
proTaskInfo = new TaskVo.ProTaskInfo();
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
//查询我的所有项目
List<LwbsVo.SelByUserIdToComProjectVo> projectList = sysProjectDao.queryByUserId(param.getStartTime(),param.getEndTime(),userId);
if(CollectionUtil.isNotEmpty(projectList)){
projectList.forEach(project -> {
//查找项目下的任务
TaskVo.ProTaskInfo projectTask = queryLwbsByProjectId(project.getId(),param.getStartTime(),param.getEndTime(),userId);
//将项目信息当做任务的上级信息
if(ObjectUtil.isNotNull(projectTask)){
if(CollectionUtil.isNotEmpty(projectTask.getGlobalTaskList())){
//全局
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
globalTask.setId(project.getId());
globalTask.setName(project.getName());
globalTask.setProjectId(project.getId());
globalTask.setName(project.getName());
globalTask.setBeginTime(project.getBeginTime());
globalTask.setEndTime(project.getEndTime());
globalTask.setNormalTaskList(projectTask.getGlobalTaskList());
globalTaskList.add(globalTask);
}
if(CollectionUtil.isNotEmpty(projectTask.getNormalTaskList())){
//普通
TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
normalTask.setId(project.getId());
normalTask.setName(project.getName());
normalTask.setProjectId(project.getId());
normalTask.setName(project.getName());
normalTask.setBeginTime(project.getBeginTime());
normalTask.setEndTime(project.getEndTime());
normalTask.setSecondTasks(projectTask.getNormalTaskList());
normalTaskList.add(normalTask);
}
}
});
}
proTaskInfo.setGlobalTaskList(globalTaskList);
proTaskInfo.setNormalTaskList(normalTaskList);
}else if(param.getQueryType() == 1){
//查询普通的项目
proTaskInfo = queryLwbsByProjectId(param.getId(),param.getStartTime(),param.getEndTime(),userId);
}else {
//项目id不为空。查询单个项目
//查询其他项目
proTaskInfo = new TaskVo.ProTaskInfo();
List<TaskVo.NormalTask> taskList = taskDetailDao.selectOtherTask(userId);
//区分全局任务和普通任务
if(CollectionUtil.isNotEmpty(taskList)) {
TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess());
proTaskInfo.setGlobalTaskList(task.getGlobal());
proTaskInfo.setNormalTaskList(task.getCommonTask());
}
return null;
}
return proTaskInfo;
}
// private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndRoleId(Long currentUserId, Long projectId, Long startTime,
// Long endTime, Integer process, Integer priority) throws Exception {
// TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
//
// List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
// List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
// TaskVo.GlobalTask globalTask;
// //获取“全体成员”角色
// ProRole allMember = proRoleService.getAllMember(projectId);
// Long allMemberId = null;
// if (ObjectUtil.isNotNull(allMember)) {
// allMemberId = allMember.getId();
// }
//
// //查找该项目下该用户的的所有的任务
// List<TaskVo.NormalTask> secondTaskVoList =
// List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId,
// allMemberId, startTime, endTime, priority);
//
// if (CollectionUtil.isNotEmpty(secondTaskVoList)) {
// for (TaskVo.NormalTask normalTask : secondTaskVoList) {
//
// //任务完成状态
// if (normalTask.getProcess() != 2) {
// ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
// if (ObjectUtil.isNotNull(subTimeMember)) {
// normalTask.setProcess(subTimeMember.getComplatedStatus());
// normalTask.setRealEndTime(subTimeMember.getRealFinishTime());
// } else if (normalTask.getProcess() > 2) {
// normalTask.setRealEndTime((long) 0);
// normalTask.setProcess(0);
// }
// }
// }
//
// TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList, startTime, endTime, process);
//
// if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
// for (TaskVo.NormalTask global : task.getGlobalTask()) {
// globalTask = new TaskVo.GlobalTask();
// BeanUtil.copyProperties(global, globalTask);
// globalTaskList.add(globalTask);
// }
// }
// if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
// if (priority == 0) {
// normalTaskList = sortTaskTime(task.getCommonTask());
// } else {
// normalTaskList = task.getCommonTask();
// }
// }
//
// }
//
// proTaskInfo.setGlobalTaskList(globalTaskList);
// proTaskInfo.setNormalTaskList(normalTaskList);
//
// return proTaskInfo;
// }
private TaskVo.ProTaskInfo queryLwbsByProjectId(Long projectId, Long startTime,Long endTime, Long userId){
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
//查询当前项目下所有任务
List<TaskVo.NormalTask> normalTaskList = taskDetailDao.queryLwbsByProjectId(projectId,startTime,endTime,userId);
//分解为全局和普通
if(CollectionUtil.isNotEmpty(normalTaskList)) {
TaskUtil.Task task = TaskUtil.splitTask(normalTaskList, startTime, endTime, 0);
proTaskInfo.setGlobalTaskList(task.getGlobal());
proTaskInfo.setNormalTaskList(task.getCommonTask());
}
return proTaskInfo;
}
}

12
tall/src/main/java/com/ccsens/tall/util/TaskUtil.java

@ -1,5 +1,6 @@
package com.ccsens.tall.util;
import cn.hutool.core.bean.BeanUtil;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.service.IProTaskDetailService;
import lombok.Data;
@ -35,6 +36,7 @@ public class TaskUtil {
public static class Task{
private List<TaskVo.NormalTask> globalTask;
private List<TaskVo.NormalTask> commonTask;
private List<TaskVo.GlobalTask> global;
}
public static Task splitTask(List<TaskVo.NormalTask> taskDetails, long start, long end,Integer process) {
@ -42,6 +44,7 @@ public class TaskUtil {
Task task = new Task();
List<TaskVo.NormalTask> globalTask = new ArrayList<>();
List<TaskVo.NormalTask> commonTask = new ArrayList<>();
List<TaskVo.GlobalTask> global = new ArrayList<>();
long beginMin = 0;
long endMax = 0;
List<TaskVo.NormalTask> temp = new ArrayList<>();
@ -68,8 +71,16 @@ public class TaskUtil {
}
if (detail.getBeginTime() <= start && detail.getEndTime() > end) {
globalTask.add(detail);
//放到全局任务里
TaskVo.GlobalTask g = new TaskVo.GlobalTask();
BeanUtil.copyProperties(detail, g);
global.add(g);
} else if (detail.getBeginTime() == start && (detail.getEndTime() == end || detail.getEndTime() + 999 == end)){
globalTask.add(detail);
//放到全局任务里
TaskVo.GlobalTask g = new TaskVo.GlobalTask();
BeanUtil.copyProperties(detail, g);
global.add(g);
}else if (detail.getBeginTime() >= start && detail.getEndTime()>end) {
//开始的任务点
detail.setTimeStatus((byte)1);
@ -96,6 +107,7 @@ public class TaskUtil {
task.setGlobalTask(globalTask);
// task.setCommonTask(commonTask);
task.setCommonTask(temp);
task.setGlobal(global);
log.info("判断是否是全局返回:{}",task);
return task;
}

18
tall/src/main/java/com/ccsens/tall/web/LwbsController.java

@ -1,25 +1,24 @@
package com.ccsens.tall.web;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.tall.annotation.MustLoginTall;
import com.ccsens.tall.bean.dto.InputDocDto;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.service.IInputDocService;
import com.ccsens.tall.service.ILwbsService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@Slf4j
@ -27,15 +26,19 @@ import java.util.List;
@RestController
@RequestMapping("/lwbs")
public class LwbsController {
@Autowired
@Resource
private IInputDocService iInputDocService;
@Resource
private ILwbsService lwbsService;
@MustLoginTall
@ApiOperation(value = "查询当前用户参加的所有的项目", notes = "1007:输出")
@RequestMapping(value = "/selByUserIdToComProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<LwbsVo.SelByUserIdToComProjectVo>> selByUserIdToComProject(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByUserIdToComProject> params) {
log.info("输出某人下的所有的项目:{}",params);
List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs= iInputDocService.selBylwbs(params.getParam(),params.getUserId());
// List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs= iInputDocService.selBylwbs(params.getParam(),params.getUserId());
List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs= lwbsService.queryProjectByUserId(params.getParam(),params.getUserId());
log.info("输出某人下的所有的项目成功");
return JsonResponse.newInstance().ok(selBylwbs);
}
@ -44,9 +47,10 @@ public class LwbsController {
@RequestMapping(value = "/selByProjectIdToTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TaskVo.ProTaskInfo> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) {
log.info("查询某人下参加的项目的所有的任务:{}",params);
TaskVo.ProTaskInfo selBylwbs= iInputDocService.selByProjectIdToTask(params.getParam(),params.getUserId());
// TaskVo.ProTaskInfo selBylwbs= iInputDocService.selByProjectIdToTask(params.getParam(),params.getUserId());
TaskVo.ProTaskInfo proTaskInfo = lwbsService.queryLwbs(params.getParam(),params.getUserId());
log.info("查询某人下参加的项目的所有的任务");
return JsonResponse.newInstance().ok(selBylwbs);
return JsonResponse.newInstance().ok(proTaskInfo);
}
@MustLoginTall

7
tall/src/main/resources/mapper_dao/SysProjectDao.xml

@ -572,14 +572,19 @@
<select id="queryByUserId" resultType="com.ccsens.tall.bean.vo.LwbsVo$SelByUserIdToComProjectVo">
SELECT
p.`name`,
p.id
p.id,
p.begin_time as beginTime,
p.end_time as endTime
FROM
t_sys_project p
LEFT JOIN t_sys_user_attention a on p.id = a.project_id and a.rec_status = 0
LEFT JOIN t_pro_member m on m.project_id = p.id and m.rec_status = 0
WHERE
a.user_id = #{userId}
and m.user_id = #{userId}
and p.rec_status = 0
and p.end_time &gt; #{startTime}
and p.begin_time &lt; #{endTime}
GROUP BY p.id
</select>
</mapper>

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

@ -579,26 +579,144 @@
and t.rec_status = 0
</select>
<select id="selectOtherTask" resultType="com.ccsens.tall.bean.vo.TaskVo$NormalTask">
<resultMap id="queryLwbs" type="com.ccsens.tall.bean.vo.TaskVo$NormalTask">
<id column="tDetailId" property="detailId" />
<id column="tSubTimeId" property="id" />
<result column="tName" property="name" />
<result column="tProjectId" property="projectId" />
<result column="tDescription" property="description" />
<result column="tExecutorRole" property="executorRole" />
<result column="tExecutorRoleName" property="executorRoleName" />
<result column="tBeginTime" property="beginTime" />
<result column="tEndTime" property="endTime" />
<result column="tCycle" property="cycle" />
<result column="tRealBeginTime" property="realBeginTime" />
<result column="tRealEndTime" property="realEndTime" />
<result column="tProcess" property="process" />
<result column="tSubProjectId" property="subProjectId" />
<result column="tSubProjectName" property="subProjectName" />
<result column="tMoney" property="money" />
<result column="tVirtual" property="virtual" />
<result column="tDelay" property="delay" />
<result column="tHasGroup" property="hasGroup" />
<result column="webPath" property="webPath" />
<result column="routineLocation" property="routineLocation" />
<result column="importParam" property="importParam" />
<result column="priority" property="priority" />
<result column="milestone" property="milestone" />
<association property="proTaskConfig" javaType="com.ccsens.tall.bean.vo.TaskVo$ProTaskShow">
<id column="id" property="id"/>
<result column="timeShow" property="timeShow"/>
<result column="duration" property="duration"/>
<result column="createTask" property="createTask"/>
<result column="showHardware" property="showHardware"/>
<result column="showDeliver" property="showDeliver"/>
<result column="showMoney" property="showMoney"/>
<result column="showRealTime" property="showRealTime"/>
<result column="showFinish" property="showFinish"/>
</association>
</resultMap>
<select id="selectOtherTask" resultMap="queryLwbs">
SELECT
tst.id AS id,
tst.begin_time AS beginTime,
tst.end_time AS endTime,
td.id AS detailId,
td. NAME,
td.description,
td.cycle,
td.priority,
td.milestone,
td.has_group,
*
FROM
(
tst.end_time - tst.begin_time
) AS duration
SELECT
d.id as tDetailId,
s.id as tSubTimeId,
d.name as tName,
d.project_id as tProjectId,
d.description as tDescription,
d.executor_role as tExecutorRole,
s.begin_time as tBeginTime,
s.end_time as tEndTime,
d.cycle as tCycle,
s.real_begin_time as tRealBeginTime,
s.real_end_time as tRealEndTime,
s.complated_status as tProcess,
d.sub_project_id as tSubProjectId,
d.sub_project as tSubProjectName,
d.money as tMoney,
d.virtual as tVirtual,
d.delay as tDelay,
d.has_group as tHasGroup,
d.milestone as milestone,
c.web_path as webPath,
c.routine_location as routineLocation,
c.import_param as importParam
FROM
t_pro_task_sub_time s
LEFT JOIN t_pro_task_detail d on s.task_detail_id = d.id and d.rec_status = 0
LEFT JOIN t_pro_plugin_config c on d.id = c.task_id and c.place_location = 0 and c.rec_status = 0
WHERE
s.rec_status = 0
and d.executor_role = #{userId}
AND d.project_id = 0
)t
LEFT JOIN
t_pro_task_show ts on t.tDetailId = ts.task_detail_id and ts.rec_status = 0
</select>
<select id="queryLwbsByProjectId" resultMap="queryLwbs">
SELECT
*
FROM
(
SELECT
d.id as tDetailId,
s.id as tSubTimeId,
d.name as tName,
d.project_id as tProjectId,
d.description as tDescription,
d.executor_role as tExecutorRole,
s.begin_time as tBeginTime,
s.end_time as tEndTime,
d.cycle as tCycle,
s.real_begin_time as tRealBeginTime,
s.real_end_time as tRealEndTime,
s.complated_status as tProcess,
d.sub_project_id as tSubProjectId,
d.sub_project as tSubProjectName,
d.money as tMoney,
d.virtual as tVirtual,
d.delay as tDelay,
d.has_group as tHasGroup,
d.milestone as milestone,
c.web_path as webPath,
c.routine_location as routineLocation,
c.import_param as importParam
FROM
t_pro_task_detail AS td
LEFT JOIN t_pro_task_sub_time AS tst ON td.id = tst.task_detail_id
t_pro_task_sub_time s
LEFT JOIN t_pro_task_detail d on s.task_detail_id = d.id and d.rec_status = 0
LEFT JOIN t_pro_plugin_config c on d.id = c.task_id and c.place_location = 0 and c.rec_status = 0
LEFT JOIN(
SELECT
mr.role_id
FROM
t_pro_member_role mr LEFT JOIN t_pro_member m on m.id = mr.member_id
WHERE
m.project_id = #{projectId}
and m.user_id = #{userId}
and m.rec_status = 0
and mr.rec_status = 0
) r on r.role_id = d.executor_role
WHERE
td.executor_role = #{userId} AND td.rec_status = 0
s.rec_status = 0
AND d.project_id = #{projectId}
AND d.parent_id != 0
<if test="endTime != null">
AND s.begin_time &lt;= #{endTime}
</if>
<if test="startTime != null">
AND s.end_time &gt;= #{startTime}
</if>
AND d.Level = 2
)t
LEFT JOIN
t_pro_task_show ts on t.tDetailId = ts.task_detail_id and ts.rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save