From 602928dc0bdeac62b1d66f95a9a19db877f44312 Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Wed, 22 Apr 2026 18:44:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=BC=E5=90=88=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/oa/domain/vo/SysOaProjectVo.java | 10 ++ .../service/impl/SysOaProjectServiceImpl.java | 1 + .../oa/service/impl/SysOaTaskServiceImpl.java | 1 + .../mapper/oa/SysOaProjectMapper.xml | 8 +- .../src/store/modules/oaProjectDashboard2.js | 2 +- .../src/views/oa/project/dashboard2/index.vue | 91 +++++++++----- .../oa/project/pace/components/xmind.vue | 119 ++++++++++-------- ruoyi-ui/src/views/oa/project/pace/index.vue | 20 ++- .../src/views/oa/task/allocation/index.vue | 5 +- 9 files changed, 168 insertions(+), 89 deletions(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java index a075d6f..97ace33 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java @@ -284,4 +284,14 @@ public class SysOaProjectVo { private Long processCardCount; private Long deliveryOrderCount; + + // 总览页面统计 + private Long taskFinishCount; + + private Long taskTotalCount; + + private Long scheduleTotalCount; + + + private Long scheduleFinishCount; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index 44fb56a..3f35f2f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -221,6 +221,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { } qw.eq(bo.getCustomerId() != null, "p.customer_id", bo.getCustomerId()); qw.orderByDesc("p.is_top").orderByDesc("p.create_time"); + qw.groupBy("p.project_id"); return qw; } 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 7c56621..8835b78 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 @@ -154,6 +154,7 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { QueryWrapper lqw = Wrappers.query(); lqw.eq("sot.del_flag", 0); lqw.eq(bo.getProjectId()!=null, "sot.project_id", bo.getProjectId()); + lqw.eq(bo.getTaskId()!=null, "sot.task_id", bo.getTaskId()); lqw.eq(bo.getCreateUserId()!=null, "sot.create_user_id", bo.getCreateUserId()); lqw.eq(bo.getWorkerId()!=null, "sot.worker_id", bo.getWorkerId()); lqw.eq(bo.getProjectId()!=null, "sot.project_id", bo.getProjectId()); diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml index 17a1595..dd9ebdf 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml @@ -310,9 +310,15 @@ TIMESTAMPDIFF(DAY, NOW(), p.postpone_time) AS remainTime, p.customer_id AS customerId, c.name AS customerName, - p.is_top AS isTop + p.is_top AS isTop, + COUNT(sot.task_id) AS taskTotalCount , + SUM(CASE WHEN sot.status = 1 THEN 1 ELSE 0 END) AS taskFinishCount, + COUNT(ops.schedule_id) AS scheduleTotalCount, + SUM(CASE WHEN ops.status = 2 THEN 1 ELSE 0 END) AS scheduleFinishCount FROM sys_oa_project p LEFT JOIN oa_customer c ON p.customer_id = c.customer_id + left join sys_oa_task sot on sot.project_id = p.project_id and sot.del_flag = 0 + left join oa_project_schedule ops on ops.project_id = p.project_id and ops.del_flag = 0 ${ew.getCustomSqlSegment} diff --git a/ruoyi-ui/src/store/modules/oaProjectDashboard2.js b/ruoyi-ui/src/store/modules/oaProjectDashboard2.js index 3ea5955..05a3249 100644 --- a/ruoyi-ui/src/store/modules/oaProjectDashboard2.js +++ b/ruoyi-ui/src/store/modules/oaProjectDashboard2.js @@ -24,7 +24,7 @@ const state = { projectQuery: { pageNum: 1, - pageSize: 10, + pageSize: 15, keyword: '' }, projectList: [], diff --git a/ruoyi-ui/src/views/oa/project/dashboard2/index.vue b/ruoyi-ui/src/views/oa/project/dashboard2/index.vue index 9797b8b..8ad9bbe 100644 --- a/ruoyi-ui/src/views/oa/project/dashboard2/index.vue +++ b/ruoyi-ui/src/views/oa/project/dashboard2/index.vue @@ -4,8 +4,9 @@ -->