|
@@ -1,29 +1,24 @@
|
|
package com.management.platform.controller;
|
|
package com.management.platform.controller;
|
|
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.management.platform.entity.*;
|
|
import com.management.platform.entity.*;
|
|
-import com.management.platform.mapper.GroupParticipatorMapper;
|
|
|
|
-import com.management.platform.mapper.ProjectMapper;
|
|
|
|
-import com.management.platform.mapper.TimeTypeMapper;
|
|
|
|
-import com.management.platform.mapper.UserMapper;
|
|
|
|
-import com.management.platform.service.GroupTmpstagesService;
|
|
|
|
-import com.management.platform.service.StagesService;
|
|
|
|
-import com.management.platform.service.TaskGroupService;
|
|
|
|
-import com.management.platform.service.TaskService;
|
|
|
|
|
|
+import com.management.platform.entity.vo.setTemplate;
|
|
|
|
+import com.management.platform.mapper.*;
|
|
|
|
+import com.management.platform.service.*;
|
|
import com.management.platform.util.HttpRespMsg;
|
|
import com.management.platform.util.HttpRespMsg;
|
|
import com.management.platform.util.MessageUtils;
|
|
import com.management.platform.util.MessageUtils;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
+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.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -56,6 +51,14 @@ public class TaskGroupController {
|
|
private UserMapper userMapper;
|
|
private UserMapper userMapper;
|
|
@Resource
|
|
@Resource
|
|
private TimeTypeMapper timeTypeMapper;
|
|
private TimeTypeMapper timeTypeMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private GroupTemplateMapper GroupTemplateMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private GroupTmpstagesMapper groupTmpstagesMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private GtemplateTaskMapper gtemplateTaskMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private TaskExecutorService taskExecutorService;
|
|
/**
|
|
/**
|
|
* 保存任务分组
|
|
* 保存任务分组
|
|
*/
|
|
*/
|
|
@@ -136,12 +139,80 @@ public class TaskGroupController {
|
|
QueryWrapper<TaskGroup> queryWrapper = new QueryWrapper<TaskGroup>();
|
|
QueryWrapper<TaskGroup> queryWrapper = new QueryWrapper<TaskGroup>();
|
|
queryWrapper.eq("project_id", item.getProjectId());
|
|
queryWrapper.eq("project_id", item.getProjectId());
|
|
if (taskGroupService.count(queryWrapper) == 0) {
|
|
if (taskGroupService.count(queryWrapper) == 0) {
|
|
- //创建默认分组
|
|
|
|
- TaskGroup group = new TaskGroup();
|
|
|
|
- group.setProjectId(item.getProjectId());
|
|
|
|
- //group.setName("项目阶段");
|
|
|
|
- group.setName(MessageUtils.message("entry.projectStage"));
|
|
|
|
- taskGroupService.save(group);
|
|
|
|
|
|
+ //创建随项目创建而创建的模板
|
|
|
|
+ QueryWrapper<User> eq = new QueryWrapper<User>().eq("id", request.getHeader("token"));
|
|
|
|
+ User user = userMapper.selectOne(eq);
|
|
|
|
+ List<GroupTemplate> groupTemplates = GroupTemplateMapper.selectList(new QueryWrapper<GroupTemplate>().eq("company_id", user.getCompanyId()).eq("cre_with_pro", true));
|
|
|
|
+ if (groupTemplates.size()==0){
|
|
|
|
+ //创建默认分组
|
|
|
|
+ TaskGroup group = new TaskGroup();
|
|
|
|
+ group.setProjectId(item.getProjectId());
|
|
|
|
+ //group.setName("项目阶段");
|
|
|
|
+ group.setName(MessageUtils.message("entry.projectStage"));
|
|
|
|
+ taskGroupService.save(group);
|
|
|
|
+ }else{
|
|
|
|
+ for (GroupTemplate groupTemplate : groupTemplates) {
|
|
|
|
+ TaskGroup group = new TaskGroup();
|
|
|
|
+ group.setProjectId(item.getProjectId());
|
|
|
|
+ group.setName(groupTemplate.getName());
|
|
|
|
+ taskGroupService.save(group);
|
|
|
|
+ //从模板创建任务列表
|
|
|
|
+ Project project = projectMapper.selectById(item.getProjectId());
|
|
|
|
+ String inchargerId = project.getInchargerId();
|
|
|
|
+ User inchargerUser = userMapper.selectById(inchargerId);
|
|
|
|
+ List<GroupTmpstages> stages = groupTmpstagesMapper.selectList(new QueryWrapper<GroupTmpstages>().eq("template_id", groupTemplate.getId()));
|
|
|
|
+ List<Stages> batchList = new ArrayList<>();
|
|
|
|
+ stages.forEach(s->{
|
|
|
|
+ Stages stageItem = new Stages();
|
|
|
|
+ stageItem.setGroupId(group.getId());
|
|
|
|
+ stageItem.setStagesName(s.getStagesName());
|
|
|
|
+ stageItem.setSequence(s.getSequence());
|
|
|
|
+ stageItem.setProjectId(item.getProjectId());
|
|
|
|
+ batchList.add(stageItem);
|
|
|
|
+ });
|
|
|
|
+ stagesService.saveBatch(batchList);
|
|
|
|
+ //阶段的任务,里程碑,风险
|
|
|
|
+ List<GtemplateTask> gtemplateTaskList = gtemplateTaskMapper.selectList(
|
|
|
|
+ new QueryWrapper<GtemplateTask>().eq("gtemplate_id", groupTemplate.getId())
|
|
|
|
+ .orderByAsc("seq"));
|
|
|
|
+ if (gtemplateTaskList.size() > 0) {
|
|
|
|
+ List<Task> taskList = new ArrayList<>();
|
|
|
|
+ List<TaskExecutor> taskExecutorList = new ArrayList<>();
|
|
|
|
+ gtemplateTaskList.forEach(gt->{
|
|
|
|
+ Task task = gt.toTask();
|
|
|
|
+ task.setProjectId(item.getProjectId());
|
|
|
|
+ task.setGroupId(group.getId());
|
|
|
|
+ String sName = stages.stream().filter(s->s.getId().equals(gt.getTstagesId())).findFirst().get().getStagesName();
|
|
|
|
+ Integer realStageId = batchList.stream().filter(bat->bat.getStagesName().equals(sName)).findFirst().get().getId();
|
|
|
|
+ task.setStagesId(realStageId);
|
|
|
|
+ task.setCreaterId(user.getId());
|
|
|
|
+ task.setCreaterName(user.getName());
|
|
|
|
+ task.setCreatorColor(user.getColor());
|
|
|
|
+ if(task.getTaskType()==1 && inchargerUser != null){
|
|
|
|
+ task.setExecutorId(inchargerUser.getId());
|
|
|
|
+ task.setExecutorName(inchargerUser.getName());
|
|
|
|
+ task.setExecutorColor(inchargerUser.getColor());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ taskList.add(task);
|
|
|
|
+ });
|
|
|
|
+ taskService.saveBatch(taskList);
|
|
|
|
+ taskList.forEach(tl->{
|
|
|
|
+ TaskExecutor taskExecutor=new TaskExecutor();
|
|
|
|
+ //当为里程碑任务时
|
|
|
|
+ if(tl.getTaskType()==1 && inchargerUser != null){
|
|
|
|
+ taskExecutor.setTaskId(tl.getId());
|
|
|
|
+ taskExecutor.setExecutorId(inchargerUser.getId());
|
|
|
|
+ taskExecutor.setExecutorName(inchargerUser.getName());
|
|
|
|
+ taskExecutor.setExecutorColor(inchargerUser.getColor());
|
|
|
|
+ taskExecutor.setProjectId(item.getProjectId());
|
|
|
|
+ taskExecutorList.add(taskExecutor);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ taskExecutorService.saveBatch(taskExecutorList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
msg.data = taskGroupService.list(queryWrapper);
|
|
msg.data = taskGroupService.list(queryWrapper);
|
|
return msg;
|
|
return msg;
|
|
@@ -275,5 +346,10 @@ public class TaskGroupController {
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @RequestMapping("/setTemplate")
|
|
|
|
+ public HttpRespMsg setTemplate(setTemplate setTemplate){
|
|
|
|
+ User user = userMapper.selectById(request.getHeader("token"));
|
|
|
|
+ return taskGroupService.setTemplate(user,setTemplate);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|