diff --git a/src/api/erp/stock/check/index.ts b/src/api/erp/stock/check/index.ts index 4a3e6534..9de3a893 100644 --- a/src/api/erp/stock/check/index.ts +++ b/src/api/erp/stock/check/index.ts @@ -2,13 +2,54 @@ import request from '@/config/axios' // ERP 库存盘点单 VO export interface StockCheckVO { - id: number // 出库编号 - no: string // 出库单号 - outTime: Date // 出库时间 + id: number // 盘点编号 + no: string // 盘点单号 + checkTime: Date | string // 盘点时间 + sourceType?: number | string // 生成来源类型:1-按库存,2-按产品 totalCount: number // 合计数量 totalPrice: number // 合计金额,单位:元 status: number // 状态 - remark: string // 备注 + auditUserId?: number // 审核人编号 + auditUserName?: string // 审核人名称 + remark?: string // 备注 + fileUrl?: string // 附件 URL + creator?: string // 创建人 + creatorName?: string // 创建人名称 + createTime?: Date | string // 创建时间 + productNames?: string // 产品信息 + items?: StockCheckItemVO[] // 盘点项列表 + approveRecords?: StockCheckApproveRecordVO[] // 审核记录 +} + +export interface StockCheckItemVO { + id?: number // 盘点项编号 + warehouseId: number // 仓库编号 + warehouseName?: string // 仓库名称 + areaId?: number // 库区编号 + areaName?: string // 库区名称 + productId: number // 产品编号 + productPrice: number // 产品单价 + stockCount: number // 账面数量 + actualCount: number // 实际数量 + count: number // 盈亏数量 + remark?: string // 备注 + productName: string // 产品名称 + productBarCode: string // 产品条码 + productUnitName: string // 产品单位名称 +} + +export interface StockCheckApproveRecordVO { + id?: number // 编号 + stockCheckId?: number // 盘点单编号 + actionType?: string // 操作类型 + fromStatus?: number // 变更前状态 + toStatus?: number // 变更后状态 + targetUserId?: number // 目标审核人编号 + targetUserName?: string // 目标审核人名称 + remark?: string // 备注 + creator?: string // 操作人 + creatorName?: string // 操作人名称 + createTime?: Date | string // 创建时间 } // ERP 库存盘点单 API @@ -23,6 +64,16 @@ export const StockCheckApi = { return await request.get({ url: `/erp/stock-check/get?id=` + id }) }, + // 按仓库/库区生成盘点项 + generateItemsByLocation: async (data: any) => { + return await request.post({ url: `/erp/stock-check/generate-items/by-location`, data }) + }, + + // 按产品生成盘点项 + generateItemsByProduct: async (data: any) => { + return await request.post({ url: `/erp/stock-check/generate-items/by-product`, data }) + }, + // 新增库存盘点单 createStockCheck: async (data: StockCheckVO) => { return await request.post({ url: `/erp/stock-check/create`, data }) diff --git a/src/locales/en.ts b/src/locales/en.ts index dc7b396c..0d66d18f 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -544,15 +544,41 @@ count: 'Quantity', price: 'Amount', totalPrice: 'Total Price', + sourceType: 'Source Type', + sourceTypeStock: 'By Stock', + sourceTypeProduct: 'By Product', + area: 'Area', + checkItem: 'Check Item', + stockCount: 'Stock Quantity', + actualCount: 'Actual Count', + inventoryCheck: 'Check', + materialCategory: 'Material Category', + materialSubCategory: 'Material Subcategory', + standard: 'Standard', + selectWarehouseDialogTitle: 'Select Warehouse', + selectAreaDialogTitle: 'Select Area', + selectProductDialogTitle: 'Select Product', + selectCheckItemDialogTitle: 'Select Check Item', + selectedItemCount: '{count} selected', + selectedTextSeparator: ', ', placeholderNo: 'Please enter check no', placeholderNoAuto: 'Auto-generated on save', placeholderProduct: 'Please select product', placeholderWarehouse: 'Please select warehouse', + placeholderArea: 'Please select area', + placeholderCheckItem: 'Please select check item', + placeholderProductBarCode: 'Please enter material code', + placeholderProductName: 'Please enter material name', placeholderCreator: 'Please select creator', placeholderStatus: 'Please select status', placeholderRemark: 'Please enter remark', placeholderCheckTime: 'Select check time', validatorCheckTimeRequired: 'Check time is required', + validatorSourceTypeRequired: 'Please select source type', + validatorSelectWarehouseFirst: 'Please select warehouse first', + validatorSelectAreaFirst: 'Please select area first', + validatorSelectProductFirst: 'Please select product first', + validatorSelectCheckItem: 'Please select check item', confirmApprove: 'Are you sure to approve this check order?', confirmReverseApprove: 'Are you sure to reverse approve this check order?', approveSuccess: 'Approve success', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 8d55b73c..431118c7 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -544,15 +544,41 @@ count: '数量', price: '金额', totalPrice: '合计金额', + sourceType: '生成来源', + sourceTypeStock: '按库存', + sourceTypeProduct: '按产品', + area: '库区', + checkItem: '盘点项', + stockCount: '库存数量', + actualCount: '实盘数量', + inventoryCheck: '盘点', + materialCategory: '物料大类', + materialSubCategory: '物料小类', + standard: '规格', + selectWarehouseDialogTitle: '选择仓库', + selectAreaDialogTitle: '选择库区', + selectProductDialogTitle: '选择产品', + selectCheckItemDialogTitle: '选择盘点项', + selectedItemCount: '已选择 {count} 项', + selectedTextSeparator: '、', placeholderNo: '请输入盘点单号', placeholderNoAuto: '保存时自动生成', placeholderProduct: '请选择产品', placeholderWarehouse: '请选择仓库', + placeholderArea: '请选择库区', + placeholderCheckItem: '请选择盘点项', + placeholderProductBarCode: '请输入物料编码', + placeholderProductName: '请输入物料名称', placeholderCreator: '请选择创建人', placeholderStatus: '请选择状态', placeholderRemark: '请输入备注', placeholderCheckTime: '选择盘点时间', validatorCheckTimeRequired: '盘点时间不能为空', + validatorSourceTypeRequired: '请选择生成来源', + validatorSelectWarehouseFirst: '请先选择仓库', + validatorSelectAreaFirst: '请先选择库区', + validatorSelectProductFirst: '请先选择产品', + validatorSelectCheckItem: '请选择盘点项', confirmApprove: '确定审批该盘点单吗?', confirmReverseApprove: '确定反审批该盘点单吗?', approveSuccess: '审批成功', diff --git a/src/views/erp/stock/checkExecution/components/StockCheckExecutionForm.vue b/src/views/erp/stock/checkExecution/components/StockCheckExecutionForm.vue new file mode 100644 index 00000000..520fc6a0 --- /dev/null +++ b/src/views/erp/stock/checkExecution/components/StockCheckExecutionForm.vue @@ -0,0 +1,846 @@ + + + + + diff --git a/src/views/erp/stock/checkExecution/index.vue b/src/views/erp/stock/checkExecution/index.vue new file mode 100644 index 00000000..fde8217c --- /dev/null +++ b/src/views/erp/stock/checkExecution/index.vue @@ -0,0 +1,356 @@ + + + + +