package com.ydtech.modules.task.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.po.SysDeptInternalAgent; import com.ydtech.modules.admin.model.po.SysUserLinkDeptInternalAgent; import com.ydtech.modules.admin.service.SysDeptInternalAgentService; import com.ydtech.modules.admin.service.SysUserLinkDeptInternalAgentService; import com.ydtech.modules.admin.service.SysUserService; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.task.entity.po.TaskPersonCharge; import com.ydtech.modules.task.entity.po.TaskProject; import com.ydtech.modules.task.entity.po.TaskTask; import com.ydtech.modules.task.entity.vo.*; import com.ydtech.modules.task.service.TaskPersonChargeService; import com.ydtech.modules.task.service.TaskProjectService; import com.ydtech.modules.task.service.TaskTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.Objects; @Api(tags = "任务controller") @RestController @RequestMapping("/task/task") public class TaskController extends BaseController { @Autowired TaskTaskService taskTaskService; @Autowired TaskPersonChargeService taskPersonChargeService; @Autowired TaskProjectService taskProjectService; @Autowired SysUserService sysUserService; @Autowired SysDeptInternalAgentService sysDeptInternalAgentService; @Autowired SysUserLinkDeptInternalAgentService sysUserLinkDeptInternalAgentService; @GetMapping("/getBackLineUser") @ApiOperation("获取后线用户") public HttpResult getBackLineUser(){ //获取用户信息 SysUserLinkDeptInternalAgent sysUserLinkDeptInternalAgent = sysUserLinkDeptInternalAgentService.getByUserId(getUserId()); if(Objects.isNull(sysUserLinkDeptInternalAgent)){ throw new SystemException("当前用户没有分配内部机构"); } //获取部门 SysDeptInternalAgent sysDeptInternalAgent = sysDeptInternalAgentService.getById(sysUserLinkDeptInternalAgent.getSysDeptInternalAgentId()); List backLineUser = taskTaskService.getBackLineUser(sysDeptInternalAgent.getId()); // List tree = sysDeptInternalAgentService.findTree(null, null); return HttpResult.ok(backLineUser); } @GetMapping("/getTaskInfo") @ApiOperation("获取任务详情") public HttpResult getTaskInfo(){ return null; } @GetMapping("/getTaskTree") @ApiOperation("获取任务树结构") public HttpResult getTaskTree(String projectId,String userId){ List taskTree = taskTaskService.getTaskTree(projectId,userId); return HttpResult.ok(taskTree); } @PostMapping("/getTaskPage") @ApiOperation("获取任务列表") public HttpResult getTaskList(@RequestBody TaskListQueryVo taskListQueryVo){ Page page = buildPageRequest(taskListQueryVo.getPageDto()); Page taskList = taskTaskService.getTaskPage(page, getUserId()); return HttpResult.ok(taskList); } @PostMapping("/addTask") @ApiOperation("添加任务") public HttpResult addTask(@RequestBody AddTaskVo addTaskVo){ if(taskProjectService.getById(addTaskVo.getProjectId()) == null){ throw new SystemException("项目id填写错误"); } TaskTask task = taskTaskService.getById(addTaskVo.getTaskId()); if(!addTaskVo.getTaskId().equals("0") && task == null){ throw new SystemException("任务id填写错误"); } return taskTaskService.addTask(addTaskVo,getUserName()) ? HttpResult.ok("添加任务成功") : HttpResult.error("添加任务失败"); } @PostMapping("/delTask") @ApiOperation("删除任务") public HttpResult delTask(String taskId){ if(taskId == null){ throw new SystemException("任务id错误"); } TaskTask task = taskTaskService.getById(taskId); if(task == null){ throw new SystemException("任务不存在"); } return taskTaskService.removeById(taskId) ? HttpResult.ok("任务删除成功") : HttpResult.error("任务删除失败"); } @PostMapping("/editTask") @ApiOperation("修改任务") public HttpResult editTask(@RequestBody TaskTask task){ return taskTaskService.updateById(task) ? HttpResult.ok("任务修改成功") : HttpResult.error("任务修改失败"); } @PostMapping("/assignTask") @ApiOperation("分配任务") public HttpResult assignTask(@RequestBody AssignTaskVo assignTaskVo){ List taskPersonChargeList = taskPersonChargeService.getTaskPersonChargeList(assignTaskVo.getTaskId()); JSONObject diffTaskPersonCharge = taskPersonChargeService.getDiffTaskPersonCharge(assignTaskVo, taskPersonChargeList); List addUserArr = (List) diffTaskPersonCharge.get("userIdsToAdd"); List delUserArr = (List) diffTaskPersonCharge.get("userIdsToDelete"); List addUsers = new ArrayList<>(); List delUsers = new ArrayList<>(); if(!addUserArr.isEmpty()) { addUsers = sysUserService.getByIds(addUserArr); } if(!delUserArr.isEmpty()) { delUsers = sysUserService.getByIds(delUserArr); } return taskPersonChargeService.dealPersonCharge(assignTaskVo.getTaskId(), addUsers, delUsers) ? HttpResult.ok("分配任务成功") : HttpResult.error("分配任务失败"); } @PostMapping("/changeTaskStatus") @ApiOperation("更改任务状态") public HttpResult changeTaskStatus(){ return null; } }