EnChia
|
b866a3c454
|
1. 隱藏信眾資料牌位標題
2. 刪除品項的料號欄位
3. 更新資料庫修改紀錄
|
2026-05-12 17:52:43 +08:00 |
|
EnChia
|
ca9548494c
|
更新 資料庫修改紀錄.txt
|
2026-05-11 09:38:14 +08:00 |
|
EnChia
|
e201426e5f
|
更新 資料庫修改紀錄.md
|
2026-05-11 01:34:50 +00:00 |
|
EnChia
|
46494547db
|
將全年報名移至獨立頁籤,並新增未報名品項名單列印功能
|
2026-05-11 09:11:22 +08:00 |
|
EnChia
|
9a7c30bd21
|
1. 更新法會活動品項中的牌位陽上與超度人數限制功能
|
2026-05-04 13:48:51 +08:00 |
|
EnChia
|
29f2902119
|
1. 更新法會活動品項中的牌位陽上與超度人數限制功能
|
2026-05-04 13:44:16 +08:00 |
|
EnChia
|
11a8c3e932
|
1. 新增法會活動品項:牌位陽上與超度人數限制功能
2. 信眾資料新增全年性選項以及開始參加活動日期,自動報名並代入前一次的報名資料(品項)
|
2026-05-04 11:43:57 +08:00 |
|
EnChia
|
7644df57d0
|
1. 優化報名頁面:彈出查詢頁面、顯示剛新增資料
2. 新增報名頁面加上取消鍵
3. 優化登入頁面:按下 enter 自動換格/送出
4. 修復新增報名頁面中,不同 search_dialog 中的 page 參數相互連動之異常
5. 修改報名頁面列印格式
6. 修復報名頁面匯出功能
7. 優化報到功能
8. 報名頁面中,無查詢資料時不可點選匯出/列印按鈕
9. 匯出/列印報名管理報表時,若無資料則顯示提示
10. 修復列印管理報表後父視窗 UI 不能點擊的問題
11. 新增報名管理表單匯出 excel 功能
12. 於新增信眾、新增活動頁面加上取消鍵
13. 優化報名管理匯出功能:若篩選條件包含特定活動,自動於「匯出條件」欄位標註活動名稱
14. 優化報名查詢匯出功能:匯出之文件中加上「匯出條件」欄位
15. 修復信眾資料頁面中,使用「生日」作為篩選基準時,後續執行「列印查詢資料」與「匯出查詢資料」會報錯
16. 修復「列印信眾查詢」功能中,電話搜尋欄位未正確帶入查詢條件之異常
17. 解決中文輸入法輸入電話號碼的跳字問題
18. 新增品項管理介面排序功能
|
2026-04-21 09:03:57 +08:00 |
|
EnChia
|
aa5941a324
|
1. 加上返回鍵
2. 修改報名記錄中的活動開始結束時間
3. 修正列印問題
4. 信眾資料及報名管理起始不會出現資料
5. 信眾不得重複報名相同活動
6. 信眾資料的 cache(含結果與搜尋條件)
7. 修復信眾、活動、品項刪除功能
8. 增加自訂是否自動編號
9. 優化信眾資料頁面(彈出查詢頁面、顯示剛新增資料)
10. 新增管理表單匯出 excel 功能
11. 無查詢資料時不可點選匯出/列印按鈕
12. 匯出/列印管理報表時,若無資料則顯示提示
13. 新增信眾資料時,加入日期預設為今日
|
2026-04-09 17:37:00 +08:00 |
|
minom
|
46cbcbde4c
|
修正問題
|
2026-02-04 17:43:35 +08:00 |
|
minom
|
6fdce11152
|
修正使用不存在物件
修正簡體字
|
2026-01-21 16:15:47 +08:00 |
|
yiming
|
775bfbeb41
|
process request keys at page load
|
2026-01-06 00:06:07 +08:00 |
|
yiming
|
c2a3c0e5bf
|
搜尋身份證號, 電話功能選項
|
2025-12-26 01:46:07 +08:00 |
|
yiming
|
2d3fb23c7b
|
產生:初始/範例DB的流程
|
2025-12-12 09:24:22 +08:00 |
|
yiming
|
169a771566
|
新增: 牌位自訂名稱
|
2025-11-29 10:56:19 +08:00 |
|
yiming
|
27f916eb9c
|
修正多處 LINQ-to-Entities 查詢,避免 Nullable .Contains()、.ToString()、Request[] 直接使用造成翻譯失敗。
API 查詢同步改寫 .Contains()、.OrderBy()、複雜 GroupBy/Math.Round,必要時 materialize 或加 HasValue。
Participation rate / kind breakdown 改在記憶體計算,同時檢查整數陣列 .Contains() 的型別安全性。
|
2025-11-14 23:40:55 +08:00 |
|
yiming
|
4fcbfb3801
|
修正 Entity Framework LINQ 查詢中的 .Date 屬性使用問題
|
2025-11-12 21:33:52 +08:00 |
|
yiming
|
b04c07a5eb
|
權限與靜態檔控制改進:
- 修正 admin 目錄預設頁路由,避免 403.14 與不必要的延遲重導
- 停用未使用的 Sites 多站點初始化,減少應用程式啟動成本
- 修正 Response.Redirect 後未 return 的流程,避免 1.8 分鐘超時
- 將資料庫 Connection Timeout 降為 10 秒,加速失敗回應
- 將 runAllManagedModulesForAllRequests 設為 false,讓 JS/CSS 等靜態檔案直接由 IIS 回應
|
2025-11-12 20:45:34 +08:00 |
|
yiming
|
ae09a6f487
|
STAGE 3-4
|
2025-11-12 18:57:51 +08:00 |
|
yiming
|
744eddcd77
|
STAGE 3-3
|
2025-11-12 18:30:04 +08:00 |
|
yiming
|
1d78bdd3d9
|
STAGE 3-2
|
2025-11-12 18:22:53 +08:00 |
|
yiming
|
8b8869fbde
|
STAGE3-1
|
2025-11-12 18:18:01 +08:00 |
|
yiming
|
d41ad3e4cc
|
STAGE3 OK
|
2025-11-12 18:13:09 +08:00 |
|
yiming
|
ba6e641bac
|
STAGE 2 OK
|
2025-11-12 17:51:42 +08:00 |
|
yiming
|
9969417bd8
|
優化 FollowerController.cs 的子查詢性能
問題:
Line 345 將家族成員 ID 載入內存(ToList)
- 如果家族有 100+ 成員,載入 100-400 bytes
優化:
移除 ToList(),改為使用 IQueryable 子查詢
- var ccList = cc.ToList(); // 移除
- 直接使用 cc 進行 Contains 查詢
- 生成 SQL: WHERE num IN (SELECT...) OR leader IN (SELECT...)
效果:
✓ 減少內存占用:100-400 bytes → 0
✓ 完全在數據庫執行
✓ SQL 優化器可以更好地優化查詢計劃
對比:
- 原始版本(載入內存):2 次查詢
- 優化版本(子查詢):1 次查詢(最佳)
|
2025-11-12 17:30:53 +08:00 |
|
yiming
|
eff3ad778b
|
優化 adminUserController.cs 的子查詢性能
問題:
Line 93 將所有會員的 admin_num 載入內存(ToList)
- 如果有 10,000 個會員,載入 10,000 個 int (40KB)
優化:
改為使用 IQueryable 子查詢,在數據庫層面執行
- var usedAdminNums = _db.members.Select(b => b.admin_num); // 不 ToList()
- 生成 SQL: WHERE num NOT IN (SELECT admin_num FROM members)
效果:
✓ 減少內存占用:40KB → 0
✓ 減少查詢次數:2 次 → 1 次
✓ SQL 優化器可以更好地優化查詢計劃
對比原始代碼:
- 原始(嵌套 AsEnumerable):N+1 查詢問題,執行 51 次
- ToList 版本:載入 40KB,執行 2 次
- 當前版本:不載入內存,執行 1 次(最佳)
|
2025-11-12 17:27:35 +08:00 |
|
yiming
|
bc1f1422e9
|
加入 TODO 註解標記需優化的查詢
標記位置:
1. GetFollowerOrders (Line 402)
- 建議加入分頁或日期範圍限制
2. GetActivityFollowers (Line 1048)
- 建議在數據庫層面過濾未完成沖帳項目
- 考慮加入 Take() 或分頁
目的:
方便日後追蹤並優化性能瓶頸
|
2025-11-12 17:21:53 +08:00 |
|
yiming
|
1698b51d19
|
優化 transfer_registerController.cs 中的 AsEnumerable 位置
問題:
之前將某些 AsEnumerable() 改為 ToList() 可能導致數據過載
優化:
1. GetFollowerOrders (Line 420)
- 改回 AsEnumerable()
- 原因:雖然有 f_num 限制,但信眾可能有大量訂單
- AsEnumerable() 確保數據庫查詢先執行,只在需要內存計算時才轉換
2. GetActivityFollowers (Line 1057)
- 改回 AsEnumerable()
- 原因:activity_num 限制可能包含大量訂單(數千條)
- AsEnumerable() 避免將所有數據載入內存
保持不變:
- Line 240:follower 查詢的 ToList() 保持不變
原因:Where(f.num == x.f_num) 限制為單一記錄
需要在內存中執行解密操作
技術原則:
- AsEnumerable() 應該在「數據庫查詢完成後、內存計算前」使用
- ToList() 只在「確定數據量小」或「必須立即執行」時使用
- 解密等無法在數據庫執行的操作必須在內存中進行
|
2025-11-12 17:20:36 +08:00 |
|
yiming
|
4e26dd648d
|
完成 Batch 3:修復 4 個 API Controller 的 AsEnumerable 問題
修復文件(共 17 處):
1. supplierController.cs (6 處)
- 移除簡單查詢的 AsEnumerable() (2 處)
- AsEnumerable() → AsQueryable() (GetList, GetKindList)
- 優化分頁查詢模式(Count + ToPagedList.ToList())(2 處)
- 修復 Split().Select().ToList() 類型問題
2. adminUserController.cs (4 處)
- 移除簡單查詢的 AsEnumerable()
- AsEnumerable() → AsQueryable() (GetList)
- 優化分頁查詢模式
- 重構複雜查詢:移除嵌套的 AsEnumerable()
改為先 ToList() 再使用 Contains
3. orderdetailController.cs (3 處)
- 移除 AsEnumerable(),改為在查詢末端使用 OrderBy
- 優化分頁查詢模式
- 修復 null-propagating operator:
.FirstOrDefault()?.print_id → .Select(u => u.print_id).FirstOrDefault()
4. transfer_registerController.cs (6 處)
- AsEnumerable() → ToList() (需要解密操作的情況)
- 保留在必要時才轉換到內存操作
- 確保數據庫查詢先執行
技術改進:
✓ 複雜嵌套查詢優化(adminUserController)
✓ 解密操作前置優化(transfer_registerController)
✓ Null-propagating operator 替換為安全的 Select
✓ 統一使用三元運算符處理分頁
✓ IEnumerable<int> → List<int> 避免類型轉換錯誤
|
2025-11-12 17:18:12 +08:00 |
|
yiming
|
e20b250944
|
修復 FilesSetController.cs 中的類型錯誤
問題:
1. CS1061: files_num 是 int 類型,不是 int?
- 錯誤地使用了 HasValue 和 .Value
2. CS0019: Count 應該使用方法調用 Count()
修復:
- 第 93 行:移除 HasValue 和 .Value
改為直接使用 ids.Contains(q.files_num)
- 第 94 行:Count 改為 Count()
根因分析:
在 Model.actItem_files 中,files_num 定義為 int 類型
而不是 Nullable<int>,因此不需要 nullable 處理。
|
2025-11-12 17:12:40 +08:00 |
|
yiming
|
e88821db4b
|
完成 Batch 2:修復 4 個 API Controller 的 AsEnumerable 問題
修復文件(共 21 處):
1. newsController.cs (7 處)
- 移除簡單查詢的 AsEnumerable()
- AsEnumerable() → AsQueryable() (GetList, GetKindList)
- 優化分頁查詢模式(Count + ToPagedList.ToList())
- 修復 Split().Select().ToList() 類型問題
2. FilesSetController.cs (5 處)
- 移除簡單查詢的 AsEnumerable()
- AsEnumerable() → AsQueryable() (GetList)
- 優化分頁查詢模式
- 修復 files_num nullable 字段處理
- 修復 Split().Select().ToList() 類型問題
3. bedController.cs (5 處)
- 移除簡單查詢的 AsEnumerable()
- AsEnumerable() → AsQueryable() (companies, bed_order_detail)
- 優化分頁查詢模式
- 簡化查詢條件
4. bed_kindController.cs (4 處)
- AsEnumerable() → AsQueryable() (bed_kind, bed_kind_detail)
- 優化分頁查詢模式(兩處)
- 優化 bedDt 查詢:移除 AsEnumerable(),改用 Where + ToList()
- 修復 bed_kind_detail_id nullable 字段處理
技術改進:
✓ 所有查詢改為在數據庫執行
✓ 統一使用三元運算符處理分頁
✓ Count 在分頁前執行
✓ 正確處理 nullable 字段(HasValue + .Value)
✓ IEnumerable<int> → List<int> 避免類型轉換錯誤
|
2025-11-12 17:11:05 +08:00 |
|
yiming
|
3f63457c5a
|
修復 memberController.cs 中 nullable 字段的處理
問題:
1. CS1503: mem_num 是 int? 類型,不能直接用於 Contains(int)
2. CS0019: Count 應該使用方法調用 Count()
修復:
- 第 110 行:加入 HasValue 檢查和 .Value 取值
- 第 111 行:使用 Count() 方法而非 Count 屬性
技術說明:
在 LINQ to Entities 中處理 nullable 字段時,必須:
1. 使用 HasValue 檢查是否有值
2. 使用 .Value 取得實際值
3. 確保類型匹配以便正確生成 SQL 查詢
相關文件已正確處理:
✓ accountingController.cs (第 97 行)
✓ stockController.cs (第 92 行)
|
2025-11-12 17:04:03 +08:00 |
|
yiming
|
9a0d5ae700
|
修復 Batch 1 中 IEnumerable.Contains 的型別轉換問題
問題:
- Split().Select(int.Parse) 返回 IEnumerable<int>
- LINQ to Entities 中使用 Contains 需要具體集合類型
修復:
- 在所有 Split().Select() 後加 .ToList()
- 確保 EF 可以將 Contains 轉換為 SQL IN 子句
影響文件:
- memberController.cs (2 處)
- accountingController.cs (1 處)
- FollowerController.cs (1 處)
- stockController.cs (1 處)
技術說明:
LINQ to Entities 要求 Contains 的集合參數是具體化的集合(List/Array),
而不能是延遲執行的 IEnumerable,以便正確生成 SQL 查詢。
|
2025-11-12 17:01:49 +08:00 |
|
yiming
|
79b7dd114f
|
修復 Batch 1: FollowerController, memberController, accountingController, stockController
- FollowerController.cs: 8 處修復
- memberController.cs: 9 處修復
- accountingController.cs: 8 處修復
- stockController.cs: 8 處修復
總計 33 處,覆蓋會員、財務、庫存核心功能
|
2025-11-12 16:37:59 +08:00 |
|
yiming
|
cd05ad2305
|
phase 2
|
2025-11-12 16:20:51 +08:00 |
|
yiming
|
5ae262205c
|
更新查詢方式
|
2025-11-12 15:58:20 +08:00 |
|
yiming
|
6f5a2e65bd
|
Merge branch 'main' of https://git.17888.com.tw/yiming/17168ERP
# Conflicts:
# web/admin/guadan/create.aspx
|
2025-11-12 12:53:25 +08:00 |
|
yiming
|
22d283dbe6
|
增加JSON IGNORE設定
|
2025-11-12 12:50:13 +08:00 |
|
kj11553253
|
3b5d366863
|
修改URL錯誤
|
2025-11-07 10:26:49 +08:00 |
|
kj11553253
|
c0404b8e70
|
添加sql執行文件,執行該文件就可以正常使用掛單和神祖牌位模組
|
2025-11-06 09:25:45 +08:00 |
|
yiming
|
1a6731e4c6
|
Merge remote-tracking branch 'origin/hkj1003'
|
2025-11-05 13:18:03 +08:00 |
|
kj11553253
|
b776b411b4
|
上传资料库结构
|
2025-10-29 13:54:27 +08:00 |
|
kj11553253
|
e9f17a5037
|
神祖牌位管理模組,掛單模組前端URL添加HTTP_HOST
|
2025-10-29 13:48:20 +08:00 |
|
yiming
|
05ef2e28f3
|
UPDATE
|
2025-10-20 11:54:40 +08:00 |
|
yiming
|
90ef949ca4
|
Merge remote-tracking branch 'origin/hkj1003'
|
2025-10-19 22:02:28 +08:00 |
|
yiming
|
39c9dd29e1
|
Merge branch 'yiming1013'
|
2025-10-19 22:01:45 +08:00 |
|
yiming
|
a6aa35176c
|
Merge branch 'main' of https://git.17888.com.tw/yiming/17168ERP
|
2025-10-19 22:00:45 +08:00 |
|
yiming
|
6a43883d08
|
查詢範例
|
2025-10-19 21:59:22 +08:00 |
|
kj11553253
|
7d36d6b0a6
|
掛單調整
|
2025-10-14 13:44:23 +08:00 |
|
yiming
|
87a2c35300
|
Merge branch 'main' of https://git.17888.com.tw/yiming/17168ERP into yiming1013
|
2025-10-13 00:06:38 +08:00 |
|