This commit is contained in:
Your Name
2026-05-06 18:17:37 +08:00
parent c389fea73c
commit a7fd55aa1c
16 changed files with 2069 additions and 375 deletions
@@ -105,6 +105,44 @@ class PrescriptionOrderLists extends BaseAdminDataLists implements ListsSearchIn
if ((int) ($this->params['exclude_fulfillment_cancelled'] ?? 0) === 1) {
$query->where('fulfillment_status', '<>', 4);
}
$this->applyYejiErCenterRevisitOrderFilter($query);
}
/**
* 业绩看板:仅列出二中心复诊口径下的业务订单(须同时传 assistant_id、start_time、end_timerevisit_slot=0 为全部复诊分项合计)。
*/
private function applyYejiErCenterRevisitOrderFilter($query): void
{
if ((int) ($this->params['yeji_er_center_revisit_only'] ?? 0) !== 1) {
return;
}
$assistantId = (int) ($this->params['assistant_id'] ?? 0);
$slot = (int) ($this->params['yeji_er_center_revisit_slot'] ?? 0);
if ($assistantId <= 0) {
return;
}
$st = trim((string) ($this->params['start_time'] ?? ''));
$et = trim((string) ($this->params['end_time'] ?? ''));
if ($st === '' || $et === '') {
return;
}
$t0 = strtotime($st);
$t1 = strtotime($et);
if ($t0 === false || $t1 === false) {
return;
}
$ids = DeptLogic::listErCenterRevisitOrderIdsForAssistant(
$assistantId,
$slot,
(int) $t0,
(int) $t1
);
if ($ids === []) {
$query->whereRaw('0 = 1');
return;
}
$query->whereIn('id', $ids);
}
/**
@@ -397,6 +435,7 @@ class PrescriptionOrderLists extends BaseAdminDataLists implements ListsSearchIn
}
foreach ($lists as &$item) {
PrescriptionOrderLogic::maskInternalCostIfNeeded($item, $this->adminInfo);
PrescriptionOrderLogic::maskRemarkExtraIfNeeded($item, $this->adminInfo);
$pid = (int) ($item['id'] ?? 0);
$item['linked_pay_order_count'] = (int) PrescriptionOrderPayOrder::where(
'prescription_order_id',