diff --git a/bj_power_wms/frontend/src/pages/Outbound.vue b/bj_power_wms/frontend/src/pages/Outbound.vue index a2e652f..fe5c9a7 100644 --- a/bj_power_wms/frontend/src/pages/Outbound.vue +++ b/bj_power_wms/frontend/src/pages/Outbound.vue @@ -341,7 +341,7 @@ function recDefaultRange() { const end = new Date(); const start = new Date(); start.setMonth(start.getMonth() - 3) return [fmt(start), fmt(end)] } -const recFilters = reactive({ outboundType: '', status: '', materialCode: '', boxNo: '', ownershipType: '', dateRange: recDefaultRange() }) +const recFilters = reactive({ outboundType: '', status: '', materialCode: '', boxNo: '', ownershipNo: '', dateRange: recDefaultRange() }) const recRows = ref([]) const recTotal = ref(0) const loadingRec = ref(false) @@ -357,7 +357,7 @@ async function loadRecords() { status: recFilters.status, materialCode: recFilters.materialCode.trim(), boxNo: recFilters.boxNo.trim(), - ownershipType: recFilters.ownershipType, + ownershipNo: recFilters.ownershipNo.trim(), page: recPage.current, pageSize: recPage.size } if (Array.isArray(recFilters.dateRange) && recFilters.dateRange.length === 2) { @@ -370,7 +370,7 @@ async function loadRecords() { } finally { loadingRec.value = false } } function searchRec() { recPage.current = 1; loadRecords() } -function resetRec() { Object.assign(recFilters, { outboundType: '', status: '', materialCode: '', boxNo: '', dateRange: recDefaultRange() }); searchRec() } +function resetRec() { Object.assign(recFilters, { outboundType: '', status: '', materialCode: '', boxNo: '', ownershipNo: '', dateRange: recDefaultRange() }); searchRec() } function downloadCSV() { // 时间窗口与列表保持一致:未选/已清空时回落近 3 个月,保证确认框条数 = 实际导出条数 @@ -380,6 +380,7 @@ function downloadCSV() { status: recFilters.status, materialCode: recFilters.materialCode.trim(), boxNo: recFilters.boxNo.trim(), + ownershipNo: recFilters.ownershipNo.trim(), startDate: dr[0], endDate: dr[1] }, '出库管理.xlsx', { countUrl: '/outbound/query', name: '出库记录' }) @@ -634,6 +635,9 @@ onMounted(loadDicts) + + + diff --git a/bj_power_wms/internal/handler/outbound.go b/bj_power_wms/internal/handler/outbound.go index bb95fd4..ab806d1 100644 --- a/bj_power_wms/internal/handler/outbound.go +++ b/bj_power_wms/internal/handler/outbound.go @@ -333,15 +333,15 @@ func queryOutboundHandler(ctx *svc.ServiceContext) http.HandlerFunc { if boxNo != "" { q = q.Where(outboundorder.BoxNoContainsFold(boxNo)) } + if ownershipNo != "" { + q = q.Where(outboundorder.OwnershipNoContainsFold(ownershipNo)) + } if outboundType != "" { q = q.Where(outboundorder.OutboundTypeEQ(outboundType)) } if outboundCategory != "" { q = q.Where(outboundorder.OutboundCategoryEQ(outboundCategory)) } - if ownershipNo != "" { - q = q.Where(outboundorder.OwnershipNoContainsFold(ownershipNo)) - } if materialName != "" { q = q.Where(outboundorder.MaterialNameContainsFold(materialName)) } @@ -628,7 +628,7 @@ func snListJSON(sn []string) string { } // exportOutboundHandler 统一主表全部出库记录导出 -// 不依赖前端分页,一次返回全部(可按类型/工单/物料/箱号过滤),便于整表导出。 +// 不依赖前端分页,一次返回全部(可按类型/工单/物料/箱号/归属单号过滤),便于整表导出。 func exportOutboundHandler(ctx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { outboundType := r.URL.Query().Get("outboundType") @@ -636,6 +636,7 @@ func exportOutboundHandler(ctx *svc.ServiceContext) http.HandlerFunc { orderNo := r.URL.Query().Get("orderNo") materialCode := r.URL.Query().Get("materialCode") boxNo := r.URL.Query().Get("boxNo") + ownershipNo := r.URL.Query().Get("ownershipNo") startDate, endDate, rerr := normalizeExportRange(r.URL.Query().Get("startDate"), r.URL.Query().Get("endDate")) if rerr != nil { fail(w, http.StatusBadRequest, rerr.Error()) @@ -660,6 +661,9 @@ func exportOutboundHandler(ctx *svc.ServiceContext) http.HandlerFunc { if boxNo != "" { q = q.Where(outboundorder.BoxNoContainsFold(boxNo)) } + if ownershipNo != "" { + q = q.Where(outboundorder.OwnershipNoContainsFold(ownershipNo)) + } list, err := q.Order(ent.Desc("created_at"), ent.Desc("id")).All(ctx0()) if err != nil {