This commit is contained in:
gr
2026-05-14 11:31:40 +08:00
267 changed files with 317 additions and 272 deletions
@@ -57,6 +57,23 @@ class AppointmentLists extends BaseAdminDataLists implements ListsSearchInterfac
$inList = implode(',', $ids);
$query->whereRaw("(a.doctor_id IN ({$inList}) OR u.assistant_id IN ({$inList}))");
}
/**
* 按医助筛选:诊单指派医助或挂号记录上的医助任一命中即可
*
* @param mixed $query
*/
private function applyAssistantIdFilter($query): void
{
$aid = (int) ($this->params['assistant_id'] ?? 0);
if ($aid <= 0) {
return;
}
$query->where(function ($q) use ($aid): void {
$q->where('u.assistant_id', $aid)->whereOr('a.assistant_id', $aid);
});
}
/**
* @notes 设置搜索条件
* @return array
@@ -128,6 +145,8 @@ class AppointmentLists extends BaseAdminDataLists implements ListsSearchInterfac
$query->where($this->searchWhere);
}
$this->applyAssistantIdFilter($query);
// 是否确认诊单:1=已确认 0=未确认
if (isset($this->params['diagnosis_confirmed']) && $this->params['diagnosis_confirmed'] !== '') {
$confirmed = (int)$this->params['diagnosis_confirmed'];
@@ -305,6 +324,8 @@ class AppointmentLists extends BaseAdminDataLists implements ListsSearchInterfac
$query->where('a.doctor_id', '=', (int) $this->params['doctor_id']);
}
$this->applyAssistantIdFilter($query);
if ((int) ($this->params['exclude_cancelled'] ?? 0) === 1) {
$sf = $this->params['status'] ?? '';
if ($sf === '' || (int) $sf !== 2) {