app/Console/Commands/ShjElevenCommand.php を削除
Some checks failed
Deploy main / deploy (push) Has been cancelled
Some checks failed
Deploy main / deploy (push) Has been cancelled
This commit is contained in:
parent
9c997e8892
commit
7be5e66430
@ -1,182 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use App\Services\ShjElevenService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SHJ-11 現在契約台数集計コマンド
|
|
||||||
*
|
|
||||||
* 集計単位每个の契約台数を算出し、ゾーンマスタとの管理処理を実行する
|
|
||||||
* バックグラウンドで実行される定期バッチ処理
|
|
||||||
*/
|
|
||||||
class ShjElevenCommand extends Command
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* コンソールコマンドの名前とシグネチャ
|
|
||||||
*
|
|
||||||
* 引数: なし
|
|
||||||
* オプション: なし
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $signature = 'shj:11';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* コンソールコマンドの説明
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $description = 'SHJ-11 現在契約台数集計 - 集計単位每个契約台数を算出しゾーンマスタ管理を実行';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SHJ-11サービスクラス
|
|
||||||
*
|
|
||||||
* @var ShjElevenService
|
|
||||||
*/
|
|
||||||
protected $shjElevenService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* コンストラクタ
|
|
||||||
*
|
|
||||||
* @param ShjElevenService $shjElevenService
|
|
||||||
*/
|
|
||||||
public function __construct(ShjElevenService $shjElevenService)
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
$this->shjElevenService = $shjElevenService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* コンソールコマンドを実行
|
|
||||||
*
|
|
||||||
* 処理フロー:
|
|
||||||
* 1. 集計単位每个の契約台数を算出する
|
|
||||||
* 2. 取得件数判定
|
|
||||||
* 3. ゾーンマスタを取得する
|
|
||||||
* 4. 取得判定とゾーンマスタ登録
|
|
||||||
* 5. 契約台数チェック(限界台数超過判定)
|
|
||||||
* 6. 契約台数を反映する
|
|
||||||
* 7. バッチ処理ログを作成する
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
// 開始ログ出力
|
|
||||||
$startTime = now();
|
|
||||||
$this->info('SHJ-11 現在契約台数集計を開始します。');
|
|
||||||
Log::info('SHJ-11 現在契約台数集計開始', [
|
|
||||||
'start_time' => $startTime
|
|
||||||
]);
|
|
||||||
|
|
||||||
// 【処理1】集計単位每个の契約台数を算出する
|
|
||||||
$this->info('【処理1】集計単位每个の契約台数を算出しています...');
|
|
||||||
$contractCounts = $this->shjElevenService->calculateContractCounts();
|
|
||||||
|
|
||||||
// 【判断1】取得件数判定
|
|
||||||
$countResults = count($contractCounts);
|
|
||||||
$this->info("取得件数: {$countResults}件");
|
|
||||||
|
|
||||||
if ($countResults === 0) {
|
|
||||||
// 対象なしの結果を設定する
|
|
||||||
$this->info('契約台数算出対象なしのため処理を終了します。');
|
|
||||||
|
|
||||||
// バッチ処理ログを作成
|
|
||||||
$this->shjElevenService->createBatchLog(
|
|
||||||
'success',
|
|
||||||
[],
|
|
||||||
'契約台数算出対象なし',
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
|
|
||||||
Log::info('SHJ-11 現在契約台数集計完了(対象なし)', [
|
|
||||||
'end_time' => now(),
|
|
||||||
'duration_seconds' => $startTime->diffInSeconds(now())
|
|
||||||
]);
|
|
||||||
|
|
||||||
return self::SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 【処理2・3】ゾーンマスタ処理(取得・登録・更新)
|
|
||||||
$this->info('【処理2】ゾーンマスタ処理を実行しています...');
|
|
||||||
$processResult = $this->shjElevenService->processZoneManagement($contractCounts);
|
|
||||||
|
|
||||||
// 処理結果確認
|
|
||||||
if ($processResult['success']) {
|
|
||||||
$endTime = now();
|
|
||||||
$this->info('SHJ-11 現在契約台数集計が正常に完了しました。');
|
|
||||||
$this->info("処理時間: {$startTime->diffInSeconds($endTime)}秒");
|
|
||||||
$this->info("処理対象件数: {$countResults}件");
|
|
||||||
$this->info("ゾーン新規作成件数: {$processResult['created_zones']}件");
|
|
||||||
$this->info("ゾーン更新件数: {$processResult['updated_zones']}件");
|
|
||||||
$this->info("限界台数超過件数: {$processResult['over_capacity_count']}件");
|
|
||||||
|
|
||||||
// 【処理4】バッチ処理ログを作成する
|
|
||||||
$this->shjElevenService->createBatchLog(
|
|
||||||
'success',
|
|
||||||
$processResult['parameters'],
|
|
||||||
'現在契約台数集計処理完了',
|
|
||||||
$countResults,
|
|
||||||
$processResult['created_zones'] + $processResult['updated_zones'],
|
|
||||||
0
|
|
||||||
);
|
|
||||||
|
|
||||||
Log::info('SHJ-11 現在契約台数集計完了', [
|
|
||||||
'end_time' => $endTime,
|
|
||||||
'duration_seconds' => $startTime->diffInSeconds($endTime),
|
|
||||||
'processed_count' => $countResults,
|
|
||||||
'created_zones' => $processResult['created_zones'],
|
|
||||||
'updated_zones' => $processResult['updated_zones'],
|
|
||||||
'over_capacity_count' => $processResult['over_capacity_count']
|
|
||||||
]);
|
|
||||||
|
|
||||||
return self::SUCCESS;
|
|
||||||
} else {
|
|
||||||
$this->error('SHJ-11 現在契約台数集計でエラーが発生しました: ' . $processResult['message']);
|
|
||||||
|
|
||||||
// エラー時のバッチログ作成
|
|
||||||
$this->shjElevenService->createBatchLog(
|
|
||||||
'error',
|
|
||||||
$processResult['parameters'] ?? [],
|
|
||||||
$processResult['message'],
|
|
||||||
$countResults,
|
|
||||||
$processResult['created_zones'] ?? 0,
|
|
||||||
1
|
|
||||||
);
|
|
||||||
|
|
||||||
Log::error('SHJ-11 現在契約台数集計エラー', [
|
|
||||||
'error' => $processResult['message'],
|
|
||||||
'details' => $processResult['details'] ?? null
|
|
||||||
]);
|
|
||||||
|
|
||||||
return self::FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
$this->error('SHJ-11 現在契約台数集計で予期しないエラーが発生しました: ' . $e->getMessage());
|
|
||||||
|
|
||||||
// 例外時のバッチログ作成
|
|
||||||
$this->shjElevenService->createBatchLog(
|
|
||||||
'error',
|
|
||||||
[],
|
|
||||||
'システムエラー: ' . $e->getMessage(),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
);
|
|
||||||
|
|
||||||
Log::error('SHJ-11 現在契約台数集計例外エラー', [
|
|
||||||
'exception' => $e->getMessage(),
|
|
||||||
'trace' => $e->getTraceAsString()
|
|
||||||
]);
|
|
||||||
|
|
||||||
return self::FAILURE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user