Browse Source

0605

master
zy_Java 6 years ago
parent
commit
18fbe556f5
  1. 2
      tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java
  2. 3
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java
  3. 5
      tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java
  4. 51
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  5. 154
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  6. 7
      tall/src/main/java/com/ccsens/tall/web/TaskController.java
  7. 4
      tall/src/main/resources/application.yml
  8. 6
      tall/src/main/resources/mapper_dao/SysProjectDao.xml
  9. 48
      tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml

2
tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java

@ -180,8 +180,10 @@ public class TaskDto {
@ApiModel("修改看板信息") @ApiModel("修改看板信息")
@Data @Data
public static class ChangeKanbanTask { public static class ChangeKanbanTask {
@NotNull(message = "任务id不能为空")
@ApiModelProperty("任务id") @ApiModelProperty("任务id")
private Long id; private Long id;
@NotNull(message = "状态不能为空")
@ApiModelProperty("任务状态 0未完成 1进行中 2已完成") @ApiModelProperty("任务状态 0未完成 1进行中 2已完成")
private Integer type; private Integer type;
} }

3
tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java

@ -1,6 +1,7 @@
package com.ccsens.tall.persist.dao; package com.ccsens.tall.persist.dao;
import com.ccsens.tall.bean.po.ProTaskSubTime; import com.ccsens.tall.bean.po.ProTaskSubTime;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.mapper.ProTaskSubTimeMapper; import com.ccsens.tall.persist.mapper.ProTaskSubTimeMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -12,4 +13,6 @@ public interface TaskSubTimeDao extends ProTaskSubTimeMapper{
List<ProTaskSubTime> getUnderwayTaskByRoleId(@Param("subTaskId") Long subTaskId, @Param("roleId") Long roleId); List<ProTaskSubTime> getUnderwayTaskByRoleId(@Param("subTaskId") Long subTaskId, @Param("roleId") Long roleId);
void clearTaskRealTime(@Param("projectId")Long projectId); void clearTaskRealTime(@Param("projectId")Long projectId);
List<TaskVo.KanBanTask> getKanbanTake(@Param("projectId")Long projectId, @Param("roleId")Long roleId,@Param("type") Integer type,@Param("memberId")Long memberId);
} }

5
tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java

@ -3,6 +3,7 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.dto.TaskDto;
import com.ccsens.tall.bean.po.ProTaskSubTime; import com.ccsens.tall.bean.po.ProTaskSubTime;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
import com.github.pagehelper.PageInfo;
import java.util.List; import java.util.List;
@ -17,7 +18,7 @@ public interface ITaskSubTimeService {
void clearTaskRealTime(Long projectId); void clearTaskRealTime(Long projectId);
List<TaskVo.KanBanTask> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize); PageInfo<TaskVo.KanBanTask> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) throws Exception;
void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask); void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception;
} }

51
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -188,7 +188,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
//处理插件 //处理插件
managePlugin(currentUserId,roleId,task); managePlugin(currentUserId,roleId,task);
//二级任务完成状态 //二级任务完成状态
if(task.getProcess() == 0) { if(task.getProcess() != 2) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, task.getId()); ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, task.getId());
if (ObjectUtil.isNotNull(subTimeMember)) { if (ObjectUtil.isNotNull(subTimeMember)) {
task.setRealEndTime(subTimeMember.getRealFinishTime()); task.setRealEndTime(subTimeMember.getRealFinishTime());
@ -258,7 +258,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
//处理插件 //处理插件
managePlugin(currentUserId,roleId,normalTask); managePlugin(currentUserId,roleId,normalTask);
//任务完成状态 //任务完成状态
if(normalTask.getProcess() == 0) { if(normalTask.getProcess() != 2) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId()); ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
if (ObjectUtil.isNotNull(subTimeMember)) { if (ObjectUtil.isNotNull(subTimeMember)) {
normalTask.setProcess(subTimeMember.getComplatedStatus()); normalTask.setProcess(subTimeMember.getComplatedStatus());
@ -757,7 +757,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (CollectionUtil.isNotEmpty(taskList)) { if (CollectionUtil.isNotEmpty(taskList)) {
for (TaskVo.NormalTask normalTask : taskList) { for (TaskVo.NormalTask normalTask : taskList) {
//任务的完成状态 //任务的完成状态
if(normalTask.getProcess() == 0) { if(normalTask.getProcess() != 2) {
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(userId, normalTask.getId()); ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(userId, normalTask.getId());
if (ObjectUtil.isNotNull(proSubTimeMember)) { if (ObjectUtil.isNotNull(proSubTimeMember)) {
normalTask.setProcess(proSubTimeMember.getComplatedStatus()); normalTask.setProcess(proSubTimeMember.getComplatedStatus());
@ -963,51 +963,6 @@ public class ProTaskDetailService implements IProTaskDetailService {
} }
} }
} }
// if (taskDetail.getFinishNeedAll() == 0) {
//// ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample();
//// subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId).andComplatedStatusEqualTo((byte) 2);
//// subTimeMemberExample.setOrderByClause("real_finish_time DESC");
//// List<ProSubTimeMember> subTimeMemberList = proSubTimeMemberDao.selectByExample(subTimeMemberExample);
//// if (CollectionUtil.isNotEmpty(subTimeMemberList)) {
//// subTimeMember = subTimeMemberList.get(0);
//// }
// } else {
//// //查找此用户在任务下的成员
//// ProMember porMember = proMemberService.selectByUserId(userId, taskDetail.getProjectId());
//// //该用户是否是任务的负责人
//// ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
//// Boolean isBelongRole = proMemberService.userIsBelongRole(userId, role.getId());
//// if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) || isBelongRole) {
//// ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample();
//// subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId)
//// .andMemberIdEqualTo(porMember.getId()).andComplatedStatusEqualTo((byte) 2);
//// List<ProSubTimeMember> subTimeMemberList = proSubTimeMemberDao.selectByExample(subTimeMemberExample);
//// if (CollectionUtil.isNotEmpty(subTimeMemberList)) {
//// subTimeMember = subTimeMemberList.get(0);
//// }
// } else {
// //查找任务负责人下的所有成员
// List<ProMember> memberList = proMemberService.selectByRole(taskDetail.getExecutorRole());
//
// if (CollectionUtil.isNotEmpty(memberList)) {
// boolean flag = false;
// for (ProMember member : memberList) {
// ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample();
// subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId)
// .andMemberIdEqualTo(member.getId()).andComplatedStatusEqualTo((byte) 2);
// subTimeMemberExample.setOrderByClause("real_finish_time");
// List<ProSubTimeMember> subTimeMemberList = proSubTimeMemberDao.selectByExample(subTimeMemberExample);
// if (CollectionUtil.isEmpty(subTimeMemberList)) {
// flag = true;
// break;
// }
// subTimeMember = subTimeMemberList.get(0);
// }
// if(flag){
// subTimeMember = null;
// }
// }
// }
return subTimeMember; return subTimeMember;
} }

154
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -17,6 +17,8 @@ import com.ccsens.util.WebConstant;
import com.ccsens.util.cron.CronConstant; import com.ccsens.util.cron.CronConstant;
import com.ccsens.util.cron.NatureToDate; import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -42,8 +44,6 @@ public class TaskSubTimeService implements ITaskSubTimeService {
@Autowired @Autowired
private ProSubTimeMemberDao proSubTimeMemberDao; private ProSubTimeMemberDao proSubTimeMemberDao;
@Autowired @Autowired
private IUserService userService;
@Autowired
private ProTaskDeliverPostLogDao proTaskDeliverPostLogDao; private ProTaskDeliverPostLogDao proTaskDeliverPostLogDao;
@Autowired @Autowired
private TaskDetailDao taskDetailDao; private TaskDetailDao taskDetailDao;
@ -54,8 +54,6 @@ public class TaskSubTimeService implements ITaskSubTimeService {
@Autowired @Autowired
private IProMemberService proMemberService; private IProMemberService proMemberService;
@Autowired @Autowired
private IProRoleService proRoleService;
@Autowired
private IProTaskDetailService taskDetailService; private IProTaskDetailService taskDetailService;
@Autowired @Autowired
private IMessageService messageService; private IMessageService messageService;
@ -74,13 +72,15 @@ public class TaskSubTimeService implements ITaskSubTimeService {
/** /**
* 完成任务 * 完成任务
* *
* @param currentUserId * @param currentUserId userId
* @param subTimeId * @param subTimeId 任务日期id
* @throws Exception * @throws Exception 任务详情
*/ */
@Override @Override
public TaskVo.NormalTask finishTask(Long currentUserId, TaskDto.TaskSubTimeId subTimeId) throws Exception { public TaskVo.NormalTask finishTask(Long currentUserId, TaskDto.TaskSubTimeId subTimeId) throws Exception {
int completedStatus = subTimeId.getCompletedStatus() == null ? 2 : subTimeId.getCompletedStatus(); int completedStatus = subTimeId.getCompletedStatus() == null ? 2 : subTimeId.getCompletedStatus();
//获取当前时间
Long now = System.currentTimeMillis();
//查找taskSubTime //查找taskSubTime
ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(subTimeId.getId()); ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(subTimeId.getId());
if (ObjectUtil.isNull(taskSubTime)) { if (ObjectUtil.isNull(taskSubTime)) {
@ -146,13 +146,19 @@ public class TaskSubTimeService implements ITaskSubTimeService {
subTimeMember.setComplatedStatus((byte) completedStatus); subTimeMember.setComplatedStatus((byte) completedStatus);
subTimeMember.setMemberId(member.getId()); subTimeMember.setMemberId(member.getId());
subTimeMember.setTaskSubTimeId(subTimeId.getId()); subTimeMember.setTaskSubTimeId(subTimeId.getId());
subTimeMember.setRealFinishTime(System.currentTimeMillis()); subTimeMember.setRealFinishTime(now);
proSubTimeMemberDao.insertSelective(subTimeMember); proSubTimeMemberDao.insertSelective(subTimeMember);
} else { } else {
subTimeMember.setComplatedStatus((byte) completedStatus); subTimeMember.setComplatedStatus((byte) completedStatus);
subTimeMember.setRealFinishTime(System.currentTimeMillis()); subTimeMember.setRealFinishTime(now);
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember); proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
} }
//不需要全部成员点完成,直接修改任务状态
if(taskDetail.getFinishNeedAll() == 0){
taskSubTime.setRealEndTime(now);
taskSubTime.setComplatedStatus(subTimeId.getCompletedStatus());
taskSubTimeDao.updateByPrimaryKeySelective(taskSubTime);
}
} else { } else {
ProSubTimeMember proSubTimeMember = new ProSubTimeMember(); ProSubTimeMember proSubTimeMember = new ProSubTimeMember();
proSubTimeMember.setRecStatus((byte) 2); proSubTimeMember.setRecStatus((byte) 2);
@ -163,79 +169,13 @@ public class TaskSubTimeService implements ITaskSubTimeService {
subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId.getId()).andMemberIdEqualTo(member.getId()); subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId.getId()).andMemberIdEqualTo(member.getId());
} }
proSubTimeMemberDao.updateByExampleSelective(proSubTimeMember, subTimeMemberExample); proSubTimeMemberDao.updateByExampleSelective(proSubTimeMember, subTimeMemberExample);
} //修改任务状态,删除完成时间
//修改任务状态 taskSubTime.setRealEndTime((long) 0);
// ProSubTimeMember sTimeMember = taskDetailService.getProcessByUserIdAndTask(currentUserId, taskSubTime.getId());
// if (ObjectUtil.isNotNull(sTimeMember)) {
taskSubTime.setComplatedStatus(subTimeId.getCompletedStatus()); taskSubTime.setComplatedStatus(subTimeId.getCompletedStatus());
taskSubTimeDao.updateByPrimaryKeySelective(taskSubTime); taskSubTimeDao.updateByPrimaryKeySelective(taskSubTime);
// } }
// //查找此用户在任务下的成员
// ProMember member = proMemberService.selectByUserId(currentUserId,taskDetail.getProjectId());
// //是否需要全部打卡完成
// if(taskDetail.getFinishNeedAll()==0) {
//// //是否有分组
//// if (taskDetail.getHasGroup() == 1) {
//// //检查分组下的任务的完成状态
//// List<ProTaskSubTime> subTimeList = taskDetailDao.selectSubTaskByGroupId(taskDetail.getId(), taskSubTime.getBeginTime(), taskSubTime.getEndTime());
//// if(CollectionUtil.isNotEmpty(subTimeList)){
//// for (ProTaskSubTime subTime : subTimeList) {
//// ProSubTimeMember subTimeMember = taskDetailService.getProcessByUserIdAndTask(currentUserId, subTime.getId());
//// if(ObjectUtil.isNull(subTimeMember) || subTimeMember.getComplatedStatus() != 2){
//// log.info("分组下任务未全部完成:{}",subTime.getId());
//// throw new BaseException(CodeEnum.SUB_TASK_IS_NOT_FINISH);
//// }
//// }
//// }
//// }
//// //查询任务下的交付物
//// ProTaskDeliverExample deliverExample = new ProTaskDeliverExample();
//// deliverExample.createCriteria().andTaskDetailIdEqualTo(taskSubTime.getTaskDetailId())
//// .andIsInputEqualTo(0);
//// List<ProTaskDeliver> deliverList = taskDeliverDao.selectByExample(deliverExample);
//// if (CollectionUtil.isNotEmpty(deliverList)) {
//// for (ProTaskDeliver taskDeliver : deliverList) {
//// ProTaskDeliverPostLogExample postLogExample = new ProTaskDeliverPostLogExample();
//// postLogExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId.getId())
//// .andDeliverIdEqualTo(taskDeliver.getId());
//// List<ProTaskDeliverPostLog> postLogList = proTaskDeliverPostLogDao.selectByExample(postLogExample);
//// if (CollectionUtil.isEmpty(postLogList)) {
//// throw new BaseException(CodeEnum.TASK_NOT_UPLOAD_DELIVER);
//// }
//// }
//// }
//
// ProSubTimeMember subTimeMember = isFinishTask(member.getId(),subTimeId.getId());
// if(ObjectUtil.isNull(subTimeMember)){
// subTimeMember = new ProSubTimeMember();
// subTimeMember.setId(snowflake.nextId());
// subTimeMember.setComplatedStatus((byte) completedStatus);
// subTimeMember.setMemberId(member.getId());
// subTimeMember.setTaskSubTimeId(subTimeId.getId());
// subTimeMember.setRealFinishTime(System.currentTimeMillis());
// proSubTimeMemberDao.insertSelective(subTimeMember);
// }else {
// subTimeMember.setComplatedStatus((byte) completedStatus);
// subTimeMember.setRealFinishTime(System.currentTimeMillis());
// proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
// }
// }else {
// ProSubTimeMember subTimeMember = isFinishTask(member.getId(),subTimeId.getId());
// if(ObjectUtil.isNotNull(subTimeMember)){
// subTimeMember.setComplatedStatus((byte) completedStatus);
// subTimeMember.setRealFinishTime(System.currentTimeMillis());
// proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
// }else {
// subTimeMember = new ProSubTimeMember();
// subTimeMember.setId(snowflake.nextId());
// subTimeMember.setComplatedStatus((byte) completedStatus);
// subTimeMember.setTaskSubTimeId(subTimeId.getId());
// subTimeMember.setMemberId(member.getId());
// subTimeMember.setRealFinishTime(System.currentTimeMillis());
// proSubTimeMemberDao.insertSelective(subTimeMember);
// }
// }
//返回的任务详细信息 //返回的任务详细信息
TaskVo.NormalTask normalTask = taskDetailService.getTaskInfoByTaskId(currentUserId, taskDetail.getProjectId(), subTimeId.getId()); TaskVo.NormalTask normalTask = taskDetailService.getTaskInfoByTaskId(currentUserId, taskDetail.getProjectId(), subTimeId.getId());
//用智能助手发送消息 //用智能助手发送消息
@ -262,9 +202,9 @@ public class TaskSubTimeService implements ITaskSubTimeService {
/** /**
* 开始任务 * 开始任务
* *
* @param currentUserId * @param currentUserId userid
* @param startTaskDto * @param startTaskDto 开始任务
* @throws Exception * @throws Exception void
*/ */
@Override @Override
public void startTask(Long currentUserId, TaskDto.StartTask startTaskDto) throws Exception { public void startTask(Long currentUserId, TaskDto.StartTask startTaskDto) throws Exception {
@ -327,13 +267,6 @@ public class TaskSubTimeService implements ITaskSubTimeService {
syncMessage.setReceivers(messageUserList); syncMessage.setReceivers(messageUserList);
messageService.sendStartTaskMessage(syncMessage); messageService.sendStartTaskMessage(syncMessage);
// //发送同步消息
// SysProject project = sysProjectDao.selectByPrimaryKey(startTaskDto.getProjectId());
// //已发布的项目才同步
// if (ObjectUtil.isNotNull(project.getPublished()) && project.getPublished() == 1) {
// messageService.sendSyncMessageWithStart(currentUserId, startTaskDto.getProjectId(), startTaskDto.getRoleId(), taskSubTime.getTaskDetailId(), now,
// taskSubTime.getEndTime() - taskSubTime.getBeginTime(),player);
// }
//3.添加记录 //3.添加记录
proLogService.addNewProLog(now, taskSubTime.getId(), proLogService.addNewProLog(now, taskSubTime.getId(),
WebConstant.TASK_Execute_Type.Start.value, WebConstant.TASK_Execute_Type.Start.value,
@ -346,8 +279,8 @@ public class TaskSubTimeService implements ITaskSubTimeService {
/** /**
* 结束其他进行中的任务 * 结束其他进行中的任务
* *
* @param roleId * @param roleId 角色id
* @param time * @param time 时间
*/ */
private void completeTask(Long subTaskId, Long roleId, Long time) { private void completeTask(Long subTaskId, Long roleId, Long time) {
List<ProTaskSubTime> proTaskSubTimeList = taskSubTimeDao.getUnderwayTaskByRoleId(subTaskId, roleId); List<ProTaskSubTime> proTaskSubTimeList = taskSubTimeDao.getUnderwayTaskByRoleId(subTaskId, roleId);
@ -388,8 +321,6 @@ public class TaskSubTimeService implements ITaskSubTimeService {
throw new BaseException(CodeEnum.PARAM_ERROR); throw new BaseException(CodeEnum.PARAM_ERROR);
} }
if (ObjectUtil.isNotNull(addTask.getParentTaskId())) { if (ObjectUtil.isNotNull(addTask.getParentTaskId())) {
// ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(addTask.getParentTaskId());
// if(ObjectUtil.isNotNull(subTime)) {
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(addTask.getParentTaskId()); ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(addTask.getParentTaskId());
if (ObjectUtil.isNotNull(taskDetail)) { if (ObjectUtil.isNotNull(taskDetail)) {
detail.setProjectId(taskDetail.getProjectId()); detail.setProjectId(taskDetail.getProjectId());
@ -508,19 +439,25 @@ public class TaskSubTimeService implements ITaskSubTimeService {
/** /**
* 看板上查找任务信息 * 看板上查找任务信息
* *
* @param currentUserId * @param currentUserId userId
* @param projectId * @param projectId 项目id
* @param roleId * @param roleId 角色id
* @param type * @param type 任务状态 0未开始 1进行中 2已完成
* @param page * @param page 页数
* @param pageSize * @param pageSize 每页数量
* @return * @return 任务列表
*/ */
@Override @Override
public List<TaskVo.KanBanTask> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) { public PageInfo<TaskVo.KanBanTask> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) throws Exception {
// //查找此用户在任务下的成员
ProMember member = proMemberService.selectByUserId(currentUserId, projectId);
return null; if (ObjectUtil.isNull(member)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
}
PageHelper.startPage(page, pageSize);
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId,roleId,type,member.getId());
// return new PageInfo<>(vos);
return new PageInfo<>(kanBanTaskList);
} }
/** /**
@ -530,14 +467,15 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* @param changeKanbanTask * @param changeKanbanTask
*/ */
@Override @Override
public void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) { public void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception {
//查找任务 //查找任务
ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(changeKanbanTask.getId()); ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(changeKanbanTask.getId());
if (ObjectUtil.isNull(proTaskSubTime)) { if (ObjectUtil.isNull(proTaskSubTime)) {
throw new BaseException(CodeEnum.NOT_TASK); throw new BaseException(CodeEnum.NOT_TASK);
} }
if (changeKanbanTask.getType() == 2) { TaskDto.TaskSubTimeId subTimeId = new TaskDto.TaskSubTimeId();
subTimeId.setId(changeKanbanTask.getId());
} subTimeId.setCompletedStatus(changeKanbanTask.getType());
finishTask(currentUserId,subTimeId);
} }
} }

7
tall/src/main/java/com/ccsens/tall/web/TaskController.java

@ -8,6 +8,7 @@ import com.ccsens.tall.service.ITaskSubTimeService;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType; import com.ccsens.util.annotation.OperateType;
import com.github.pagehelper.PageInfo;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -128,14 +129,16 @@ public class TaskController {
@ApiImplicitParam(name = "roleId", value = "角色id 不传则查找全部", required = true, paramType = "query") @ApiImplicitParam(name = "roleId", value = "角色id 不传则查找全部", required = true, paramType = "query")
}) })
@RequestMapping(value = "kanban", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "kanban", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.KanBanTask>> getKanbanTake(HttpServletRequest request, public JsonResponse<PageInfo<TaskVo.KanBanTask>> getKanbanTake(HttpServletRequest request,
@RequestParam(required = true)Long projectId, @RequestParam(required = true)Long projectId,
@RequestParam(required = false)Long roleId, @RequestParam(required = false)Long roleId,
@RequestParam(required = true)Integer type, @RequestParam(required = true)Integer type,
@RequestParam(required = false)Integer page, @RequestParam(required = false)Integer page,
@RequestParam(required = false)Integer pageSize) throws Exception { @RequestParam(required = false)Integer pageSize) throws Exception {
page = page == null ? 1 : page;
pageSize = pageSize == null ? 10 : pageSize;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<TaskVo.KanBanTask> kanbanTaskList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize); PageInfo<TaskVo.KanBanTask> kanbanTaskList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize);
return JsonResponse.newInstance().ok(kanbanTaskList); return JsonResponse.newInstance().ok(kanbanTaskList);
} }

4
tall/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring: spring:
profiles: profiles:
active: dev active: test
include: util-dev,common include: util-test,common

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

@ -142,7 +142,8 @@
t_sys_user_attention a t_sys_user_attention a
left JOIN t_sys_project p ON a.project_id = p.id left JOIN t_sys_project p ON a.project_id = p.id
left join t_sys_project_label pl on pl.project_id = p.id left join t_sys_project_label pl on pl.project_id = p.id
left join t_sys_label l on pl.label_id = l.id left join t_sys_label l on pl.label_id = l.id and
l.user_id = #{userId}
WHERE WHERE
a.user_id = #{userId} a.user_id = #{userId}
AND AND
@ -198,7 +199,8 @@
t_sys_user_attention a t_sys_user_attention a
left JOIN t_sys_project p ON a.project_id = p.id left JOIN t_sys_project p ON a.project_id = p.id
left join t_sys_project_label pl on pl.project_id = p.id left join t_sys_project_label pl on pl.project_id = p.id
left join t_sys_label l on pl.label_id = l.id left join t_sys_label l on pl.label_id = l.id and
l.user_id = #{userId}
WHERE WHERE
a.user_id = #{userId} a.user_id = #{userId}
AND AND

48
tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml

@ -28,4 +28,52 @@
p.id = #{projectId} p.id = #{projectId}
</update> </update>
<select id="getKanbanTake" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.TaskVo$KanBanTask">
SELECT
d.id as taskDetailId,
s.id as id,
d.name as taskName,
d.executor_role as roleId,
r.name as roleName,
s.begin_time as taskBegintime,
s.end_time as taskEndTime
FROM
t_pro_task_detail d LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id
LEFT JOIN t_pro_role r on r.id = d.executor_role
LEFT JOIN
(
SELECT
count(m.id) as mid,
s.id as sId
FROM
t_pro_sub_time_member m LEFT JOIN t_pro_task_sub_time s on m.task_sub_time_id = s.id
WHERE
m.member_id = #{memberId}
and
m.rec_status = 0
)t on t.sId = s.id
WHERE
d.project_id = #{projectId}
and
d.level != 0
<if test="roleId != null">
and
r.id = #{roleId}
</if>
and
s.complated_status = #{type}
and
(
(
d.finish_need_all = 0
)
or
(
d.finish_need_all = 1
and
t.mid > 0
)
)
</select>
</mapper> </mapper>
Loading…
Cancel
Save