Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d39413de1e | |||
| 0375f02a15 | |||
| 67d502892c | |||
| 1b0041c2fe | |||
| 67ff5f1222 | |||
| fa2772c63e | |||
| 2d11ea17b5 | |||
| a2b87e734c | |||
| ddc707d5cc | |||
| 7af31e093c | |||
| 0cf57038bf | |||
| 81482928e3 | |||
| c94a92d9c0 | |||
| 05bf7bf57f | |||
| fef87731bd | |||
| 5520767f2e | |||
| 37a6e2dca0 | |||
| 91baf5196c | |||
| 1dd7efd1b0 | |||
| edf5cf6d36 | |||
| 4aa66ca865 | |||
| 9d70e89d6d | |||
| d6ac32e581 | |||
| e2f8f5619a | |||
| c0874a127f | |||
| cd78d5c8e1 | |||
| be693bbc66 | |||
| 2d1bf7a02f | |||
| e9263c3828 | |||
| f13cc01727 | |||
| 185f243fdc | |||
| b3f234dabe | |||
| 2fb5908b07 |
@@ -1,3 +1,9 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: HIsheR shawn1440982358@163.com
|
||||||
|
* @Date: 2026-10-16 15:36:54
|
||||||
|
* @LastEditTime: 2026-10-16 16:04:52
|
||||||
|
* @Description:
|
||||||
|
-->
|
||||||
# 版本分支更新日誌(對外公告用)
|
# 版本分支更新日誌(對外公告用)
|
||||||
|
|
||||||
推送遠端版本分支前,於本檔追加一節,不覆寫既有節次。每節至少包含:版本分支名與推送日期、更新項清單、影響範圍、可直接對外公告的短文。
|
推送遠端版本分支前,於本檔追加一節,不覆寫既有節次。每節至少包含:版本分支名與推送日期、更新項清單、影響範圍、可直接對外公告的短文。
|
||||||
@@ -16,3 +22,71 @@
|
|||||||
- 新增盤點差異計算,提供帳面與實盤數量差異
|
- 新增盤點差異計算,提供帳面與實盤數量差異
|
||||||
- 影響範圍:前端 `src/modules` 下的票據與盤點模組;同步更新 `.ai/module-registry.md`;不涉及後端同步、無破壞性變更
|
- 影響範圍:前端 `src/modules` 下的票據與盤點模組;同步更新 `.ai/module-registry.md`;不涉及後端同步、無破壞性變更
|
||||||
- 公告短文:本版新增票據模板查詢與盤點差異計算,前線出單與盤點作業可少一次手工換算。
|
- 公告短文:本版新增票據模板查詢與盤點差異計算,前線出單與盤點作業可少一次手工換算。
|
||||||
|
|
||||||
|
## 7.2.0.4(推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 更新項清單:
|
||||||
|
- 新增列印序號產生邏輯,依前綴加流水號遞增
|
||||||
|
- 匯出服務改用獨立匯出域名
|
||||||
|
- 影響範圍:`src/modules/print-sequence.ts` 與 `src/main.ts` 的匯出端點參數;匯出端點與主分支的例外參數調整落在同一行,併入主分支時需逐側比對(不可盲目採用單側);不涉及後端同步
|
||||||
|
- 公告短文:本版新增列印序號自動遞增,並將匯出服務切換至獨立域名,出單列印與匯出更穩定。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(未新增版本號|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號,追加需求直接併入;不切新版本分支)
|
||||||
|
- 更新項清單:
|
||||||
|
- 新增倉庫標籤設定,可依倉庫查詢標籤名稱與顏色
|
||||||
|
- 影響範圍:`src/modules/warehouse-label.ts`;本次為版本驗收後追加,影響範圍限於倉庫標籤顯示;不涉及後端同步、無破壞性變更
|
||||||
|
- 公告短文:本版追加倉庫標籤設定,倉庫名稱與顏色可依設定顯示。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(協作者 B|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號;本次由第二位開發者在共享功能分支上完成後併入)
|
||||||
|
- 更新項清單:
|
||||||
|
- 新增票據批量列印,可依模板與倉庫清單展開列印工作
|
||||||
|
- 批量列印濾除空倉庫代碼,並依倉庫代碼排序
|
||||||
|
- 影響範圍:`src/modules/receipt-batch-print.ts`;共享功能分支曾暫推遠端供協作,驗收後隨即刪除遠端分支;不涉及後端同步、無破壞性變更
|
||||||
|
- 公告短文:本版追加票據批量列印,可一次依多個倉庫展開列印工作。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(協作者 B・第二批|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號;本次推送發生在第一開發者合併進行中,兩人的日誌節互為交叉)
|
||||||
|
- 更新項清單:
|
||||||
|
- 倉庫標籤補上預設顏色常數,未設定顏色時使用
|
||||||
|
- 影響範圍:`src/modules/warehouse-label.ts`(原由第一開發者建立,本次由第二位開發者補強);不涉及後端同步、無破壞性變更
|
||||||
|
- 公告短文:本版補上倉庫標籤的預設顏色,未設定時不再顯示為空。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(交叉與依賴前置批|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號;本批含交叉功能分支與依賴前置功能)
|
||||||
|
- 更新項清單:
|
||||||
|
- 票據模板新增頁尾文字欄位
|
||||||
|
- 票據標題改為可選,留空時帶入門店名稱(熱感紙版型仍需有值)
|
||||||
|
- 盤點差異報表彙整(前置功能)
|
||||||
|
- 盤點差異報表 CSV 匯出(依賴前述報表彙整)
|
||||||
|
- 影響範圍:`src/modules/receipt-template.ts`、`src/modules/stock-count.ts`;兩個票據模板功能分支交叉改動同一欄位,合併時逐側比對並折中兩側語意;CSV 匯出必須在前置報表併入版本分支後才可併入,順序顛倒會把未驗收的前置功能一併帶入;不涉及後端同步
|
||||||
|
- 公告短文:本版追加票據頁尾與標題預設規則,並提供盤點差異報表與 CSV 匯出。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(協作者 B・合規協作批|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號)
|
||||||
|
- 更新項清單:
|
||||||
|
- 批量列印支援指定每個倉庫的列印份數
|
||||||
|
- 影響範圍:`src/modules/receipt-batch-print.ts`;本批功能分支全程留在本地、未推遠端,改以版本分支作為唯一的協作匯合點;不涉及後端同步、無破壞性變更
|
||||||
|
- 公告短文:本版批量列印可指定份數,同一倉庫可一次列印多份。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(協作者 B・規格補述|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號)
|
||||||
|
- 更新項清單:
|
||||||
|
- 補上批量列印的行為契約文件(份數、停用倉庫、遠端可見性)
|
||||||
|
- 影響範圍:`docs/receipt-batch-print-spec.md`;文件類變更,不涉及後端同步、無破壞性變更
|
||||||
|
- 公告短文:本版補上批量列印的行為說明文件,供後續維護對照。
|
||||||
|
|
||||||
|
## 7.2.0.4 追加(協作者 A・合規協作批|推送日期:2026-10-16)
|
||||||
|
|
||||||
|
- 版本分支名:7.2.0.4(沿用既有版本號)
|
||||||
|
- 更新項清單:
|
||||||
|
- 批量列印可略過已停用倉庫,避免列印到不可出貨的倉庫
|
||||||
|
- 影響範圍:`src/modules/receipt-batch-print.ts`;與協作者 B 的份數功能交叉同一函式,合併時逐側比對保留雙方能力;功能分支全程留在本地;不涉及後端同步、無破壞性變更
|
||||||
|
- 公告短文:本版批量列印會略過已停用的倉庫,並保留份數設定。
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# 批量列印規格補述(合規協作批)
|
||||||
|
|
||||||
|
本檔由第二位開發者在本地功能分支完成後、隨版本分支一併推送,用於補述批量列印的行為契約。
|
||||||
|
|
||||||
|
- 份數:每個倉庫展開的列印工作份數,預設 1 份。
|
||||||
|
- 停用倉庫:已停用的倉庫不列入列印工作。
|
||||||
|
- 遠端可見性:功能分支不推遠端,遠端只感知版本分支與主分支的變更。
|
||||||
+3
-3
@@ -7,7 +7,7 @@
|
|||||||
export const APP_NAME = "game-admin";
|
export const APP_NAME = "game-admin";
|
||||||
|
|
||||||
/** 目前對外公告的版本號 */
|
/** 目前對外公告的版本號 */
|
||||||
export const APP_VERSION = "7.2.0.0";
|
export const APP_VERSION = "2.0.0.0";
|
||||||
|
|
||||||
/** 匯出服務端點(示範例外直進主分支的參數配置) */
|
/** 匯出服務端點(版本分支改用獨立匯出域名) */
|
||||||
export const EXPORT_ENDPOINT = "https://api.example.com/v2/export";
|
export const EXPORT_ENDPOINT = "https://export.example.com/api";
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* 列印序號模組(沙盤推演示意)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** 列印序號設定 */
|
||||||
|
export interface PrintSequence {
|
||||||
|
/** 序號前綴 */
|
||||||
|
prefix: string;
|
||||||
|
/** 目前流水號 */
|
||||||
|
current: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 產生下一個列印序號
|
||||||
|
* @param seq - 目前序號設定
|
||||||
|
* @returns 遞增後的新序號字串
|
||||||
|
*/
|
||||||
|
export const nextSequence = (seq: PrintSequence): string => `${seq.prefix}${seq.current + 1}`;
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* @Author: HIsheR shawn1440982358@163.com
|
||||||
|
* @Date: 2026-10-16 15:53:11
|
||||||
|
* @LastEditTime: 2026-10-16 16:03:50
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* 票據批量列印模組(沙盤推演示意)
|
||||||
|
* 由第二位開發者在其本地功能分支開發;功能分支不推遠端
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** 單筆批量列印工作 */
|
||||||
|
export interface BatchPrintJob {
|
||||||
|
/** 使用的票據模板識別碼 */
|
||||||
|
templateId: string;
|
||||||
|
/** 目標倉庫識別碼 */
|
||||||
|
warehouseId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 建立批量列印工作清單
|
||||||
|
* @param templateId - 票據模板識別碼
|
||||||
|
* @param warehouseIds - 目標倉庫識別碼清單
|
||||||
|
* @param copies - 每個倉庫的列印份數,預設 1 份
|
||||||
|
* @param disabledIds - 已停用倉庫識別碼清單,命中者不列入列印
|
||||||
|
* @returns 逐倉庫展開的列印工作(先濾除空倉庫代碼與停用倉庫,再依倉庫代碼排序,並展開指定份數)
|
||||||
|
*/
|
||||||
|
export const createBatchJobs = (templateId: string, warehouseIds: string[], copies = 1, disabledIds: string[] = []): BatchPrintJob[] => warehouseIds.filter((id) => id !== "" && !disabledIds.includes(id)).sort().flatMap((id) => Array.from({ length: copies }, () => ({ templateId, warehouseId: id })));
|
||||||
@@ -11,8 +11,10 @@ export interface ReceiptTemplate {
|
|||||||
templateId: string;
|
templateId: string;
|
||||||
/** 版型:熱感紙或 A4 */
|
/** 版型:熱感紙或 A4 */
|
||||||
layout: ReceiptLayout;
|
layout: ReceiptLayout;
|
||||||
/** 模板標題,顯示於票據頂部 */
|
/** 模板標題,顯示於票據頂部;留空則帶入門店名稱(熱感紙版型需有值) */
|
||||||
headerText: string;
|
headerText?: string;
|
||||||
|
/** 票據頁尾文字,顯示於票據底部 */
|
||||||
|
footerText: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 依版型查詢可用模板 */
|
/** 依版型查詢可用模板 */
|
||||||
|
|||||||
@@ -18,3 +18,25 @@ export interface StockCountDiff {
|
|||||||
* @returns 實盤減帳面的差異值
|
* @returns 實盤減帳面的差異值
|
||||||
*/
|
*/
|
||||||
export const diffQty = (diff: StockCountDiff): number => diff.countedQty - diff.bookQty;
|
export const diffQty = (diff: StockCountDiff): number => diff.countedQty - diff.bookQty;
|
||||||
|
|
||||||
|
/** 盤點差異報表列 */
|
||||||
|
export interface StockCountReportRow {
|
||||||
|
/** 物料識別碼 */
|
||||||
|
materialId: string;
|
||||||
|
/** 該物料的差異量 */
|
||||||
|
diff: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 依盤點資料彙整差異報表
|
||||||
|
* @param diffs - 盤點差異清單
|
||||||
|
* @returns 逐物料的差異報表列
|
||||||
|
*/
|
||||||
|
export const buildReport = (diffs: StockCountDiff[]): StockCountReportRow[] => diffs.map((diff) => ({ materialId: diff.materialId, diff: diffQty(diff) }));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 將差異報表列轉為 CSV 字串(依賴 F1 的報表列型別)
|
||||||
|
* @param rows - 差異報表列
|
||||||
|
* @returns 以換行分隔的 CSV 內容
|
||||||
|
*/
|
||||||
|
export const toCsv = (rows: StockCountReportRow[]): string => rows.map((row) => `${row.materialId},${row.diff}`).join("\n");
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* 倉庫標籤模組(沙盤推演示意)
|
||||||
|
* 屬於 7.2.0.4 版本驗收後追加的需求,不新開版本號
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** 倉庫標籤設定 */
|
||||||
|
export interface WarehouseLabel {
|
||||||
|
/** 倉庫識別碼 */
|
||||||
|
warehouseId: string;
|
||||||
|
/** 標籤顯示名稱 */
|
||||||
|
label: string;
|
||||||
|
/** 標籤顏色代碼,如 #4a9eea */
|
||||||
|
color: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 預設標籤顏色(未設定顏色時使用) */
|
||||||
|
export const DEFAULT_LABEL_COLOR = "#4a9eea";
|
||||||
|
|
||||||
|
/** 依倉庫查詢標籤設定 */
|
||||||
|
export const getLabel = (warehouseId: string): WarehouseLabel | null => null;
|
||||||
Reference in New Issue
Block a user