- Added a new controller for managing smart factory logs, including retrieval and statistics endpoints. - Integrated smart factory log migration to set up the necessary database structure. - Enhanced the authentication controller to include user name in log submissions. - Developed a frontend page for displaying and filtering smart factory logs, accessible only to super admins. - Implemented API calls for fetching logs and statistics, improving data visibility and management. These changes aim to provide comprehensive logging capabilities for smart factory activities, enhancing monitoring and analysis for administrators.
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
import { apiClient } from "./client";
|
|
|
|
export interface SmartFactoryLogEntry {
|
|
id: number;
|
|
company_code: string;
|
|
company_name: string | null;
|
|
user_id: string;
|
|
user_name: string | null;
|
|
use_type: string;
|
|
connect_ip: string;
|
|
send_status: "SUCCESS" | "FAIL" | "SKIPPED";
|
|
response_status: number | null;
|
|
error_message: string | null;
|
|
log_dt: string;
|
|
created_at: string;
|
|
}
|
|
|
|
export interface SmartFactoryLogFilters {
|
|
companyCode?: string;
|
|
userId?: string;
|
|
sendStatus?: string;
|
|
dateFrom?: string;
|
|
dateTo?: string;
|
|
search?: string;
|
|
page?: number;
|
|
limit?: number;
|
|
}
|
|
|
|
export interface SmartFactoryLogStats {
|
|
total: number;
|
|
statusCounts: Array<{ status: string; count: number }>;
|
|
companyCounts: Array<{ companyCode: string; companyName: string; count: number }>;
|
|
dailyCounts: Array<{ date: string; count: number }>;
|
|
}
|
|
|
|
export async function getSmartFactoryLogs(
|
|
filters: SmartFactoryLogFilters
|
|
): Promise<{
|
|
success: boolean;
|
|
data: SmartFactoryLogEntry[];
|
|
total: number;
|
|
page: number;
|
|
limit: number;
|
|
}> {
|
|
const params = new URLSearchParams();
|
|
if (filters.companyCode) params.append("companyCode", filters.companyCode);
|
|
if (filters.userId) params.append("userId", filters.userId);
|
|
if (filters.sendStatus) params.append("sendStatus", filters.sendStatus);
|
|
if (filters.dateFrom) params.append("dateFrom", filters.dateFrom);
|
|
if (filters.dateTo) params.append("dateTo", filters.dateTo);
|
|
if (filters.search) params.append("search", filters.search);
|
|
if (filters.page) params.append("page", String(filters.page));
|
|
if (filters.limit) params.append("limit", String(filters.limit));
|
|
|
|
const response = await apiClient.get(`/admin/smart-factory-log?${params.toString()}`);
|
|
return response.data;
|
|
}
|
|
|
|
export async function getSmartFactoryLogStats(
|
|
companyCode?: string,
|
|
days?: number
|
|
): Promise<{ success: boolean; data: SmartFactoryLogStats }> {
|
|
const params = new URLSearchParams();
|
|
if (companyCode) params.append("companyCode", companyCode);
|
|
if (days) params.append("days", String(days));
|
|
|
|
const response = await apiClient.get(`/admin/smart-factory-log/stats?${params.toString()}`);
|
|
return response.data;
|
|
}
|