晉塔流程
定義(SA 1.3.3)
| 術語 | 說明 |
|---|---|
| 晉塔 | 將骨灰罈正式安放入其對應塔位的程序,為「已使用」狀態的起點。 |
| 安奉 | 將神主牌位正式安放入其對應蓮位的程序,為「已使用」狀態的起點。 |
| 暫厝 | 在正式晉塔/安奉前,於園區內進行的臨時安放。 |
| 無塔位暫厝 | 客戶未購塔位但需暫存時的特殊方案(月費 + 押金)。 |
塔位用「晉塔」、蓮位用「安奉」,系統 code 有時統稱 Enshrine/Enshrinement。
前置條件(BR-AST-03)
- 權狀狀態必須為 「未使用」或「已遷出」(否則系統擋住)
- 必須已選位(BR-AST-02:未選位資產無法晉塔,也不可辦換位)
- 已有一筆包含晉塔/安奉項目的申請單
- 客戶已與公司約定執行日期
主流程(SA 4.1.6 / UC03)
客戶提出晉塔申請
→ 櫃檯收單 + 列印確認單
→ 系統產生「待辦」申請單 [(2.1)申請單總覽]
→ 行政人員確認晉塔資料 + 套印存放證等文件 → 交付客戶
→ 系統建立通報(填執行日期送出後自動觸發,或手動新增)
→ 通報狀態:未開始 → 進行中
→ 管理處篩選今日/本週/本月晉塔清單
→ 執行人員現場協助客戶完成晉塔儀式
→ 執行人員回報完成 + 上傳附件
→ 行政人員輸入「實際執行日期」→ 點擊完成
→ 資產狀態更新為「已晉塔」
→ 通報狀態 → 已完成
→ 申請單歸檔
預填流程(SA 4.1.8 / UC10)
在正式晉塔前,行政人員可預先填妥資料(減少現場等待時間):
進入 [(2.6)晉塔/安奉資料預填]
→ 輸入位置號碼(塔位/蓮位)
→ 系統帶入:權狀資料 + 持有人資訊
→ 預填:往生者姓名、安奉日期等
→ 選擇通報項目(可多選):
塔位晉塔 / 蓮位安奉 / 油刈金 / 合爐 / 取香火袋 / 其他
→ 系統建立通報 → 進入 [(2.7)通報管理]
此流程把「申請單(晉塔+遷出)→ 預填晉塔(準備)→ 通報(現場執行)」三段串起來。
通報機制(SA 4.1.6 通報子流程)
| 建立方式 | 條件 |
|---|---|
| 自動 | 申請單填寫執行日期送出後觸發 |
| 手動 | 申請單未填日期,或臨時通知現場 |
通報狀態機:
未開始 → 進行中 → 待補件 ↔ 進行中 → 已完成
後置效果
| 完成晉塔後 | 說明 |
|---|---|
| 資產狀態 → 已晉塔 | BR-AST-03 後置 |
| 解鎖存放證補發 | BR-AST-05:需已晉塔才可補發 |
| 解鎖名條變更 | BR-AST-05:需已晉塔才可辦理 |
| 遷出前提 | BR-AST-04:遷出需先已晉塔,且管理費已繳清或已退費 |
程式碼位置
已晉塔判定唯一權威
EnshrinementGuard.cs — 全系統所有「是否已晉塔」判定都必須委派這裡,不得自建平行版。
IsProductEnshrinedAsync(productId):
路徑 1(優先): enshrinements 表(f_in='1',未軟刪)→ move_outs 反查
路徑 2(兜底): 僅當無入位 record 時 → 查 completed 申請單歷史
陷阱:enshrinements.f_in 遷出後永遠維持 ‘1’(全表 0 筆 f_in=‘2’,非 bug)。
遷出狀態靠 move_outs.f_t_use_fid = enshrinements.f_id 判定。
「現役已晉塔」= 有 f_in='1' 列 且 該列無對應 move_outs 列。
通報解析
EnshrinementNotificationBuilder.cs
| 方法 | 用途 |
|---|---|
ParseNotifList(json) | NameplateUsersJson → 通報 list(依日期,temp 在前 main 在後) |
ParseUsers(json) | NameplateUsersJson → InternmentUserData list(不依日期,供管理費 guard 用) |
ParseRocDateString(str) | 民國年 YYYMMDD → DateOnly |
陷阱:管理費 guard 必須用 ParseUsers(),不能用 ParseNotifList()。
原因:若 user 有名無日期,ParseNotifList 回 0 筆 → guard 被繞過放行。
晉塔往生者資料(InternmentUserData record)
| 欄位 | 說明 |
|---|---|
IdNumber, Name, Gender | 往生者身份 |
BirthDate, DeathDate | 生卒日(SA 格式) |
ScheduledTempDate | 暫厝日期(有值 → 產 temp 通報) |
ScheduledMainDate | 主要晉塔日期(有值 → 產 main 通報) |
Title | 稱位(蓮位安奉專用) |
Relation | 與持有人關係(→ enshrinements.f_type3) |
ManagementFeeId | 綁定管理費主檔(→ management_fees.f_id) |
相關 DB 表
| 表 | 說明 |
|---|---|
enshrinements | 晉塔記錄。f_in='1' 表入位;遷出後 f_in 不變 |
enshrinement_history | 歷史紀錄 |
move_outs | 遷出記錄。f_t_use_fid = enshrinements.f_id(遷出鍵) |
tb_enshrinement_notification | 晉塔通報 |
其他相關 Service / Controller
| 檔案 | 說明 |
|---|---|
EnshrinementPrefillService.cs | 預填服務 |
EnshrinementPrefillController.cs | 預填 API |
EnshrinementNotificationService.cs | 通報 CRUD |
EnshrinementNotificationController.cs | 通報 API |
EnshrinementUseRecordSequence.cs | 使用人流水號 |
EnshrinementSnapshotFactory.cs | 快照建立 |
EnshrinementOccupancy.cs | 占用判定 helper |
EnshrinementTripFeeCalculator.cs | 差旅費計算 |
SA 章節索引
| 章節 | 內容 |
|---|---|
| SA 1.3.3 | 核心業務流程定義(晉塔、安奉、暫厝) |
| SA 4.1.6 | 晉塔與遷出及通報流程(主流程圖) |
| SA 4.1.8 | 晉塔/安奉資料預填流程 |
| SA 4.3.3 (UC03) | 辦理晉塔/安奉與通報作業 Use Case |
| SA 4.3.10 (UC10) | 行政人員預填晉塔/安奉資料 Use Case |
| BR-AST-02 | 未選位資產不可晉塔 |
| BR-AST-03 | 晉塔前置:未使用或已遷出 |
| BR-AST-04 | 遷出前置:已晉塔且管理費清 |
| BR-AST-05 | 存放證補發/名條變更:需已晉塔 |
相關概念
- 遷出流程 — 晉塔的逆操作
- 申請單異動從建立到完成怎麼運作 — 申請單詳情儲存如何建立晉塔/安奉通報,以及完成端如何正式入位
- 資產狀態機 — 完整的位置/權狀狀態轉換圖
- 選位流程 — 晉塔前置步驟
- 管理費綁定 — 晉塔時每位往生者需綁 ManagementFeeId