From 3fee2722a48ec5c6c890b3039dc8db4ba3a09321 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 5 Sep 2025 18:18:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E8=B7=9D=E7=A6=BB=E8=BF=87=E6=9C=9F=E5=A4=A9=E6=95=B0?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=92=8C=E8=B0=83=E6=8B=A8=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E6=95=B0=E9=87=8F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在库存列表中添加距离过期天数列,根据创建时间和最长停留时间计算 - 在调拨订单明细中添加出库数量列 - 优化调拨订单打印逻辑,支持重新打印和删除任务的条件控制 - 更新相关接口和类型定义,增加出库数量和最长停留时间字段 --- src/api/wms/allocateOrderDetail/types.ts | 15 +++++ src/api/wms/inventory/types.ts | 23 +++++++ src/views/wms/inventory/index.vue | 22 ++++++ src/views/wms/linkage/index.vue | 85 ++++++++++++++---------- 4 files changed, 111 insertions(+), 34 deletions(-) diff --git a/src/api/wms/allocateOrderDetail/types.ts b/src/api/wms/allocateOrderDetail/types.ts index de05799..220a1f9 100644 --- a/src/api/wms/allocateOrderDetail/types.ts +++ b/src/api/wms/allocateOrderDetail/types.ts @@ -32,6 +32,11 @@ export interface AllocateOrderDetailVO { materialName: string; + /** + * 出库数量 + */ + outSum?: number; + } export interface AllocateOrderDetailForm extends BaseEntity { @@ -96,6 +101,11 @@ export interface AllocateOrderDetailForm extends BaseEntity { erpSynchronousQty?: number; + /** + * 出库数量 + */ + outSum?: number; + } @@ -133,6 +143,11 @@ export interface AllocateOrderDetailQuery extends PageQuery { materialName?: string; + /** + * 出库数量 + */ + outSum?: number; + /** * 日期范围参数 */ diff --git a/src/api/wms/inventory/types.ts b/src/api/wms/inventory/types.ts index a415bf1..84a0286 100644 --- a/src/api/wms/inventory/types.ts +++ b/src/api/wms/inventory/types.ts @@ -52,6 +52,14 @@ export interface InventoryVO { warehouseName: string; + createTime?: string; + /** + * 最长停留时间 + * 单位:天 + */ + maxParkingTime?: number ; + + } export interface InventoryForm extends BaseEntity { @@ -112,6 +120,13 @@ export interface InventoryForm extends BaseEntity { warehouseName?: string; + createTime?: string; + /** + * 最长停留时间 + * 单位:天 + */ + maxParkingTime?: number ; + } export interface InventoryQuery extends PageQuery { @@ -174,6 +189,14 @@ export interface InventoryQuery extends PageQuery { materialCategoryName?: string; + createTime?: string; + /** + * 最长停留时间 + * 单位:天 + */ + maxParkingTime?: number ; + + /** * 日期范围参数 */ diff --git a/src/views/wms/inventory/index.vue b/src/views/wms/inventory/index.vue index 84141dc..6a54f0d 100644 --- a/src/views/wms/inventory/index.vue +++ b/src/views/wms/inventory/index.vue @@ -86,6 +86,11 @@ + + + @@ -183,6 +188,7 @@ import { import { getBaseMaterialCategoryListInWMS } from '@/api/wms/baseMaterialCategory'; +import dayjs from 'dayjs'; // 新增导入dayjs库 const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { lock_state, inventory_status, material_mategories } = toRefs(proxy?.useDict('lock_state', 'inventory_status', 'material_mategories')); @@ -212,6 +218,7 @@ const columns = ref([ { key: 4, label: `锁定状态`, visible: true }, { key: 5, label: `库存状态`, visible: true }, { key: 6, label: `仓库`, visible: true }, + { key: 7, label: `距离过期天数`, visible: true }, // { key: 11, label: `${comment}`, visible: true }, // { key: 12, label: `${comment}`, visible: true }, // { key: 13, label: `${comment}`, visible: true }, @@ -230,6 +237,8 @@ const initFormData: InventoryForm = { inventoryStatus: undefined, storeId: undefined, warehouseName: undefined, + createTime: undefined, + maxParkingTime: undefined, } const data = reactive>({ form: {...initFormData}, @@ -248,6 +257,8 @@ const data = reactive>({ inventoryStatus: undefined, storeId: undefined, warehouseName: undefined, + createTime: undefined, + maxParkingTime: undefined, params: { } }, @@ -386,6 +397,17 @@ const getMaterialCategorySelect = async () => { mategoryOptions.value = res.data; }; +const calculateDaysToExpire = (row: InventoryVO) => { + // 计算距离过期天数:(createTime + maxParkingTime) - 当前日期,若负表示过期 + if (!row.createTime || !row.maxParkingTime) return 'N/A'; + const entryDate = dayjs(row.createTime); + const expireDate = entryDate.add(row.maxParkingTime, 'day'); + const today = dayjs(); + const days = expireDate.diff(today, 'day'); + return days >= 0 ? days : days; // 显示负数表示过期 +}; + + onMounted(() => { // getMaterialList().then(e => { // materialList.value = e.data diff --git a/src/views/wms/linkage/index.vue b/src/views/wms/linkage/index.vue index 4f0d28e..b85b259 100644 --- a/src/views/wms/linkage/index.vue +++ b/src/views/wms/linkage/index.vue @@ -107,6 +107,7 @@ +