新增 WMS 搬运规则与任务管理

支持搬运规则维护、候选预览、任务生成、预占、下发、取消和完成,并完善仓储管理前端交互。
This commit is contained in:
ArtoriasWu
2026-06-25 11:02:22 +08:00
parent 1cb8091bbe
commit 15405ba114
101 changed files with 4167704 additions and 152 deletions
@@ -2,10 +2,11 @@ import http from './http'
import type {
WarehouseArea, Storage, Container, Material,
ContainerLocation, ContainerMaterial, ContainerLocationHistory, ContainerMaterialHistory,
MasterDataPayload, StoragePayload, MaterialPayload, ContainerLocationPayload, ContainerMaterialPayload
MasterDataPayload, StoragePayload, MaterialPayload, ContainerLocationPayload, ContainerMaterialPayload,
WmsTransportRule, WmsTransportTask, TransportRulePayload, TransportRequestQuery, TransportCandidatePreview
} from '@/types/wms'
function q(params?: Record<string, unknown>) {
function q<T extends object>(params?: T) {
return { params }
}
@@ -99,3 +100,46 @@ export async function listContainerMaterialHistory(containerId?: string, materia
const { data } = await http.get<ContainerMaterialHistory[]>('/wms/container-material-history', q({ containerId, materialId }))
return data
}
export async function listTransportRules(params?: { triggerType?: string; q?: string }) {
const { data } = await http.get<WmsTransportRule[]>('/wms/transport-rules', q(params))
return data
}
export async function saveTransportRule(payload: TransportRulePayload) {
const { data } = payload.id
? await http.put<WmsTransportRule>(`/wms/transport-rules/${payload.id}`, payload)
: await http.post<WmsTransportRule>('/wms/transport-rules', payload)
return data
}
export async function deleteTransportRule(id: string, version?: number) {
await http.delete(`/wms/transport-rules/${id}`, q({ version }))
}
export async function previewTransportCandidates(params: TransportRequestQuery) {
const { data } = await http.get<TransportCandidatePreview>('/wms/transport-candidates', q(params))
return data
}
export async function generateTransportTask(params: TransportRequestQuery) {
const { data } = await http.post<WmsTransportTask>('/wms/transport-tasks/generate', params)
return data
}
export async function listTransportTasks(params?: { status?: string; triggerType?: string }) {
const { data } = await http.get<WmsTransportTask[]>('/wms/transport-tasks', q(params))
return data
}
export async function reserveTransportTask(id: string, reason?: string) {
const { data } = await http.post<WmsTransportTask>(`/wms/transport-tasks/${id}/reserve`, null, q({ reason }))
return data
}
export async function cancelTransportTask(id: string, reason?: string) {
const { data } = await http.post<WmsTransportTask>(`/wms/transport-tasks/${id}/cancel`, null, q({ reason }))
return data
}
export async function completeTransportTask(id: string, reason?: string) {
const { data } = await http.post<WmsTransportTask>(`/wms/transport-tasks/${id}/complete`, null, q({ reason }))
return data
}
export async function dispatchTransportTask(id: string) {
const { data } = await http.post<WmsTransportTask>(`/wms/transport-tasks/${id}/dispatch`)
return data
}