修复盘点失败和机柜统计不准确的问题
This commit is contained in:
@@ -75,8 +75,8 @@ const InventoryTaskExecution = () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
const res = await api.get(`/inventory/plans/${planId}`);
|
||||
setPlan(res.data.plan);
|
||||
setTasks(res.data.tasks || []);
|
||||
setPlan(res.plan);
|
||||
setTasks(res.tasks || []);
|
||||
} catch (error) {
|
||||
message.error('获取盘点计划失败');
|
||||
} finally {
|
||||
@@ -87,9 +87,9 @@ const InventoryTaskExecution = () => {
|
||||
const fetchTaskRecords = async taskId => {
|
||||
try {
|
||||
const res = await api.get(`/inventory/tasks/${taskId}`);
|
||||
setCurrentTask(res.data.task);
|
||||
setRecords(res.data.records || []);
|
||||
setRecordPagination(prev => ({ ...prev, total: res.data.records?.length || 0, current: 1 }));
|
||||
setCurrentTask(res.task);
|
||||
setRecords(res.records || []);
|
||||
setRecordPagination(prev => ({ ...prev, total: res.records?.length || 0, current: 1 }));
|
||||
setSelectedRowKeys([]);
|
||||
setActiveTab('2');
|
||||
} catch (error) {
|
||||
@@ -378,7 +378,7 @@ const InventoryTaskExecution = () => {
|
||||
const fetchDeviceFields = async () => {
|
||||
try {
|
||||
const res = await api.get('/deviceFields');
|
||||
const sortedFields = res.data.sort((a, b) => a.order - b.order);
|
||||
const sortedFields = res.sort((a, b) => a.order - b.order);
|
||||
setDeviceFields(sortedFields);
|
||||
} catch (error) {
|
||||
console.error('获取字段配置失败:', error);
|
||||
@@ -389,7 +389,7 @@ const InventoryTaskExecution = () => {
|
||||
const fetchRooms = async () => {
|
||||
try {
|
||||
const res = await api.get('/rooms');
|
||||
setRooms(res.data.rooms || res.data || []);
|
||||
setRooms(res.rooms || res || []);
|
||||
} catch (error) {
|
||||
console.error('获取机房列表失败', error);
|
||||
}
|
||||
@@ -398,7 +398,7 @@ const InventoryTaskExecution = () => {
|
||||
const fetchRacks = async () => {
|
||||
try {
|
||||
const res = await api.get('/racks', { params: { pageSize: 1000 } });
|
||||
setRacks(res.data.racks || res.data || []);
|
||||
setRacks(res.racks || res || []);
|
||||
} catch (error) {
|
||||
console.error('获取机柜列表失败', error);
|
||||
}
|
||||
@@ -644,9 +644,9 @@ const InventoryTaskExecution = () => {
|
||||
quickAddForm.resetFields();
|
||||
setScanResult({
|
||||
success: true,
|
||||
message: `设备 "${res.data.pendingDevice.deviceName}" 已暂存,请前往「暂存设备」页面完善信息后同步到设备管理`,
|
||||
pendingDevice: res.data.pendingDevice,
|
||||
sn: res.data.pendingDevice.serialNumber,
|
||||
message: `设备 "${res.pendingDevice.deviceName}" 已暂存,请前往「暂存设备」页面完善信息后同步到设备管理`,
|
||||
pendingDevice: res.pendingDevice,
|
||||
sn: res.pendingDevice.serialNumber,
|
||||
});
|
||||
} catch (error) {
|
||||
message.error(error.response?.data?.error || '暂存设备失败');
|
||||
|
||||
@@ -310,6 +310,7 @@ function RackManagement() {
|
||||
const debouncedSearchKeyword = useDebounce(searchKeyword, 300);
|
||||
const [statusFilter, setStatusFilter] = useState('all');
|
||||
const [roomFilter, setRoomFilter] = useState('all');
|
||||
const [stats, setStats] = useState({ total: 0, active: 0, totalPower: 0, totalDevices: 0 });
|
||||
const [pagination, setPagination] = useState({
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
@@ -324,18 +325,28 @@ function RackManagement() {
|
||||
async (page = 1, pageSize = 10) => {
|
||||
try {
|
||||
setLoading(true);
|
||||
const response = await api.get('/racks', {
|
||||
params: {
|
||||
page,
|
||||
pageSize,
|
||||
roomId: roomFilter,
|
||||
status: statusFilter,
|
||||
keyword: debouncedSearchKeyword || undefined,
|
||||
},
|
||||
});
|
||||
const { racks: data, total } = response;
|
||||
const [racksRes, statsRes] = await Promise.all([
|
||||
api.get('/racks', {
|
||||
params: {
|
||||
page,
|
||||
pageSize,
|
||||
roomId: roomFilter,
|
||||
status: statusFilter,
|
||||
keyword: debouncedSearchKeyword || undefined,
|
||||
},
|
||||
}),
|
||||
api.get('/racks/stats', {
|
||||
params: {
|
||||
roomId: roomFilter,
|
||||
status: statusFilter,
|
||||
keyword: debouncedSearchKeyword || undefined,
|
||||
},
|
||||
}),
|
||||
]);
|
||||
const { racks: data, total } = racksRes;
|
||||
setRacks(data);
|
||||
setPagination(prev => ({ ...prev, current: page, pageSize, total }));
|
||||
setStats(statsRes);
|
||||
} catch (error) {
|
||||
message.error('获取机柜列表失败');
|
||||
console.error('获取机柜列表失败:', error);
|
||||
@@ -616,19 +627,6 @@ function RackManagement() {
|
||||
);
|
||||
|
||||
// 后端已过滤,直接使用 racks 数据
|
||||
const filteredRacks = racks;
|
||||
|
||||
const stats = useMemo(
|
||||
() => ({
|
||||
total: racks.length,
|
||||
active: racks.filter(r => r.status === 'active').length,
|
||||
maintenance: racks.filter(r => r.status === 'maintenance').length,
|
||||
totalPower: racks.reduce((sum, r) => sum + (r.currentPower || 0), 0),
|
||||
totalDevices: racks.reduce((sum, r) => sum + (r.Devices?.length || 0), 0),
|
||||
}),
|
||||
[racks]
|
||||
);
|
||||
|
||||
const tableColumns = [
|
||||
{
|
||||
title: '机柜信息',
|
||||
@@ -967,7 +965,7 @@ function RackManagement() {
|
||||
{viewMode === 'table' ? (
|
||||
<Table
|
||||
columns={tableColumns}
|
||||
dataSource={filteredRacks}
|
||||
dataSource={racks}
|
||||
rowKey="rackId"
|
||||
loading={loading}
|
||||
rowSelection={rowSelection}
|
||||
@@ -978,8 +976,8 @@ function RackManagement() {
|
||||
/>
|
||||
) : (
|
||||
<Row gutter={[16, 16]}>
|
||||
{filteredRacks.length > 0 ? (
|
||||
filteredRacks.map(rack => (
|
||||
{racks.length > 0 ? (
|
||||
racks.map(rack => (
|
||||
<Col xs={24} sm={12} lg={8} xl={6} key={rack.rackId}>
|
||||
<RackCard
|
||||
rack={rack}
|
||||
|
||||
Reference in New Issue
Block a user