| 123456789101112131415161718192021222324252627282930 |
- <?php
- declare(strict_types=1);
- namespace plugin\saiadmin\app\service\enterprise;
- /** Resolve per-SKU risk first, then prioritize unhandled risks across the enterprise. */
- final class EnterpriseReplenishmentPolicy
- {
- public const LABELS = ['healthy'=>'正常', 'urgent'=>'紧急', 'pending'=>'待补货', 'ordered'=>'已建单', 'unconfigured'=>'未建账户', 'disabled'=>'已停用'];
- private ?\plugin\saiadmin\app\service\alerts\ReplenishmentPolicy $policy = null;
- public function alertExpression(): string
- {
- return ($this->policy ??= new \plugin\saiadmin\app\service\alerts\ReplenishmentPolicy())->alertExpression();
- }
- public function urgentExpression(): string
- {
- return ($this->policy ??= new \plugin\saiadmin\app\service\alerts\ReplenishmentPolicy())->urgentExpression();
- }
- public function resolve(array $row): string
- {
- if ((int)$row['status'] !== 1) return 'disabled';
- if ((int)$row['urgent_count'] > 0) return 'urgent';
- if ((int)$row['pending_count'] > 0) return 'pending';
- if ((int)$row['active_deliveries'] > 0) return 'ordered';
- return (int)$row['enabled_accounts'] > 0 ? 'healthy' : 'unconfigured';
- }
- }
|