diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskController.java index 7280269..a413e93 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaTaskController.java @@ -83,6 +83,22 @@ public class SysOaTaskController extends BaseController { return R.ok(iSysOaTaskService.listDocumentProject(projectId)); } + /** + * 按总包项目+阶段查询任务 + */ + @GetMapping("/rm/tasks") + public R> listByRmProject(@RequestParam Long projectId, @RequestParam(required = false) String stageCode) { + return R.ok(iSysOaTaskService.queryByRmProject(projectId, stageCode)); + } + + /** + * 按总包项目统计各阶段任务数 + */ + @GetMapping("/rm/taskCount") + public R>> taskCountByStage(@RequestParam Long projectId) { + return R.ok(iSysOaTaskService.countByRmProjectStage(projectId)); + } + /** * 导出任务管理列表 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java index 420c2a5..b0b828d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java @@ -34,6 +34,10 @@ public class SysOaTask extends BaseEntity { * 项目ID */ private Long projectId; + /** + * 阶段编码 + */ + private String stageCode; /** * 任务主题 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java index ffa1553..097128b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java @@ -37,6 +37,11 @@ public class SysOaTaskBo extends BaseEntity { */ private Long projectId; + /** + * 阶段编码 + */ + private String stageCode; + /** * 任务主题 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java index a13f38e..e417846 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java @@ -38,6 +38,11 @@ public class SysOaTaskVo { @ExcelProperty(value = "项目ID") private Long projectId; + /** + * 阶段编码 + */ + private String stageCode; + /** * 任务主题 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskMapper.java index 479ab2e..ad9a8e2 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaTaskMapper.java @@ -11,6 +11,7 @@ import com.ruoyi.oa.domain.vo.SysOaTaskItemVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.Date; import java.util.List; @@ -61,6 +62,12 @@ public interface SysOaTaskMapper extends BaseMapperPlus selectTaskItemsByTaskId(Long taskId); + /** + * 按总包项目统计各阶段任务数 + */ + @Select("SELECT stage_code AS stageCode, COUNT(*) AS taskCount FROM sys_oa_task WHERE project_id = #{projectId} AND del_flag = 0 GROUP BY stage_code") + List> countByRmProjectStage(@Param("projectId") Long projectId); + /** * 绩效报告:按用户 + 时间范围查询任务明细(包含 task_item 子项) */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskService.java index 5373691..648aff4 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaTaskService.java @@ -128,4 +128,13 @@ public interface ISysOaTaskService { */ List getTasksByNicknameAndProjectIds(String nickName, List projectIds, Date startTime,Date endTime); + /** + * 按总包项目+阶段查询任务 + */ + List queryByRmProject(Long projectId, String stageCode); + + /** + * 按总包项目统计各阶段任务数 + */ + List> countByRmProjectStage(Long projectId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java index f4197a1..e1b2573 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java @@ -159,6 +159,20 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { return baseMapper.queryListPlus(bo); } + @Override + public List> countByRmProjectStage(Long projectId) { + return baseMapper.countByRmProjectStage(projectId); + } + + @Override + public List queryByRmProject(Long projectId, String stageCode) { + return baseMapper.selectVoList( + Wrappers.lambdaQuery() + .eq(SysOaTask::getProjectId, projectId) + .eq(stageCode != null, SysOaTask::getStageCode, stageCode) + .orderByAsc(SysOaTask::getCreateTime)); + } + private QueryWrapper buildQueryWrapper(SysOaTaskBo bo) { Map params = bo.getParams();