新增MES库区管理功能,包含免密接口、数据处理逻辑及相关控制器、服务和实体的实现。支持库区的增删改查操作,优化用户体验并增强系统的实时数据同步能力。

This commit is contained in:
geht
2026-05-12 14:06:07 +08:00
parent cffe32d896
commit b737dddb2a
74 changed files with 4937 additions and 174 deletions

View File

@@ -9,6 +9,7 @@ enum Api {
edit = '/xslmes/mesXslRawMaterialEntry/edit',
deleteOne = '/xslmes/mesXslRawMaterialEntry/delete',
deleteBatch = '/xslmes/mesXslRawMaterialEntry/deleteBatch',
batchStockIn = '/xslmes/mesXslRawMaterialEntry/batchStockIn',
importExcel = '/xslmes/mesXslRawMaterialEntry/importExcel',
exportXls = '/xslmes/mesXslRawMaterialEntry/exportXls',
}
@@ -39,6 +40,9 @@ export const batchDelete = (params, handleSuccess) => {
});
};
export const batchStockIn = (ids: string) =>
defHttp.put({ url: Api.batchStockIn, params: { ids } }, { joinParamsToUrl: true });
export const saveOrUpdate = (params, isUpdate) => {
let url = isUpdate ? Api.edit : Api.save;
return defHttp.post({ url: url, params });

View File

@@ -1,8 +1,8 @@
import { BasicColumn, FormSchema } from '/@/components/Table';
export const columns: BasicColumn[] = [
{ title: '条码', align: 'center', dataIndex: 'barcode', width: 160 },
{ title: '批次号', align: 'center', dataIndex: 'batchNo', width: 140 },
{ title: '条码', align: 'center', dataIndex: 'barcode', width: 200 },
{ title: '批次号', align: 'center', dataIndex: 'batchNo', width: 180 },
{
title: '入场时间',
align: 'center',

View File

@@ -5,6 +5,7 @@
<a-button type="primary" v-auth="'xslmes:mes_xsl_raw_material_entry:add'" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
<a-button type="primary" v-auth="'xslmes:mes_xsl_raw_material_entry:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
<j-upload-button type="primary" v-auth="'xslmes:mes_xsl_raw_material_entry:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
<a-button type="primary" v-auth="'xslmes:mes_xsl_raw_material_entry:stockIn'" preIcon="ant-design:check-circle-outlined" @click="handleStockIn"> 结存入库</a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<template #overlay>
<a-menu>
@@ -30,13 +31,15 @@
<script lang="ts" name="xslmes-mesXslRawMaterialEntry" setup>
import { ref, reactive } from 'vue';
import { useMessage } from '/@/hooks/web/useMessage';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useModal } from '/@/components/Modal';
import { useListPage } from '/@/hooks/system/useListPage';
import MesXslRawMaterialEntryModal from './components/MesXslRawMaterialEntryModal.vue';
import { columns, searchFormSchema, superQuerySchema } from './MesXslRawMaterialEntry.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './MesXslRawMaterialEntry.api';
import { list, deleteOne, batchDelete, batchStockIn, getImportUrl, getExportUrl } from './MesXslRawMaterialEntry.api';
const { createConfirm, createMessage } = useMessage();
const queryParam = reactive<any>({});
const [registerModal, { openModal }] = useModal();
@@ -55,7 +58,7 @@
],
},
actionColumn: {
width: 120,
width: 180,
fixed: 'right',
},
beforeFetch: (params) => {
@@ -103,6 +106,25 @@
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
}
function handleStockIn() {
if (!selectedRowKeys.value.length) {
createMessage.warning('请先勾选要结存入库的记录');
return;
}
createConfirm({
iconType: 'warning',
title: '结存入库',
content: `是否将选中的 ${selectedRowKeys.value.length} 条记录结存入库`,
okText: '确认',
cancelText: '取消',
onOk: async () => {
await batchStockIn(selectedRowKeys.value.join(','));
createMessage.success('结存入库成功!');
handleSuccess();
},
});
}
function handleSuccess() {
(selectedRowKeys.value = []) && reload();
}