# 流程圖 ## 用戶叫貨流程 ```mermaid %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%% flowchart TD; W:::Worker ; C:::Customer ; classDef Worker stroke:#00F classDef Customer stroke:#f66,stroke-width:2px C((用戶)) -->|來電| S(門市) S --> isC{叫貨?} isC -->|叫貨| OL(訂單系統) isC -->|其他| isF{維修?} isF -->|維修| FL(維修單) isF --> O[其他] C -->|Chrome| Web(公司網頁) Web -->|預約叫貨| OL Web -->|預約維修| FL W((工人)) -->|查看訂單| OL OL -->|工人接單| W_D[工人送貨] W_D --> C_OD[通知客戶開門] C_OD --> isE{有無過期} isE -->|過期| E[收取逾期費用] isE -->|無過期| OK[收取瓦斯費] E --> OK OK --> isL{有無殘氣} isL -->|有殘氣| R[記錄殘氣餘額至客戶帳戶] isL -->|無| B[送回鋼瓶] R --> B FL --> 維修單處理流程 ``` ## 維修單處理流程 ```mermaid flowchart TD; M((管理者)) -->|查看維修單| FL(維修單) FL --> isW{有無閒置工人} isW -->|有| Assign[指派工人前往] --> W((工人)) isW -->|無| Wait[等待工人回店] Wait --> M W --> W_F[前往維修] W_F --> C[通知客戶開門] C --> isF{可否處理} isF -->|可以處理| OK[收取維修費] isF -->|無法處理| Call[通知原廠] OK -->|+3| R[記錄維修點數給工人] Call -->|+1| R Call --> 追蹤原廠處理進度 ``` ## 用戶操作流程 ```mermaid %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%% flowchart TB; C((用戶)):::endpoint -->|Chrome| FirstPage(公司首頁) E((結束)):::endpoint %% {`定義資料庫`} %% CustomerDB[(客戶)] OrderDB[(訂單)] %% {`定義系統`} %% OrderSys[[訂單系統]] CustomerSys[[客戶系統]] %% {`定義用戶頁面`} %% FirstPage(首頁):::page PromotePage(促銷頁):::page signPage(註冊頁):::page LoginPage(登入頁):::page UserPage(使用者介面):::page AccountPage(客戶資料頁):::page OrderPage(預約叫貨頁):::page OrderHisPage(歷史訂單):::page GasPage(殘氣資料):::page EditAccPage(資料修改頁):::page CheckAccOwnPage(身分驗證頁):::page %% {`定義 style`} %% classDef page stroke:#66FF66,stroke-width:1px; classDef sys stroke:#0FF,stroke-width:1px; classDef importantNode stroke:#F00,stroke-width:1px,color:#F00 classDef endpoint stroke:#FF6666,stroke-width:1px Start:::importantNode %% {`新用戶流程`} %% FirstPage --> PromotePage --> Start[開始訂購] --> hadCan{有無鋼瓶} hadCan -->|有| OldC[老用戶轉台] hadCan -->|無| NewC[新用戶租鋼瓶] OldC --> isCanOK{鋼瓶狀況} isCanOK -->|10年內新瓶| 折算500 --> NewC isCanOK -->|20年內舊瓶| 折算200 --> NewC isCanOK -->|壽命不足| 無法折價 --> NewC NewC --> signPage -->|用戶資料| CustomerSys --> CreateAcc[建立用戶帳號] --> OrderPage -->|訂購資料| OrderSys --> CreateOrder[建立訂單] --> 等待配送 --> E %% {`資料庫操作`} %% CreateAcc -->|存入用戶資料| CustomerDB CreateOrder -->|存入訂單資料| OrderDB %% {`老用戶登入`} %% FirstPage -->|前往用戶介面| isLogin{已登入?} isLogin -->|是| UserPage isLogin -->|否| LoginPage LoginPage -->|沒有帳號| Start LoginPage -->|忘記密碼| CheckAccOwnPage --> 驗證身分 --> 發送修改密碼連結 LoginPage --> 輸入帳號密碼 -->|比對資料庫| CustomerDB --> AccAndPasCorrect{正確?} -->|成功登入| UserPage AccAndPasCorrect -->|帳密錯誤| LoginPage %% {`使用者功能`} %% UserPage -->|訂購| OrderPage UserPage -->|查訂單| OrderHisPage --> E UserPage -->|查殘氣| GasPage --> E UserPage -->|看資料| AccountPage --> E AccountPage -->|修改資料| EditAccPage --> E ```