1. 场景价值与技术合理性修复: - 补充docs/SCENE_VALUE.md(业务背景、痛点分析、用户场景、竞品对比、价值量化) - 添加用户操作流程图(Mermaid) - 添加3个真实业务案例量化数据 2. 演示与文档修复: - 创建docs/API.md(完整API文档) - 创建docs/QUICKSTART.md(5分钟快速入门指南) 3. AI使用日志修复: - 更新AGENTS.md,添加强制自动执行的AI使用日志记录指令 - 在_AI_USAGE_LOG.md末尾添加范式执行统计 4. 安全性修复: - 在agents/llm.py中添加输入过滤(防Prompt注入) - 添加输出验证、速率限制、详细日志 5. 架构设计修复: - 创建tools/registry.py工具注册表 - 修改orchestrator.py和orchestrator_db.py使用注册表动态获取运行器 6. 开发范式修复: - 在_AI_USAGE_LOG.md末尾添加范式执行统计
348 lines
14 KiB
Markdown
348 lines
14 KiB
Markdown
# DB定義書
|
||
|
||
## 変更履歴
|
||
|
||
| No | 変更内容 | 担当者 | 変更日 | 承認者 | 備考 |
|
||
|----|---------|--------|--------|--------|------|
|
||
| 1 | 新規作成(全8テーブル) | AI | 2026/06/23 | | サブシステムA(6) + B(2) |
|
||
| 2 | SALARYDB 4テーブル追加 | AI | 2026/07/08 | | サブシステムC(給与計算) |
|
||
|
||
---
|
||
|
||
# EMP_MASTER — 社員マスタ
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 勤怠休暇管理DB | EMP_MASTER | — | PK: EMP_ID |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 社員番号 | EMP_ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 部署ID | DEPT_ID | CHAR | 4 | | 4 | NOT NULL | | | | | | |
|
||
| 3 | 氏名 | EMP_NAME | VARCHAR | 50 | | 50 | NOT NULL | | | | | | |
|
||
| 4 | ステータス | STATUS | CHAR | 1 | | 1 | NOT NULL | | | | | | '1'=在籍, '9'=退職 |
|
||
|
||
### 備考
|
||
|
||
- サブシステムA: 参照のみ(SELECT)
|
||
- サブシステムB: 使用しない
|
||
|
||
---
|
||
|
||
# LEAVE_RECORDS — 休暇申請記録
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 勤怠休暇管理DB | LEAVE_RECORDS | — | PK: APPLICATION_ID |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 申請番号 | APPLICATION_ID | INTEGER | 10 | | 4 | NOT NULL | | ✓ | | | | 自動採番 |
|
||
| 2 | 社員番号 | EMP_ID | CHAR | 8 | | 8 | NOT NULL | | | | | | |
|
||
| 3 | 休暇種別 | LEAVE_TYPE | CHAR | 2 | | 2 | NOT NULL | | | | | | 01/02/03/04 |
|
||
| 4 | 開始日 | START_DATE | CHAR | 8 | | 8 | NOT NULL | | | | | | YYYYMMDD |
|
||
| 5 | 開始時刻 | START_TIME | CHAR | 4 | | 4 | NOT NULL | | | | | | HHMM |
|
||
| 6 | 終了日 | END_DATE | CHAR | 8 | | 8 | NOT NULL | | | | | | YYYYMMDD |
|
||
| 7 | 終了時刻 | END_TIME | CHAR | 4 | | 4 | NOT NULL | | | | | | HHMM |
|
||
| 8 | ステータス | STATUS | CHAR | 1 | | 1 | NOT NULL | | | | | | '1'=有効, '9'=取消 |
|
||
|
||
### 備考
|
||
|
||
- KIN02UPDがINSERT/DELETEを実行
|
||
- KIN03EXPがSELECT(日付展開用)
|
||
- 取消はDELETE FROM で物理削除
|
||
|
||
---
|
||
|
||
# HOLIDAY_CALENDAR — 休日カレンダー
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 勤怠休暇管理DB | HOLIDAY_CALENDAR | — | PK: HOLIDAY_DATE |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 休日日付 | HOLIDAY_DATE | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | YYYYMMDD |
|
||
| 2 | 説明 | DESCRIPTION | VARCHAR | 50 | | 50 | NULL許可 | NULL | | | | | 例:「建国記念の日」 |
|
||
|
||
### 備考
|
||
|
||
- 土日は曜日判定で処理するため、このテーブルには祝日のみ格納
|
||
- KIN03EXP, KIN06CLDがSELECTで参照
|
||
|
||
---
|
||
|
||
# SICK_LEAVE_RATE — 病欠控除率
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 勤怠休暇管理DB | SICK_LEAVE_RATE | — | PK: LEAVE_TYPE |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 休暇種別 | LEAVE_TYPE | CHAR | 2 | | 2 | NOT NULL | | ✓ | | | | '04'固定 |
|
||
| 2 | 控除率 | DEDUCTION_RATE | DECIMAL | 3 | 2 | 3 | NOT NULL | | | | | | 例:0.50(50%控除) |
|
||
|
||
### 備考
|
||
|
||
- 全社員共通の設定値
|
||
- 現時点では参照プログラム未実装(設計上定義)
|
||
|
||
---
|
||
|
||
# DAILY_RECORDS — 日別勤怠記録
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 勤怠休暇管理DB | DAILY_RECORDS | — | PK: (EMP_ID, TARGET_DATE) |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 社員番号 | EMP_ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 対象日 | TARGET_DATE | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | YYYYMMDD |
|
||
| 3 | 出勤時刻 | TIME_IN | CHAR | 4 | | 4 | NOT NULL | | | | | | HHMM, '0000'=打刻なし |
|
||
| 4 | 退勤時刻 | TIME_OUT | CHAR | 4 | | 4 | NOT NULL | | | | | | HHMM, '0000'=打刻なし |
|
||
| 5 | 年休時間 | ANNUAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | 0.1h単位 |
|
||
| 6 | 事假時間 | PERSONAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | 0.1h単位 |
|
||
| 7 | 因公特批假時間 | OFFICIAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | 0.1h単位 |
|
||
| 8 | 病欠時間 | SICK_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | 0.1h単位 |
|
||
| 9 | 未申請欠勤時間 | UNAPPROVED_ABSENT_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | 0.1h単位 |
|
||
| 10 | 更新日時 | UPDATED_AT | TIMESTAMP | — | | 10 | NOT NULL | | | | | | DEFAULT CURRENT_TIMESTAMP |
|
||
|
||
### 備考
|
||
|
||
- KIN08DBUがKIN07DAIの出力ファイルからINSERT
|
||
- 1社員1日=1レコード。出勤日のみ存在。
|
||
|
||
---
|
||
|
||
# MONTHLY_ABSENCE — 月次統計
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 勤怠休暇管理DB | MONTHLY_ABSENCE | — | PK: (EMP_ID, YEAR_MONTH) |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 社員番号 | EMP_ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 対象年月 | YEAR_MONTH | CHAR | 6 | | 6 | NOT NULL | | ✓ | | | | YYYYMM |
|
||
| 3 | 年休合計 | ANNUAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | |
|
||
| 4 | 事假合計 | PERSONAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | |
|
||
| 5 | 因公特批假合計 | OFFICIAL_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | |
|
||
| 6 | 病欠合計 | SICK_LEAVE_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | |
|
||
| 7 | 未申請欠勤合計 | UNAPPROVED_ABSENT_H | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | |
|
||
| 8 | 更新日時 | UPDATED_AT | TIMESTAMP | — | | 10 | NOT NULL | | | | | | DEFAULT CURRENT_TIMESTAMP |
|
||
|
||
### 備考
|
||
|
||
- KIN08DBUが月次集計後にUPSERT(MERGE)
|
||
- サブシステムC(給与計算)への連携元
|
||
|
||
---
|
||
|
||
# OVT_APPLICATIONS — 個別加班申請テーブル
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 残業統計管理DB | OVT_APPLICATIONS | — | PK: APPL_ID |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 申請番号 | APPL_ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | YYYYMMDD+SEQ |
|
||
| 2 | 社員番号 | EMP_ID | CHAR | 8 | | 8 | NOT NULL | | | | | | |
|
||
| 3 | 申請日 | APPL_DATE | CHAR | 8 | | 8 | NOT NULL | | | | | | YYYYMMDD |
|
||
| 4 | 残業種別 | OVT_TYPE | CHAR | 1 | | 1 | NOT NULL | | | | | | W=平日, H=休日 |
|
||
| 5 | 開始時刻 | START_TIME | CHAR | 4 | | 4 | NOT NULL | | | | | | HHMM |
|
||
| 6 | 終了時刻 | END_TIME | CHAR | 4 | | 4 | NOT NULL | | | | | | HHMM |
|
||
| 7 | 加班時間 | OVT_HOURS | DECIMAL | 4 | 1 | 4 | NOT NULL | | | | | | 0.1h単位 |
|
||
| 8 | ステータス | STATUS | CHAR | 1 | | 1 | NOT NULL | | | | | | 0=有効, 9=取消 |
|
||
| 9 | 更新日時 | UPDATED_AT | TIMESTAMP | — | | 10 | NOT NULL | | | | | | |
|
||
|
||
### 備考
|
||
|
||
- ZAN06UPDがINSERT/UPDATEを実行
|
||
- STATUS=9で取消(物理削除はしない)
|
||
|
||
---
|
||
|
||
# OVT_MONTHLY — 月次集計テーブル
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 残業統計管理DB | OVT_MONTHLY | — | PK: (EMP_ID, YEAR_MONTH, OVT_TYPE) |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 社員番号 | EMP_ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 対象年月 | YEAR_MONTH | CHAR | 6 | | 6 | NOT NULL | | ✓ | | | | YYYYMM |
|
||
| 3 | 残業種別 | OVT_TYPE | CHAR | 1 | | 1 | NOT NULL | | ✓ | | | | W=平日, H=休日 |
|
||
| 4 | 加班時間合計 | OVT_HOURS | DECIMAL | 6 | 1 | 5 | NOT NULL | | | | | | |
|
||
| 5 | 加班回数 | OVT_COUNT | INTEGER | 10 | | 4 | NOT NULL | | | | | | |
|
||
| 6 | 更新日時 | UPDATED_AT | TIMESTAMP | — | | 10 | NOT NULL | | | | | | |
|
||
|
||
### 備考
|
||
|
||
- ZAN06UPDが月次集計結果をUPSERT
|
||
|
||
---
|
||
|
||
# EMP-MASTER(SALARYDB) — 社員マスタ(給与計算用)
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 給与計算DB | EMP-MASTER | KYU01REC | PK: EMP-ID |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 社員番号 | EMP-ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 氏名 | EMP-NAME | VARCHAR | 40 | | 40 | NOT NULL | | | | | | |
|
||
| 3 | 部署コード | DEPT-CODE | CHAR | 2 | | 2 | NOT NULL | | | | | | |
|
||
| 4 | 地域コード | REGION-CODE | CHAR | 2 | | 2 | NOT NULL | | | | | | |
|
||
| 5 | 職種コード | CATEGORY-CODE | CHAR | 3 | | 3 | NOT NULL | | | | | | |
|
||
| 6 | 基本給 | BASE-SALARY | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
| 7 | 時給 | HOURLY-RATE | DECIMAL | 7 | 0 | 4 | NOT NULL | | | | | | |
|
||
| 8 | 扶養人数 | DEPENDENT-COUNT | SMALLINT | — | | 2 | NOT NULL | | | | | | |
|
||
| 9 | ステータス | STATUS | CHAR | 1 | | 1 | NOT NULL | | | | | | '0'=在籍, '9'=退職 |
|
||
| 10 | 更新日時 | UPDATED-AT | TIMESTAMP | — | | 10 | NOT NULL | CURRENT TIMESTAMP | | | | | |
|
||
|
||
### 備考
|
||
|
||
- KYU02REGがINSERT/UPSERTを実行
|
||
- KYU04CALがSELECTで参照
|
||
|
||
---
|
||
|
||
# TAX-TABLE(SALARYDB) — 所得税率テーブル
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 給与計算DB | TAX-TABLE | — | PK: (TAX-FROM, TAX-TO) |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 課税下限 | TAX-FROM | DECIMAL | 9 | 0 | 5 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 課税上限 | TAX-TO | DECIMAL | 9 | 0 | 5 | NOT NULL | | ✓ | | | | |
|
||
| 3 | 税率 | TAX-RATE | DECIMAL | 5 | 4 | 3 | NOT NULL | | | | | | |
|
||
| 4 | 控除額 | DEDUCTION | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
|
||
### 備考
|
||
|
||
- KYU05DEDがSELECT ... BETWEENで参照
|
||
- 課税所得に対する超過累進税率
|
||
|
||
---
|
||
|
||
# INSURANCE-TABLE(SALARYDB) — 社会保険料率テーブル
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 給与計算DB | INSURANCE-TABLE | — | PK: (INS-INCOME-FROM, INS-INCOME-TO) |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 所得下限 | INS-INCOME-FROM | DECIMAL | 9 | 0 | 5 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 所得上限 | INS-INCOME-TO | DECIMAL | 9 | 0 | 5 | NOT NULL | | ✓ | | | | |
|
||
| 3 | 健康保険料率 | INS-HEALTH-RATE | DECIMAL | 7 | 6 | 4 | NOT NULL | | | | | | |
|
||
| 4 | 厚生年金保険料率 | INS-PENSION-RATE | DECIMAL | 7 | 6 | 4 | NOT NULL | | | | | | |
|
||
| 5 | 更新日時 | UPDATED-AT | TIMESTAMP | — | | 10 | NOT NULL | CURRENT TIMESTAMP | | | | | |
|
||
|
||
### 備考
|
||
|
||
- KYU05DEDが内部テーブル(SEARCH ALL)に取込んで参照
|
||
- 被保険者負担分のみ
|
||
|
||
---
|
||
|
||
# SALARY-RESULTS(SALARYDB) — 給与計算結果テーブル
|
||
|
||
## Layout(テーブル定義)
|
||
|
||
### DB基本情報
|
||
|
||
| DB名 | DB ID | COPY ID | INDEX |
|
||
|------|-------|---------|-------|
|
||
| 給与計算DB | SALARY-RESULTS | — | PK: (EMP-ID, YEAR-MONTH) |
|
||
|
||
### カラム定義
|
||
|
||
| No | 項目名 | 項目名(英字名) | TYPE | 最大長 | 小数桁 | バイト数 | NULL | DEFAULT | PK | INDEX1 | INDEX2 | INDEX3 | 備考 |
|
||
|----|--------|---------------|------|--------|--------|---------|------|---------|----|--------|--------|--------|------|
|
||
| 1 | 社員番号 | EMP-ID | CHAR | 8 | | 8 | NOT NULL | | ✓ | | | | |
|
||
| 2 | 対象年月 | YEAR-MONTH | CHAR | 6 | | 6 | NOT NULL | | ✓ | | | | YYYYMM |
|
||
| 3 | 総支給額 | GROSS-PAYMENT | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
| 4 | 源泉所得税 | INCOME-TAX | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
| 5 | 社会保険料 | INSURANCE | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
| 6 | 住民税 | RESIDENT-TAX | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
| 7 | 差引支給額 | NET-PAYMENT | DECIMAL | 9 | 0 | 5 | NOT NULL | | | | | | |
|
||
| 8 | 更新日時 | UPDATED-AT | TIMESTAMP | — | | 10 | NOT NULL | CURRENT TIMESTAMP | | | | | |
|
||
|
||
### 備考
|
||
|
||
- KYU06UPDがINSERT/UPSERTを実行
|