晉塔流程

定義(SA 1.3.3)

術語說明
晉塔將骨灰罈正式安放入其對應塔位的程序,為「已使用」狀態的起點。
安奉將神主牌位正式安放入其對應蓮位的程序,為「已使用」狀態的起點。
暫厝在正式晉塔/安奉前,於園區內進行的臨時安放
無塔位暫厝客戶未購塔位但需暫存時的特殊方案(月費 + 押金)。

塔位用「晉塔」、蓮位用「安奉」,系統 code 有時統稱 Enshrine/Enshrinement。


前置條件(BR-AST-03)

  1. 權狀狀態必須為 「未使用」或「已遷出」(否則系統擋住)
  2. 必須已選位(BR-AST-02:未選位資產無法晉塔,也不可辦換位)
  3. 已有一筆包含晉塔/安奉項目的申請單
  4. 客戶已與公司約定執行日期

主流程(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存放證補發/名條變更:需已晉塔

相關概念