mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 04:32:49 +00:00
fix: 修复任务统计导出漏掉无计划时间已完成任务的问题
This commit is contained in:
parent
c3a71e5b07
commit
7acc9227ff
@ -1359,11 +1359,30 @@ class ProjectController extends AbstractController
|
|||||||
'style' => 'font-weight: bold;padding-bottom: 4px;',
|
'style' => 'font-weight: bold;padding-bottom: 4px;',
|
||||||
];
|
];
|
||||||
//
|
//
|
||||||
|
$startTime = Carbon::parse($time[0])->startOfDay();
|
||||||
|
$endTime = Carbon::parse($time[1])->endOfDay();
|
||||||
$builder = ProjectTask::with(['taskTag'])->select(['project_tasks.*', 'project_task_users.userid as ownerid'])
|
$builder = ProjectTask::with(['taskTag'])->select(['project_tasks.*', 'project_task_users.userid as ownerid'])
|
||||||
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_id')
|
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_id')
|
||||||
->where('project_task_users.owner', 1)
|
->where('project_task_users.owner', 1)
|
||||||
->whereIn('project_task_users.userid', $userid)
|
->whereIn('project_task_users.userid', $userid);
|
||||||
->betweenTime(Carbon::parse($time[0])->startOfDay(), Carbon::parse($time[1])->endOfDay(), $type);
|
// 按导出时间类型筛选:
|
||||||
|
// - createdTime:仅按创建时间范围筛选;
|
||||||
|
// - 任务时间(默认):优先使用任务计划时间筛选,但对“无计划时间”的任务,
|
||||||
|
// 若在考核期内已完成,则按完成时间 complete_at 兜底纳入导出,避免漏掉考核期内完成的任务。
|
||||||
|
if ($type === 'createdTime') {
|
||||||
|
$builder->betweenTime($startTime, $endTime, $type);
|
||||||
|
} else {
|
||||||
|
$builder->where(function ($query) use ($startTime, $endTime) {
|
||||||
|
$query->betweenTime($startTime, $endTime, 'taskTime')
|
||||||
|
->orWhere(function ($q2) use ($startTime, $endTime) {
|
||||||
|
$q2->where(function ($q3) {
|
||||||
|
$q3->whereNull('project_tasks.start_at')
|
||||||
|
->orWhereNull('project_tasks.end_at');
|
||||||
|
})->whereNotNull('project_tasks.complete_at')
|
||||||
|
->whereBetween('project_tasks.complete_at', [$startTime, $endTime]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
$builder->orderByDesc('project_tasks.id')->chunk(100, function ($tasks) use ($doo, &$datas) {
|
$builder->orderByDesc('project_tasks.id')->chunk(100, function ($tasks) use ($doo, &$datas) {
|
||||||
/** @var ProjectTask $task */
|
/** @var ProjectTask $task */
|
||||||
foreach ($tasks as $task) {
|
foreach ($tasks as $task) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user