From b2a9a117bc31e8c920b9a410f7ab9702a32c94c5 Mon Sep 17 00:00:00 2001 From: jhd <1684074631@qq.com> Date: Thu, 2 Jul 2026 10:30:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=BB=BB=E5=8A=A1=E5=85=B3?= =?UTF-8?q?=E8=81=94=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/oa/controller/SysOaTaskController.java | 16 ++++++++++++++++ .../main/java/com/ruoyi/oa/domain/SysOaTask.java | 4 ++++ .../java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java | 5 +++++ .../java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java | 5 +++++ .../com/ruoyi/oa/mapper/SysOaTaskMapper.java | 7 +++++++ .../com/ruoyi/oa/service/ISysOaTaskService.java | 9 +++++++++ .../oa/service/impl/SysOaTaskServiceImpl.java | 14 ++++++++++++++ 7 files changed, 60 insertions(+) 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();