feat: sam_stat P1 도메인 확장 (Phase 3)
- 차원 테이블: dim_client, dim_product 마이그레이션 + SCD Type 2 동기화 (DimensionSyncService) - 재고 통계: stat_inventory_daily + InventoryStatService (stocks, stock_transactions, inspections) - 견적/영업 통계: stat_quote_pipeline_daily + QuoteStatService (quotes, biddings, sales_prospects) - 인사/근태 통계: stat_hr_attendance_daily + HrStatService (attendances, leaves, user_tenants) - KPI/알림: stat_kpi_targets, stat_alerts + KpiAlertService + StatCheckKpiAlertsCommand - StatAggregatorService에 inventory, quote, hr 도메인 추가 (총 6개 도메인) - 스케줄러: stat:check-kpi-alerts 매일 09:00 등록 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
33
app/Console/Commands/StatCheckKpiAlertsCommand.php
Normal file
33
app/Console/Commands/StatCheckKpiAlertsCommand.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Services\Stats\KpiAlertService;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class StatCheckKpiAlertsCommand extends Command
|
||||
{
|
||||
protected $signature = 'stat:check-kpi-alerts';
|
||||
|
||||
protected $description = 'KPI 목표 대비 실적을 체크하고 미달 시 알림을 생성합니다';
|
||||
|
||||
public function handle(KpiAlertService $service): int
|
||||
{
|
||||
$this->info('KPI 알림 체크 시작...');
|
||||
|
||||
$result = $service->checkKpiAlerts();
|
||||
|
||||
$this->info("알림 생성: {$result['alerts_created']}건");
|
||||
|
||||
if (! empty($result['errors'])) {
|
||||
$this->warn('오류 발생:');
|
||||
foreach ($result['errors'] as $error) {
|
||||
$this->error(" - {$error}");
|
||||
}
|
||||
}
|
||||
|
||||
$this->info('KPI 알림 체크 완료.');
|
||||
|
||||
return empty($result['errors']) ? self::SUCCESS : self::FAILURE;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user