工期排程
報告人:王禮恩
簡報目錄
1
何謂排程?為何排程?
解讀甘特圖
排程二三事
1
Excel/python排程實作
何謂排程?
2
何謂排程?
規劃
排程
控管
.將專案劃分為各工項
.估算各工項所需之時間動線/物料/人力及機具需求
.釐清各工項之優先度
.預排工項之起訖時間
.預排工項之施作順序
.持續監管並回報施作進度
.妥善分配資源
排程的重點是「時間」及「順序」
將其整合,可得到「完成日期」
為何排程?
3
為何排程?
.實際進度落後於預訂進度的情況十分常見

氣候災害[2]

工期展延[3]

工安意外[4]
.透過將預定與實際兩者相比較,找出問題的數量及原因將其修正,以求減少兩者差距。
source: 交通部中央氣象局
source: 中華日報
source: 自由時報
為何排程?
4
為何排程?
對廠商:


對業主:
.確認完工日期
.確認廠商妥善安排各工項時間
.管控金流,分析影響
.核對施作進度
.確認完工日期
.確認工項起訖時間,有助於與工班協調
.管控金流,分析影響
.自證施作進度
解讀甘特圖[5]
5
為何排程?
解讀甘特圖
天數
累計數值
工項
資料日期

-亨利.甘特 規劃和控制技術之父[6]
給付價金
完成度
人.工時
source: wiki
解讀甘特圖
6
為何排程?
解讀甘特圖
甘特圖的優缺點
+ 製作簡單且較易解讀,不論背景都可一目瞭然
+ 工項可個別調整,修改簡單
+ 通常按照開始時間序排列
+ 工項佔表長度正比於所費時間,易掌握所需工時
- 過於單純,無法顯示工項間的承繼關係
- 無法直接得知工項是否為影響完工時間之要徑
- 工程案較為複雜時製圖困難
排程二三事
7
為何排程?
解讀甘特圖
看圖找關係
排程二三事

* 6/19 + 13天 = 7/3




排程二三事
8
為何排程?
解讀甘特圖
承先啟後
排程二三事
FS
(結束接開始)
最常見之起訖關係
連續性之作業
SS
(開始對開始)
可同時進行之作業
作業開始有先後關係
FF
(結束對結束)
可同時進行之作業
作業結束有先後關係
排程二三事
9
為何排程?
解讀甘特圖
要徑與浮時
排程二三事
要徑:有時程變更,必對完工日期造成影響之工項[7]
浮時:施作延誤也不會影響完工日期之時長

ES | 工項 | EF |
---|---|---|
LS | 天數 | LF |
工項 | 天數 | 前項 |
---|---|---|
A | 2 | - |
B | 7 | A |
C | 3 | A |
D | 5 | B、C |
0 | A | 2 |
---|---|---|
0 | 2 | 2 |
2 | B | 9 |
---|---|---|
2 | 7 | 9 |
9 | D | 14 |
---|---|---|
9 | 5 | 14 |
2 | C | 5 |
---|---|---|
6 | 3 | 9 |
浮時:4天
排程二三事
10
為何排程?
解讀甘特圖
旅運要注意
排程二三事
.諸如春節、清明等國定假日,或是大學測驗等重要活動期間,部分工程無法進行,也須納入排程
節日 | 天數 | 節日 | 天數 |
---|---|---|---|
元旦 | 5天 | 端午 | 6天 |
春節 | 13天 | 大學測驗 | 2天 |
二二八 | 6天 | 中秋 | 5天 |
清明 | 7天 | 雙十 | 6天 |
排程實作
11
為何排程?
解讀甘特圖
Excel
排程二三事
排程實作


排程實作
12
為何排程?
解讀甘特圖
Python
排程二三事
排程實作
import datetime as dt
import openpyxl as opx
###導入模組
print("請輸入開始日期「yyyy mm dd」")
d = input().split()
start_date = dt.date(int(d[0]), int(d[1]), int(d[2]))
###取得開始日期
print("請輸入「工作項目 日程」,若輸入完成請輸入「end」")
arrange = True
current_date = start_date
worklist = []
datelist = []
start_list = []
end_list = []
holiday_list = ["清明節", "端午節", "大學測驗", "中秋節", "雙十節", "元旦", "春節", "二二八"]
holiday_date = [7, 6, 2, 5, 6, 5, 13, 6]
holiday_start_date = [dt.date(2023, 3, 31), dt.date(2023, 6, 21), dt.date(2023, 7, 11), dt.date(2023, 9, 28), dt.date(2023, 10, 6), dt.date(2023, 12, 30), dt.date(2024, 1, 18), dt.date(2024, 2, 24)]
holiday_counter_list = []
counter = 0
holiday_counter = 0
for a in holiday_start_date:
if a - start_date < dt.timedelta(days = 0):
holiday_counter += 1
else:
break
while arrange:
work = input().split()
if work[0] == "end":
arrange = False
break
else:
start_list.append(current_date)
worklist.append(work[0])
datelist.append(work[1])
current_date = current_date + dt.timedelta(days = int(work[1]) - 1)
for a in range(len(holiday_list)):
if holiday_start_date[a] - start_list[-1] < dt.timedelta(days = 0):
continue
elif holiday_start_date[a]- start_list[-1] > current_date - start_list[-1]:
break
else:
current_date = current_date + dt.timedelta(days = holiday_date[a])
holiday_counter_list.append(counter)
end_list.append(current_date)
current_date += dt.timedelta(days = 1)
counter += 1
###排程
tra_counter = 0
for a in range(len(worklist)):
tra = False
for b in holiday_counter_list:
if a == b:
tra = True
break
else:
continue
if tra:
print(worklist[a], start_list[a], end_list[a], datelist[a], holiday_list[tra_counter + holiday_counter], holiday_date[tra_counter + holiday_counter])
tra_counter += 1
else:
print(worklist[a], start_list[a], end_list[a], datelist[a])
###輸出結果


排程實作
13
為何排程?
解讀甘特圖
Python
排程二三事
排程實作
schedule = opx.Workbook()
sds = schedule.active
page1 = schedule.worksheets[0]
tra_counter = 0
schedule_data = []
for a in range(len(worklist)):
tra = False
for b in holiday_counter_list:
if a == b:
tra = True
break
else:
continue
if tra:
schedule_data.append([worklist[a], start_list[a], end_list[a], datelist[a], holiday_list[tra_counter + holiday_counter], holiday_date[tra_counter + holiday_counter]])
tra_counter += 1
else:
schedule_data.append([worklist[a], start_list[a], end_list[a], datelist[a]])
for row in schedule_data:
page1.append(row)
for a in range(1, len(worklist)+1):
page1.cell(row = a, column = 2).number_format = 'mm-dd'
page1.cell(row = a, column = 3).number_format = 'mm-dd'
schedule.save('三週進度表.xlsx')

排程實作
14
為何排程?
解讀甘特圖
Python
排程二三事
排程實作
展望:
.新增模式功能,可選擇工項種類直接排程,不需多次輸入
.新增試算表讀取功能,可直接讀取舊資料建檔
.引入預定進度,新增交叉比對功能,自動化比較進度差異
.格式修整及分類建檔等優化...
參考資料
15
為何排程?
解讀甘特圖
排程二三事
排程實作
實習心得
16
為何排程?
解讀甘特圖
排程二三事
排程實作



感謝聆聽
C212暑期實習簡報 - 工期排程
By spacezpr
C212暑期實習簡報 - 工期排程
- 36