From c009f0d7c20c4d0b12db3555addd1b70a2d92401 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Tue, 21 Oct 2025 23:38:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E4=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/production/productionWithdrawal.js | 55 ++ src/router/index.js | 4 + .../modules/production-inbound/production.vue | 4 +- .../production-withdrawal/order-list.vue | 264 ++++++ .../modules/production-withdrawal/scan-hu.vue | 804 ++++++++++++++++++ 5 files changed, 1129 insertions(+), 2 deletions(-) create mode 100644 src/api/production/productionWithdrawal.js create mode 100644 src/views/modules/production-withdrawal/order-list.vue create mode 100644 src/views/modules/production-withdrawal/scan-hu.vue diff --git a/src/api/production/productionWithdrawal.js b/src/api/production/productionWithdrawal.js new file mode 100644 index 0000000..6d057d0 --- /dev/null +++ b/src/api/production/productionWithdrawal.js @@ -0,0 +1,55 @@ +/** + * 生产退库API接口 + * + *

功能说明:

+ * + * + * @author System + * @since 2025-01-21 + */ + +import { createAPI } from "@/utils/httpRequest.js"; + +/** + * 从IFS获取工单接收历史记录 + * @param {Object} data - 查询参数 + * @param {String} data.ifsSiteID - IFS工厂ID + * @param {String} data.ifsOrderNo - IFS工单号 + * @param {String} data.ifsReleaseNo - IFS下达号 + * @param {String} data.ifsSequenceNo - IFS序列号 + */ +export const getShopOrderReceiveHist = data => createAPI(`production/withdrawal/getShopOrderReceiveHist`, 'POST', data) + +/** + * 扫描HU验证是否可退库 + * @param {Object} data - 扫描参数 + * @param {String} data.unitId - HU编码 + * @param {String} data.site - 工厂编码 + */ +export const scanHuForWithdrawal = data => createAPI(`production/withdrawal/scanHuForWithdrawal`, 'POST', data) + +/** + * 提交生产退库 + * @param {Object} data - 退库参数 + * @param {String} data.site - 工厂编码 + * @param {String} data.orderNo - 工单号 + * @param {String} data.releaseNo - 下达号 + * @param {String} data.sequenceNo - 序列号 + * @param {String} data.partNo - 料号 + * @param {String} data.locationNo - 库位编码 + * @param {String} data.batchNo - 批次号 + * @param {Number} data.transQty - 退库数量 + * @param {Number} data.qtyReceived - 已接收数量 + * @param {Number} data.accountingId - 会计ID + * @param {Number} data.transactionId - 事务ID + * @param {String} data.lineItemNo - 行号 + * @param {String} data.warehouseId - 仓库编码 + * @param {Array} data.unitIds - HU单元列表 + * @param {String} data.withdrawalReason - 退库原因 + */ +export const submitWithdrawal = data => createAPI(`production/withdrawal/submitWithdrawal`, 'POST', data) + diff --git a/src/router/index.js b/src/router/index.js index 6dc3128..3d09641 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -67,6 +67,10 @@ const globalRoutes = [ {path: "/productionInboundProduction",name: "productionInboundProduction", component: resolve => require(["@/views/modules/production-inbound/production.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, {path: "/productionInboundRegister",name: "productionInboundRegister", component: resolve => require(["@/views/modules/production-inbound/inboundRegister.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, + // 生产退库 + {path: "/productionWithdrawalOrderList", name: "productionWithdrawalOrderList", component: resolve => require(["@/views/modules/production-withdrawal/order-list.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, + {path: "/productionWithdrawalScan", name: "productionWithdrawalScan", component: resolve => require(["@/views/modules/production-withdrawal/scan-hu.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: false } }, + // 委外发料 { path: "/outsource",name: "outsource", component: resolve => require(["@/views/modules/outsourcing-issue/index.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, { path:"/outsourcingDirectIssue",name:"outsourcingDirectIssue",component: resolve => require(["@/views/modules/outsourcing-issue/outsourcingDirectIssue.vue"], resolve), meta: { transition: 'instant' ,preload: true,keepAlive: true}}, diff --git a/src/views/modules/production-inbound/production.vue b/src/views/modules/production-inbound/production.vue index 9727377..81a3916 100644 --- a/src/views/modules/production-inbound/production.vue +++ b/src/views/modules/production-inbound/production.vue @@ -42,8 +42,8 @@ export default { icon: "revoke", label: "生产退库", iconClass: "qualified", - to: "productionReturn", - disabled: true, + to: "/productionWithdrawalOrderList", + disabled: false, }, ], }; diff --git a/src/views/modules/production-withdrawal/order-list.vue b/src/views/modules/production-withdrawal/order-list.vue new file mode 100644 index 0000000..457e344 --- /dev/null +++ b/src/views/modules/production-withdrawal/order-list.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/views/modules/production-withdrawal/scan-hu.vue b/src/views/modules/production-withdrawal/scan-hu.vue new file mode 100644 index 0000000..f6c3ecf --- /dev/null +++ b/src/views/modules/production-withdrawal/scan-hu.vue @@ -0,0 +1,804 @@ + + + + +