Private / PM Only

Access Protected

Core References

Core references for architecture, design, specification, and requirements inside the PM portal.

Quick Map

0. References

Source documents rendered inside the PM portal.

  • docs/Tatekan/tatekanos_canonical_commercial_architecture.mdCanonical Commercial Architecture
  • docs/architecture/tatekanos_core_master_only_design.mdCore Master-Only Design
  • docs/architecture/tatekanos_canonical_master_schema.mdCanonical Master Schema
  • docs/architecture/tatekanos_family_integration.mdFamily Integration

1. Definition

Core is part of TATEKANOS. This page keeps the current canonical source documents inside the PM portal.

Architecture

Source

docs/Tatekan/tatekanos_canonical_commercial_architecture.md

TATEKANOS Canonical Commercial Architecture

Date: 2026-03-15 JST
Status: Working draft
Purpose: Mitsumori / Toriteki / TATEKAN Core の責務、canonical schema、共通 master、標準連携フローを固定し、個別最適を避けた再設計の正本たたき台とする


1. Architecture Decision (PM-approved 2026-03-16)

master management strategy は次の 3-phase で確定した。

  • Phase 1 (NOW): tatekanos_shared に canonical master model を library として追加する
  • Phase 2 (post-Toriteki + Mitsumori beta): Core を master-only scope で先行起動し、department / building / business_code / customer / supplier の単一正本とする
  • Phase 3 (long-term): 必要なら tatekanos_shared の service 化を検討する

補足:

  • Con (TATEKAN Control) は master authority にしない
  • Core は beta 後までは pure master authority ではなく、Phase 1 中は各サービスが shared schema + local Datastore で運用する
  • 本文書でいう Core = pure master authorityPhase 2 以降の責務 として読む

2. 結論

TATEKANOS の標準形は、次の 3 層構造とする。

  • Mitsumori
  • 見積正本
  • 商流コンテキスト正本(受注前)
  • 顧客受注確定まで
  • Toriteki
  • 仮案件
  • 発注
  • 履行
  • 検収
  • 発注/履行進行の正本
  • TATEKAN Core
  • 共通 pure master 正本
  • 受注後商流正本
  • 請求 / 入金 / 会計IF 正本
  • change set 正式確定

MARCURY は起票元ではなく、商流属性 / 外部連携属性 として扱う。
標準連携フローは次の通り。

Mitsumori
  -> Core
    -> Toriteki
      -> Core
        -> Accounting Adapter

ただしこれは単純な直列ではなく、役割分担は次のように固定する。

  • Mitsumori: 顧客向け見積と商流前段
  • Toriteki: 協力会社発注と履行実績
  • Core: 受注後商流と共通 master と請求/入金/会計

3. 設計原則

3.1 canonical schema 先行

  • Core の現行物理DBや GLOVIA販売 テーブルに全体設計を従属させない
  • 先に TATEKANOS canonical schema を定義し、その後に Core/GLOVIA へマッピングする
  • 物理実装は現行 Core を活かしてよいが、論理設計はそこに縛られない

3.2 pure master と運用拡張の分離

pure master は Core に寄せる。

  • department
  • building
  • business_code
  • customer
  • supplier

運用拡張は App 側または tenant adapter 側に分ける。

  • customer 運用拡張
  • 見積段階では Mitsumori
  • 受注後は Core
  • supplier 運用拡張
  • Toriteki

3.3 pure building / pure customer / pure supplier

  • building は pure master に保つ
  • customer は pure master に保つ
  • supplier は pure master に保つ
  • 請求先 / 契約先 / 管理会社 / 元請商流先 のような役割情報は master に持たせず、commercial_context に寄せる

3.4 標準形と例外形

  • 標準形は Core 併用
  • Mitsumori単独 は正式にあり得る
  • Toriteki単独 は標準外オプションとして保留する

4. canonical schema の主要 entity

4.1 共通 master

  • department
  • 組織所属
  • 承認系既定値
  • 見積既定値
  • building
  • 基本属性
  • 所属 department
  • 建物種別
  • business_code
  • 業務分類
  • 会計/売上区分
  • 工事分類
  • 集計区分
  • customer
  • pure customer master
  • supplier
  • pure supplier master

4.2 前段商流

  • quotation
  • quotation_line
  • commercial_context
  • quotation_line_execution_map

補足:

  • commercial_contextMitsumori でも正式 entity として持つ
  • Mitsumori 見積ヘッダ は複数の commercial_context を持てる
  • 見積明細commercial_context に明示リンクする
  • quotation_lineexecution_unit は多対多とし、quotation_line_execution_map
  • 按分数量
  • 按分金額
  • 補足メモ を持つ

4.3 受注後商流

  • sales_order
  • execution_unit
  • procurement_order
  • inspection_event
  • invoice
  • invoice_line
  • receipt
  • payment
  • accounting_export_batch
  • accounting_export_line
  • change_set
  • approval_event

4.4 粒度ルール

  • Core受注1件sales_order 1 件
  • sales_order 配下に複数の execution_unit を持てる
  • execution_unit の標準粒度は 建物 × 業務コード
  • execution_unit に対して複数の procurement_order を持てる
  • 請求は固定粒度ではなく invoice header + invoice lines

5. アプリ責務

5.1 Mitsumori

責務:

  • 見積作成
  • 見積承認
  • 顧客提示
  • commercial_context 前段編集
  • 顧客受注確定
  • Core への受注昇格起点

補足:

  • Mitsumori単独 テナントでは
  • 見積作成
  • 承認
  • 出力/提出
  • 受注確度/失注管理
  • 簡易受注管理 を標準機能として持つ
  • Core 導入テナントでは、簡易受注管理は read-only / 補助表示に留める
  • 既存の orders / delegations 相当機能は、Core 併用テナントでは正本機能として維持しない
  • orders: Coresales_order 参照または補助表示へ縮退
  • delegations: 見積承認 / 依頼補助へ再定義するか、不要なら整理対象とする

5.2 Toriteki

責務:

  • 受注前の仮案件
  • 原価見積/RFQ
  • 協力会社発注
  • 履行
  • 検収
  • 請求候補化

補足:

  • commercial_context は参照のみ
  • supplier 運用拡張は Toriteki 主編集
  • Toriteki は最終請求正本や最終会計IF正本を持たない

5.3 Core

責務:

  • pure master 正本
  • sales_order 正本
  • 請求対象確定
  • 請求確定
  • 入金確認
  • 会計 export
  • change_set 正式確定

UI 方針:

  • Core は基幹/管理ハブ寄り
  • 主に扱うのは
  • master 管理
  • 請求確定
  • 入金確認
  • change set 確定

6. 商流コンテキスト

6.1 定義

commercial_context は、案件上の相手先関係を保持する entity とする。

最低限含むもの:

  • 契約先
  • 請求先
  • 管理会社 / 元請商流先

6.2 配置原則

  • building は pure master のまま保つ
  • 相手先役割は buildingcustomer に持たせず、commercial_context に寄せ切る
  • execution_unit はどの commercial_context に属するかを明示リンクする

6.3 Mitsumori / Core / Toriteki での扱い

  • Mitsumori
  • 見積段階の正式 entity
  • 作成・編集を行う
  • Core
  • 受注後の正本
  • 継続編集を行う
  • Toriteki
  • 参照のみ

6.4 MARCURY との関係

  • MARCURYcommercial_context の一属性または外部連携条件として扱う
  • MARCURY への copy-paste / 提出補助の UI 責務は Mitsumori に置く
  • 手動運用が残る場合でも、どの画面がそれを補助するかは Mitsumori 側で明確に持つ

7. 標準ライフサイクル

7.1 顧客受注前

  1. Mitsumoriquotationcommercial_context を作成
  2. 必要なら quotation_line をもとに execution_unit 候補を判定
  3. 次の OR 条件を満たす場合、Toriteki に仮案件を起票 - 外注あり - 工事案件 - MARCURY 連動必要
  4. Toriteki では 建物 × 業務コード 粒度で仮案件を持つ

7.2 顧客受注確定

  1. 顧客受注/契約が確定した時点で Mitsumori -> Core
  2. Core に - quotation - quotation_line - commercial_context - sales_order を作成
  3. 条件に応じて execution_unit を正式生成

7.3 履行・検収

  1. Toritekiprocurement_order を作成
  2. 発注・履行・納品・検収を行う
  3. inspection_eventToriteki -> Core へ即時反映

7.4 請求対象化

  1. Toriteki が請求候補を作成
  2. Core が請求対象化を最終確定
  3. invoice / invoice_line を確定
  4. receipt / paymentaccounting_export へ接続

8. 変更管理

8.1 change_set

  • MitsumoriToriteki の両方から起票可
  • 正式確定は Core
  • Core 確定後は Mitsumori / Toriteki へ即時反映

8.2 change_set の対象

  • 見積明細
  • execution_unit
  • 受注増減額
  • 追加工事
  • 差替
  • 減額

9. 承認モデル

承認正本は単一システムに寄せず、業務段階ごとに分散する。

  • Mitsumori
  • 見積承認
  • Toriteki
  • 発注承認
  • Core
  • 請求承認
  • change set 承認

department が持つ 承認系既定値 は、承認ルートや承認候補者のデフォルト設定を指す。
承認実績そのものの正本は department に持たせず、各業務段階のシステムと approval_event に記録する。

横断監査用に approval_event を共通記録として持つ。

最低限持つ項目:

  • 対象ID
  • 承認者
  • 結果
  • 時刻
  • コメント
  • 承認段階 / ルート情報

10. 3システム横断連携表

領域 Mitsumori Toriteki Core 標準正本
department 参照 将来参照 管理 Core
building 参照 履行紐付け参照 管理 Core
business_code 見積で使用 発注/履行で使用 管理 Core
customer pure 参照 原則不要 管理 Core
supplier pure 原則不要 参照 管理 Core
customer運用拡張 前段編集 不要 後段編集 Mitsumori前段 / Core後段
supplier運用拡張 不要 主編集 必要時参照 Toriteki
commercial_context 作成/編集 参照のみ 受注後正本 Mitsumori前段 / Core後段
quotation 正本 参照起点になり得る スナップショット保持 Mitsumori
quotation_line 正本 原価/RFQ起点参照 スナップショット保持 Mitsumori
quotation_line_execution_map 前段作成 実行側参照 正式保持 Mitsumori前段 / Core後段
sales_order 顧客受注確定で昇格 参照 正本 Core
execution_unit 条件付き生成元 仮案件/履行実体 正式保持 Core + Toriteki実行
procurement_order 不要 正本 同期保持 Toriteki
inspection_event 不要 正本 即時反映保持 Toriteki
invoice / invoice_line 単独時は簡易受注まで 候補生成まで 正本 Core
receipt / payment 不要 支払予定入力元になり得る 正本 Core
accounting_export 不要 候補元になり得る batch + line 正本 Core
approval_event 見積承認 発注承認 請求/変更承認 分散正本 + 横断記録
change_set 起票可 起票可 正式確定 Core

11. Mitsumori / Toriteki の不足・過剰

11.1 Mitsumori に足りないもの

  • commercial_context の正式 entity 化
  • quotation_line -> execution_unit 多対多マッピング
  • business_code 前提の見積構造
  • customer pure / 運用拡張分離
  • 顧客受注確定から sales_order へ昇格する設計/実装
  • change_set 起票モデル
  • Core ありテナントでの簡易受注 read-only 化

11.2 Toriteki に足りないもの

  • branch / facility から department / building への完全移行
  • execution_unit = 建物 × 業務コード 粒度への統一
  • commercial_context 参照前提の設計
  • procurement_order -> inspection_event -> invoice candidate の canonical 接続
  • supplier pure / 運用拡張分離
  • change_set 起票モデル

11.3 Mitsumori に余計なもの

  • 受注後商流の本格正本化
  • 請求/会計まで持つ方向
  • agreements / orders を Mitsumori 内部正本として持つ発想

11.4 Toriteki に余計なもの

  • 最終請求正本
  • 最終会計 export 正本
  • branch / facility を family 共通 master として維持すること
  • commercial_context 自前正本化

12. 本書のスコープ外

本書は顧客案件に紐づく商流と履行の canonical architecture を対象とする。
次は本書の直接スコープ外とする。

  • 一般購買
  • 社内消耗品や事務用品の購買フロー
  • Toriteki単独 を正式標準形として扱う配備モデル

一般購買は tatekan_responsibility_boundary_memo_20260310.md の整理を参照し、必要に応じて別アーキテクチャで定義する。


13. 実装フェーズ

Phase 1: 共通 master 再編

先行:

  • department
  • building
  • business_code

実装方針:

  • tatekanos_shared に canonical master model を library として追加する
  • Mitsumori / Toriteki は shared schema を採用するが、この phase では各サービスの local Datastore を使う
  • Core はまだ master authority としては起動しない

後段:

  • customer
  • supplier

Phase 2: Mitsumori -> Core 主線

最小実装で次を一気に通す。

  • quotation
  • quotation_line
  • commercial_context
  • 顧客受注確定で sales_order 作成
  • 条件付き execution_unit 生成
  • これと並行して Core master-only scope を先行起動し、5 master の単一正本を持たせる

Phase 3: Toriteki -> Core 主線

最小実装で次を一気に通す。

  • procurement_order
  • inspection_event 即時反映
  • 請求候補化

Phase 4: 後段統制 / optional shared service 検討

  • customer / supplier 再編
  • change_set
  • receipt / payment
  • accounting_export adapter
  • 必要なら tatekanos_shared service 化の再評価

14. 保留事項

  • Toriteki単独テナント を正式な標準配備モデルにするか
  • tenant ごとの adapter 範囲の詳細
  • 現行 Core/GLOVIA 物理DBへの具体的マッピング方式
  • customer / supplier 後段移行の優先順

15. ClaudeCode レビュー(2026-03-15 19:30 JST)

15.1 全体評価

本文書は responsibility_boundary_memo(2026-03-10)を大幅に発展させた次段の設計文書として十分成立している。canonical schema の定義、pure master vs 運用拡張の分離、commercial_context の first-class entity 化は、Fredy 調査結果とも整合しており設計品質は高い。

15.2 同意する設計判断

  • pure master を Core に寄せる判断(department, building, business_code, customer, supplier)
  • commercial_context を building/customer に埋め込まず独立 entity とした判断
  • execution_unit の標準粒度 = building × business_code
  • change_set の分散起票 + Core 確定モデル
  • approval_event による横断監査記録
  • Mitsumori 単独テナントを正式な標準配備モデルとして認めた判断

15.3 要確認・要明確化の論点

論点1: Mitsumori-first vs Core-first の矛盾解消

responsibility_boundary_memo §3.1 では「Core で案件作成 → Mitsumori で見積作成」としているが、本文書 §6.1 では「Mitsumori で quotation/commercial_context を作成 → 顧客受注確定で Core に sales_order 化」としている。これは逆方向のフローである。

本文書の Mitsumori-first が canonical であるなら、responsibility_boundary_memo の該当箇所を明示的に「旧前提・更新済み」とマークすべき。曖昧なまま残すと実装者が Core-first と Mitsumori-first を混同する。

論点2: department と承認経路のデフォルト設定

Fredy 調査で department に approval_group1-4 が埋め込まれていることを確認した。本文書 §8 では承認を業務段階ごとに分散(Mitsumori=見積承認, Toriteki=発注承認, Core=請求/変更承認)としている。この設計は Fredy パターンより優れている。

ただし明文化が必要: department は「承認のデフォルト設定元」であって「承認実績の正本」ではない。Fredy の承認埋め込みをそのまま継承しないことを明示すべき。

論点3: Mitsumori 既存の /orders, /delegations の扱い

§10.3 で「agreements/orders を Mitsumori 内部正本として持つ発想」を excess と指摘しているが、現在の Mitsumori には既に /orders, /delegations ルートが存在する。移行方針の明確化が必要:

  • Core ありテナント: read-only 参照 or Core 昇格前後の補助 UI に縮退
  • Mitsumori 単独テナント: 簡易受注管理として限定維持
  • delegations: 見積承認/依頼補助へ再定義 or 整理対象

論点4: MARCURY 連携の実務責任

§1 で MARCURY を「商流属性/外部連携属性」として位置付けているのは正しい。ただし、実務的に誰が copy-paste ワークフローを維持するかが未定義。推奨: Mitsumori UI が MARCURY 連携対象案件の提出補助を担う(手動ではあるが UI 責任は Mitsumori 側)。

論点5: 一般購買のスコープ

本文書は顧客案件商流に集中しており、一般購買(社内消耗品・事務用品等)が扱われていない。推奨: §12 保留事項に「一般購買は本 canonical architecture のスコープ外。別アーキテクチャとして扱い、Toriteki を購買ワークフローに流用する余地あり」と明記する。

15.4 追加の設計観察

  1. schema と deployment model の分離: Mitsumori 単独可/Toriteki 単独は標準外/Core 標準は「配備モデル」であり、canonical schema とは別の関心事。将来的には別節に分離した方が読みやすい。

  2. commercial_context と customer 運用拡張の境界: commercial_context を first-class にした結果、customer 運用拡張との境界を厳密にしないと責務が逆流する。特に請求先/契約先/管理会社は customer 側へ戻さず commercial_context に留めるべき。

  3. execution_unit の例外: building × business_code は強い標準粒度だが、time-based recurring services や building をまたがる一括業務が将来出る可能性がある。標準粒度の注記として「例外時は execution_unit を建物横断で束ねる上位 entity を導入する余地あり」程度の escape hatch を記載しておくと安全。

  4. Fredy 業務マスターとの関係: 本文書の business_code は Fredy の businesses master に対応する。Fredy 調査で business_code が GLOVIA 連携用コード変換・集計・会計属性付き master であることを確認済み。本文書 §3.1 の business_code 定義(業務分類/会計・売上区分/工事分類/集計区分)は Fredy 実態と整合しており、そのまま採用可能。

Design

Source

docs/architecture/tatekanos_core_master_only_design.md

TATEKANOS Core Master-Only Design

Date: 2026-03-16 JST Status: DRAFT — ClaudeCode review pending Related Issue: #335


1. Purpose

Phase 2 で TATEKAN Core を pure master authority として先行起動するための基本設計。

この phase の Core は後段商流すべてを持たず、まず 5 master の単一正本を提供する。

対象 master:

  • department
  • building
  • business_code
  • customer
  • supplier

2. Design Principles

  • master authority は Core に一元化する
  • commercial flow は後続 phase に分離する
  • tenant isolation を最優先する
  • canonical schema を先に固定し、物理 Datastore はそれに従属させる

3. Datastore Scope

3.1 Kinds

Master Kind
department tatekanos_departments
building tatekanos_buildings
business_code tatekanos_business_codes
customer tatekanos_customers
supplier tatekanos_suppliers

3.2 Key Policy

  • key は {tenant_id}_{code} を基本とする
  • code は tenant 内一意
  • archive / inactive は論理状態で管理し、物理削除は原則しない

3.3 Common Audit Fields

  • tenant_id
  • is_active
  • is_archived
  • created_at
  • updated_at
  • created_by
  • updated_by

4. API Surface

4.1 Basic CRUD

各 master に対し最低限次を持つ:

  • GET /api/v1/masters/<master>
  • GET /api/v1/masters/<master>/{code}
  • POST /api/v1/masters/<master>
  • PUT /api/v1/masters/<master>/{code}
  • POST /api/v1/masters/<master>/{code}/archive
  • POST /api/v1/masters/<master>/{code}/activate

4.2 Bulk / Migration APIs

  • POST /api/v1/masters/<master>:bulk_upsert
  • POST /api/v1/masters/<master>:validate_import

用途:

  • Phase 1 local Datastore からの初回移行
  • tenant ごとの定期整備

4.3 Read Requirements

  • tenant scoped search
  • active / archived filter
  • code exact match
  • name prefix / partial search

5. Tenant Isolation

5.1 Data Boundary

  • すべての read / write は tenant_id を必須条件にする
  • cross-tenant lookup は管理者専用の別操作に限定する

5.2 Auth Boundary

  • tenant admin は自 tenant の master のみ編集可
  • platform admin は横断閲覧・必要時のみ更新可
  • service-to-service access は OIDC か同等の server credential を使う

6. Integration with Other Services

6.1 Mitsumori

  • 見積画面の master 候補を Core から取得
  • Phase 2 以降は local write を停止

6.2 Toriteki

  • branch / facility 互換層を保ちながら Core master を参照
  • authority write は Core に集約

7. Out of Scope

この文書では扱わない:

  • sales_order
  • commercial_context
  • invoice
  • receipt / payment
  • accounting_export

これらは Core の後続 phase で追加する。


8. Open Items for ClaudeCode Review

  • customer / supplier の canonical field 最終定義
  • platform admin と tenant admin の操作境界
  • local Datastore を cache にするか、完全に read-through にするか
  • import 実行主体を Core UI に置くか、運用 runbook に寄せるか

Spec

Source

docs/architecture/tatekanos_canonical_master_schema.md

TATEKANOS Canonical Master Schema — Phase 1

Issue: #335 Phase 1 Date: 2026-03-15 JST Status: Confirmed Related: - docs/Tatekan/tatekanos_canonical_commercial_architecture.md §3.1 - docs/architecture/tatekanos_family_integration.md


1. Confirmed Master Management Strategy (PM-approved 2026-03-16)

TATEKANOS の pure master 管理は、次の 3-phase で進める。

Phase 1 (NOW): tatekanos_shared library 化

  • tatekanos_shared に canonical master の model class / validation / serialization を追加する
  • ただしこの時点では service 化しない
  • Mitsumori / Toriteki / 将来の Core は同じ schema をライブラリとして共有する
  • Datastore は各サービスがそれぞれ保持し、各サービスが自分の master を管理する

Phase 2 (post-Toriteki + Mitsumori beta): Core master-only 先行起動

  • TATEKAN Core をまず pure master 専用スコープで起動する
  • 対象 master は department / building / business_code / customer / supplier
  • この時点から Core の Datastore を single source of truth とする
  • 後段の commercial flow / invoicing / accounting は Core の後続 phase として追加する

Phase 3 (long-term): tatekanos_shared service 化検討

  • library 運用と Core master-only 運用を踏まえて、必要なら tatekanos_shared の service 化を検討する
  • ただし現時点では前提化しない

Decision Notes

  • Con (TATEKAN Control) は master authority にしない
  • post-beta の master authority は Core
  • 本文書の schema は Phase 1 の shared library と、Phase 2 以降の Core authority の両方で共通に使う canonical 定義とする

2. 目的

department / building / business_code の3マスターについて: 1. Canonical 項目一覧を定義する 2. Core 正本スキーマ案を提示する 3. Mitsumori / Toriteki / Fredy の現行項目とのマッピング表を作成する


3. Department(部門)

3.1 Canonical 項目一覧

# canonical_field 必須 説明
1 department_id string Y テナント内一意ID({tenant}_{code}形式)
2 tenant_id string Y テナント識別子
3 code string Y 部門コード(表示用、テナント内一意)
4 name string Y 正式名
5 short_name string Y 略式名
6 representative string N 代表者名
7 postal_code string N 郵便番号
8 address1 string N 住所1
9 address2 string N 住所2
10 phone string N 電話番号
11 default_quotation_expiry string N 見積有効期限デフォルト(settings参照)
12 approval_route_default json N 承認ルートデフォルト設定(§2.4参照)
13 is_active bool Y 有効フラグ
14 is_archived bool Y アーカイブフラグ
15 sort_order int N 表示順
16 created_at datetime Y 作成日時
17 updated_at datetime Y 更新日時
18 created_by string Y 作成者
19 updated_by string Y 更新者

3.2 Core 正本スキーマ案

Kind: tatekanos_departments
Key:  {tenant_id}_{code}

tenant_id               string  required
code                    string  required  unique per tenant
name                    string  required
short_name              string  required
representative          string
postal_code             string
address1                string
address2                string
phone                   string
default_quotation_expiry string          FK -> settings.quotation_expiration
approval_route_default  json            承認ルートデフォルト(後述)
is_active               bool    required default=true
is_archived             bool    required default=false
sort_order              int              default=0
created_at              datetime required
updated_at              datetime required
created_by              string  required
updated_by              string  required

3.3 現行マッピング表

canonical_field Fredy (departments) Mitsumori (mitsumori_departments) Toriteki master (toriteki_master_org_branches) Toriteki operational (toriteki_branches)
department_id id key (tenant_code) key (tenant:branch_code) key (branch_name)
tenant_id (implicit) tenant_id tenant_domain tenant_domain
code code code branch_code branch_code
name name name branch_name (key name)
short_name (N/A) short_name (N/A) (N/A)
representative representative_name representative owner_name owner_name
postal_code (N/A) postal_code (onboarding only) (onboarding only)
address1 address1 address1 (onboarding only) (onboarding only)
address2 address2 address2 (N/A) (N/A)
phone phone_number phone branch_phone branch_phone / phone
default_quotation_expiry setting_quotation_expiration_id default_quotation_expiry (N/A) (N/A)
approval_route_default approval_group1〜4 approval_email_quotation, approval_email_construction (N/A) (N/A)
is_active (via archived_at/deleted_at) is_active active active
is_archived archived_at (N/A) (N/A) (N/A)
sort_order (N/A) (N/A) sort_order sort_order
created_at created_at created_at created_at created_at
updated_at updated_at updated_at updated_at updated_at
created_by (N/A) created_by created_by (N/A)
updated_by (N/A) updated_by updated_by (N/A)

3.4 承認ルートデフォルト設計メモ

Fredy は approval_group1〜4(最大4段階)を department に直接埋め込み。Mitsumori は approval_email_quotation / approval_email_construction で見積承認・工事承認を分離。

Canonical では approval_route_default を JSON で持ち、業務段階ごとのデフォルト承認ルートを柔軟に設定可能とする:

{
  "quotation": ["approver1@example.com", "approver2@example.com"],
  "construction": ["approver3@example.com"],
  "procurement": []
}

注意: これは「承認のデフォルト設定元」であり、承認実績の正本ではない(canonical architecture §8)。


4. Building(建物)

4.1 Canonical 項目一覧

# canonical_field 必須 説明
1 building_id string Y テナント内一意ID
2 tenant_id string Y テナント識別子
3 code string Y 建物コード(テナント内一意)
4 name string Y 建物名
5 short_name string Y 略称
6 department_code string Y 所属部門コード(FK -> department.code)
7 postal_code string N 郵便番号
8 address1 string N 住所1
9 address2 string N 住所2
10 building_type string N 建物種別(Fredy: 1=自社ビル, 2=管理ビル)
11 phone string N 電話番号
12 owner_name string N 管理者名
13 vice_owner_name string N 副管理者名
14 is_active bool Y 有効フラグ
15 is_archived bool Y アーカイブフラグ
16 is_deleted bool Y 論理削除フラグ
17 sort_order int N 表示順
18 created_at datetime Y 作成日時
19 updated_at datetime Y 更新日時
20 created_by string Y 作成者
21 updated_by string Y 更新者

4.2 Core 正本スキーマ案

Kind: tatekanos_buildings
Key:  {tenant_id}_{code}

tenant_id               string  required
code                    string  required  unique per tenant
name                    string  required
short_name              string  required
department_code         string  required  FK -> tatekanos_departments.code
postal_code             string
address1                string
address2                string
building_type           string            enum: own_building / managed_building
phone                   string
owner_name              string
vice_owner_name         string
is_active               bool    required  default=true
is_archived             bool    required  default=false
is_deleted              bool    required  default=false
sort_order              int               default=0
created_at              datetime required
updated_at              datetime required
created_by              string  required
updated_by              string  required

4.3 現行マッピング表

canonical_field Fredy (buildings) Mitsumori (mitsumori_facilities) Toriteki master (toriteki_master_org_facilities) Toriteki operational (toriteki_facilities)
building_id id key (tenant_code) key (tenant:facility_code) key (facility_name)
tenant_id (implicit) tenant_id tenant_domain tenant_domain
code code code facility_code facility_code
name name name facility_name (key name)
short_name short_name short_name (N/A) (N/A)
department_code department_id department_code branch_code branch_code
postal_code postal_code postal_code (N/A) (N/A)
address1 address1 address1 address address
address2 address2 address2 (N/A) (N/A)
building_type building_type_code facility_type (N/A) (N/A)
phone (N/A) (N/A) phone phone
owner_name (N/A) (N/A) facility_owner_name facility_owner_name
vice_owner_name (N/A) (N/A) vice_owner_name (not synced)
is_active (via archived_at) is_active active active
is_archived archived_at (N/A) (N/A) (N/A)
is_deleted deleted_at is_deleted (N/A) (N/A)
sort_order (N/A) (N/A) sort_order sort_order
toriteki_link (N/A) toriteki_facility_id (self) (self)
created_at created_at created_at created_at created_at
updated_at updated_at updated_at updated_at updated_at

4.4 Toriteki 二層構造メモ

Toriteki は master(toriteki_master_org_*)と operational(toriteki_*)の二層構造。master で保存すると operational に自動同期される。

注意点: - operational 側では branch_name / facility_name が property ではなく key name として格納される - vice_owner_name は master にあるが operational には同期されない - Legacy branch 管理ルート(/admin/branches)も現存


5. Business Code(業務コード)

5.1 Canonical 項目一覧

# canonical_field 必須 説明
1 business_code_id string Y テナント内一意ID
2 tenant_id string Y テナント識別子
3 code string Y 業務コード
4 name string Y 業務名
5 name_kana string N 業務カナ名
6 medium_group_code string N 中グループ業務コード
7 big_group_code string N 大グループ業務コード
8 business_division_code string N 業務区分コード
9 business_division_name string N 業務区分名
10 job_category_code string N 職種区分コード
11 job_category_name string N 職種区分名
12 price decimal N 価格
13 cost decimal N 原価
14 selling_price1 decimal N 売価1
15 selling_price2 decimal N 売価2
16 cost_item_code string N 費目コード
17 cost_item_name string N 費目名
18 business_aggregation_code string N 業務集計区分コード
19 business_aggregation_name string N 業務集計区分名
20 sales_division_code string N 売上区分コード
21 sales_division_name string N 売上区分名
22 sales_cost_item_code string N 売上費目コード
23 sales_cost_item_name string N 売上費目名
24 is_active bool Y 有効フラグ
25 is_archived bool Y アーカイブフラグ
26 is_deleted bool Y 論理削除フラグ
27 created_at datetime Y 作成日時
28 updated_at datetime Y 更新日時
29 created_by string Y 作成者
30 updated_by string Y 更新者

5.2 Core 正本スキーマ案

Kind: tatekanos_business_codes
Key:  {tenant_id}_{code}

tenant_id                   string  required
code                        string  required  unique per tenant
name                        string  required
name_kana                   string
medium_group_code           string
big_group_code              string
business_division_code      string
business_division_name      string
job_category_code           string
job_category_name           string
price                       decimal
cost                        decimal
selling_price1              decimal
selling_price2              decimal
cost_item_code              string
cost_item_name              string
business_aggregation_code   string
business_aggregation_name   string
sales_division_code         string
sales_division_name         string
sales_cost_item_code        string
sales_cost_item_name        string
is_active                   bool    required  default=true
is_archived                 bool    required  default=false
is_deleted                  bool    required  default=false
created_at                  datetime required
updated_at                  datetime required
created_by                  string  required
updated_by                  string  required

5.3 現行マッピング表

canonical_field Fredy (businesses) Mitsumori Toriteki
business_code_id id (未実装) (未実装)
code code (未実装) (未実装)
name name (未実装) (未実装)
name_kana name_kana (未実装) (未実装)
medium_group_code medium_group_code (未実装) (未実装)
big_group_code big_group_code (未実装) (未実装)
business_division_code business_division_code (未実装) (未実装)
job_category_code job_category_code (未実装) (未実装)
price price (未実装) (未実装)
cost cost (未実装) (未実装)
selling_price1 selling_price1 (未実装) (未実装)
selling_price2 selling_price2 (未実装) (未実装)
cost_item_code cost_item_code (未実装) (未実装)
business_aggregation_code business_aggregation_code (未実装) (未実装)
sales_division_code sales_division_code (未実装) (未実装)
sales_cost_item_code sales_cost_item_code (未実装) (未実装)

注記: business_code は現時点で Fredy にのみ実装されている。Mitsumori/Toriteki には未実装。canonical architecture §11 Phase 1 で Core に正本を置き、各サービスは参照する設計。

5.4 GLOVIA 連携メモ

Fredy の business_code は GLOVIA 販売連携用のコード変換・集計・会計属性付きマスターとして設計されている(tatekanos_family_integration.md §3 参照)。

TATEKANOS としては、business_code を「Core 連携用コードマスター」として位置付け、Fredy のスキーマをベースに canonical 化する。Mitsumori/Toriteki は見積明細・発注明細で business_code を参照する。


6. 移行時の注意事項

6.1 用語マッピング

canonical Fredy Mitsumori Toriteki
department department(部門) department(部門) branch(支店/拠点)
building building(建物) facility(建物)※kind名はmitsumori_facilities facility(施設/現場)
business_code business(業務) (未実装) (未実装)

6.2 Toriteki 移行の課題

  • branch → department: 概念の変更(営業拠点 → 業務統制単位)。承認系・見積既定値の追加が必要
  • facility → building: 概念の変更(現場 → 管理対象物件)。building_type の追加が必要
  • 二層構造(master + operational)は維持するか、canonical 統合で一層化するか要検討
  • operational 側の key name = entity name パターンは canonical では廃止し、code ベースに統一推奨

6.3 Mitsumori 現行の強み

  • 既に department/building(facility)構造を採用済み
  • Fredy に近い項目セット(representative, postal_code, address, default_quotation_expiry, approval_email)
  • toriteki_facility_id でToriteki連携リンクを持つ
  • canonical 移行コストが最小

変更履歴

日付 変更者 内容
2026-03-15 ClaudeCode 初版作成(Codex Fredy/Toriteki調査結果に基づく)

Requirements

Source

docs/architecture/tatekanos_family_integration.md

TATEKANファミリー連携アーキテクチャ

作成日: 2026-03-15 作成者: ClaudeCode(Codex調査結果に基づく) ステータス: Draft — PM確認待ち


1. 概要

TATEKANファミリーは以下のサービスで構成される:

サービス 役割 目線
Mitsumori 見積書作成・受注管理 受注側(受託先)
Toriteki 発注管理・検収・請求 発注側(委託元)※売り引きは受注目線
TATEKAN Core 販売管理・会計連携ハブ(GLOVIA販売後継) 基幹システム
Fredy 既存見積・契約管理(運用中) 参照モデル

設計原則: Fredyの運用パターンを模倣し、Mitsumori/Toritekiの共通基盤(tatekanos_shared)を統一する。


2. Fredyマスターデータアーキテクチャ

2.1 組織・物件軸(Department + Building)

Fredyは 部門(Department)が親、建物(Building)が子 の構造を採用。

Department(部門)マスター

項目 説明
id, code, name 基本識別
address1, address2, phone_number 連絡先
representative_name 代表者名
setting_quotation_expiration_id 見積有効期限設定(settingsマスター参照)
approval_group1〜4 承認依頼先グループ(最大4段階)
created_at, updated_at, archived_at, deleted_at 監査/状態

特徴: - 単なる組織単位ではなく、承認経路・見積有効期限を持つ「運用設定付き上位マスター」 - Toritekiの「支店(branch)」より業務統制機能が豊富 - 承認系は独立マスターではなく、部門マスターに埋め込み

Building(建物)マスター

項目 説明
id, code, name, short_name 基本識別
postal_code, address1, address2 所在地
department_id, department 所属部門(FK)
building_type_code 種別(1: 自社ビル, 2: 管理ビル)
created_at, updated_at, archived_at, deleted_at 監査/状態

特徴: - 部門配下の管理対象物件 - 一覧画面でログインユーザーの部門を初期選択 - CSV一括インポート/エクスポート対応

2.2 横断コードマスター群

マスター 用途 アクセス制限
Users ユーザーマスター。feature × CRUD権限形式 全ロール
Customers 得意先マスター。department_id紐付き 全ロール
Suppliers 仕入先マスター。department_id紐付き 全ロール
Order-src-patterns 発行元パターン
Banks 銀行口座マスター superuser限定
Businesses 業務コードマスター(§3参照) superuser限定
Settings 設定マスター(分類値基盤) superuser限定
Approval-confirmers 承認経路関連

Settings マスターの分類値

分類キー 用途
tax 税区分
quotation_expiration 見積有効期限
unit 単位
payment_month 支払月
report_drive 帳票ドライブ
report_template 帳票テンプレート
system_setting システム設定

2.3 Toritekiとの比較

観点 Toriteki(現行) Fredy(参照モデル) 方針
上位組織 branch(支店/営業拠点) department(部門/業務統制単位) department に統一
下位管理対象 facility(現場/施設) building(建物/管理物件) building に統一
承認設定 独立マスター 部門に埋め込み Fredy準拠
会計・設定 top-levelマスターで分離 settingsに集約 Fredy準拠

移行時の注意: 単純renameではなく、branch(営業拠点寄り)→ department(業務統制単位)、facility(現場寄り)→ building(資産/管理対象物寄り)への概念マッピングが必要。


3. 業務マスター(Businesses)詳細

3.1 位置付け

Fredyの業務マスターは GLOVIA販売 = TATEKAN Core連携を成立させるためのコード変換・集計・会計属性付きマスター

Fredy内部のUX起点ではなく、外部基幹システムに渡すためのコード体系を内包している。

3.2 データモデル

カテゴリ 項目
基本識別 id, code, name, name_kana
グルーピング/分類 medium_group_code, big_group_code, business_division_code/name, job_category_code/name, business_aggregation_code/name, sales_division_code/name
原価/売価/会計 price, cost, selling_price1, selling_price2, cost_item_code/name, sales_cost_item_code/name
監査/状態 created_by, updated_by, created_at, updated_at, archived_at, deleted_at

3.3 REST API

操作 エンドポイント
一覧 GET /api/v1/businesses
取得 GET /api/v1/businesses/:id
作成 POST /api/v1/businesses
更新 PUT /api/v1/businesses/:id
削除 DELETE /api/v1/businesses/:id
CSV取込 POST /api/v1/businesses/upload
CSV出力 /api/v1/businesses/download

3.4 用途

  • 見積/契約/発注の明細に付与するコード(business_idが必須選択)
  • 原価・売価・費目・売上区分など会計/集計属性を伴う分類マスター
  • 工事種別候補(medium_group_code === '8C'
  • GLOVIA販売の費目コード・売上区分・業務集計区分とのマッピング

3.5 Mitsumori/Toritekiへの移植方針

department/buildingの代替ではなく、別カテゴリの「Core連携用コードマスター」 として切り分けて扱う。


4. TATEKANファミリー業務フロー

4.1 全体フロー(正常系)

Mitsumoriで見積作成
  → 社内承認/確定
  → Mercury連携有無を分岐
    ├─ Mercury連携案件: Mercuryにコピペ
    └─ 非Mercury案件: Mitsumoriから直接見積発行
  → 顧客受注確定
  → Coreで受注票起票/受注正本化
  → Toritekiへ履行案件連携
  → Toritekiで出来高/検収管理
  → Coreへ請求対象連携
  → Coreで請求確定/売上計上
  → 会計システム連携

4.2 設計上の確認必須論点(10項目)

# 論点 詳細
1 見積承認/確定 見積作成→外部連携の間に社内承認が必要。版管理・再見積・失注・取下げの状態遷移
2 Mercury連携有無の分岐 案件単位のフラグが必要(Core正本 vs Mercury正本)。二重管理・未連携の防止
3 受注の定義 顧客承認/口頭受注/正式受注票/契約締結のどれをもって受注とするか。連携開始タイミングに影響
4 受注後の変更契約 金額変更・減額・追加工事・工期変更がToriteki・Core・請求にどう波及するか
5 Toriteki側の業務開始単位 1受注=1案件か、部門・建物単位で分割されるか
6 検収→請求の間 部分検収・出来高請求・最終検収・請求保留・請求先変更。1受注≠1請求
7 Core側の役割境界 受注票起票だけでなく、請求データ正本・売上計上・会計連携のどこまでCoreが責任を持つか
8 会計連携前の締め処理 請求確定・売上確定・締め日・税計算・インボイス番号・消込対象
9 例外系 失注・受注取消・検収取消・請求取消・返金・赤黒訂正・再請求
10 マスター正本 顧客・部門・建物・業務コード・税区分・請求条件の正本所在(Mitsumori/Toriteki/Core間)

4.3 サービス間責任分界

責任 Mitsumori Toriteki Core
見積作成・承認 正本
受注確定 入力 正本
発注管理 正本
検収管理 正本
請求データ生成 入力 正本
売上計上 正本
会計連携 正本
マスターデータ 参照 参照 正本(将来)

5. 共通基盤(tatekanos_shared)への統合方針

5.1 マスター共通化の基準モデル(Fredy準拠)

マスター 共通基盤 備考
department tatekanos_shared 組織・承認・既定値の親マスター
building tatekanos_shared 部門配下の管理対象物件
user tatekanos_shared 既に auth_base.py で共通化済み
customer tatekanos_shared 得意先(Mitsumori: 得意先, Toriteki: 仕入先の裏返し)
supplier tatekanos_shared 仕入先
settings tatekanos_shared 分類値基盤
business サービス固有 or Core連携層 Core連携用コードマスター

5.2 Toriteki移行計画

  • branch → department へのマッピング層を設計
  • facility → building へのマッピング層を設計
  • 既存データの移行スクリプト作成が必要
  • 段階的移行: まずMitsumoriでdepartment/building実装 → Toritekiは後続Phase

変更履歴

日付 変更者 内容
2026-03-15 ClaudeCode 初版作成(Codex Fredy調査結果に基づく)