From 3c96211cc58b3c43c5a2c3a461102dc75cc3197e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Thu, 12 Mar 2026 09:20:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=E6=98=BE=E7=A4=BA=E5=B9=B6=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E5=8C=96=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 在发货单组件中增加订单号显示,替换原有电话字段 2. 实现统一的日期格式化工具函数,修复参数冲突问题 3. 发货操作后自动添加待操作记录 4. 优化钢卷操作中的日期处理逻辑 --- klp-ui/src/api/wms/pendingAction.js | 36 +++++++++++++++++-- klp-ui/src/views/wms/coil/js/coilActions.js | 6 ++++ klp-ui/src/views/wms/coil/panels/base.vue | 18 +++++++++- .../views/wms/delivery/components/wayBill.vue | 18 +++++----- .../wms/delivery/components/wayBill2.vue | 18 +++++----- 5 files changed, 77 insertions(+), 19 deletions(-) diff --git a/klp-ui/src/api/wms/pendingAction.js b/klp-ui/src/api/wms/pendingAction.js index 8b2d4eaf..3f55787a 100644 --- a/klp-ui/src/api/wms/pendingAction.js +++ b/klp-ui/src/api/wms/pendingAction.js @@ -1,5 +1,23 @@ import request from '@/utils/request' +function parseDate(date) { + // 修复1:参数名和内部变量名冲突,改用tempDate + // 修复2:如果传入的date为空/无效,默认使用当前时间 + const tempDate = date ? new Date(date) : new Date(); + + // 获取年、月、日、时、分、秒(补零处理,确保是两位数) + const year = tempDate.getFullYear(); + // 月份从0开始,所以要+1,不足两位补0 + const month = String(tempDate.getMonth() + 1).padStart(2, '0'); + const day = String(tempDate.getDate()).padStart(2, '0'); + const hours = String(tempDate.getHours()).padStart(2, '0'); + const minutes = String(tempDate.getMinutes()).padStart(2, '0'); + const seconds = String(tempDate.getSeconds()).padStart(2, '0'); + + // 格式化为YYYY-mm-dd HH:mm:ss并返回 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} + // 查询钢卷待操作列表 export function listPendingAction(query) { return request({ @@ -19,19 +37,33 @@ export function getPendingAction(actionId) { // 新增钢卷待操作 export function addPendingAction(data) { + const payload = { ...data } + if (payload.processTime) { + payload.processTime = parseDate(payload.processTime) + } + if (payload.completeTime) { + payload.completeTime = parseDate(payload.completeTime) + } return request({ url: '/wms/coilPendingAction', method: 'post', - data: data + data: payload }) } // 修改钢卷待操作 export function updatePendingAction(data) { + const payload = { ...data } + if (payload.processTime) { + payload.processTime = parseDate(payload.processTime) + } + if (payload.completeTime) { + payload.completeTime = parseDate(payload.completeTime) + } return request({ url: '/wms/coilPendingAction', method: 'put', - data: data + data: payload }) } diff --git a/klp-ui/src/views/wms/coil/js/coilActions.js b/klp-ui/src/views/wms/coil/js/coilActions.js index fb78f16a..810dd011 100644 --- a/klp-ui/src/views/wms/coil/js/coilActions.js +++ b/klp-ui/src/views/wms/coil/js/coilActions.js @@ -50,10 +50,16 @@ export const actionStrategies = { handler: async (coil, action) => { // 更新操作记录状态 actionStatus: 2 // 并行执行更新操作记录和更新钢卷状态 + // 将日期格式化为yyyy-MM-dd HH:mm:ss + const completeTime = new Date() + function parseDate(date) { + return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() + } await Promise.all([ updatePendingAction({ ...action, actionStatus: 2, + completeTime: parseDate(completeTime), }), updateMaterialCoilSimple({ ...coil, diff --git a/klp-ui/src/views/wms/coil/panels/base.vue b/klp-ui/src/views/wms/coil/panels/base.vue index 9e947beb..302b9ee7 100644 --- a/klp-ui/src/views/wms/coil/panels/base.vue +++ b/klp-ui/src/views/wms/coil/panels/base.vue @@ -75,7 +75,8 @@ @click="handleBatchPrintLabel">批量打印标签 - 按实际库区排序 + 按实际库区排序 @@ -412,6 +413,7 @@ import { returnCoil, } from "@/api/wms/coil"; import { listBoundCoil } from "@/api/wms/deliveryWaybillDetail"; +import { addPendingAction } from "@/api/wms/pendingAction"; import WarehouseSelect from "@/components/KLPService/WarehouseSelect"; import QRCode from "../../print/components/QRCode.vue"; import * as XLSX from 'xlsx' @@ -1046,6 +1048,20 @@ export default { handleExportCoil(row) { exportCoil(row.coilId).then(response => { this.$modal.msgSuccess("发货成功"); + // 2. 插入一条已完成的待操作记录 + addPendingAction({ + coilId: row.coilId, + currentCoilNo: row.currentCoilNo, + actionType: 402, // 402=发货 + actionStatus: 2, // 直接标记为完成状态 + scanTime: new Date(), + // scanDevice: , + priority: 0, // 0=普通 + sourceType: 'scan', + warehouseId: row.warehouseId, + processTime: new Date(), + completeTime: new Date() + }); this.getList(); }).catch(error => { this.$modal.msgError("发货失败"); diff --git a/klp-ui/src/views/wms/delivery/components/wayBill.vue b/klp-ui/src/views/wms/delivery/components/wayBill.vue index 2bcae066..a401b675 100644 --- a/klp-ui/src/views/wms/delivery/components/wayBill.vue +++ b/klp-ui/src/views/wms/delivery/components/wayBill.vue @@ -34,8 +34,8 @@
{{ localWaybill.principal }}
- 电话: -
{{ localWaybill.principalPhone }}
+ 订单号: +
{{ localWaybill.orderId ? localWaybill.orderCode : localWaybill.principalPhone }}
合同号: @@ -239,6 +239,8 @@ export default { handler(newVal) { if (newVal) { this.localWaybill = { + orderId: newVal.orderId || '', + orderCode: newVal.orderCode || '', consigneeUnit: newVal.consigneeUnit || '', senderUnit: newVal.senderUnit || '', deliveryYear: this.getYearFromDate(newVal.deliveryTime) || '', @@ -499,12 +501,12 @@ export default { [ `负责人:${this.localWaybill.principal || ''}`, undefined, undefined, - `电话:${this.localWaybill.principalPhone || ''}`, + `订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`, undefined, undefined, `合同号:${this.localWaybill.contractCode || ''}`, undefined, undefined, `车牌:${this.localWaybill.licensePlate || ''}` - ], // 负责人/电话/合同号/车牌行(r=2) + ], // 负责人/订单号/合同号/车牌行(r=2) ["品名", '切边', '包装', '仓库位置', '结算', '原料厂家', '卷号', '规格', '材质', '重量(t)', '单价', '备注'], // 表格表头(r=3) ]; @@ -558,7 +560,7 @@ export default { { s: { c: 4, r: headerRow1Idx }, e: { c: 7, r: headerRow1Idx } }, // 日期(E2-H2) { s: { c: 8, r: headerRow1Idx }, e: { c: 11, r: headerRow1Idx } }, // 发货单位(I2-L2) { s: { c: 0, r: headerRow2Idx }, e: { c: 2, r: headerRow2Idx } }, // 负责人(A3-C3) - { s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 电话(D3-F3) + { s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 订单号(D3-F3) { s: { c: 6, r: headerRow2Idx }, e: { c: 8, r: headerRow2Idx } }, // 合同号(G3-I3) { s: { c: 9, r: headerRow2Idx }, e: { c: 11, r: headerRow2Idx } }, // 车牌(J3-L3) { s: { c: 0, r: remarkRowIdx }, e: { c: 11, r: remarkRowIdx } }, // 备注跨列合并(A*_L*) @@ -747,9 +749,9 @@ export default { date: `${this.localWaybill.deliveryYear || ''}年${this.localWaybill.deliveryMonth || ''}月${this.localWaybill.deliveryDay || ''}日`, sender: `发货单位:${this.localWaybill.senderUnit || ''}` }; - const header2 = { // 负责人+电话+合同号+车牌 + const header2 = { // 负责人+订单号+合同号+车牌 principal: `负责人:${this.localWaybill.principal || ''}`, - phone: `电话:${this.localWaybill.principalPhone || ''}`, + phone: `订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`, contract: `合同号:${this.localWaybill.contractCode || ''}`, license: `车牌:${this.localWaybill.licensePlate || ''}` }; @@ -797,7 +799,7 @@ export default { worksheet.getCell(`G${rowIdx}`).value = header2.contract; worksheet.getCell(`J${rowIdx}`).value = header2.license; worksheet.mergeCells(`A${rowIdx}:C${rowIdx}`); // 负责人:A3-C3 - worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 电话:D3-F3 + worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 订单号:D3-F3 worksheet.mergeCells(`G${rowIdx}:I${rowIdx}`); // 合同号:G3-I3 worksheet.mergeCells(`J${rowIdx}:L${rowIdx}`); // 车牌:J3-L3 // 3.4 表格表头(第4行) diff --git a/klp-ui/src/views/wms/delivery/components/wayBill2.vue b/klp-ui/src/views/wms/delivery/components/wayBill2.vue index ed2c01be..003cbf81 100644 --- a/klp-ui/src/views/wms/delivery/components/wayBill2.vue +++ b/klp-ui/src/views/wms/delivery/components/wayBill2.vue @@ -34,8 +34,8 @@
{{ localWaybill.principal }}
- 电话: -
{{ localWaybill.principalPhone }}
+ 订单号: +
{{ localWaybill.orderId ? localWaybill.orderCode : localWaybill.principalPhone }}
合同号: @@ -239,6 +239,8 @@ export default { handler(newVal) { if (newVal) { this.localWaybill = { + orderId: newVal.orderId || '', + orderCode: newVal.orderCode || '', consigneeUnit: newVal.consigneeUnit || '', senderUnit: newVal.senderUnit || '', deliveryYear: this.getYearFromDate(newVal.deliveryTime) || '', @@ -499,12 +501,12 @@ export default { [ `负责人:${this.localWaybill.principal || ''}`, undefined, undefined, - `电话:${this.localWaybill.principalPhone || ''}`, + `订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`, undefined, undefined, `合同号:${this.localWaybill.contractCode || ''}`, undefined, `车牌:${this.localWaybill.licensePlate || ''}` - ], // 负责人/电话/合同号/车牌行(r=2) + ], // 负责人/订单号/合同号/车牌行(r=2) ["品名", '切边', '包装', '仓库位置', '结算', '原料厂家', '卷号', '规格', '材质', '重量(t)', '备注'], // 表格表头(r=3,11列) ]; @@ -557,7 +559,7 @@ export default { { s: { c: 4, r: headerRow1Idx }, e: { c: 6, r: headerRow1Idx } }, // 日期(4-7) { s: { c: 8, r: headerRow1Idx }, e: { c: 10, r: headerRow1Idx } }, // 发货单位(8-10,无多余) { s: { c: 0, r: headerRow2Idx }, e: { c: 2, r: headerRow2Idx } }, // 负责人(0-2) - { s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 电话(3-5) + { s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 订单号(3-5) { s: { c: 6, r: headerRow2Idx }, e: { c: 7, r: headerRow2Idx } }, // 合同号(6-8) { s: { c: 9, r: headerRow2Idx }, e: { c: 10, r: headerRow2Idx } }, // 车牌(9-10,无多余) { s: { c: 0, r: remarkRowIdx }, e: { c: 10, r: remarkRowIdx } }, // 备注合并0-10列 @@ -738,9 +740,9 @@ export default { date: `${this.localWaybill.deliveryYear || ''}年${this.localWaybill.deliveryMonth || ''}月${this.localWaybill.deliveryDay || ''}日`, sender: `发货单位:${this.localWaybill.senderUnit || ''}` }; - const header2 = { // 负责人+电话+合同号+车牌 + const header2 = { // 负责人+订单号+合同号+车牌 principal: `负责人:${this.localWaybill.principal || ''}`, - phone: `电话:${this.localWaybill.principalPhone || ''}`, + phone: `订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`, contract: `合同号:${this.localWaybill.contractCode || ''}`, license: `车牌:${this.localWaybill.licensePlate || ''}` }; @@ -788,7 +790,7 @@ export default { worksheet.getCell(`G${rowIdx}`).value = header2.contract; worksheet.getCell(`J${rowIdx}`).value = header2.license; worksheet.mergeCells(`A${rowIdx}:C${rowIdx}`); // 负责人:A3-C3 - worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 电话:D3-F3 + worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 订单号:D3-F3 worksheet.mergeCells(`G${rowIdx}:I${rowIdx}`); // 合同号:G3-I3 worksheet.mergeCells(`J${rowIdx}:K${rowIdx}`); // 车牌:J3-L3 // 3.4 表格表头(第4行)