From 9a271ef19e015f45f57f5f68fbbfce95eb76bbea Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Thu, 11 Dec 2025 14:03:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E5=8F=8A=E5=8F=91=E8=B4=A7=E5=8D=95=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增发货单相关API接口,实现发货单列表查询、新增、编辑、删除等功能 - 新增发货单明细相关API接口,实现明细列表查询、新增、编辑、删除等功能 - 定义发货单和发货单明细的类型接口,包含详细字段描述 - 增加发货单编号和标识的枚举配置,统一管理相关常量 - 实现发货单提交审批和导出Word文档功能接口 - 添加发货单和发货单明细的下拉框查询接口,方便前端调用 --- src/api/wms/wmsShippingBill/index.ts | 100 ++++ src/api/wms/wmsShippingBill/types.ts | 597 ++++++++++++++++++++++++ src/api/wms/wmsShippingDetails/index.ts | 76 +++ src/api/wms/wmsShippingDetails/types.ts | 291 ++++++++++++ src/enums/OAEnum.ts | 14 +- 5 files changed, 1076 insertions(+), 2 deletions(-) create mode 100644 src/api/wms/wmsShippingBill/index.ts create mode 100644 src/api/wms/wmsShippingBill/types.ts create mode 100644 src/api/wms/wmsShippingDetails/index.ts create mode 100644 src/api/wms/wmsShippingDetails/types.ts diff --git a/src/api/wms/wmsShippingBill/index.ts b/src/api/wms/wmsShippingBill/index.ts new file mode 100644 index 0000000..acc8ed4 --- /dev/null +++ b/src/api/wms/wmsShippingBill/index.ts @@ -0,0 +1,100 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { WmsShippingBillForm, WmsShippingBillQuery, WmsShippingBillVO } from '@/api/wms/wmsShippingBill/types'; + +/** + * 查询发货单列表 + * @param query + * @returns {*} + */ + +export const listWmsShippingBill = (query?: WmsShippingBillQuery): AxiosPromise => { + return request({ + url: '/wms/wmsShippingBill/list', + method: 'get', + params: query + }); +}; + +/** + * 查询发货单详细 + * @param shippingBillId + */ +export const getWmsShippingBill = (shippingBillId: string | number): AxiosPromise => { + return request({ + url: '/wms/wmsShippingBill/' + shippingBillId, + method: 'get' + }); +}; + +/** + * 新增发货单 + * @param data + */ +export const addWmsShippingBill = (data: WmsShippingBillForm) => { + return request({ + url: '/wms/wmsShippingBill', + method: 'post', + data: data + }); +}; + +/** + * 修改发货单 + * @param data + */ +export const updateWmsShippingBill = (data: WmsShippingBillForm) => { + return request({ + url: '/wms/wmsShippingBill', + method: 'put', + data: data + }); +}; + +/** + * 删除发货单 + * @param shippingBillId + */ +export const delWmsShippingBill = (shippingBillId: string | number | Array) => { + return request({ + url: '/wms/wmsShippingBill/' + shippingBillId, + method: 'delete' + }); +}; + +/** + * 下拉框查询发货单列表 + * @param query + * @returns {*} + */ +export function getWmsShippingBillList(query) { + return request({ + url: '/wms/wmsShippingBill/getWmsShippingBillList', + method: 'get', + params: query + }); +} + +/** + * 提交发货单并发起审批流程 + * @param data + */ +export const shippingBillSubmitAndFlowStart = (data: WmsShippingBillForm): AxiosPromise => { + return request({ + url: '/wms/wmsShippingBill/shippingBillSubmitAndFlowStart', + method: 'post', + data: data + }); +}; + +/** + * 导出发货单Word文档 + * @param shippingBillId 发货单ID + */ +export const exportShippingBillWord = (shippingBillId: string | number) => { + return request({ + url: '/wms/wmsShippingBill/exportWord/' + shippingBillId, + method: 'get', + responseType: 'blob' + }); +}; diff --git a/src/api/wms/wmsShippingBill/types.ts b/src/api/wms/wmsShippingBill/types.ts new file mode 100644 index 0000000..988ac08 --- /dev/null +++ b/src/api/wms/wmsShippingBill/types.ts @@ -0,0 +1,597 @@ +import type { WmsShippingDetailsForm, WmsShippingDetailsVO } from '@/api/wms/wmsShippingDetails/types'; + +export interface WmsShippingBillVO { + /** + * 发货单ID + */ + shippingBillId: string | number; + + /** + * 发货单号 + */ + shippingCode: string; + + /** + * 发货单类型 + */ + shippingType: string; + + /** + * 发货方式:1公司仓库发货 2供应商代发货 + */ + shippingMode: string; + + /** + * 绑定类型:1项目 2合同 + */ + bindType: string; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 项目编号(冗余,方便导出) + */ + projectCode: string; + + /** + * 项目名称(冗余,方便导出) + */ + projectName: string; + + /** + * 客户ID(逻辑外键) + */ + customerId: string | number; + + /** + * 客户名称(冗余,方便导出) + */ + customerName: string; + + /** + * 收货地址 + */ + shippingAddress: string; + + /** + * 关联单号 + */ + inventoryAmount: string; + + /** + * 来源单据类型(如PO采购订单、SO销售订单、PR项目采购申请等) + */ + sourceBillType: string; + + /** + * 来源单据ID(逻辑外键,不建物理外键) + */ + sourceBillId: string | number; + + /** + * 来源单据编号 + */ + sourceBillCode: string; + + /** + * 合同ID(逻辑外键) + */ + contractId: string | number; + + /** + * 合同编号(冗余,方便导出) + */ + contractCode: string; + + /** + * 合同名称(冗余,方便导出) + */ + contractName: string; + + /** + * SAP订单号(来源合同表,展示用) + */ + orderContractCode?: string; + + /** + * 供应商 + */ + supplier: string; + + /** + * 供应商ID(逻辑外键) + */ + supplierId: string | number; + + /** + * 联系人 + */ + contactUser: string; + + /** + * 联系电话 + */ + contactNumber: string; + + /** + * 收货联系人 + */ + receiverName: string; + + /** + * 收货联系电话 + */ + receiverPhone: string; + + /** + * 物流公司 + */ + logisticsCompany: string; + + /** + * 运单号 + */ + trackingNo: string; + + /** + * 物流联系电话 + */ + logisticsPhone: string; + + /** + * 发货说明 + */ + directions: string; + + /** + * 计划到货时间(冗余,用于未按时发货台账) + */ + planArrivalTime: string; + + /** + * 实际发货时间 + */ + shippingTime: string; + + /** + * 客户收货时间 + */ + receivedTime: string; + + /** + * 业务完成时间(如SAP投料 / 内部流程完成) + */ + completedTime: string; + + /** + * 发货单状态(1暂存 2审批中 3完成) + */ + outStockBillStatus: string; + + /** + * 流程状态 + */ + flowStatus: string; + + /** + * 发货状态,字典shipping_status:1待发货 2已发货 3已收货 4已完成 + */ + shippingStatus: string; + + /** + * 仓库ID(预留) + */ + warehouseId: string | number; + + /** + * 仓库名称(冗余,方便导出) + */ + warehouseName: string; + + /** + * 备注 + */ + remark: string; + + /** + * 发货单明细列表 + */ + itemsVo?: WmsShippingDetailsVO[]; +} + +export interface WmsShippingBillForm extends BaseEntity { + /** + * 发货单ID + */ + shippingBillId?: string | number; + + /** + * 发货单号 + */ + shippingCode?: string; + + /** + * 发货单类型 + */ + shippingType?: string; + + /** + * 发货方式:1公司仓库发货 2供应商代发货 + */ + shippingMode?: string; + + /** + * 绑定类型:1项目 2合同 + */ + bindType?: string; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 项目编号(冗余,方便导出) + */ + projectCode?: string; + + /** + * 项目名称(冗余,方便导出) + */ + projectName?: string; + + /** + * 客户ID(逻辑外键) + */ + customerId?: string | number; + + /** + * 客户名称(冗余,方便导出) + */ + customerName?: string; + + /** + * 收货地址 + */ + shippingAddress?: string; + + /** + * 关联单号 + */ + inventoryAmount?: string; + + /** + * 来源单据类型(如PO采购订单、SO销售订单、PR项目采购申请等) + */ + sourceBillType?: string; + + /** + * 来源单据ID(逻辑外键,不建物理外键) + */ + sourceBillId?: string | number; + + /** + * 来源单据编号 + */ + sourceBillCode?: string; + + /** + * 合同ID(逻辑外键) + */ + contractId?: string | number; + + /** + * 合同编号(冗余,方便导出) + */ + contractCode?: string; + + /** + * 合同名称(冗余,方便导出) + */ + contractName?: string; + + /** + * 供应商 + */ + supplier?: string; + + /** + * 供应商ID(逻辑外键) + */ + supplierId?: string | number; + + /** + * 联系人 + */ + contactUser?: string; + + /** + * 联系电话 + */ + contactNumber?: string; + + /** + * 收货联系人 + */ + receiverName?: string; + + /** + * 收货联系电话 + */ + receiverPhone?: string; + + /** + * 物流公司 + */ + logisticsCompany?: string; + + /** + * 运单号 + */ + trackingNo?: string; + + /** + * 物流联系电话 + */ + logisticsPhone?: string; + + /** + * 发货说明 + */ + directions?: string; + + /** + * 计划到货时间(冗余,用于未按时发货台账) + */ + planArrivalTime?: string; + + /** + * 实际发货时间 + */ + shippingTime?: string; + + /** + * 客户收货时间 + */ + receivedTime?: string; + + /** + * 业务完成时间(如SAP投料 / 内部流程完成) + */ + completedTime?: string; + + /** + * 发货单状态(1暂存 2审批中 3完成) + */ + outStockBillStatus?: string; + + /** + * 流程状态 + */ + flowStatus?: string; + + /** + * 发货状态,字典shipping_status:1待发货 2已发货 3已收货 4已完成 + */ + shippingStatus?: string; + + /** + * 仓库ID(预留) + */ + warehouseId?: string | number; + + /** + * 仓库名称(冗余,方便导出) + */ + warehouseName?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * 发货单明细列表(主子表提交用) + */ + detailsList?: WmsShippingDetailsForm[]; + + /** + * 流程编码(后端发起流程用) + */ + flowCode?: string; + + /** + * 流程变量 + */ + variables?: any; + + /** + * 流程业务扩展字段 + */ + bizExt?: any; +} + +export interface WmsShippingBillQuery extends PageQuery { + /** + * 发货单号 + */ + shippingCode?: string; + + /** + * 发货单类型 + */ + shippingType?: string; + + /** + * 发货方式:1公司仓库发货 2供应商代发货 + */ + shippingMode?: string; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 项目编号(冗余,方便导出) + */ + projectCode?: string; + + /** + * 项目名称(冗余,方便导出) + */ + projectName?: string; + + /** + * 客户ID(逻辑外键) + */ + customerId?: string | number; + + /** + * 客户名称(冗余,方便导出) + */ + customerName?: string; + + /** + * 收货地址 + */ + shippingAddress?: string; + + /** + * 关联单号 + */ + inventoryAmount?: string; + + /** + * 来源单据类型(如PO采购订单、SO销售订单、PR项目采购申请等) + */ + sourceBillType?: string; + + /** + * 来源单据ID(逻辑外键,不建物理外键) + */ + sourceBillId?: string | number; + + /** + * 来源单据编号 + */ + sourceBillCode?: string; + + /** + * 合同ID(逻辑外键) + */ + contractId?: string | number; + + /** + * 合同编号(冗余,方便导出) + */ + contractCode?: string; + + /** + * 合同名称(冗余,方便导出) + */ + contractName?: string; + + /** + * 供应商 + */ + supplier?: string; + + /** + * 供应商ID(逻辑外键) + */ + supplierId?: string | number; + + /** + * 联系人 + */ + contactUser?: string; + + /** + * 联系电话 + */ + contactNumber?: string; + + /** + * 收货联系人 + */ + receiverName?: string; + + /** + * 收货联系电话 + */ + receiverPhone?: string; + + /** + * 物流公司 + */ + logisticsCompany?: string; + + /** + * 运单号 + */ + trackingNo?: string; + + /** + * 物流联系电话 + */ + logisticsPhone?: string; + + /** + * 发货说明 + */ + directions?: string; + + /** + * 计划到货时间(冗余,用于未按时发货台账) + */ + planArrivalTime?: string; + + /** + * 实际发货时间 + */ + shippingTime?: string; + + /** + * 客户收货时间 + */ + receivedTime?: string; + + /** + * 业务完成时间(如SAP投料 / 内部流程完成) + */ + completedTime?: string; + + /** + * 发货单状态(1暂存 2审批中 3完成) + */ + outStockBillStatus?: string; + + /** + * 流程状态 + */ + flowStatus?: string; + + /** + * 发货状态,字典shipping_status:1待发货 2已发货 3已收货 4已完成 + */ + shippingStatus?: string; + + /** + * 仓库ID(预留) + */ + warehouseId?: string | number; + + /** + * 仓库名称(冗余,方便导出) + */ + warehouseName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/wms/wmsShippingDetails/index.ts b/src/api/wms/wmsShippingDetails/index.ts new file mode 100644 index 0000000..b511da6 --- /dev/null +++ b/src/api/wms/wmsShippingDetails/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { WmsShippingDetailsForm, WmsShippingDetailsQuery, WmsShippingDetailsVO } from '@/api/wms/wmsShippingDetails/types'; + +/** + * 查询发货单明细列表 + * @param query + * @returns {*} + */ + +export const listWmsShippingDetails = (query?: WmsShippingDetailsQuery): AxiosPromise => { + return request({ + url: '/wms/wmsShippingDetails/list', + method: 'get', + params: query + }); +}; + +/** + * 查询发货单明细详细 + * @param shippingDetailsId + */ +export const getWmsShippingDetails = (shippingDetailsId: string | number): AxiosPromise => { + return request({ + url: '/wms/wmsShippingDetails/' + shippingDetailsId, + method: 'get' + }); +}; + +/** + * 新增发货单明细 + * @param data + */ +export const addWmsShippingDetails = (data: WmsShippingDetailsForm) => { + return request({ + url: '/wms/wmsShippingDetails', + method: 'post', + data: data + }); +}; + +/** + * 修改发货单明细 + * @param data + */ +export const updateWmsShippingDetails = (data: WmsShippingDetailsForm) => { + return request({ + url: '/wms/wmsShippingDetails', + method: 'put', + data: data + }); +}; + +/** + * 删除发货单明细 + * @param shippingDetailsId + */ +export const delWmsShippingDetails = (shippingDetailsId: string | number | Array) => { + return request({ + url: '/wms/wmsShippingDetails/' + shippingDetailsId, + method: 'delete' + }); +}; + +/** + * 下拉框查询发货单明细列表 + * @param query + * @returns {*} + */ +export function getWmsShippingDetailsList(query) { + return request({ + url: '/wms/wmsShippingDetails/getWmsShippingDetailsList', + method: 'get', + params: query + }); +} diff --git a/src/api/wms/wmsShippingDetails/types.ts b/src/api/wms/wmsShippingDetails/types.ts new file mode 100644 index 0000000..530acca --- /dev/null +++ b/src/api/wms/wmsShippingDetails/types.ts @@ -0,0 +1,291 @@ +export interface WmsShippingDetailsVO { + /** + * 发货单明细ID + */ + shippingDetailsId: string | number; + + /** + * 发货单ID(逻辑外键) + */ + shippingBillId: string | number; + + /** + * 物料来源类型:1-ERP物料(base_material_info) 2-WMS物料(仓储物料) 3-手工录入 + */ + materialSourceType: string; + + /** + * ERP物料ID(base_material_info.material_id) + */ + erpMaterialId: string | number; + + /** + * WMS物料ID(仓储物料表ID,预留) + */ + wmsMaterialId: string | number; + + /** + * 来源明细类型:如CONTRACT_DETAIL、PURCHASE_DETAIL等 + */ + sourceDetailType: string; + + /** + * 来源明细ID + */ + sourceDetailId: string | number; + + /** + * 仓库ID + */ + warehouseId: string | number; + + /** + * 物料ID + */ + materielId: string | number; + + /** + * 物料编码(冗余,方便导出) + */ + materialCode: string; + + /** + * 物料名称(冗余,方便导出) + */ + materialName: string; + + /** + * 物料规格 + */ + materielSpecification: string; + + /** + * 批次号 + */ + batchNumber: string; + + /** + * 单价 + */ + unitPrice: number; + + /** + * 发货数量 + */ + shippingStockAmount: number; + + /** + * 单位ID + */ + unitId: string | number; + + /** + * 计量单位名称(冗余,方便导出) + */ + unitName: string; + + /** + * 总价 + */ + totalPrice: number; + + /** + * 备注 + */ + remark: string; + +} + +export interface WmsShippingDetailsForm extends BaseEntity { + /** + * 发货单明细ID + */ + shippingDetailsId?: string | number; + + /** + * 发货单ID(逻辑外键) + */ + shippingBillId?: string | number; + + /** + * 物料来源类型:1-ERP物料(base_material_info) 2-WMS物料(仓储物料) 3-手工录入 + */ + materialSourceType?: string; + + /** + * ERP物料ID(base_material_info.material_id) + */ + erpMaterialId?: string | number; + + /** + * WMS物料ID(仓储物料表ID,预留) + */ + wmsMaterialId?: string | number; + + /** + * 来源明细类型:如CONTRACT_DETAIL、PURCHASE_DETAIL等 + */ + sourceDetailType?: string; + + /** + * 来源明细ID + */ + sourceDetailId?: string | number; + + /** + * 仓库ID + */ + warehouseId?: string | number; + + /** + * 物料ID + */ + materielId?: string | number; + + /** + * 物料编码(冗余,方便导出) + */ + materialCode?: string; + + /** + * 物料名称(冗余,方便导出) + */ + materialName?: string; + + /** + * 物料规格 + */ + materielSpecification?: string; + + /** + * 批次号 + */ + batchNumber?: string; + + /** + * 单价 + */ + unitPrice?: number; + + /** + * 发货数量 + */ + shippingStockAmount?: number; + + /** + * 单位ID + */ + unitId?: string | number; + + /** + * 计量单位名称(冗余,方便导出) + */ + unitName?: string; + + /** + * 总价 + */ + totalPrice?: number; + + /** + * 备注 + */ + remark?: string; + +} + +export interface WmsShippingDetailsQuery extends PageQuery { + + /** + * 发货单ID(逻辑外键) + */ + shippingBillId?: string | number; + + /** + * 物料来源类型:1-ERP物料(base_material_info) 2-WMS物料(仓储物料) 3-手工录入 + */ + materialSourceType?: string; + + /** + * ERP物料ID(base_material_info.material_id) + */ + erpMaterialId?: string | number; + + /** + * WMS物料ID(仓储物料表ID,预留) + */ + wmsMaterialId?: string | number; + + /** + * 来源明细类型:如CONTRACT_DETAIL、PURCHASE_DETAIL等 + */ + sourceDetailType?: string; + + /** + * 来源明细ID + */ + sourceDetailId?: string | number; + + /** + * 仓库ID + */ + warehouseId?: string | number; + + /** + * 物料ID + */ + materielId?: string | number; + + /** + * 物料编码(冗余,方便导出) + */ + materialCode?: string; + + /** + * 物料名称(冗余,方便导出) + */ + materialName?: string; + + /** + * 物料规格 + */ + materielSpecification?: string; + + /** + * 批次号 + */ + batchNumber?: string; + + /** + * 单价 + */ + unitPrice?: number; + + /** + * 发货数量 + */ + shippingStockAmount?: number; + + /** + * 单位ID + */ + unitId?: string | number; + + /** + * 计量单位名称(冗余,方便导出) + */ + unitName?: string; + + /** + * 总价 + */ + totalPrice?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/enums/OAEnum.ts b/src/enums/OAEnum.ts index fad693f..e5f84ba 100644 --- a/src/enums/OAEnum.ts +++ b/src/enums/OAEnum.ts @@ -27,7 +27,13 @@ export enum CodeRuleEnum { */ TIMESHEET = '1015', - PROJECT_REPORT = '1013' + PROJECT_REPORT = '1013', + + /** + * 发货单编号规则 + */ + SHIPPING_BILL = '1014', + } /** @@ -113,5 +119,9 @@ export enum FlowCodeEnum { /** * 工时填报标识KEY */ - TIMESHEET_KEY = 'OATS' + TIMESHEET_KEY = 'OATS', + /** + * 发货单标识KEY + */ + SHIPPING_BILL_CODE = 'WMSSP' }