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 @@ -->