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. 152
      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; package com.ccsens.tall.bean.dto;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -25,19 +26,31 @@ public class LwbsDto {
public static class SelByProjectIdToTaskDto { public static class SelByProjectIdToTaskDto {
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private Long id; private Long id;
@NotNull
@ApiModelProperty("开始时间") @ApiModelProperty("开始时间")
private Long startTime; private Long startTime;
@NotNull
@ApiModelProperty("结束时间") @ApiModelProperty("结束时间")
private Long endTime; private Long endTime;
@ApiModelProperty("完成状态 0全部,1完成,2未完成") @ApiModelProperty("完成状态 0全部,1完成,2未完成")
private Integer process = 0; private Integer process = 0;
@ApiModelProperty("优先级排序 0无 1倒叙(优先级高的在前) 2正序") @ApiModelProperty("优先级排序 0无 1倒叙(优先级高的在前) 2正序")
private Integer priority = 0; private Integer priority = 0;
@ApiModelProperty("任务等级") // @ApiModelProperty("任务等级")
private Byte level=(byte)2; // private Byte level=(byte)2;
@ApiModelProperty("查询类型(0-我的,1-项目,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; private String name;
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private Long id; private Long id;
@ApiModelProperty("开始时间")
private Long beginTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("类型 0我的 1正常的项目 2其他") @ApiModelProperty("类型 0我的 1正常的项目 2其他")
private int type = 1; private int type = 1;
} }

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

@ -66,7 +66,7 @@ public class TaskVo {
@ApiModelProperty("所属项目名称") @ApiModelProperty("所属项目名称")
private String projectName; private String projectName;
@ApiModelProperty("项目下得全局任务") @ApiModelProperty("项目下得全局任务")
private List<NormalTask> normalTaskList; private List<GlobalTask> normalTaskList;
@ApiModelProperty("页面/接口路径") @ApiModelProperty("页面/接口路径")
private String webPath; private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部") @ApiModelProperty("程序位置 0:tall内部,1外部")
@ -146,7 +146,7 @@ public class TaskVo {
@ApiModelProperty("当前周期内任务的序号") @ApiModelProperty("当前周期内任务的序号")
private int sequence; private int sequence;
@ApiModelProperty("任务配置") @ApiModelProperty("任务配置")
private ProTaskShow proTaskConfig; private ProTaskShow proTaskConfig = new ProTaskShow();
@ApiModelProperty("页面/接口路径") @ApiModelProperty("页面/接口路径")
private String webPath; private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部") @ApiModelProperty("程序位置 0:tall内部,1外部")
@ -204,22 +204,24 @@ public class TaskVo {
@ApiModel @ApiModel
@Data @Data
public static class ProTaskShow{ public static class ProTaskShow{
@JsonIgnore
private Long id;
@ApiModelProperty("开始时间显示样式(默认 MM-DD HH:mm) 为空时不展示时间") @ApiModelProperty("开始时间显示样式(默认 MM-DD HH:mm) 为空时不展示时间")
private String timeShow; private String timeShow = "MM-DD HH:mm";
@ApiModelProperty("时长展示单位 0:根据时长转换成对应分钟或小时 1:不展示 2:转化成分钟 3:转化成小时") @ApiModelProperty("时长展示单位 0:根据时长转换成对应分钟或小时 1:不展示 2:转化成分钟 3:转化成小时")
private int duration; private int duration = 0;
@ApiModelProperty("是否显示新建任务按钮 0不展示 1展示") @ApiModelProperty("是否显示新建任务按钮 0不展示 1展示")
private int createTask; private int createTask = 1;
@ApiModelProperty("是否展示硬件按钮 0不展示 1展示") @ApiModelProperty("是否展示硬件按钮 0不展示 1展示")
private int showHardware; private int showHardware = 1;
@ApiModelProperty("是否展示交付物按钮 0不展示 1展示") @ApiModelProperty("是否展示交付物按钮 0不展示 1展示")
private int showDeliver; private int showDeliver = 1;
@ApiModelProperty("是否展示奖惩金额按钮 0不展示 1展示") @ApiModelProperty("是否展示奖惩金额按钮 0不展示 1展示")
private int showMoney; private int showMoney = 1;
@ApiModelProperty("时间轴上显示计划时间还是实际时间 0计划时间,1实际时间") @ApiModelProperty("时间轴上显示计划时间还是实际时间 0计划时间,1实际时间")
private int showRealTime; private int showRealTime = 0;
@ApiModelProperty("是否展示完成按钮 0不展示 1展示") @ApiModelProperty("是否展示完成按钮 0不展示 1展示")
private int showFinish; private int showFinish = 1;
} }
@ApiModel @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); List<TaskVo.NormalTask> selectOtherTask(Long userId);
// /** /**
// * 批量添加任务详情表 * 通过项目id获取lwbs的内容
// * @param taskDetailList * @param projectId 项目id
// */ * @param startTime 开始时间
// void saveTaskList(List<ProTaskDetail> taskDetailList); * @param endTime 结束时间
// * @param userId 当前用户的userId
// /** * @return
// * 批量添加subtime */
// * @param subList List<TaskVo.NormalTask> queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId);
// */
// void saveSubTimeTaskList(List<ProTaskSubTime> subList);
} }

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

@ -1,7 +1,25 @@
package com.ccsens.tall.service; 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 * @author
*/ */
public interface ILwbsService { 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 @Override
public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) { public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo(); TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo();
//查询其他 // //查询其他
if (param.getQueryType() == 2){ // if (param.getQueryType() == 2){
List<TaskVo.NormalTask> taskList = taskDetailDao.selectOtherTask(userId); // List<TaskVo.NormalTask> taskList = taskDetailDao.selectOtherTask(userId);
//区分全局任务和普通任务 // //区分全局任务和普通任务
TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); // TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess());
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); // List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
//如果全局任务不为空 // //如果全局任务不为空
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ // if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); // TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
for (TaskVo.NormalTask normalTask : task.getGlobalTask()) { // for (TaskVo.NormalTask normalTask : task.getGlobalTask()) {
BeanUtil.copyProperties(normalTask,globalTask); // BeanUtil.copyProperties(normalTask,globalTask);
globalTaskList.add(globalTask); // globalTaskList.add(globalTask);
} // }
taskInfo.setGlobalTaskList(globalTaskList); // taskInfo.setGlobalTaskList(globalTaskList);
} // }
//如果普通任务不为空 // //如果普通任务不为空
if (CollectionUtil.isNotEmpty(task.getCommonTask())){ // if (CollectionUtil.isNotEmpty(task.getCommonTask())){
taskInfo.setNormalTaskList(task.getCommonTask()); // taskInfo.setNormalTaskList(task.getCommonTask());
} // }
return taskInfo; // return taskInfo;
} // }
//
if (param.getQueryType() == 0){ // if (param.getQueryType() == 0){
param.setId(null); // param.setId(null);
} // }
//
//普通的任务和全局的 // //普通的任务和全局的
List<TaskVo.NormalTask> normalTaskList1= iInputDocDao.selectByCompany(param,userId); // List<TaskVo.NormalTask> normalTaskList1= iInputDocDao.selectByCompany(param,userId);
//
//给二级任务下添加子任务 // //给二级任务下添加子任务
//遍历项目 // //遍历项目
if(param.getId()!=null){ // if(param.getId()!=null){
for (int i = 0; i < normalTaskList1.size(); i++) { // for (int i = 0; i < normalTaskList1.size(); i++) {
//遍历任务 // //遍历任务
for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) { // for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) {
Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId(); // Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId();
//查询该任务下的子任务 // //查询该任务下的子任务
List<TaskVo.NormalTask> list = selByTwoTaskId(param, userId, taskId); // List<TaskVo.NormalTask> list = selByTwoTaskId(param, userId, taskId);
//给二级任务添加子任务 // //给二级任务添加子任务
if(CollectionUtil.isNotEmpty(list)){ // if(CollectionUtil.isNotEmpty(list)){
// 第i个项目 i1个二级任务 添加二级任务的子任务 // // 第i个项目 i1个二级任务 添加二级任务的子任务
normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list); // normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list);
} // }
} // }
} // }
} // }
//拆分后得全局任务和普通任务 // //拆分后得全局任务和普通任务
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); // List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); // List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
for (int i = 0; i < normalTaskList1.size(); i++) { // for (int i = 0; i < normalTaskList1.size(); i++) {
//拆分项目下得普通任务和全局任务 // //拆分项目下得普通任务和全局任务
List<TaskVo.NormalTask> list= normalTaskList1.get(i).getSecondTasks(); // List<TaskVo.NormalTask> list= normalTaskList1.get(i).getSecondTasks();
//判断全局还是普通任务 // //判断全局还是普通任务
TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess()); // TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess());
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ // if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
if(param.getId()==null) { // if(param.getId()==null) {
//给全局任务下先存项目名称 // //给全局任务下先存项目名称
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); // TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(normalTaskList1.get(i), globalTask); // BeanUtil.copyProperties(normalTaskList1.get(i), globalTask);
globalTask.setNormalTaskList(task.getGlobalTask()); // globalTask.setNormalTaskList(task.getGlobalTask());
globalTaskList.add(globalTask); // globalTaskList.add(globalTask);
}else { // }else {
//直接存二级任务信息 // //直接存二级任务信息
task.getGlobalTask().forEach(ac->{ // task.getGlobalTask().forEach(ac->{
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); // TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(ac,globalTask); // BeanUtil.copyProperties(ac,globalTask);
globalTask.setNormalTaskList(ac.getSecondTasks()); // globalTask.setNormalTaskList(ac.getSecondTasks());
globalTaskList.add(globalTask); // globalTaskList.add(globalTask);
}); // });
} // }
} // }
if(CollectionUtil.isNotEmpty(task.getCommonTask())){ // if(CollectionUtil.isNotEmpty(task.getCommonTask())){
if(param.getId()==null) { // if(param.getId()==null) {
//给普通任务下先存项目 // //给普通任务下先存项目
TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); // TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(normalTaskList1.get(i), normalTask); // BeanUtil.copyProperties(normalTaskList1.get(i), normalTask);
normalTask.setSecondTasks(task.getCommonTask()); // normalTask.setSecondTasks(task.getCommonTask());
normalTaskList.add(normalTask); // normalTaskList.add(normalTask);
}else { // }else {
//自查项目不要项目信息 // //自查项目不要项目信息
task.getCommonTask().forEach(ac1->{ // task.getCommonTask().forEach(ac1->{
normalTaskList.add(ac1); // normalTaskList.add(ac1);
}); // });
} // }
} // }
} // }
taskInfo.setGlobalTaskList(globalTaskList); // taskInfo.setGlobalTaskList(globalTaskList);
taskInfo.setNormalTaskList(normalTaskList); // taskInfo.setNormalTaskList(normalTaskList);
for (TaskVo.NormalTask normalTask : taskInfo.getNormalTaskList()) { // for (TaskVo.NormalTask normalTask : taskInfo.getNormalTaskList()) {
if (null != normalTask.getDetailId()){ // if (null != normalTask.getDetailId()){
ProPluginConfigExample configExample = new ProPluginConfigExample(); // ProPluginConfigExample configExample = new ProPluginConfigExample();
configExample.createCriteria().andTaskIdEqualTo(normalTask.getDetailId()).andPlaceLocationEqualTo((byte) 0); // configExample.createCriteria().andTaskIdEqualTo(normalTask.getDetailId()).andPlaceLocationEqualTo((byte) 0);
List<ProPluginConfig> proPluginConfigs = pluginConfigDao.selectByExample(configExample); // List<ProPluginConfig> proPluginConfigs = pluginConfigDao.selectByExample(configExample);
if (CollectionUtil.isNotEmpty(proPluginConfigs)){ // if (CollectionUtil.isNotEmpty(proPluginConfigs)){
ProPluginConfig config = proPluginConfigs.get(0); // ProPluginConfig config = proPluginConfigs.get(0);
normalTask.setImportParam(config.getImportParam()); // normalTask.setImportParam(config.getImportParam());
normalTask.setRoutineLocation(config.getRoutineLocation()); // normalTask.setRoutineLocation(config.getRoutineLocation());
normalTask.setWebPath(config.getWebPath()); // normalTask.setWebPath(config.getWebPath());
} // }
} // }
} // }
return taskInfo; 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.ProShow;
import com.ccsens.tall.bean.po.ProShowExample; import com.ccsens.tall.bean.po.ProShowExample;
import com.ccsens.tall.bean.po.ProSubTimeMember; 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.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.SysProjectDao;
import com.ccsens.tall.persist.dao.TaskDetailDao;
import com.ccsens.tall.util.TaskUtil; import com.ccsens.tall.util.TaskUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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 java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -25,78 +29,111 @@ import java.util.List;
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class LwbsService implements ILwbsService{ 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 { }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, private TaskVo.ProTaskInfo queryLwbsByProjectId(Long projectId, Long startTime,Long endTime, Long userId){
// Long endTime, Integer process, Integer priority) throws Exception { TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
// TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); //查询当前项目下所有任务
// List<TaskVo.NormalTask> normalTaskList = taskDetailDao.queryLwbsByProjectId(projectId,startTime,endTime,userId);
// List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); //分解为全局和普通
// List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); if(CollectionUtil.isNotEmpty(normalTaskList)) {
// TaskVo.GlobalTask globalTask; TaskUtil.Task task = TaskUtil.splitTask(normalTaskList, startTime, endTime, 0);
// //获取“全体成员”角色 proTaskInfo.setGlobalTaskList(task.getGlobal());
// ProRole allMember = proRoleService.getAllMember(projectId); proTaskInfo.setNormalTaskList(task.getCommonTask());
// Long allMemberId = null; }
// if (ObjectUtil.isNotNull(allMember)) { return proTaskInfo;
// 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;
// }
} }

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

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

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

@ -1,25 +1,24 @@
package com.ccsens.tall.web; package com.ccsens.tall.web;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.tall.annotation.MustLoginTall; 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.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo; import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.service.IInputDocService; import com.ccsens.tall.service.IInputDocService;
import com.ccsens.tall.service.ILwbsService;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List; import java.util.List;
@Slf4j @Slf4j
@ -27,15 +26,19 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/lwbs") @RequestMapping("/lwbs")
public class LwbsController { public class LwbsController {
@Autowired @Resource
private IInputDocService iInputDocService; private IInputDocService iInputDocService;
@Resource
private ILwbsService lwbsService;
@MustLoginTall @MustLoginTall
@ApiOperation(value = "查询当前用户参加的所有的项目", notes = "1007:输出") @ApiOperation(value = "查询当前用户参加的所有的项目", notes = "1007:输出")
@RequestMapping(value = "/selByUserIdToComProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @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) { public JsonResponse<List<LwbsVo.SelByUserIdToComProjectVo>> selByUserIdToComProject(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByUserIdToComProject> params) {
log.info("输出某人下的所有的项目:{}",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("输出某人下的所有的项目成功"); log.info("输出某人下的所有的项目成功");
return JsonResponse.newInstance().ok(selBylwbs); return JsonResponse.newInstance().ok(selBylwbs);
} }
@ -44,9 +47,10 @@ public class LwbsController {
@RequestMapping(value = "/selByProjectIdToTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/selByProjectIdToTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TaskVo.ProTaskInfo> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) { public JsonResponse<TaskVo.ProTaskInfo> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) {
log.info("查询某人下参加的项目的所有的任务:{}",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("查询某人下参加的项目的所有的任务"); log.info("查询某人下参加的项目的所有的任务");
return JsonResponse.newInstance().ok(selBylwbs); return JsonResponse.newInstance().ok(proTaskInfo);
} }
@MustLoginTall @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 id="queryByUserId" resultType="com.ccsens.tall.bean.vo.LwbsVo$SelByUserIdToComProjectVo">
SELECT SELECT
p.`name`, p.`name`,
p.id p.id,
p.begin_time as beginTime,
p.end_time as endTime
FROM FROM
t_sys_project p 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_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 WHERE
a.user_id = #{userId} a.user_id = #{userId}
and m.user_id = #{userId}
and p.rec_status = 0 and p.rec_status = 0
and p.end_time &gt; #{startTime} and p.end_time &gt; #{startTime}
and p.begin_time &lt; #{endTime} and p.begin_time &lt; #{endTime}
GROUP BY p.id
</select> </select>
</mapper> </mapper>

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

@ -579,26 +579,144 @@
and t.rec_status = 0 and t.rec_status = 0
</select> </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
*
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
</select>
<select id="queryLwbsByProjectId" resultMap="queryLwbs">
SELECT
*
FROM
(
SELECT SELECT
tst.id AS id, d.id as tDetailId,
tst.begin_time AS beginTime, s.id as tSubTimeId,
tst.end_time AS endTime, d.name as tName,
td.id AS detailId, d.project_id as tProjectId,
td. NAME, d.description as tDescription,
td.description, d.executor_role as tExecutorRole,
td.cycle, s.begin_time as tBeginTime,
td.priority, s.end_time as tEndTime,
td.milestone, d.cycle as tCycle,
td.has_group, s.real_begin_time as tRealBeginTime,
( s.real_end_time as tRealEndTime,
tst.end_time - tst.begin_time s.complated_status as tProcess,
) AS duration 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 FROM
t_pro_task_detail AS td t_pro_task_sub_time s
LEFT JOIN t_pro_task_sub_time AS tst ON td.id = tst.task_detail_id 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 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> </select>
</mapper> </mapper>
Loading…
Cancel
Save