施工日誌VBA-V3.5.0正式發佈
前言
自2018年發布監造日報表VBA及2022年發布公共工程施工日誌資料庫VBA後,陸續有收到很多朋友的回饋,經過一次又一次的迭代修改,該遇到的問題差不多也已經解決了,對於檔案中長期累積的程式碼或許因為在下的功力不夠深厚,遺留下大量的技術債,每次的程式碼編輯會耗費不少時間,而且也需要做大量的測試,為了不要債留子孫,特地花了一些時間通盤檢討進行一次完整的重構,也就是本篇文章的主角-施工日誌VBA-V3.5.0.。
自2018年發布監造日報表VBA及2022年發布公共工程施工日誌資料庫VBA後,陸續有收到很多朋友的回饋,經過一次又一次的迭代修改,該遇到的問題差不多也已經解決了,對於檔案中長期累積的程式碼或許因為在下的功力不夠深厚,遺留下大量的技術債,每次的程式碼編輯會耗費不少時間,而且也需要做大量的測試,為了不要債留子孫,特地花了一些時間通盤檢討進行一次完整的重構,也就是本篇文章的主角-施工日誌VBA-V3.5.0.。
項目 | 訂閱版 |
---|---|
基本功能 | O |
錯誤修復 | O |
技術支援 | O |
原始碼 | |
使用期限 | 工程期間 |
施工日誌舊版(社群版)正在使用中的朋友仍可使用到2024年底,如需轉換至新版請聯繫作者協助。
如欲購置施工日誌新版(V3.5.0)系列後之訂閱包套服務(包含變更設計、展延工期、契約項目導入),請提供以下資料並聯繫作者
在執行工程時,經常會為了聯絡相關事宜建立LINE群組來進行交談,通常施工照片也會在這個群裡面進行上傳讓大家可以確認內容,上傳照片到LINE群組的時候除了直接上傳外,也可以透過建立相簿將照片永久保存。
在LINE群組的檔案機制,照片或文件會有一定時間的存活期,當過了存活期之後照片就會呈現無法下載的情形,因此將照片做一個額外存放的動作算是滿重要的一個手段,而這件事除了繁瑣也很可能會因為再次請求上傳的過程多存了不少張重複的照片,而這個部分相信大多數人都是透過人眼來進行判別,火眼金睛用久也是會累的。
希望能夠打造一個當群組內判定到照片資料時,能夠自動備份到指定硬碟並汰除重複照片的機器人,減少這些瑣事的發生。
至於照片後續要進行處理就可以利用施工照片VBA進行資料排序、批次改名、報表輸出。
圖表跟圖片都是用來讓網頁元素更為豐富的手段,圖表為數據統計後的成果、圖片則為將抽象的文字轉換成圖片形式進行輸出(比如渠道的長相),抽象的文字往往不比圖片的介紹來的容易接受許多,而這也是資料可視化的目標之一。
在提報工程概要表時,會需要讓上面了解未來要施作的工程內容,因此會拍攝現場的照片及附上工程設計簡圖,而工程設計簡圖的製作過程非常繁瑣,操作過程如下:
因此本次專案預期會讓使用者輸入渠道的尺寸、周邊環境關係來製作一張簡圖,放置於"工程概要表"讓長官了解未來要施作的工程內容,利用python的PIL套件縮短繪製工程設計簡圖的流程。
工程進行階段因為業主、監造不一定都會在現場,無論施工抽查、品質管理、隱蔽部分尺寸紀錄、督導會勘...等等內容,大多數文件都會需要照片作為佐證資料,尤其是假設工程、隱蔽部分更是需要,因此整個工程案進行過程可能會累積大量的照片,後續的請款報表照片貼附、照片檔案查找,會是讓內業人員相當花費時間的一環。
實務上大多會採用LINE群組進行照片上傳,照片說明會出現在畫面中的小白板,再由內業人員自行下載備存,放在本機硬碟中或者是放在公司的NAS裡面,未來需要利用時再去自己所分類的資料夾中比對、下載、貼附,因此對於處理照片的檔案管理、報表輸出我想需要有方法來完成大量、繁複、簡單的工作流程,節省時間來做其他業務內容。
因此,施工照片VBA誕生了,於2023年1月發布給大眾使用運行至今,該修復的內容大概已經完成,以下為目前所釋出的施工照片VBA部分內容,完整內容請參考施工照片VBA完整原始碼。
工程進行期間會有很多不同的任務,每個任務會有自己所需要花費的金額、起始日期、持續天數,藉由這些任務的組合可以統整出工程的預定進度情況,將不同任務繪製在同一個時間軸上可以清楚的了解到現階段有那些任務應該要被完成以及未來還有哪些任務需要完成,對於任務單純的工程很有大的助益。
前陣子在開發施工日誌的時候,如果採用施工計畫書上的每15日累積進度做內差取值會比較容易失真,後來想想,其實這個累積進度的來源也是按照甘特圖的比例所得出的結果?但總歸如何,還是花了一些時間熟悉一下matplotlib的做圖套件,並且搭配streamlit前端介面做一個雲端服務,目標是希望能夠產出工程甘特圖及每日進度的CSV檔案,未來可以匯入其他的日報VBA工具。
工程執行過程免不了會有很多品管文件需要製作,紙本文件的加值應用相當困難,通常都會放置於一堆又一堆的資料夾中,有需要再去相互參照,大多流於形式,倘若工程文件能夠數位化,對於整個工程資料的保存、查詢會有很多好處,但經過幾次查核委員的建議,關於簽名這件事情他們有意見,既然是需要在現場進行檢查的文件,那當然會是手寫的才最香,殊不知很多委員還是認為電腦直接出的文件不能用,至少簽名的部分要手寫才是真的。
基於這些理由,我希望能夠做到用手寫的觸感去簽署文件,透過Streamlit的前端及streamlit-drawable-canvas作為繪圖器,opencv作為背景去背處理,及PyMuPDF作為轉檔工具,來達成委員的要求...
其實我一直不能理解,中華電信都可以用手寫的觸控板來跟客戶簽約了,為什麼公共工程一定要用紙+筆,現在其實平板電腦都很方便,把要抽查的PDF都先放好在雲端,帶去工地現場選取要抽查的對應PDF後寫紀錄表,寫完後可以即時上傳到雲端,資訊流動才會迅速,也不用這樣浪費一堆紙來記錄這些內容,未來要翻閱從雲端去撈取出來即可。
工程特性如為帶狀工程,比如:水溝、道路等等,通常會以橫斷面法作為土方計算的數量依據,此指土方計算不外乎為:挖方、填方、回填方、CLSM之類。
在繪製土方基本資料時,面積的框選便會是決定數量很重要的部分,實務上的土方計算流程為:
圖層設定:
封閉聚合線
CAD內建指令'BO'會出現一張介面,可以藉由點選內部點生成封閉聚合線,指令'-BO'則可以略過介面的程序直接點選,此時封閉聚合線會有'面積'屬性。
填充線
CAD內建指令'HATCH'可以點選內部點生成填充線,此時填充線會有'面積'屬性,須注意之前測試過HATCH可能會有些許的誤差,這個也不清楚原因為何...
目前在處理輸出報表的實務上會遇到要貼上照片的問題,有關python在處理Excel照片部分會需要透過openpyxl裡面相關的套件進行,希望能夠達成下列情況:
給定照片之後可以依照儲存格的範圍貼上照片,儲存格可能是單一儲存格或者是合併儲存格,找出儲存格範圍寬度、儲存格範圍高度
最適合的方式計算過程
權限控管顧名思義則是讓有登記的人可以進來雲端網頁中操作介面,這對於一些公司內部才能操作的內容有很大的幫助。
權限控管基本功能:
發送重置密碼時會隨意產生一組token,內容會包在電子郵件中寄送,這也算是一種多因素認證的機制。
本篇文章前端介面採用Python的Streamlit套件實作,後端邏輯則採用GAS實作,資料庫則採用GoogleSpreadSheet儲存。
正常的帳號密碼實作流程不建議採用明碼儲存,這裡只是一個實作的經驗,看之後密碼的部分要加鹽還是做哈希加密都可以再追加進去。