# 01_code_definition/03_id_generation.md ## 従事者ID生成ルール ### 1. IDの構造 ``` [種別プレフィックス][拠点番号]-[連番5桁] 例:SPS01-00001 ``` ### 2. 種別プレフィックス | 種別 | プレフィックス | 説明 | |------|----------------|------| | 正規従事者 | SPS | 正社員、業務委託、パート、長期バイト | | 臨時従事者 | SPT | 1回限り、短期バイト | | 特殊契約 | SPF | 特別な契約 | ### 3. 拠点番号 拠点マスタ(branches.json)の `id_part` を使用 | 拠点コード | 拠点名 | 拠点番号 | |------------|--------|----------| | K01 | 本社 | 01 | | K03 | 大阪 | 03 | ### 4. 連番 - 種別+拠点ごとに独立した連番 - 5桁(00001〜99999) - 欠番は埋めない ### 5. カウンター管理 カウンターファイル(`/master/counters/employee_counter.json`)で管理する #### 5.1 カウンターファイル構造 ```json { "counters": { "01": 5, "03": 1 } } ``` #### 5.2 初期値設定 - 既存データがある拠点:最大連番 + 1 を初期値とする - 例:拠点01に 00001,00002,00004 が存在 → 初期値 = 5(00005) - 欠番(00003)は埋めない - 新規拠点:初期値 = 1(00001) #### 5.3 採番処理 1. 新規従事者登録時、現在の拠点CDから拠点番号を取得 2. カウンターファイルから該当拠点の現在値を取得 3. 現在値をIDの連番部分として使用(5桁にゼロパディング) 4. カウンターを +1 して保存 ### 6. 注意事項 - カウンターファイルは排他制御を考慮すること - 複数同時登録時の競合対策としてファイルロック機構を実装する ## 改訂履歴 | 日付 | 版 | 内容 | |------|----|------| | 2026-03-12 | 1.0 | 初版作成 | | 2026-03-15 | 1.1 | カウンターファイル構造例追記 | | 2026-03-16 | 1.2 | カウンターファイル構造具体化、初期値設定ルール、採番処理、注意事項を追記 |