package com.cloudroam.controller.v1; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cloudroam.common.LocalUser; import com.cloudroam.common.annotation.LogParams; import com.cloudroam.common.util.PageUtil; import com.cloudroam.dto.projectTask.*; import com.cloudroam.model.UserDO; import com.cloudroam.service.ProjectTaskService; import com.cloudroam.vo.projectTask.ProjectTaskVO; import io.github.talelin.core.annotation.Logger; import io.github.talelin.core.annotation.LoginRequired; import io.github.talelin.core.annotation.PermissionMeta; import io.github.talelin.core.annotation.PermissionModule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.cloudroam.vo.CreatedVO; import com.cloudroam.vo.DeletedVO; import com.cloudroam.vo.PageResponseVO; import com.cloudroam.vo.UpdatedVO; import java.util.ArrayList; import java.util.List; /** * @author generator@TaoJie * @since 2024-12-30 */ @RestController @RequestMapping("/v1/project-task") @PermissionModule("项目任务管理") public class ProjectTaskController { @Autowired private ProjectTaskService projectTaskService; @PostMapping("") @PermissionMeta(value = "项目任务创建", mount =true) @Logger(template = "{user.nickname} 创建了项目任务 ") @LoginRequired @LogParams public CreatedVO create(@RequestBody @Validated CreateProjectTaskDTO validator) { projectTaskService.createProjectTask(validator); return new CreatedVO(); } @PostMapping("/batch") @PermissionMeta(value = "项目任务创建", mount =true) @Logger(template = "{user.nickname} 创建了项目任务 ") @LoginRequired @LogParams public CreatedVO createBatch(@RequestBody @Validated CreateProjectTaskBatchDTO validator) { projectTaskService.createProjectTaskBatch(validator); return new CreatedVO(); } @PostMapping("/edit/process") @PermissionMeta(value = "项目进度填写", mount =true) @Logger(template = "{user.nickname} 创建了项目进度填写 ") @LoginRequired @LogParams public UpdatedVO editProcess(@RequestBody @Validated CreateProjectTaskProcessDTO validator) { projectTaskService.editProcess(validator); return new UpdatedVO(); } @PutMapping("/{id}") @PermissionMeta(value = "项目任务更新", mount =true) @Logger(template = "{user.nickname} 更新了项目任务 ") @LoginRequired @LogParams public UpdatedVO update(@PathVariable String id,@RequestBody @Validated CreateProjectTaskDTO validator) { validator.setId(id); projectTaskService.updateProjectTask(validator); return new UpdatedVO(); } @PostMapping("/update/daily/{id}") @PermissionMeta(value = "任务排配更新", mount =true) @Logger(template = "{user.nickname} 更新了任务排配 ") @LoginRequired @LogParams public UpdatedVO updateTaskDaily(@PathVariable String id,@RequestBody @Validated CreateProjectTaskDailyDTO validator) { validator.setId(id); projectTaskService.updateProjectTaskDaily(validator); return new UpdatedVO(); } @PostMapping("/update/plan") @PermissionMeta(value = "任务计划日期更新", mount =true) @Logger(template = "{user.nickname} 更新了任务计划日期 ") @LoginRequired @LogParams public UpdatedVO updateTaskPlan(@RequestBody @Validated CreateProjectTaskPlanDTO validator) { projectTaskService.updateProjectTaskPlan(validator); return new UpdatedVO(); } @DeleteMapping("/{id}") @PermissionMeta(value = "项目任务删除", mount =true) @Logger(template = "{user.nickname} 删除了项目任务 ") @LoginRequired @LogParams public DeletedVO delete(@PathVariable String id) { projectTaskService.deleteProjectTask(id); return new DeletedVO(); } @DeleteMapping("/delete/daily/{dailyId}") @PermissionMeta(value = "任务排配日志删除", mount =true) @Logger(template = "{user.nickname} 删除了项目任务 ") @LoginRequired @LogParams public DeletedVO deleteDaily(@PathVariable String dailyId) { projectTaskService.deleteProjectTaskDaily(dailyId); return new DeletedVO(); } @GetMapping("/{id}") @LoginRequired public ProjectTaskVO get(@PathVariable(value = "id") String id) { return projectTaskService.getProjectTaskById(id); } @GetMapping("/start/{id}") @LoginRequired public UpdatedVO getStart(@PathVariable(value = "id") String id) { projectTaskService.getStartTaskById(id); return new UpdatedVO(); } @GetMapping("/finish/{id}") @LoginRequired public UpdatedVO getFinish(@PathVariable(value = "id") String id) { projectTaskService.getFinishTaskById(id); return new UpdatedVO(); } @GetMapping("/test/pass/{id}") @LoginRequired public UpdatedVO getTestPass(@PathVariable(value = "id") String id) { projectTaskService.getTestPass(id); return new UpdatedVO(); } @GetMapping("/test/unpass/{id}") @LoginRequired public UpdatedVO getTestUnpass(@PathVariable(value = "id") String id) { projectTaskService.getTestUnpass(id); return new UpdatedVO(); } @GetMapping("/confirm/{id}") @LoginRequired public UpdatedVO getConfirm(@PathVariable(value = "id") String id) { projectTaskService.getConfirm(id); return new UpdatedVO(); } @PostMapping("/page") @LoginRequired @PermissionMeta(value = "项目任务管理",module = "项目任务管理", mount =true) public PageResponseVO page(@Validated @RequestBody QueryProjectTaskDTO dto ) { IPage iPage=projectTaskService.getProjectTaskPage(dto); return PageUtil.build(iPage); } @PostMapping("/page/mine/todo") @PermissionMeta(value = "待办任务",module = "我的待办", mount =true) @LoginRequired public PageResponseVO getProjectTaskMineTodoPage(@Validated @RequestBody QueryProjectTaskDTO dto ) { UserDO curUser = LocalUser.getLocalUser(); List developerUsers=new ArrayList<>(); developerUsers.add(String.valueOf(curUser.getId())); IPage iPage=projectTaskService.getProjectTaskMineTodoPage(dto); return PageUtil.build(iPage); } }