From e21c352b423e32a0937acf81b374aab0f3839eb1 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Sat, 17 Apr 2021 15:00:13 +0800 Subject: [PATCH] =?UTF-8?q?20210417=E9=87=8D=E5=86=99lwbs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/dto/LwbsDto.java | 23 +- .../java/com/ccsens/tall/bean/vo/LwbsVo.java | 4 + .../java/com/ccsens/tall/bean/vo/TaskVo.java | 22 +- .../tall/persist/dao/TaskDetailDao.java | 23 +- .../com/ccsens/tall/service/ILwbsService.java | 18 ++ .../ccsens/tall/service/InputDocService.java | 202 +++++++++--------- .../com/ccsens/tall/service/LwbsService.java | 169 +++++++++------ .../java/com/ccsens/tall/util/TaskUtil.java | 12 ++ .../com/ccsens/tall/web/LwbsController.java | 18 +- .../resources/mapper_dao/SysProjectDao.xml | 7 +- .../resources/mapper_dao/TaskDetailDao.xml | 152 +++++++++++-- 11 files changed, 432 insertions(+), 218 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java index 2201bd01..661014e6 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java +++ b/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; + } } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java index 84e1ba2b..263e496a 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java +++ b/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; } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java index 90e07850..ef73c024 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java +++ b/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 normalTaskList; + private List 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 diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index 5724cca9..6db91149 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -62,15 +62,16 @@ public interface TaskDetailDao extends ProTaskDetailMapper { */ List selectOtherTask(Long userId); -// /** -// * 批量添加任务详情表 -// * @param taskDetailList -// */ -// void saveTaskList(List taskDetailList); -// -// /** -// * 批量添加subtime -// * @param subList -// */ -// void saveSubTimeTaskList(List subList); + /** + * 通过项目id获取lwbs的内容 + * @param projectId 项目id + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param userId 当前用户的userId + * @return + */ + List queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId); + + + } diff --git a/tall/src/main/java/com/ccsens/tall/service/ILwbsService.java b/tall/src/main/java/com/ccsens/tall/service/ILwbsService.java index 1668e2b2..10c3ed68 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ILwbsService.java +++ b/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 queryProjectByUserId(LwbsDto.SelByUserIdToComProject param, Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java index 3aa911c6..968db5a3 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/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 taskList = taskDetailDao.selectOtherTask(userId); - //区分全局任务和普通任务 - TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); - List 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 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 list = selByTwoTaskId(param, userId, taskId); - //给二级任务添加子任务 - if(CollectionUtil.isNotEmpty(list)){ - // 第i个项目 i1个二级任务 添加二级任务的子任务 - normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list); - } - } - } - } - //拆分后得全局任务和普通任务 - List globalTaskList = new ArrayList<>(); - List normalTaskList = new ArrayList<>(); - for (int i = 0; i < normalTaskList1.size(); i++) { - //拆分项目下得普通任务和全局任务 - List 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 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 taskList = taskDetailDao.selectOtherTask(userId); +// //区分全局任务和普通任务 +// TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); +// List 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 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 list = selByTwoTaskId(param, userId, taskId); +// //给二级任务添加子任务 +// if(CollectionUtil.isNotEmpty(list)){ +// // 第i个项目 i1个二级任务 添加二级任务的子任务 +// normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list); +// } +// } +// } +// } +// //拆分后得全局任务和普通任务 +// List globalTaskList = new ArrayList<>(); +// List normalTaskList = new ArrayList<>(); +// for (int i = 0; i < normalTaskList1.size(); i++) { +// //拆分项目下得普通任务和全局任务 +// List 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 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; } diff --git a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java index 4a60b2a3..e9280622 100644 --- a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java +++ b/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 queryProjectByUserId(LwbsDto.SelByUserIdToComProject param, Long userId){ + List projectVoList = new ArrayList<>(); + //"我的" + LwbsVo.SelByUserIdToComProjectVo mine =new LwbsVo.SelByUserIdToComProjectVo(); + mine.setName("我的"); + mine.setType(0); + mine.setId(userId); + projectVoList.add(mine); + //查询普通项目 + List 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 globalTaskList = new ArrayList<>(); + List normalTaskList = new ArrayList<>(); + //查询我的所有项目 + List 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 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 globalTaskList = new ArrayList<>(); -// List normalTaskList = new ArrayList<>(); -// TaskVo.GlobalTask globalTask; -// //获取“全体成员”角色 -// ProRole allMember = proRoleService.getAllMember(projectId); -// Long allMemberId = null; -// if (ObjectUtil.isNotNull(allMember)) { -// allMemberId = allMember.getId(); -// } -// -// //查找该项目下该用户的的所有的任务 -// List secondTaskVoList = -// List 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 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; + } } diff --git a/tall/src/main/java/com/ccsens/tall/util/TaskUtil.java b/tall/src/main/java/com/ccsens/tall/util/TaskUtil.java index c89b326e..a387beaa 100644 --- a/tall/src/main/java/com/ccsens/tall/util/TaskUtil.java +++ b/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 globalTask; private List commonTask; + private List global; } public static Task splitTask(List taskDetails, long start, long end,Integer process) { @@ -42,6 +44,7 @@ public class TaskUtil { Task task = new Task(); List globalTask = new ArrayList<>(); List commonTask = new ArrayList<>(); + List global = new ArrayList<>(); long beginMin = 0; long endMax = 0; List 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; } diff --git a/tall/src/main/java/com/ccsens/tall/web/LwbsController.java b/tall/src/main/java/com/ccsens/tall/web/LwbsController.java index bfa203e2..2a7199a6 100644 --- a/tall/src/main/java/com/ccsens/tall/web/LwbsController.java +++ b/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> selByUserIdToComProject(@ApiParam @Validated @RequestBody QueryDto params) { log.info("输出某人下的所有的项目:{}",params); - List selBylwbs= iInputDocService.selBylwbs(params.getParam(),params.getUserId()); +// List selBylwbs= iInputDocService.selBylwbs(params.getParam(),params.getUserId()); + List 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 selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto 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 diff --git a/tall/src/main/resources/mapper_dao/SysProjectDao.xml b/tall/src/main/resources/mapper_dao/SysProjectDao.xml index b7829b03..c8023439 100644 --- a/tall/src/main/resources/mapper_dao/SysProjectDao.xml +++ b/tall/src/main/resources/mapper_dao/SysProjectDao.xml @@ -572,14 +572,19 @@ \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index 53b985b5..26587146 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -579,26 +579,144 @@ and t.rec_status = 0 - + 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_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 + + + \ No newline at end of file