Merge pull request 'fix/cpm-chart-invalid-date' (#23) from fix/cpm-chart-invalid-date into develop
Reviewed-on: #23 Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
This commit was merged in pull request #23.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# CPM 甘特圖畫法
|
||||
|
||||
`analyze` 步驟 8 畫關鍵路徑圖時,一律照本檔語法;不得自行發明日期算法。
|
||||
|
||||
## 事故
|
||||
|
||||
`dateFormat X`(Unix 時間戳)配上天數換算出的小數(例:`1.3`、`5.0`)會讓 Gitea 的 mermaid 渲染器丟出 `Invalid date:5.0`,整張圖不顯示。原因是 `X` 格式的日期權杖只吃整數,小數的整數部分之外還剩零頭,解析失敗;即使剩的零頭是 `.0`,字串比對也對不上,一樣判定無效。**小數與 `dateFormat X` 不能同框,沒有例外。**
|
||||
|
||||
## 規則
|
||||
|
||||
1. **`dateFormat` 固定用 `YYYY-MM-DD`,不用 `X`。** 第一個工作包給一個任意錨點日期(例如 `2000-01-01`),註明「錨點日期非真實排程,只用於相對呈現」。
|
||||
2. **每個工作包一個 `id`**,格式 `wp01`、`wp02`……跟編號對應,全小寫、不帶連字號(mermaid id 不吃 `-`)。
|
||||
3. **時長一律用整數小時 `{h}h`,直接取 WBS 表的工時(h) 欄位**,不得把工時換算成天數小數再填進圖裡。天數換算只留在標題與 WBS 表文字,圖本身不出現小數。
|
||||
4. **除了第一個工作包,其餘一律用 `after {上一個id}`** 串接,不手算累積日期。少算或算錯只會出现在這一步,串接法直接消掉這類錯誤。
|
||||
5. 關鍵路徑上的工作包標 `crit`;候補(非關鍵路徑)不進這張圖,只留在 WBS 表與候補清單文字。
|
||||
|
||||
## 範本
|
||||
|
||||
關鍵路徑 `WP-02 → WP-05 → WP-09`,工時依序 10h、13h、8h:
|
||||
|
||||
```mermaid
|
||||
gantt
|
||||
title 關鍵路徑(單位:小時;錨點日期非真實排程,僅供相對呈現)
|
||||
dateFormat YYYY-MM-DD
|
||||
axisFormat %m-%d %H:%M
|
||||
section 關鍵路徑
|
||||
WP-02 {名稱} :crit, wp02, 2000-01-01, 10h
|
||||
WP-05 {名稱} :crit, wp05, after wp02, 13h
|
||||
WP-09 {名稱} :crit, wp09, after wp05, 8h
|
||||
```
|
||||
|
||||
- 總天數(`= 總工時 / 8`,四捨五入到小數點後 1 位)寫進標題旁的文字或圖下方一行,不進圖本身。
|
||||
- 完成條件:圖裡每個時長都是整數加 `h`,沒有任何小數;每個工作包都有 `id`;除第一個外全部用 `after`。
|
||||
Reference in New Issue
Block a user