123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- package com.wtkj.controller;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
- import com.wtkj.dto.ProjectPageDTO;
- import com.wtkj.entity.Project;
- import com.wtkj.entity.ProjectGroup;
- import com.wtkj.entity.ProjectStage;
- import com.wtkj.service.*;
- import com.wtkj.vo.MyTaskStatistics;
- import com.wtkj.vo.ProjectStageVO;
- import com.wtkj.wrapper.ProjectGroupWrapper;
- import com.wtkj.wrapper.ProjectStageWrapper;
- import com.wtkj.wrapper.ProjectWrapper;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.AllArgsConstructor;
- import org.springblade.core.mp.support.Condition;
- import org.springblade.core.mp.support.Query;
- import org.springblade.core.tool.api.R;
- import org.springblade.core.tool.utils.Func;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- import java.util.List;
- /**
- * @author Blizzard
- * @create at 2023-09-13 15:50
- * @describe
- */
- @RestController
- @AllArgsConstructor
- @RequestMapping("/project")
- @Api(value = "项目模块", tags = "项目模块")
- public class ProjectController {
- private final IProjectService projectService;
- private final IAsyncService asyncService;
- private final IProjectStageService stageService;
- private final ITaskService taskService;
- private final IProjectGroupService projectGroupService;
- /**
- * 创建/修改项目
- */
- @PostMapping("/submit")
- @ApiOperation(value = "新建或者修改项目", notes = "传入project")
- @ApiOperationSupport(order = 1)
- public R<Boolean> create(@RequestBody @Valid Project project) {
- return R.status(projectService.submit(project));
- }
- /**
- * 分页
- */
- @PostMapping("/page")
- @ApiOperation(value = "分页", notes = "")
- @ApiOperationSupport(order = 2)
- public R page(@RequestBody @Valid ProjectPageDTO dto) {
- Query query = new Query();
- query.setCurrent(dto.getCurrent());
- query.setSize(dto.getSize());
- IPage<Project> page = projectService.getPage(dto, Condition.getPage(query));
- return R.data(ProjectWrapper.build().pageVO(page));
- }
- /**
- * 删除
- */
- @GetMapping("/delete")
- @ApiOperation(value = "删除", notes = "传入ids")
- @ApiOperationSupport(order = 3)
- public R<Boolean> delete(String ids) {
- boolean b = projectService.removeBatchByIds(Func.toLongList(ids));
- if (b) {
- //todo 项目相关的信息删除
- asyncService.removeProject(Func.toLongList(ids));
- }
- return R.status(b);
- }
- /**
- * 项目下的所有阶段
- */
- @GetMapping("/stage-list")
- @ApiOperation(value = "项目下的所有阶段", notes = "传入projectId")
- @ApiOperationSupport(order = 4)
- public R<List<ProjectStageVO>> stageList(Long projectId) {
- List<ProjectStage> projectStages = stageService.listByProjectId(projectId);
- return R.data(ProjectStageWrapper.build().listVO(projectStages));
- }
- /**
- * 修改阶段
- */
- @PostMapping("/submit-stage")
- @ApiOperation(value = "修改项目阶段", notes = "")
- @ApiOperationSupport(order = 5)
- public R submitStage(@RequestBody ProjectStage stage) {
- return R.status(stageService.submit(stage));
- }
- /**
- * 阶段详情
- */
- @GetMapping("/stage-detail")
- @ApiOperation(value = "阶段详情", notes = "传入stageId")
- @ApiOperationSupport(order = 6)
- public R stageDetail(@RequestParam Long stageId) {
- ProjectStage stage = stageService.getById(stageId);
- return R.data(ProjectStageWrapper.build().entityVO(stage));
- }
- /**
- * 项目列表统计
- */
- @GetMapping("/project-statistics")
- @ApiOperation(value = "项目列表统计", notes = "")
- @ApiOperationSupport(order = 6)
- public R projectStatistics(@RequestParam Long topDept, @RequestParam Integer deptCategory, @RequestParam String year) {
- return R.data(projectService.projectStatistics(topDept, deptCategory, year));
- }
- /**
- * 项目小组
- */
- @GetMapping("/project-group-mem")
- @ApiOperation(value = "项目组成员", notes = "传入projectId,competentUnit:主管单位")
- @ApiOperationSupport(order = 7)
- public R groupMem(@RequestParam Long projectId, @RequestParam Long competentUnit) {
- List<ProjectGroup> list = projectGroupService.getGroupByProjectId(projectId, competentUnit);
- return R.data(ProjectGroupWrapper.build().listVO(list));
- }
- @GetMapping("/project-detail")
- @ApiOperation(value = "项目详情", notes = "")
- @ApiOperationSupport(order = 8)
- public R detail(@RequestParam Long projectId) {
- Project byId = projectService.getById(projectId);
- return R.data(ProjectWrapper.build().entityVO(byId));
- }
- /**
- * 工作台任务统计
- */
- @GetMapping("/task-summary")
- @ApiOperation(value = "项目任务统计", notes = "传入stageId")
- @ApiOperationSupport(order = 9)
- public R<MyTaskStatistics> taskStatistics(@RequestParam Long stageId) {
- return R.data(taskService.taskStatistics(stageId, null, null));
- }
- /**
- * 任务分布
- */
- @GetMapping("/task-distribution")
- @ApiOperation(value = "任务分布", notes = "传入projectId")
- @ApiOperationSupport(order = 10)
- public R projectTaskSummary(@RequestParam Long stageId) {
- return R.data(taskService.projectTaskSummary(stageId));
- }
- /**
- * 任务进展走势
- */
- @GetMapping("/task-situation")
- @ApiOperation(value = "任务进展走势", notes = "传入projectId")
- @ApiOperationSupport(order = 11)
- public R projectTaskSituation(@RequestParam Long stageId) {
- return R.data(taskService.projectTaskSituation(stageId));
- }
- @GetMapping("/task-burnout")
- @ApiOperation(value = "任务燃尽", notes = "传入projectId")
- @ApiOperationSupport(order = 12)
- public R projectTaskBurnout(@RequestParam Long stageId) {
- return R.data(taskService.projectTaskBurnout(stageId));
- }
- }
|