| @@ -364,12 +364,6 @@ export const fetchDoDetail = cache(async (id: number) => { | |||||
| }); | }); | ||||
| }); | }); | ||||
| /** 車線搜尋為「車線-X」時改走後端專用 API(只含推算車線為 null/空白之送貨單) */ | |||||
| function isTruckLaneXSearch(truckLanceCode?: string): boolean { | |||||
| const t = truckLanceCode?.trim().toLowerCase() ?? ""; | |||||
| return t === "車線-x"; | |||||
| } | |||||
| export async function fetchDoSearch( | export async function fetchDoSearch( | ||||
| code: string, | code: string, | ||||
| shopName: string, | shopName: string, | ||||
| @@ -380,7 +374,9 @@ export async function fetchDoSearch( | |||||
| estArrEndDate: string, | estArrEndDate: string, | ||||
| pageNum?: number, | pageNum?: number, | ||||
| pageSize?: number, | pageSize?: number, | ||||
| truckLanceCode?: string | |||||
| truckLanceCode?: string, | |||||
| /** 後端:All/null 為全部;2F/4F 依供應商白名單篩選 */ | |||||
| floor?: string | null, | |||||
| ): Promise<DoSearchLiteResponse> { | ): Promise<DoSearchLiteResponse> { | ||||
| // 构建请求体 | // 构建请求体 | ||||
| const requestBody: any = { | const requestBody: any = { | ||||
| @@ -391,6 +387,7 @@ export async function fetchDoSearch( | |||||
| truckLanceCode: truckLanceCode || null, | truckLanceCode: truckLanceCode || null, | ||||
| pageNum: pageNum || 1, | pageNum: pageNum || 1, | ||||
| pageSize: pageSize || 10, | pageSize: pageSize || 10, | ||||
| floor: floor && floor !== "All" ? floor : null, | |||||
| }; | }; | ||||
| // 如果日期不为空,转换为 LocalDateTime 格式 | // 如果日期不为空,转换为 LocalDateTime 格式 | ||||
| @@ -400,20 +397,15 @@ export async function fetchDoSearch( | |||||
| requestBody.estimatedArrivalDate = null; | requestBody.estimatedArrivalDate = null; | ||||
| } | } | ||||
| const useUnassignedTruck = isTruckLaneXSearch(truckLanceCode); | |||||
| if (useUnassignedTruck) { | |||||
| delete requestBody.truckLanceCode; | |||||
| } | |||||
| const url = useUnassignedTruck | |||||
| ? `${BASE_API_URL}/do/search-do-lite-unassigned-truck` | |||||
| : `${BASE_API_URL}/do/search-do-lite`; | |||||
| const data = await serverFetchJson<DoSearchLiteResponse>(url, { | |||||
| method: "POST", | |||||
| headers: { "Content-Type": "application/json" }, | |||||
| body: JSON.stringify(requestBody), | |||||
| }); | |||||
| /** v2:車線正規化、未指派合併、分批掃描(後端 /do/search-do-lite-v2) */ | |||||
| const data = await serverFetchJson<DoSearchLiteResponse>( | |||||
| `${BASE_API_URL}/do/search-do-lite-v2`, | |||||
| { | |||||
| method: "POST", | |||||
| headers: { "Content-Type": "application/json" }, | |||||
| body: JSON.stringify(requestBody), | |||||
| }, | |||||
| ); | |||||
| return data; | return data; | ||||
| } | } | ||||
| @@ -633,7 +625,8 @@ export async function fetchAllDoSearch( | |||||
| shopName: string, | shopName: string, | ||||
| status: string, | status: string, | ||||
| estArrStartDate: string, | estArrStartDate: string, | ||||
| truckLanceCode?: string // 添加这个参数 | |||||
| truckLanceCode?: string, | |||||
| floor?: string | null, | |||||
| ): Promise<DoSearchAll[]> { | ): Promise<DoSearchAll[]> { | ||||
| // 使用一个很大的 pageSize 来获取所有匹配的记录 | // 使用一个很大的 pageSize 来获取所有匹配的记录 | ||||
| const requestBody: any = { | const requestBody: any = { | ||||
| @@ -641,9 +634,10 @@ export async function fetchAllDoSearch( | |||||
| shopName: shopName || null, | shopName: shopName || null, | ||||
| status: status || null, | status: status || null, | ||||
| estimatedArrivalDate: estArrStartDate || null, | estimatedArrivalDate: estArrStartDate || null, | ||||
| truckLanceCode: truckLanceCode || null, // 添加这个字段 | |||||
| truckLanceCode: truckLanceCode || null, | |||||
| pageNum: 1, | pageNum: 1, | ||||
| pageSize: 10000, // 使用一个很大的值来获取所有记录 | pageSize: 10000, // 使用一个很大的值来获取所有记录 | ||||
| floor: floor && floor !== "All" ? floor : null, | |||||
| }; | }; | ||||
| if (estArrStartDate) { | if (estArrStartDate) { | ||||
| @@ -652,20 +646,14 @@ export async function fetchAllDoSearch( | |||||
| requestBody.estimatedArrivalDate = null; | requestBody.estimatedArrivalDate = null; | ||||
| } | } | ||||
| const useUnassignedTruck = isTruckLaneXSearch(truckLanceCode); | |||||
| if (useUnassignedTruck) { | |||||
| delete requestBody.truckLanceCode; | |||||
| } | |||||
| const url = useUnassignedTruck | |||||
| ? `${BASE_API_URL}/do/search-do-lite-unassigned-truck` | |||||
| : `${BASE_API_URL}/do/search-do-lite`; | |||||
| const data = await serverFetchJson<DoSearchLiteResponse>(url, { | |||||
| method: "POST", | |||||
| headers: { "Content-Type": "application/json" }, | |||||
| body: JSON.stringify(requestBody), | |||||
| }); | |||||
| const data = await serverFetchJson<DoSearchLiteResponse>( | |||||
| `${BASE_API_URL}/do/search-do-lite-v2`, | |||||
| { | |||||
| method: "POST", | |||||
| headers: { "Content-Type": "application/json" }, | |||||
| body: JSON.stringify(requestBody), | |||||
| }, | |||||
| ); | |||||
| return data.records; | return data.records; | ||||
| } | } | ||||