update doc
This commit is contained in:
26
data/memo/report-view.md
Normal file
26
data/memo/report-view.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# 報表系統規劃
|
||||
為每場活動(法會)建立報名到舉辦過程的報表,
|
||||
要涵蓋以下面向的統計分析資訊
|
||||
|
||||
- 以單一場法會為核心
|
||||
- 時間面向: 當前狀況, 指定期間狀況
|
||||
- 維度:
|
||||
- 信眾: 報名數量, 金額, 收款狀態
|
||||
- 牌位型態(活動品項表): 報名數量, 金額, 收款狀態
|
||||
- 收款狀態: 己收/未收 統計明細
|
||||
|
||||
## 法會報表系統查詢規劃**
|
||||
|
||||
### 1. 核心基礎 VIEW
|
||||
1. `vw_activity_registration_base` - 單一活動的完整報名基礎資料
|
||||
2. `vw_activity_payment_detail` - 單一活動的完整收款明細資料
|
||||
### 2. 統計分析 VIEW
|
||||
3. `vw_activity_follower_statistics` - 按信眾統計報名情況
|
||||
4. `vw_activity_item_statistics` - 按品項統計報名情況
|
||||
5. `vw_activity_payment_status` - 收款狀態統計分析
|
||||
### 3. 時間維度分析 VIEW
|
||||
6. `vw_activity_registration_trend` - 按日期統計報名趨勢
|
||||
7. `vw_activity_payment_trend` - 按收款日期統計收款趨勢
|
||||
### 4. 詳細查詢 VIEW
|
||||
8. `vw_activity_unpaid_detail` - 未收款明細清單
|
||||
9. `vw_activity_transfer_reconciliation` - 匯款對帳明細
|
||||
252
data/memo/report-view.sql
Normal file
252
data/memo/report-view.sql
Normal file
@@ -0,0 +1,252 @@
|
||||
drop view if exists vw_activity_registration_base;
|
||||
drop view if exists vw_activity_payment_detail;
|
||||
drop view if exists vw_activity_follower_statistics;
|
||||
drop view if exists vw_activity_item_statistics;
|
||||
drop view if exists vw_activity_payment_status;
|
||||
drop view if exists vw_activity_registration_trend;
|
||||
drop view if exists vw_activity_payment_trend;
|
||||
drop view if exists vw_activity_unpaid_detail;
|
||||
drop view if exists vw_activity_transfer_reconciliation;
|
||||
GO
|
||||
-- 1. 法會報名基礎資料 VIEW
|
||||
CREATE VIEW vw_activity_registration_base AS
|
||||
SELECT
|
||||
a.num AS 活動編號,
|
||||
a.subject AS 活動名稱,
|
||||
a.startDate_solar AS 活動開始日期,
|
||||
a.endDate_solar AS 活動結束日期,
|
||||
po.order_no AS 報名單號,
|
||||
po.up_time AS 報名日期,
|
||||
po.keyin1 AS 報名狀態,
|
||||
f.num AS 信眾編號,
|
||||
f.f_number AS 信眾代號,
|
||||
f.u_name AS 信眾姓名,
|
||||
f.phone AS 聯絡電話,
|
||||
f.identity_type AS 身分別,
|
||||
f.country AS 國籍,
|
||||
pod.num AS 報名明細編號,
|
||||
ai.num AS 品項編號,
|
||||
ai.subject AS 品項名稱,
|
||||
ai.category AS 品項分類,
|
||||
pod.price AS 單價,
|
||||
pod.qty AS 數量,
|
||||
pod.price * pod.qty AS 應繳金額,
|
||||
pod.pay AS 已收金額,
|
||||
(pod.price * pod.qty - ISNULL(pod.pay, 0)) AS 未收金額,
|
||||
pod.pay_date AS 付款期限,
|
||||
pod.start_date AS 開始日期,
|
||||
pod.due_date AS 到期日期,
|
||||
pod.keyin1 AS 明細狀態,
|
||||
pod.demo AS 備註
|
||||
FROM activity a
|
||||
INNER JOIN pro_order po ON a.num = po.activity_num
|
||||
INNER JOIN followers f ON po.f_num = f.num
|
||||
INNER JOIN pro_order_detail pod ON po.order_no = pod.order_no
|
||||
INNER JOIN actItem ai ON pod.actItem_num = ai.num;
|
||||
GO
|
||||
|
||||
-- 2. 收款明細基礎資料 VIEW
|
||||
CREATE VIEW vw_activity_payment_detail AS
|
||||
SELECT
|
||||
a.num AS 活動編號,
|
||||
a.subject AS 活動名稱,
|
||||
po.order_no AS 報名單號,
|
||||
f.u_name AS 信眾姓名,
|
||||
pod.num AS 報名明細編號,
|
||||
ai.subject AS 品項名稱,
|
||||
por.num AS 收款記錄編號,
|
||||
por.price AS 收款金額,
|
||||
por.payment AS 付款方式,
|
||||
por.pay_date AS 收款日期,
|
||||
por.organization AS 收款機構,
|
||||
por.bank_code AS 銀行代碼,
|
||||
por.transfer_id AS 匯款記錄ID,
|
||||
por.reconcile_memo AS 對帳備註,
|
||||
tr.name AS 匯款人姓名,
|
||||
tr.phone AS 匯款人電話,
|
||||
tr.amount AS 匯款金額,
|
||||
tr.check_date AS 入帳日期,
|
||||
tr.status AS 匯款狀態
|
||||
FROM activity a
|
||||
INNER JOIN pro_order po ON a.num = po.activity_num
|
||||
INNER JOIN followers f ON po.f_num = f.num
|
||||
INNER JOIN pro_order_detail pod ON po.order_no = pod.order_no
|
||||
INNER JOIN actItem ai ON pod.actItem_num = ai.num
|
||||
LEFT JOIN pro_order_record por ON pod.num = por.detail_num
|
||||
LEFT JOIN transfer_register tr ON por.transfer_id = tr.id;
|
||||
GO
|
||||
|
||||
-- 3. 信眾報名統計 VIEW
|
||||
CREATE VIEW vw_activity_follower_statistics AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
信眾編號,
|
||||
信眾代號,
|
||||
信眾姓名,
|
||||
聯絡電話,
|
||||
身分別,
|
||||
國籍,
|
||||
COUNT(DISTINCT 報名單號) AS 報名單數,
|
||||
COUNT(報名明細編號) AS 報名品項數,
|
||||
SUM(應繳金額) AS 應繳總金額,
|
||||
SUM(已收金額) AS 已收總金額,
|
||||
SUM(未收金額) AS 未收總金額,
|
||||
CASE
|
||||
WHEN SUM(未收金額) = 0 THEN '已繳清'
|
||||
WHEN SUM(未收金額) = SUM(應繳金額) THEN '未繳'
|
||||
ELSE '部分繳款'
|
||||
END AS 繳款狀態
|
||||
FROM vw_activity_registration_base
|
||||
GROUP BY 活動編號, 活動名稱, 信眾編號, 信眾代號, 信眾姓名, 聯絡電話, 身分別, 國籍;
|
||||
GO
|
||||
|
||||
-- 4. 品項報名統計 VIEW
|
||||
CREATE VIEW vw_activity_item_statistics AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
品項編號,
|
||||
品項名稱,
|
||||
品項分類,
|
||||
單價,
|
||||
COUNT(報名明細編號) AS 報名數量,
|
||||
SUM(數量) AS 總數量,
|
||||
SUM(應繳金額) AS 應繳總金額,
|
||||
SUM(已收金額) AS 已收總金額,
|
||||
SUM(未收金額) AS 未收總金額,
|
||||
CASE
|
||||
WHEN COUNT(報名明細編號) = 0 THEN 0
|
||||
ELSE AVG(已收金額)
|
||||
END AS 平均已收金額,
|
||||
CASE
|
||||
WHEN SUM(未收金額) = 0 THEN '已收齊'
|
||||
WHEN SUM(未收金額) = SUM(應繳金額) THEN '未收款'
|
||||
ELSE '部分收款'
|
||||
END AS 收款狀態
|
||||
FROM vw_activity_registration_base
|
||||
GROUP BY 活動編號, 活動名稱, 品項編號, 品項名稱, 品項分類, 單價;
|
||||
GO
|
||||
|
||||
-- 5. 收款狀態統計 VIEW
|
||||
CREATE VIEW vw_activity_payment_status AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
'總計' AS 統計項目,
|
||||
COUNT(DISTINCT 報名單號) AS 報名單數,
|
||||
COUNT(報名明細編號) AS 報名品項數,
|
||||
SUM(應繳金額) AS 應繳總金額,
|
||||
SUM(已收金額) AS 已收總金額,
|
||||
SUM(未收金額) AS 未收總金額,
|
||||
CASE
|
||||
WHEN SUM(應繳金額) = 0 THEN 0
|
||||
ELSE ROUND(SUM(已收金額) * 100.0 / SUM(應繳金額), 2)
|
||||
END AS 收款率
|
||||
FROM vw_activity_registration_base
|
||||
GROUP BY 活動編號, 活動名稱
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
CASE
|
||||
WHEN 未收金額 = 0 THEN '已繳清'
|
||||
WHEN 未收金額 = 應繳金額 THEN '未繳'
|
||||
ELSE '部分繳款'
|
||||
END AS 統計項目,
|
||||
COUNT(DISTINCT 報名單號) AS 報名單數,
|
||||
COUNT(報名明細編號) AS 報名品項數,
|
||||
SUM(應繳金額) AS 應繳總金額,
|
||||
SUM(已收金額) AS 已收總金額,
|
||||
SUM(未收金額) AS 未收總金額,
|
||||
CASE
|
||||
WHEN SUM(應繳金額) = 0 THEN 0
|
||||
ELSE ROUND(SUM(已收金額) * 100.0 / SUM(應繳金額), 2)
|
||||
END AS 收款率
|
||||
FROM vw_activity_registration_base
|
||||
GROUP BY 活動編號, 活動名稱,
|
||||
CASE
|
||||
WHEN 未收金額 = 0 THEN '已繳清'
|
||||
WHEN 未收金額 = 應繳金額 THEN '未繳'
|
||||
ELSE '部分繳款'
|
||||
END;
|
||||
GO
|
||||
|
||||
-- 6. 報名趨勢分析 VIEW
|
||||
CREATE VIEW vw_activity_registration_trend AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
CAST(報名日期 AS DATE) AS 報名日期,
|
||||
COUNT(DISTINCT 報名單號) AS 當日報名單數,
|
||||
COUNT(報名明細編號) AS 當日報名品項數,
|
||||
SUM(應繳金額) AS 當日應繳金額,
|
||||
SUM(已收金額) AS 當日已收金額,
|
||||
SUM(未收金額) AS 當日未收金額
|
||||
FROM vw_activity_registration_base
|
||||
GROUP BY 活動編號, 活動名稱, CAST(報名日期 AS DATE);
|
||||
GO
|
||||
|
||||
-- 7. 收款趨勢分析 VIEW
|
||||
CREATE VIEW vw_activity_payment_trend AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
CAST(收款日期 AS DATE) AS 收款日期,
|
||||
COUNT(收款記錄編號) AS 當日收款筆數,
|
||||
SUM(收款金額) AS 當日收款金額,
|
||||
COUNT(DISTINCT 報名單號) AS 當日收款單數,
|
||||
CASE
|
||||
WHEN COUNT(收款記錄編號) = 0 THEN 0
|
||||
ELSE AVG(收款金額)
|
||||
END AS 平均收款金額
|
||||
FROM vw_activity_payment_detail
|
||||
WHERE 收款日期 IS NOT NULL
|
||||
GROUP BY 活動編號, 活動名稱, CAST(收款日期 AS DATE);
|
||||
GO
|
||||
|
||||
-- 8. 未收款明細 VIEW
|
||||
CREATE VIEW vw_activity_unpaid_detail AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
報名單號,
|
||||
信眾姓名,
|
||||
聯絡電話,
|
||||
品項名稱,
|
||||
應繳金額,
|
||||
已收金額,
|
||||
未收金額,
|
||||
付款期限,
|
||||
CASE
|
||||
WHEN 付款期限 < GETDATE() THEN '已逾期'
|
||||
WHEN 付款期限 <= DATEADD(DAY, 3, GETDATE()) THEN '即將到期'
|
||||
ELSE '未到期'
|
||||
END AS 到期狀態
|
||||
FROM vw_activity_registration_base
|
||||
WHERE 未收金額 > 0;
|
||||
GO
|
||||
|
||||
-- 9. 匯款對帳明細 VIEW
|
||||
CREATE VIEW vw_activity_transfer_reconciliation AS
|
||||
SELECT
|
||||
活動編號,
|
||||
活動名稱,
|
||||
匯款記錄ID,
|
||||
匯款人姓名,
|
||||
匯款人電話,
|
||||
匯款金額,
|
||||
入帳日期,
|
||||
匯款狀態,
|
||||
COUNT(收款記錄編號) AS 關聯收款筆數,
|
||||
SUM(收款金額) AS 已對帳金額,
|
||||
CASE
|
||||
WHEN SUM(收款金額) IS NULL THEN 匯款金額
|
||||
ELSE 匯款金額 - SUM(收款金額)
|
||||
END AS 剩餘金額
|
||||
FROM vw_activity_payment_detail
|
||||
WHERE 匯款記錄ID IS NOT NULL
|
||||
GROUP BY 活動編號, 活動名稱, 匯款記錄ID, 匯款人姓名, 匯款人電話, 匯款金額, 入帳日期, 匯款狀態;
|
||||
GO
|
||||
484
data/memo/report.md
Normal file
484
data/memo/report.md
Normal file
@@ -0,0 +1,484 @@
|
||||
# 相關頁面
|
||||
## 基本功能
|
||||
admin/order/index.aspx
|
||||
admin/activity/index.aspx
|
||||
admin/follower/index.aspx
|
||||
admin/activity/index2.aspx
|
||||
admin/transfer/index.aspx
|
||||
|
||||
## 入帳沖帳
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\balance_reconcile_query.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\balance_reconcile.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\group_reconcile.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\index.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\personal_reconcile.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\register.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify_order_record_query.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify1.aspx
|
||||
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify2.aspx
|
||||
|
||||
# 資料結構
|
||||
|
||||
## 📊 17168ERP 系統使用的資料表架構
|
||||
|
||||
### 🎯 **核心業務資料表**
|
||||
|
||||
#### 1. **報名管理系統** (`order/index.aspx`)
|
||||
**主要資料表:**
|
||||
- **`pro_order`** - 報名主表
|
||||
- `order_no` (單號)、`up_time` (報名日期)、`keyin1` (單據狀態)
|
||||
- `f_num` (信眾編號)、`activity_num` (活動編號)、`phone` (聯絡電話)
|
||||
|
||||
- **`pro_order_detail`** - 報名明細表
|
||||
- `order_no` (關聯主表)、`actItem_num` (活動品項)、`f_num` (報名者)
|
||||
- `price` (金額)、`qty` (數量)、`pay` (已收金額)、`pay_date` (付款期限)
|
||||
|
||||
- **`activity`** - 活動主表
|
||||
- `num`、`subject` (活動名稱)、`start_date` (開始日期)、`end_date` (結束日期)
|
||||
|
||||
- **`actItem`** - 活動品項表
|
||||
- `num`、`subject` (品項名稱)、`category` (品項分類)
|
||||
|
||||
#### 2. **信眾管理系統** (`follower/index.aspx`)
|
||||
**主要資料表:**
|
||||
- **`followers`** - 信眾基本資料表
|
||||
- `num`、`f_number` (信眾編號)、`u_name` (姓名)、`sex` (性別)
|
||||
- `identity_type` (身分別)、`birthday` (生日)、`phone` (電話)
|
||||
- `address` (地址)、`country` (國籍)、`refugedate` (皈依日期)
|
||||
|
||||
- **`countries`** - 國籍資料表
|
||||
- `ID`、`name_zh` (中文名稱)、`name_en` (英文名稱)
|
||||
|
||||
#### 3. **活動管理系統** (`activity/index.aspx`)
|
||||
**主要資料表:**
|
||||
- **`activity`** - 活動主表
|
||||
- `num`、`subject` (活動名稱)、`startDate_solar` (國曆開始日期)
|
||||
- `startDate_lunar` (農曆開始日期)、`endDate_solar` (國曆結束日期)
|
||||
- `endDate_lunar` (農曆結束日期)、`dueDate` (報名截止日期)
|
||||
|
||||
- **`activity_kind`** - 活動分類表
|
||||
- `num`、`subject` (分類名稱)
|
||||
|
||||
#### 4. **匯款沖帳系統** (`transfer/index.aspx`)
|
||||
**主要資料表:**
|
||||
- **`transfer_register`** - 匯款登錄表
|
||||
- `id`、`name` (匯款人姓名)、`phone` (電話)、`amount` (匯款金額)
|
||||
- `pay_type` (付款方式)、`account_last5` (帳號後五碼)
|
||||
- `proof_img` (匯款證明圖片)、`status` (狀態)
|
||||
- `f_num_match` (配對信眾編號)、`check_amount` (核對金額)
|
||||
|
||||
- **`accounting`** - 會計帳務表
|
||||
- `num`、`category` (科目分類)、`kind` (收支類型)
|
||||
- `price` (金額)、`debtor` (債務人)、`activity_num` (關聯活動)
|
||||
|
||||
- **`pro_order_record`** - 報名收款記錄表
|
||||
- `num`、`detail_num` (關聯明細)、`price` (金額)、`payment` (付款方式)
|
||||
- `pay_date` (收款日期)、`transfer_id` (關聯匯款記錄)
|
||||
|
||||
### 🔗 **關聯關係**
|
||||
|
||||
#### **主要外鍵關聯:**
|
||||
```
|
||||
pro_order → followers (f_num)
|
||||
pro_order → activity (activity_num)
|
||||
pro_order_detail → pro_order (order_no)
|
||||
pro_order_detail → actItem (actItem_num)
|
||||
pro_order_detail → followers (f_num)
|
||||
transfer_register → followers (f_num)
|
||||
transfer_register → activity (activity_num)
|
||||
accounting → pro_order_detail (pro_order_detail_num)
|
||||
```
|
||||
|
||||
### 📈 **資料表統計**
|
||||
|
||||
| 功能模組 | 主要資料表數量 | 核心業務表 |
|
||||
|---------|-------------|-----------|
|
||||
| 報名管理 | 5個 | `pro_order`, `pro_order_detail` |
|
||||
| 信眾管理 | 2個 | `followers`, `countries` |
|
||||
| 活動管理 | 2個 | `activity`, `activity_kind` |
|
||||
| 匯款沖帳 | 3個 | `transfer_register`, `accounting`, `pro_order_record` |
|
||||
|
||||
### 🎯 **系統特色**
|
||||
|
||||
1. **模組化設計**:每個功能模組都有獨立的資料表群組
|
||||
2. **關聯完整**:透過外鍵建立完整的業務關聯關係
|
||||
3. **狀態管理**:多個狀態表支援複雜的業務流程
|
||||
4. **UUID設計**:新模組採用UUID作為主鍵,提升擴展性
|
||||
5. **軟刪除機制**:使用`IsDeleted`欄位而非物理刪除
|
||||
|
||||
這個資料表架構支援了一個完整的宗教活動管理ERP系統,涵蓋了從信眾管理、活動報名、床位安排到財務沖帳的全流程管理。
|
||||
|
||||
# 入帳沖帳
|
||||
```
|
||||
報名者匯款 → transfer_register (status: pending)
|
||||
↓
|
||||
出納核對身份 → transfer_register (status: verified, f_num_match)
|
||||
↓
|
||||
出納核對金額 → transfer_register (status: confirmed, check_amount)
|
||||
↓
|
||||
會計個人沖帳 → pro_order_record + accounting
|
||||
↓
|
||||
會計共同沖帳 → pro_order_record + accounting (多筆)
|
||||
↓
|
||||
會計餘額核銷 → transfer_register (remain_amount)
|
||||
↓
|
||||
查詢統計報表 → 各表關聯查詢
|
||||
```
|
||||
|
||||
# DB SCHEMA
|
||||
我來為您使用 Mermaid 語法繪製 17168ERP 系統的 ER 圖,展示各個資料表之間的關聯關係。
|
||||
|
||||
|
||||
[1 tool called]
|
||||
|
||||
我無法直接創建 Mermaid 圖表,但我可以為您提供完整的 Mermaid ER 圖代碼,您可以複製到支援 Mermaid 的工具中查看(如 GitHub、GitLab、或 Mermaid Live Editor)。
|
||||
|
||||
以下是 17168ERP 系統的 ER 圖 Mermaid 代碼:
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
%% 信眾管理系統
|
||||
followers {
|
||||
int num PK
|
||||
string f_number
|
||||
string u_name
|
||||
string sex
|
||||
int identity_type
|
||||
datetime birthday
|
||||
string phone
|
||||
string email
|
||||
datetime refugedate
|
||||
string refuge_name
|
||||
string address
|
||||
string demo
|
||||
int leader
|
||||
string socialid1
|
||||
string socialid2
|
||||
string tab
|
||||
string contactor
|
||||
string contactor_phone
|
||||
string blood
|
||||
string customize_data
|
||||
}
|
||||
|
||||
countries {
|
||||
int ID PK
|
||||
string name_zh
|
||||
string name_en
|
||||
string range
|
||||
}
|
||||
|
||||
%% 活動管理系統
|
||||
activity {
|
||||
int num PK
|
||||
string subject
|
||||
datetime startDate_solar
|
||||
datetime startDate_lunar
|
||||
datetime endDate_solar
|
||||
datetime endDate_lunar
|
||||
datetime dueDate
|
||||
int kind
|
||||
string demo
|
||||
string customize_data
|
||||
}
|
||||
|
||||
activity_kind {
|
||||
int num PK
|
||||
string subject
|
||||
string demo
|
||||
}
|
||||
|
||||
actItem {
|
||||
int num PK
|
||||
int activity_num FK
|
||||
string subject
|
||||
int category
|
||||
string demo
|
||||
string customize_data
|
||||
}
|
||||
|
||||
%% 報名管理系統
|
||||
pro_order {
|
||||
string order_no PK
|
||||
datetime up_time
|
||||
datetime reg_time
|
||||
string keyin1
|
||||
int f_num FK
|
||||
string phone
|
||||
int activity_num FK
|
||||
string address
|
||||
string demo
|
||||
string customize_data
|
||||
int introducer FK
|
||||
boolean send_receipt
|
||||
string receipt_title
|
||||
}
|
||||
|
||||
pro_order_detail {
|
||||
int num PK
|
||||
string order_no FK
|
||||
int actItem_num FK
|
||||
int f_num FK
|
||||
string f_num_tablet
|
||||
string address
|
||||
int from_id FK
|
||||
string from_id_tablet
|
||||
datetime due_date
|
||||
int bed_type
|
||||
float price
|
||||
int qty
|
||||
datetime start_date
|
||||
datetime extend_date
|
||||
float pay
|
||||
datetime pay_date
|
||||
int keyin1
|
||||
string demo
|
||||
datetime UpdateTime
|
||||
}
|
||||
|
||||
%% 匯款沖帳系統
|
||||
transfer_register {
|
||||
int id PK
|
||||
int activity_num FK
|
||||
string name
|
||||
string phone
|
||||
string pay_type
|
||||
string account_last5
|
||||
decimal amount
|
||||
string pay_mode
|
||||
string note
|
||||
string proof_img
|
||||
string status
|
||||
datetime create_time
|
||||
int f_num_match FK
|
||||
int f_num FK
|
||||
int acc_num
|
||||
datetime check_date
|
||||
decimal check_amount
|
||||
string check_memo
|
||||
string check_status
|
||||
int acc_kind
|
||||
int member_num
|
||||
datetime verify_time
|
||||
string verify_note
|
||||
string draft
|
||||
decimal remain_amount
|
||||
int balance_act_item FK
|
||||
int balance_pro_order_detail FK
|
||||
}
|
||||
|
||||
accounting {
|
||||
int num PK
|
||||
datetime uptime
|
||||
int category
|
||||
int kind
|
||||
int kind2
|
||||
float price
|
||||
float tax
|
||||
string demo
|
||||
int mem_num
|
||||
string debtor
|
||||
int activity_num FK
|
||||
string excerpt
|
||||
datetime reg_time
|
||||
int pro_order_detail_num FK
|
||||
}
|
||||
|
||||
pro_order_record {
|
||||
int num PK
|
||||
int detail_num FK
|
||||
float price
|
||||
int payment
|
||||
datetime reg_time
|
||||
datetime pay_date
|
||||
string organization
|
||||
string bank_code
|
||||
int transfer_id FK
|
||||
string reconcile_memo
|
||||
}
|
||||
|
||||
%% 區域床位管理系統
|
||||
Region {
|
||||
Guid Uuid PK
|
||||
string Name
|
||||
boolean Gender
|
||||
boolean IsActive
|
||||
boolean IsDeleted
|
||||
}
|
||||
|
||||
Room {
|
||||
Guid Uuid PK
|
||||
string Name
|
||||
boolean Gender
|
||||
int BedCount
|
||||
boolean IsActive
|
||||
datetime CreatedAt
|
||||
datetime UpdatedAt
|
||||
boolean IsDeleted
|
||||
Guid RegionUuid FK
|
||||
}
|
||||
|
||||
RegionRoomBed {
|
||||
Guid Uuid PK
|
||||
string Name
|
||||
boolean IsActive
|
||||
boolean Gender
|
||||
boolean IsDeleted
|
||||
Guid RoomUuid FK
|
||||
string StatusCode FK
|
||||
}
|
||||
|
||||
RegionRoomBedStatus {
|
||||
string Code PK
|
||||
string Name
|
||||
string Description
|
||||
int Category
|
||||
boolean IsDeleted
|
||||
}
|
||||
|
||||
%% 掛單管理系統
|
||||
GuaDanOrder {
|
||||
Guid Uuid PK
|
||||
datetime StartDate
|
||||
datetime EndDate
|
||||
int CreateUser FK
|
||||
datetime CreatedAt
|
||||
datetime UpdatedAt
|
||||
string Notes
|
||||
string GuaDanOrderNo
|
||||
int BookerFollowerNum FK
|
||||
string BookerName
|
||||
string BookerPhone
|
||||
boolean IsDeleted
|
||||
int ActivityNum FK
|
||||
boolean IsCancel
|
||||
}
|
||||
|
||||
GuaDanOrderGuest {
|
||||
Guid Uuid PK
|
||||
string GuaDanOrderNo FK
|
||||
int FollowerNum FK
|
||||
boolean IsDeleted
|
||||
Guid RoomUuid FK
|
||||
Guid BedUuid FK
|
||||
datetime CheckInAt
|
||||
datetime CheckOutAt
|
||||
string StatusCode FK
|
||||
}
|
||||
|
||||
RegionAndRoomAndBedSchedule {
|
||||
Guid Uuid PK
|
||||
Guid TargetUuid FK
|
||||
string GuaDanOrderNo
|
||||
date ScheduleDate
|
||||
boolean IsCancel
|
||||
boolean IsDeleted
|
||||
int UseType
|
||||
string Title
|
||||
string Description
|
||||
string CreatedBy
|
||||
datetime CreatedAt
|
||||
Guid GuaDanOrderGuestUuid FK
|
||||
}
|
||||
|
||||
%% 關聯關係
|
||||
followers ||--o{ pro_order : "報名"
|
||||
followers ||--o{ pro_order_detail : "報名明細"
|
||||
followers ||--o{ transfer_register : "匯款人"
|
||||
followers ||--o{ GuaDanOrderGuest : "掛單客人"
|
||||
|
||||
activity ||--o{ pro_order : "活動報名"
|
||||
activity ||--o{ actItem : "活動品項"
|
||||
activity ||--o{ transfer_register : "活動匯款"
|
||||
activity ||--o{ GuaDanOrder : "掛單活動"
|
||||
|
||||
pro_order ||--o{ pro_order_detail : "報名明細"
|
||||
pro_order ||--o{ pro_order_record : "收款記錄"
|
||||
|
||||
pro_order_detail ||--o{ pro_order_record : "明細收款"
|
||||
pro_order_detail ||--o{ accounting : "會計分錄"
|
||||
pro_order_detail ||--o{ transfer_register : "沖帳明細"
|
||||
|
||||
transfer_register ||--o{ pro_order_record : "匯款記錄"
|
||||
transfer_register ||--o{ accounting : "會計記錄"
|
||||
|
||||
Region ||--o{ Room : "區域房間"
|
||||
Room ||--o{ RegionRoomBed : "房間床位"
|
||||
RegionRoomBedStatus ||--o{ RegionRoomBed : "床位狀態"
|
||||
RegionRoomBedStatus ||--o{ GuaDanOrderGuest : "客人狀態"
|
||||
|
||||
GuaDanOrder ||--o{ GuaDanOrderGuest : "掛單客人"
|
||||
GuaDanOrderGuest ||--o{ RegionAndRoomAndBedSchedule : "床位排程"
|
||||
|
||||
countries ||--o{ followers : "國籍"
|
||||
activity_kind ||--o{ activity : "活動分類"
|
||||
```
|
||||
|
||||
## 📊 **ER 圖說明**
|
||||
|
||||
### **主要實體群組:**
|
||||
|
||||
1. **信眾管理群組**
|
||||
- `followers` (信眾基本資料)
|
||||
- `countries` (國籍資料)
|
||||
|
||||
2. **活動管理群組**
|
||||
- `activity` (活動主表)
|
||||
- `activity_kind` (活動分類)
|
||||
- `actItem` (活動品項)
|
||||
|
||||
3. **報名管理群組**
|
||||
- `pro_order` (報名主表)
|
||||
- `pro_order_detail` (報名明細)
|
||||
|
||||
4. **財務管理群組**
|
||||
- `transfer_register` (匯款登錄)
|
||||
- `accounting` (會計帳務)
|
||||
- `pro_order_record` (收款記錄)
|
||||
|
||||
5. **床位管理群組**
|
||||
- `Region` (區域)
|
||||
- `Room` (房間)
|
||||
- `RegionRoomBed` (床位)
|
||||
- `RegionRoomBedStatus` (床位狀態)
|
||||
|
||||
6. **掛單管理群組**
|
||||
- `GuaDanOrder` (掛單主表)
|
||||
- `GuaDanOrderGuest` (掛單客人)
|
||||
- `RegionAndRoomAndBedSchedule` (床位排程)
|
||||
|
||||
### **關鍵關聯關係:**
|
||||
|
||||
- **一對多關係**:使用 `||--o{` 表示
|
||||
- **外鍵關聯**:FK 標記顯示主要的外鍵關聯
|
||||
- **業務流程**:從信眾報名 → 匯款 → 沖帳 → 床位安排的完整流程
|
||||
|
||||
您可以将這個 Mermaid 代碼複製到 [Mermaid Live Editor](https://mermaid.live/) 或其他支援 Mermaid 的工具中查看完整的 ER 圖表。
|
||||
|
||||
---
|
||||
# 報表系統規劃
|
||||
為每場活動(法會)建立報名到舉辦過程的報表,
|
||||
要涵蓋以下面向的統計分析資訊
|
||||
|
||||
- 以單一場法會為核心
|
||||
- 時間面向: 當前狀況, 指定期間狀況
|
||||
- 維度:
|
||||
- 信眾: 報名數量, 金額, 收款狀態
|
||||
- 牌位型態(活動品項表): 報名數量, 金額, 收款狀態
|
||||
- 收款狀態: 己收/未收 統計明細
|
||||
|
||||
## 執行方式:
|
||||
- 類似excel, 詳細資料->pivot table
|
||||
- 先建立一個(或數個)最核心的sql view, 包含各項:報名資料, 收款明細
|
||||
- 先以單一活動編號為固定FILTER : activity.num=59
|
||||
- 再依不同面向, 建立第二級的sql view
|
||||
- 再人工將以上:第一, 第二級的SQL VIEW, 以EXCEL查詢, 做資料分析/整理
|
||||
- 相關英文欄名, 在VIEW中以中文別名顯示
|
||||
|
||||
## 相關SQL VIEW
|
||||
- (查詢清單)
|
||||
### (查詢)
|
||||
(說明)
|
||||
```sql
|
||||
```
|
||||
Reference in New Issue
Block a user