# DPA002 碼頭 APP 單據查詢 ## 功能代碼:DPA002 - 單據總覽 - 單據詳情 ## 參考資料 miro: [https://miro.com/app/board/uXjVP0Zs9wQ=/?moveToWidget=3458764542789055117&cot=14](https://miro.com/app/board/uXjVP0Zs9wQ=/?moveToWidget=3458764542789055117&cot=14) ## API 規格 | 編號 | API | Method | 說明 | | ---- | -------------------------------------------- | ------ | ------------------------------------ | | 1 | /shuri/api/v1/DPA002/init | GET | 畫面初始 API (包含各個 `optionList`) | | 2 | /shuri/api/v1/DPA002/query | POST | 查詢單據清單 | | 3 | /shuri/api/v1/DPA002/query/{reservationCode} | GET | 查詢單據詳情 | ## 1. GET /shuri/api/v1/DPA002/init > 回傳畫面上呈現所需要的一些 `optionList`, 開發過程有覺得需要但沒列在上面的再提出來。 ### Request `N/A` ### Response - 碼頭選單 (dockOptionList) - value: dockNum - label: customDockName - 碼頭出入庫類型 (acceptedDockCategoryOptionList) - value: `"1"` or `"2"` - label: 入庫 or 出庫 - 單據狀態選單 (dockOrderStatusOptionList) - value: `"1"` or `"2"` etc. - label: 已建立 or 倉庫報到 etc. - 供應商清單 (supplierOptionList) - value: comNum - label: comName (dmA010 or coA010 跟 PM 確認) - 承運商清單 (carrierOptionList) - value: comNum - label: comName (dmA010 or coA010 跟 PM 確認) - 單據類型 (orderTypeOptionList) - value: `"1"` - label: 預約單 or 現場單 or 專用碼頭單 ## 2. POST /shuri/api/v1/DPA002/query > 查詢單據清單 詳細查詢規則參考 miro,這邊就不列出來了,如果規則有不清楚的地方在 miro 上留言詢問 PM。 ### Request #### 參數說明 | 參數 | 型態 | 說明 | 範例 | | -------------------- | ------ | ------------------------------ | ------------ | | acceptedDockCategory | string | 碼頭出入庫類型 (單選) (非必填) | `"1"` | | dockNumSet | list | 碼頭 (多選) (非必填) | `1`, `2` | | dockOrderStatusSet | list | 單據狀態 (多選) (非必填) | `"1"`, `"2"` | | supplierComNumSet | list | 供應商 (多選) (非必填) | `1`, `2` | | carrierComNumSet | list | 承運商 (多選) (非必填) | `1`, `2` | > 上面的 list 是跟前端說他是陣列,後端資料要用 Set 接哦。 #### Request 範例 ```json { "acceptedDockCategory": "1", "dockNumSet": [1, 2], "dockOrderStatusSet": ["1", "2"] } ``` ### Response #### 參數說明 | 參數 | 型態 | 說明 | 範例 | | ------------------ | ------ | ------------------------------- | ------------ | | time | string | 單據時間群組 | `"1"` | | orders | obj | 單據資訊物件 | `1`, `2` | | reservationCode | string | 單號 | `"1"`, `"2"` | | beginAt | string | 單據開始時間 | `1`, `2` | | endAt | string | 單據結束時間 | `1`, `2` | | orderUsageCategory | string | 單據出入庫類型 | `1`, `2` | | orderType | string | 單據類型 (現場 or 預約 or 專用) | `1`, `2` | | customDockName | string | 碼頭顯示名稱 | `1`, `2` | | dockOrderStatus | string | 單據狀態 | `1`, `2` | > 暫定用這個格式回傳,我有在 miro 留 comment 等 PM 確認。 #### Response 範例 ```json { "result": [ { "time": "2023-01-05 09:00:00", "orders": [ { "reservationCode": "2301030000001", "beginAt": "09:00", "endAt": "09:30", "orderUsageCategory": "1", "orderType": "1", "customDockName": "1號碼頭", "dockOrderStatus": "3" } ] }, { "time": "2023-01-10 09:00:00", "orders": [ { "reservationCode": "2301030000001", "beginAt": "09:00", "endAt": "09:30", "orderUsageCategory": "1", "orderType": "1", "customDockName": "1號碼頭", "dockOrderStatus": "3" } ] } ], "status": "ok" } ``` ## 3. GET /shuri/api/v1/DPA002/query/{reservationCode} > 查詢單據詳情 查詢規則參考 miro,同上。 ### Request #### 參數說明 | 參數 | 型態 | 說明 | 範例 | | --------------- | ------ | ---- | ---------------- | | reservationCode | string | 單號 | `"230208000001"` | ### Response #### 參數說明 | 參數 | 型態 | 說明 | 範例 | | -------------------- | ------ | ---------------- | -------------------- | | reservationCode | string | 單號 | `"2302050000001"` | | orderUsageCategory | string | 單據出入庫類型 | `"1"` | | orderType | string | 單據類型 | `"1"` | | dockOrderStatus | string | 單據目前狀態 | `"1"` | | statusTimeline | list | 單據狀態歷程清單 | `N/A` | | sequence | number | 發生順序 | `1` | | dockOrderStatus | string | 單據狀態 | `"1"` | | statusTime | string | 狀態變化時間 | `"2023-08-09 02:20"` | | ownerComName | string | 貨主公司名稱 | `"家樂福"` | | supplierComName | string | 供應商公司名稱 | `"義美食品"` | | carrierComName | string | 承運商公司名稱 | `"新竹物流"` | | driverName | string | 司機姓名 | `"賈苡秉"` | | licensePlateNo | string | 車牌號碼 | `"ETH2323"` | | beginAt | string | 單據時段開始 | `"2023-09-01 09:30"` | | endAt | string | 單據時段結束 | `"2023-09-01 10:00"` | | expectedUsagePeriod | number | 單據預約時長 | `60` | | actualUsagePeriod | number | 實際碼頭使用時長 | `67` | | dockCheckInTimestamp | string | 碼頭報到時間 | `"2022-09-01 09:48"` | | expecteDock | string | 預約碼頭 | `"1號碼頭"` | | actualDock | string | 實際碼頭 | `"3號碼頭"` | #### Response 範例 ```json { "result": { "reservationCode": "2301030000001", "orderUsageCategory": "1", "orderType": "1", "dockOrderStatus": "3", "statusTimeline": [ { "sequence": 1, "dockOrderStatus": "1", "statusTime": "2022-08-29 20:23" }, { "sequence": 2, "dockOrderStatus": "2", "statusTime": "2022-09-01 09:18" }, { "sequence": 3, "dockOrderStatus": "3", "statusTime": "2022-09-01 09:48" } ], "ownerComName": "家樂福", "supplierComName": "義美食品", "carrierComName": "新竹物流", "driverName": "賈苡秉", "licensePlateNo": "ETH2323", "beginAt": "2023-09-01 09:30", "endAt": "2023-09-01 10:00", "expectedUsagePeriod": 60, "actualUsagePeriod": 67, "dockCheckInTimestamp": "2022-09-01 09:48", "expecteDock": "1號碼頭", "actualDock": "3號碼頭" }, "status": "ok" } ```