fix: 顶部数据展板根据用户部门类型统计数据-需求部门用户统计发起的任务,接单部门用户统计接收的任务

This commit is contained in:
Your Name 2026-01-15 17:27:39 +08:00
parent c74274e8b4
commit 16f035dcee

View File

@ -2391,8 +2391,18 @@ public class TaskService {
log.info("部门负责人视角: deptId={}, deptType={}, childDeptCount={}", deptId, deptType, deptAndChildIds.size());
}
log.info("获取工作台统计数据: userId={}, isAdmin={}, month={}, deptId={}, isDeptView={}, deptType={}, deptAndChildIds={}",
userId, isAdmin, month, deptId, isDeptView, deptType, deptAndChildIds);
// 获取用户自己的部门类型(用于普通用户统计)
String userDeptType = null;
User currentUser = userMapper.selectById(userId);
if (currentUser != null && currentUser.getDeptId() != null) {
Department userDept = departmentMapper.selectById(currentUser.getDeptId());
if (userDept != null) {
userDeptType = userDept.getDeptType();
}
}
log.info("获取工作台统计数据: userId={}, isAdmin={}, month={}, deptId={}, isDeptView={}, deptType={}, userDeptType={}, deptAndChildIds={}",
userId, isAdmin, month, deptId, isDeptView, deptType, userDeptType, deptAndChildIds);
// 解析月份,如果不传则使用当前月份
LocalDate targetMonth;
@ -2441,9 +2451,18 @@ public class TaskService {
.eq(Task::getStatus, "in_progress")
.in(Task::getPublisherDeptId, deptAndChildIds));
} else if (!isAdmin) {
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "in_progress")
.eq(Task::getReceiverId, userId));
// 普通用户:根据部门类型决定统计方式
if ("demand".equals(userDeptType)) {
// 需求部门用户:统计自己发起的任务
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "in_progress")
.eq(Task::getPublisherId, userId));
} else {
// 接单部门用户:统计自己接收的任务
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "in_progress")
.eq(Task::getReceiverId, userId));
}
} else {
inProgressCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "in_progress"));
@ -2460,9 +2479,18 @@ public class TaskService {
.eq(Task::getStatus, "completed")
.in(Task::getPublisherDeptId, deptAndChildIds));
} else if (!isAdmin) {
completedCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "completed")
.eq(Task::getReceiverId, userId));
// 普通用户:根据部门类型决定统计方式
if ("demand".equals(userDeptType)) {
// 需求部门用户:统计自己发起的任务
completedCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "completed")
.eq(Task::getPublisherId, userId));
} else {
// 接单部门用户:统计自己接收的任务
completedCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "completed")
.eq(Task::getReceiverId, userId));
}
} else {
completedCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "completed"));
@ -2479,9 +2507,18 @@ public class TaskService {
.eq(Task::getStatus, "review")
.in(Task::getPublisherDeptId, deptAndChildIds));
} else if (!isAdmin) {
reviewCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "review")
.eq(Task::getReceiverId, userId));
// 普通用户:根据部门类型决定统计方式
if ("demand".equals(userDeptType)) {
// 需求部门用户:统计自己发起的任务
reviewCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "review")
.eq(Task::getPublisherId, userId));
} else {
// 接单部门用户:统计自己接收的任务
reviewCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "review")
.eq(Task::getReceiverId, userId));
}
} else {
reviewCount = taskMapper.selectCount(new LambdaQueryWrapper<Task>()
.eq(Task::getStatus, "review"));