feat(models): CncModels完整实现 - 10枚举+20实体+62DTO,编译通过0错误0警告

- Enum: AlertType/CollectStatus/DataStatus/CardType/DataType/MatchBy/SegmentCloseReason/CollectorServiceStatus/LogLevel/ValueType
- Entity: 20张表完整映射(Workshop/Brand/Machine/Worker/CollectRecord/DailyProduction/Alert/SysConfig/ScreenConfig等)
- DTO: 13模块请求响应类(Login/Dashboard/Machine/Brand/CollectAddress/Worker/Production/Alert/Settings/Log/ScreenConfig/Screen/Common)
- Constants: TableName(20张表名) + SensitiveConfigKey(3个敏感键) + ErrorCode(6个错误码)
- 基础类: ApiResponse/PagedResult/PagedQuery
main
haoliang 1 week ago
parent 0ba5cede73
commit 7686930525

@ -0,0 +1,19 @@
using System;
namespace CncModels.Constants
{
/// <summary>
/// 敏感配置键(用于系统配置表中的敏感字段脱敏处理)
/// </summary>
public static class SensitiveConfigKey
{
/// <summary>API Token</summary>
public const string ApiToken = "api_token";
/// <summary>采集器 API Key</summary>
public const string CollectorApiKey = "collector_api_key";
/// <summary>管理员密码哈希</summary>
public const string AdminPasswordHash = "admin_password_hash";
}
}

@ -0,0 +1,71 @@
using System;
namespace CncModels.Constants
{
/// <summary>
/// 数据库表名常量
/// </summary>
public static class TableName
{
/// <summary>车间表 cnc_workshop</summary>
public const string Workshop = "cnc_workshop";
/// <summary>品牌表 cnc_brand</summary>
public const string Brand = "cnc_brand";
/// <summary>品牌字段映射表 cnc_brand_field_mapping</summary>
public const string BrandFieldMapping = "cnc_brand_field_mapping";
/// <summary>采集地址表 cnc_collect_address</summary>
public const string CollectAddress = "cnc_collect_address";
/// <summary>机床表 cnc_machine</summary>
public const string Machine = "cnc_machine";
/// <summary>工人表 cnc_worker</summary>
public const string Worker = "cnc_worker";
/// <summary>工人-机床绑定表 cnc_worker_machine</summary>
public const string WorkerMachine = "cnc_worker_machine";
/// <summary>采集结构化记录表 cnc_collect_record</summary>
public const string CollectRecord = "cnc_collect_record";
/// <summary>产量分段表 cnc_production_segment</summary>
public const string ProductionSegment = "cnc_production_segment";
/// <summary>机床日状态 cnc_machine_daily_status</summary>
public const string MachineDailyStatus = "cnc_machine_daily_status";
/// <summary>日产量 cnc_daily_production</summary>
public const string DailyProduction = "cnc_daily_production";
/// <summary>工人日汇总 cnc_worker_daily_summary</summary>
public const string WorkerDailySummary = "cnc_worker_daily_summary";
/// <summary>产量调整 cnc_production_adjustment</summary>
public const string ProductionAdjustment = "cnc_production_adjustment";
/// <summary>告警 cnc_alert</summary>
public const string Alert = "cnc_alert";
/// <summary>系统配置 cnc_sys_config</summary>
public const string SysConfig = "cnc_sys_config";
/// <summary>大屏配置 cnc_screen_config</summary>
public const string ScreenConfig = "cnc_screen_config";
/// <summary>大屏筛选配置 cnc_screen_filter</summary>
public const string ScreenFilter = "cnc_screen_filter";
// 日志库表
/// <summary>日志原始采集表 log_collect_raw</summary>
public const string LogCollectRaw = "log_collect_raw";
/// <summary>日志系统表 log_system</summary>
public const string LogSystem = "log_system";
/// <summary>日志心跳表 log_collector_heartbeat</summary>
public const string LogCollectorHeartbeat = "log_collector_heartbeat";
}
}

@ -0,0 +1,19 @@
using System;
namespace CncModels.Dto.Alert
{
/// <summary>
/// 告警列表项
/// </summary>
public class AlertListItem
{
public int Id { get; set; }
public DateTime CreatedAt { get; set; }
public string AlertType { get; set; }
public string Title { get; set; }
public string MachineName { get; set; }
public string Detail { get; set; }
public int IsResolved { get; set; }
public DateTime? ResolvedAt { get; set; }
}
}

@ -0,0 +1,17 @@
using System;
using CncModels.Dto;
namespace CncModels.Dto.Alert
{
/// <summary>
/// 告警查询(分页)
/// </summary>
public class AlertQuery : PagedQuery
{
public string AlertType { get; set; }
public int? IsResolved { get; set; }
public int? MachineId { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.Alert
{
/// <summary>
/// 告警统计
/// </summary>
public class AlertStatisticsResponse
{
public int Unresolved { get; set; }
public int CollectFail { get; set; }
public int DeviceOffline { get; set; }
public int ProductionAnomaly { get; set; }
public int UnknownDevice { get; set; }
public int ServiceError { get; set; }
}
}

@ -0,0 +1,10 @@
namespace CncModels.Dto.Alert
{
/// <summary>
/// 批量告警处理请求
/// </summary>
public class BatchResolveRequest
{
public int[] Ids { get; set; }
}
}

@ -0,0 +1,18 @@
using System.Collections.Generic;
namespace CncModels.Dto.Brand
{
/// <summary>
/// 品牌详情(含字段映射)
/// </summary>
public class BrandDetailResponse
{
public int Id { get; set; }
public string BrandName { get; set; }
public string DeviceField { get; set; }
public string TagsPath { get; set; }
public int IsEnabled { get; set; }
public int FieldCount { get; set; }
public List<BrandFieldMappingDto> Mappings { get; set; } = new List<BrandFieldMappingDto>();
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Brand
{
/// <summary>
/// 品牌字段映射
/// </summary>
public class BrandFieldMappingDto
{
public string StandardField { get; set; }
public string FieldName { get; set; }
public string MatchBy { get; set; }
public string DataType { get; set; }
public int IsRequired { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.Brand
{
/// <summary>
/// 品牌模板列表项
/// </summary>
public class BrandListItem
{
public int Id { get; set; }
public string BrandName { get; set; }
public string DeviceField { get; set; }
public string TagsPath { get; set; }
public int IsEnabled { get; set; }
public int FieldCount { get; set; }
}
}

@ -0,0 +1,12 @@
namespace CncModels.Dto.Brand
{
/// <summary>
/// 新增品牌模板请求
/// </summary>
public class CreateBrandRequest
{
public string BrandName { get; set; }
public string DeviceField { get; set; }
public string TagsPath { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.Brand
{
/// <summary>
/// 标准字段列表
/// </summary>
public class StandardFieldResponse
{
public string StandardField { get; set; }
public string Description { get; set; }
}
}

@ -0,0 +1,12 @@
namespace CncModels.Dto.Brand
{
/// <summary>
/// 更新品牌模板请求
/// </summary>
public class UpdateBrandRequest
{
public string BrandName { get; set; }
public string DeviceField { get; set; }
public string TagsPath { get; set; }
}
}

@ -0,0 +1,16 @@
namespace CncModels.Dto.CollectAddress
{
/// <summary>
/// 采集地址详情(扩展字段留待未来扩展)
/// </summary>
public class CollectAddressDetailResponse
{
public int Id { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public int BrandId { get; set; }
public string BrandName { get; set; }
public int CollectInterval { get; set; }
public int IsEnabled { get; set; }
}
}

@ -0,0 +1,18 @@
namespace CncModels.Dto.CollectAddress
{
/// <summary>
/// 采集地址列表项
/// </summary>
public class CollectAddressListItem
{
public int Id { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public int BrandId { get; set; }
public string BrandName { get; set; }
public int CollectInterval { get; set; }
public int IsEnabled { get; set; }
public System.DateTime? LastCollectTime { get; set; }
public int MachineCount { get; set; }
}
}

@ -0,0 +1,14 @@
using CncModels.Dto;
namespace CncModels.Dto.CollectAddress
{
/// <summary>
/// 采集地址查询(分页)
/// </summary>
public class CollectAddressQuery : PagedQuery
{
public string Keyword { get; set; }
public int? BrandId { get; set; }
public int? IsEnabled { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.CollectAddress
{
/// <summary>
/// 新增采集地址请求
/// </summary>
public class CreateCollectAddressRequest
{
public string Name { get; set; }
public string Url { get; set; }
public int BrandId { get; set; }
public int CollectInterval { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.CollectAddress
{
/// <summary>
/// 编辑采集地址请求
/// </summary>
public class UpdateCollectAddressRequest
{
public string Name { get; set; }
public string Url { get; set; }
public int BrandId { get; set; }
public int CollectInterval { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.Common
{
/// <summary>
/// 通用下拉项
/// </summary>
public class SimpleOption
{
public string Value { get; set; }
public string Label { get; set; }
}
}

@ -0,0 +1,16 @@
using System;
namespace CncModels.Dto.Dashboard
{
/// <summary>
/// 仪表盘查询参数(日期筛选,不带分页)
/// </summary>
public class DashboardQuery
{
/// <summary>起始日期</summary>
public DateTime? StartDate { get; set; }
/// <summary>结束日期</summary>
public DateTime? EndDate { get; set; }
}
}

@ -0,0 +1,34 @@
using System;
namespace CncModels.Dto.Dashboard
{
/// <summary>
/// 仪表盘总览数据
/// </summary>
public class DashboardSummaryResponse
{
/// <summary>在线机床数量</summary>
public int OnlineCount { get; set; }
/// <summary>总机床数量</summary>
public int TotalMachines { get; set; }
/// <summary>今日产量(件)</summary>
public int TodayProduction { get; set; }
/// <summary>活跃告警数量</summary>
public int ActiveAlerts { get; set; }
/// <summary>采集成功率(百分比,小数不放大)</summary>
public decimal CollectSuccessRate { get; set; }
/// <summary>今日总工作时长/产线运行时间,单位分钟</summary>
public int TodayCuttingTime { get; set; }
/// <summary>正在运行的机床数量</summary>
public int RunningMachines { get; set; }
/// <summary>数据缺失机床数量</summary>
public int DataMissingMachines { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.Dashboard
{
/// <summary>
/// 机床产量排行项
/// </summary>
public class MachineRankResponse
{
public int Rank { get; set; }
public int MachineId { get; set; }
public string MachineName { get; set; }
public string Program { get; set; }
public int Quantity { get; set; }
public int Status { get; set; }
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Dashboard
{
/// <summary>
/// 工人产量排行项
/// </summary>
public class WorkerRankResponse
{
public int Rank { get; set; }
public int WorkerId { get; set; }
public string WorkerName { get; set; }
public int MachineCount { get; set; }
public int TotalQuantity { get; set; }
}
}

@ -0,0 +1,22 @@
using System;
namespace CncModels.Dto.Dashboard
{
/// <summary>
/// 各车间产量详情
/// </summary>
public class WorkshopProductionResponse
{
/// <summary>车间名称</summary>
public string WorkshopName { get; set; }
/// <summary>产量</summary>
public int Quantity { get; set; }
/// <summary>机床数量</summary>
public int MachineCount { get; set; }
/// <summary>日均产量</summary>
public decimal AvgQuantity { get; set; }
}
}

@ -0,0 +1,17 @@
namespace CncModels.Dto.Log
{
/// <summary>
/// 调整日志列表项
/// </summary>
public class AdjustmentLogListItem
{
public int Id { get; set; }
public string CreatedAt { get; set; }
public string TargetTable { get; set; }
public int TargetId { get; set; }
public string OldValue { get; set; }
public string NewValue { get; set; }
public string Reason { get; set; }
public string OperatorIp { get; set; }
}
}

@ -0,0 +1,15 @@
using CncModels.Dto;
namespace CncModels.Dto.Log
{
/// <summary>
/// 调整日志查询(分页)
/// </summary>
public class AdjustmentLogQuery : PagedQuery
{
public string StartDate { get; set; }
public string EndDate { get; set; }
public string TargetTable { get; set; }
public string Keyword { get; set; }
}
}

@ -0,0 +1,16 @@
namespace CncModels.Dto.Log
{
/// <summary>
/// 系统日志列表项
/// </summary>
public class SystemLogListItem
{
public int Id { get; set; }
public string CreatedAt { get; set; }
public string LogLevel { get; set; }
public string Source { get; set; }
public string Message { get; set; }
public string StackTrace { get; set; }
public string ExtraData { get; set; }
}
}

@ -0,0 +1,16 @@
using CncModels.Dto;
namespace CncModels.Dto.Log
{
/// <summary>
/// 系统日志查询(分页)
/// </summary>
public class SystemLogQuery : PagedQuery
{
public string StartDate { get; set; }
public string EndDate { get; set; }
public string LogLevel { get; set; }
public string Source { get; set; }
public string Keyword { get; set; }
}
}

@ -0,0 +1,19 @@
using System;
namespace CncModels.Dto.Login
{
/// <summary>
/// 登录请求
/// </summary>
public class LoginRequest
{
/// <summary>用户名</summary>
public string Username { get; set; }
/// <summary>密码</summary>
public string Password { get; set; }
/// <summary>是否记住密码/保持登录</summary>
public bool? RememberMe { get; set; }
}
}

@ -0,0 +1,16 @@
using System;
namespace CncModels.Dto.Login
{
/// <summary>
/// 登录响应
/// </summary>
public class LoginResponse
{
/// <summary>JWT Token</summary>
public string Token { get; set; }
/// <summary>Token 过期时间(秒)</summary>
public int ExpiresIn { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.Machine
{
/// <summary>
/// 新增机床请求
/// </summary>
public class CreateMachineRequest
{
public string DeviceCode { get; set; }
public string Name { get; set; }
public int WorkshopId { get; set; }
public int CollectAddressId { get; set; }
public string IpAddress { get; set; }
public int BrandId { get; set; }
}
}

@ -0,0 +1,27 @@
using System;
namespace CncModels.Dto.Machine
{
/// <summary>
/// 机床详情
/// </summary>
public class MachineDetailResponse
{
public int Id { get; set; }
public string DeviceCode { get; set; }
public string Name { get; set; }
public int WorkshopId { get; set; }
public string WorkshopName { get; set; }
public int CollectAddressId { get; set; }
public int BrandId { get; set; }
public string BrandName { get; set; }
public string IpAddress { get; set; }
public int IsEnabled { get; set; }
public int IsOnline { get; set; }
public int? WorkerId { get; set; }
public string WorkerName { get; set; }
public string LastProgramName { get; set; }
public DateTime? LastCollectTime { get; set; }
// 其他扩展字段留作后续扩展
}
}

@ -0,0 +1,26 @@
using System;
namespace CncModels.Dto.Machine
{
/// <summary>
/// 机床列表项
/// </summary>
public class MachineListItem
{
public int Id { get; set; }
public string DeviceCode { get; set; }
public string Name { get; set; }
public int WorkshopId { get; set; }
public string WorkshopName { get; set; }
public int CollectAddressId { get; set; }
public int BrandId { get; set; }
public string BrandName { get; set; }
public string IpAddress { get; set; }
public int IsEnabled { get; set; }
public int IsOnline { get; set; }
public int? WorkerId { get; set; }
public string WorkerName { get; set; }
public string LastProgramName { get; set; }
public DateTime? LastCollectTime { get; set; }
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Machine
{
/// <summary>
/// 今日产量与趋势(简化模型)
/// </summary>
public class MachineProductionResponse
{
/// <summary>今日产量</summary>
public int TodayQuantity { get; set; }
/// <summary>趋势数据JSON 字符串)</summary>
public string Trend { get; set; }
}
}

@ -0,0 +1,22 @@
using CncModels.Dto;
namespace CncModels.Dto.Machine
{
/// <summary>
/// 机床查询(分页)
/// </summary>
public class MachineQuery : PagedQuery
{
/// <summary>搜索关键字(名称/编码)</summary>
public string Keyword { get; set; }
/// <summary>车间ID</summary>
public int? WorkshopId { get; set; }
/// <summary>是否在线1在线 0离线</summary>
public int? IsOnline { get; set; }
/// <summary>品牌ID</summary>
public int? BrandId { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.Machine
{
/// <summary>
/// 实时采集状态
/// </summary>
public class MachineStatusResponse
{
public int Status { get; set; }
public System.DateTime? LastUpdate { get; set; }
public string LastProgramName { get; set; }
public string Message { get; set; }
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Machine
{
/// <summary>
/// 编辑机床请求
/// </summary>
public class UpdateMachineRequest
{
public string Name { get; set; }
public int WorkshopId { get; set; }
public int CollectAddressId { get; set; }
public string IpAddress { get; set; }
public int BrandId { get; set; }
}
}

@ -0,0 +1,19 @@
namespace CncModels.Dto.Production
{
/// <summary>
/// 日产量列表项
/// </summary>
public class DailyProductionListItem
{
public int Id { get; set; }
public string Date { get; set; }
public string MachineName { get; set; }
public string ProgramName { get; set; }
public int Quantity { get; set; }
public string RunTime { get; set; }
public string CuttingTime { get; set; }
public string DataStatus { get; set; }
public int IsAdjusted { get; set; }
public int? AdjustedQuantity { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.Production
{
/// <summary>
/// 日汇总统计
/// </summary>
public class DailySummaryResponse
{
public int TotalQuantity { get; set; }
public int MachineCount { get; set; }
public int NormalCount { get; set; }
public int OfflineCount { get; set; }
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Production
{
/// <summary>
/// 调整产量请求
/// </summary>
public class ProductionAdjustRequest
{
public string TargetTable { get; set; }
public int TargetId { get; set; }
public string FieldName { get; set; }
public string NewValue { get; set; }
public string Reason { get; set; }
}
}

@ -0,0 +1,17 @@
namespace CncModels.Dto.Production
{
/// <summary>
/// 产量调整历史
/// </summary>
public class ProductionAdjustmentHistoryResponse
{
public int Id { get; set; }
public string TargetTable { get; set; }
public int TargetId { get; set; }
public string OldValue { get; set; }
public string NewValue { get; set; }
public string Reason { get; set; }
public string OperatorIp { get; set; }
public System.DateTime? CreatedAt { get; set; }
}
}

@ -0,0 +1,16 @@
using CncModels.Dto;
namespace CncModels.Dto.Production
{
/// <summary>
/// 产量查询(分页)
/// </summary>
public class ProductionQuery : PagedQuery
{
public System.DateTime? Date { get; set; }
public int? WorkshopId { get; set; }
public int? MachineId { get; set; }
public int? WorkerId { get; set; }
public string DataStatus { get; set; }
}
}

@ -0,0 +1,13 @@
using System.Collections.Generic;
using CncModels.Dto.Common;
namespace CncModels.Dto.Screen
{
/// <summary>
/// 筛选条件集合(大屏用)
/// </summary>
public class ScreenFilterResponse
{
public List<SimpleOption> Filters { get; set; } = new List<SimpleOption>();
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.Screen
{
/// <summary>
/// 机床状态总览
/// </summary>
public class ScreenMachineStatusResponse
{
public string MachineName { get; set; }
public int Status { get; set; }
public string Program { get; set; }
public string RunTime { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.Screen
{
/// <summary>
/// 大屏汇总数据(简化模型)
/// </summary>
public class ScreenSummaryResponse
{
public int MachineCount { get; set; }
public int ProductionToday { get; set; }
public int AlertCount { get; set; }
public int OnlineCount { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.ScreenConfig
{
/// <summary>
/// 新增屏幕配置请求
/// </summary>
public class CreateScreenConfigRequest
{
public string ConfigName { get; set; }
public string ConfigValue { get; set; }
public string Description { get; set; }
public int SortOrder { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.ScreenConfig
{
/// <summary>
/// 新增屏幕筛选项请求
/// </summary>
public class CreateScreenFilterRequest
{
public string Name { get; set; }
public string Value { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.ScreenConfig
{
/// <summary>
/// 卡片配置列表项
/// </summary>
public class ScreenConfigListItem
{
public int Id { get; set; }
public string ConfigName { get; set; }
public string ConfigValue { get; set; }
public string Description { get; set; }
public int IsEnabled { get; set; }
public int SortOrder { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.ScreenConfig
{
/// <summary>
/// 筛选项列表项
/// </summary>
public class ScreenFilterListItem
{
public int Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
public int IsEnabled { get; set; }
}
}

@ -0,0 +1,13 @@
namespace CncModels.Dto.ScreenConfig
{
/// <summary>
/// 更新屏幕配置请求
/// </summary>
public class UpdateScreenConfigRequest
{
public int Id { get; set; }
public string ConfigValue { get; set; }
public string Description { get; set; }
public int SortOrder { get; set; }
}
}

@ -0,0 +1,12 @@
namespace CncModels.Dto.ScreenConfig
{
/// <summary>
/// 更新屏幕筛选项请求
/// </summary>
public class UpdateScreenFilterRequest
{
public int Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.Settings
{
/// <summary>
/// 修改密码请求
/// </summary>
public class ChangePasswordRequest
{
public string OldPassword { get; set; }
public string NewPassword { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.Settings
{
/// <summary>
/// 新增车间请求
/// </summary>
public class CreateWorkshopRequest
{
public string Name { get; set; }
public int SortOrder { get; set; }
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Settings
{
/// <summary>
/// 系统配置项
/// </summary>
public class SysConfigListItem
{
public int Id { get; set; }
public string ConfigKey { get; set; }
public string ConfigValue { get; set; }
public string ValueType { get; set; }
public string Description { get; set; }
}
}

@ -0,0 +1,10 @@
namespace CncModels.Dto.Settings
{
/// <summary>
/// 更新系统配置请求
/// </summary>
public class UpdateSysConfigRequest
{
public string ConfigValue { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.Settings
{
/// <summary>
/// 编辑车间请求
/// </summary>
public class UpdateWorkshopRequest
{
public string Name { get; set; }
public int SortOrder { get; set; }
}
}

@ -0,0 +1,14 @@
namespace CncModels.Dto.Settings
{
/// <summary>
/// 车间列表项
/// </summary>
public class WorkshopListItem
{
public int Id { get; set; }
public string Name { get; set; }
public int SortOrder { get; set; }
public int IsEnabled { get; set; }
public int MachineCount { get; set; }
}
}

@ -0,0 +1,11 @@
namespace CncModels.Dto.Worker
{
/// <summary>
/// 新增工人请求
/// </summary>
public class CreateWorkerRequest
{
public string Name { get; set; }
public string Code { get; set; }
}
}

@ -0,0 +1,10 @@
namespace CncModels.Dto.Worker
{
/// <summary>
/// 更新工人请求
/// </summary>
public class UpdateWorkerRequest
{
public string Name { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.Worker
{
/// <summary>
/// 工人详情
/// </summary>
public class WorkerDetailResponse
{
public int Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public int IsEnabled { get; set; }
public int MachineCount { get; set; }
public string MachineNames { get; set; }
}
}

@ -0,0 +1,15 @@
namespace CncModels.Dto.Worker
{
/// <summary>
/// 工人列表项
/// </summary>
public class WorkerListItem
{
public int Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public int IsEnabled { get; set; }
public int MachineCount { get; set; }
public string MachineNames { get; set; }
}
}

@ -0,0 +1,13 @@
using CncModels.Dto;
namespace CncModels.Dto.Worker
{
/// <summary>
/// 工人查询(分页)
/// </summary>
public class WorkerQuery : PagedQuery
{
public string Keyword { get; set; }
public int? IsEnabled { get; set; }
}
}

@ -0,0 +1,37 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_alert 告警表
/// </summary>
public class Alert
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>告警类型</summary>
public string AlertType { get; set; }
/// <summary>机床ID</summary>
public int? MachineId { get; set; }
/// <summary>采集地址ID</summary>
public int? CollectAddressId { get; set; }
/// <summary>标题</summary>
public string Title { get; set; }
/// <summary>详情</summary>
public string Detail { get; set; }
/// <summary>是否已解决</summary>
public int IsResolved { get; set; }
/// <summary>解决时间</summary>
public DateTime? ResolvedAt { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,31 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_brand CNC品牌模板表
/// </summary>
public class Brand
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>品牌名称</summary>
public string BrandName { get; set; }
/// <summary>设备字段名</summary>
public string DeviceField { get; set; }
/// <summary>标签路径</summary>
public string TagsPath { get; set; }
/// <summary>是否启用</summary>
public int IsEnabled { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,34 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_brand_field_mapping 品牌字段映射表
/// </summary>
public class BrandFieldMapping
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>品牌ID</summary>
public int BrandId { get; set; }
/// <summary>标准字段</summary>
public string StandardField { get; set; }
/// <summary>字段名</summary>
public string FieldName { get; set; }
/// <summary>匹配规则</summary>
public string MatchBy { get; set; }
/// <summary>数据类型</summary>
public string DataType { get; set; }
/// <summary>是否必填</summary>
public int IsRequired { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,43 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_collect_address 采集地址表
/// </summary>
public class CollectAddress
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>名称</summary>
public string Name { get; set; }
/// <summary>地址URL</summary>
public string Url { get; set; }
/// <summary>品牌ID</summary>
public int BrandId { get; set; }
/// <summary>采集间隔(秒/单位未约定以整型表示)</summary>
public int CollectInterval { get; set; }
/// <summary>是否启用</summary>
public int IsEnabled { get; set; }
/// <summary>最近采集时间</summary>
public DateTime? LastCollectTime { get; set; }
/// <summary>最近采集状态</summary>
public string LastCollectStatus { get; set; }
/// <summary>失败次数</summary>
public int FailCount { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,40 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// log_collect_raw 原始采集JSON表
/// </summary>
public class CollectRaw
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>采集地址ID</summary>
public int CollectAddressId { get; set; }
/// <summary>请求时间</summary>
public DateTime RequestTime { get; set; }
/// <summary>响应时间</summary>
public DateTime ResponseTime { get; set; }
/// <summary>响应时长</summary>
public int? ResponseDuration { get; set; }
/// <summary>是否成功</summary>
public int IsSuccess { get; set; }
/// <summary>状态码</summary>
public int? StatusCode { get; set; }
/// <summary>原始JSON</summary>
public string RawJson { get; set; }
/// <summary>错误信息</summary>
public string ErrorMessage { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,76 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_collect_record 采集结构化记录表
/// </summary>
public class CollectRecord
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>机床ID</summary>
public int MachineId { get; set; }
/// <summary>采集时间</summary>
public DateTime CollectTime { get; set; }
/// <summary>设备时间</summary>
public DateTime? DeviceTime { get; set; }
/// <summary>NC程序名</summary>
public string ProgramName { get; set; }
/// <summary>零件计数</summary>
public decimal? PartCount { get; set; }
/// <summary>设备状态</summary>
public string DeviceStatus { get; set; }
/// <summary>运行状态</summary>
public string RunStatus { get; set; }
/// <summary>操作模式</summary>
public string OperateMode { get; set; }
/// <summary>主轴设定速度</summary>
public decimal? SpindleSpeedSet { get; set; }
/// <summary>进给设定速度</summary>
public decimal? FeedSpeedSet { get; set; }
/// <summary>主轴实际速度</summary>
public decimal? SpindleSpeedActual { get; set; }
/// <summary>进给实际速度</summary>
public decimal? FeedSpeedActual { get; set; }
/// <summary>主轴负载</summary>
public decimal? SpindleLoad { get; set; }
/// <summary>主轴倍率</summary>
public decimal? SpindleOverride { get; set; }
/// <summary>开机时间</summary>
public decimal? PowerOnTime { get; set; }
/// <summary>运行时间</summary>
public decimal? RunTime { get; set; }
/// <summary>切削时间</summary>
public decimal? CuttingTime { get; set; }
/// <summary>循环时间</summary>
public decimal? CycleTime { get; set; }
/// <summary>加工状态</summary>
public string MachiningStatus { get; set; }
/// <summary>扩展数据JSON 字符串)</summary>
public string ExtraData { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,40 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// log_collector_heartbeat 采集服务心跳表
/// </summary>
public class CollectorHeartbeat
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>服务ID</summary>
public string ServiceId { get; set; }
/// <summary>状态</summary>
public string Status { get; set; }
/// <summary>采集地址ID</summary>
public int? CollectAddressId { get; set; }
/// <summary>最近采集时间</summary>
public DateTime? LastCollectTime { get; set; }
/// <summary>成功次数</summary>
public int SuccessCount { get; set; }
/// <summary>失败次数</summary>
public int FailCount { get; set; }
/// <summary>运行时长(秒)</summary>
public long? UptimeSeconds { get; set; }
/// <summary>详情JSON 字符串)</summary>
public string Detail { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,49 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_daily_production 日汇总表
/// </summary>
public class DailyProduction
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>机床ID</summary>
public int MachineId { get; set; }
/// <summary>生产日期</summary>
public DateTime ProductionDate { get; set; }
/// <summary>程序名</summary>
public string ProgramName { get; set; }
/// <summary>总产量</summary>
public decimal TotalQuantity { get; set; }
/// <summary>段数</summary>
public int SegmentCount { get; set; }
/// <summary>总运行时间</summary>
public decimal? TotalRunTime { get; set; }
/// <summary>总切削时间</summary>
public decimal? TotalCuttingTime { get; set; }
/// <summary>总循环时间</summary>
public decimal? TotalCycleTime { get; set; }
/// <summary>是否已调整</summary>
public int IsAdjusted { get; set; }
/// <summary>调整后的数量</summary>
public decimal? AdjustedQuantity { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,67 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_machine 机床表
/// </summary>
public class Machine
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>设备编码</summary>
public string DeviceCode { get; set; }
/// <summary>名称</summary>
public string Name { get; set; }
/// <summary>车间ID</summary>
public int WorkshopId { get; set; }
/// <summary>采集地址ID</summary>
public int CollectAddressId { get; set; }
/// <summary>IP地址</summary>
public string IpAddress { get; set; }
/// <summary>品牌ID</summary>
public int BrandId { get; set; }
/// <summary>是否启用</summary>
public int IsEnabled { get; set; }
/// <summary>是否在线</summary>
public int IsOnline { get; set; }
/// <summary>最近Ping时间</summary>
public DateTime? LastPingTime { get; set; }
/// <summary>最近采集时间</summary>
public DateTime? LastCollectTime { get; set; }
/// <summary>最近设备状态</summary>
public string LastDeviceStatus { get; set; }
/// <summary>最近运行状态</summary>
public string LastRunStatus { get; set; }
/// <summary>最近程序名</summary>
public string LastProgramName { get; set; }
/// <summary>最近零件数</summary>
public decimal? LastPartCount { get; set; }
/// <summary>最近操作模式</summary>
public string LastOperateMode { get; set; }
/// <summary>最近加工状态</summary>
public string LastMachiningStatus { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,28 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_machine_daily_status 机床日状态表
/// </summary>
public class MachineDailyStatus
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>机床ID</summary>
public int MachineId { get; set; }
/// <summary>生产日期</summary>
public DateTime ProductionDate { get; set; }
/// <summary>数据状态</summary>
public string DataStatus { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,37 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_production_adjustment 产量修正审计表
/// </summary>
public class ProductionAdjustment
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>目标表</summary>
public string TargetTable { get; set; }
/// <summary>目标ID</summary>
public int TargetId { get; set; }
/// <summary>字段名</summary>
public string FieldName { get; set; }
/// <summary>旧值</summary>
public decimal? OldValue { get; set; }
/// <summary>新值</summary>
public decimal NewValue { get; set; }
/// <summary>原因</summary>
public string Reason { get; set; }
/// <summary>操作IP</summary>
public string OperatorIp { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,49 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_production_segment 产量分段记录表
/// </summary>
public class ProductionSegment
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>机床ID</summary>
public int MachineId { get; set; }
/// <summary>程序名</summary>
public string ProgramName { get; set; }
/// <summary>生产日期</summary>
public DateTime ProductionDate { get; set; }
/// <summary>开始时间</summary>
public DateTime StartTime { get; set; }
/// <summary>结束时间</summary>
public DateTime? EndTime { get; set; }
/// <summary>起始零件数</summary>
public decimal StartPartCount { get; set; }
/// <summary>结束零件数</summary>
public decimal? EndPartCount { get; set; }
/// <summary>产量</summary>
public decimal? Quantity { get; set; }
/// <summary>是否已结算</summary>
public int IsSettled { get; set; }
/// <summary>结束原因</summary>
public string CloseReason { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,43 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_screen_config 大屏卡片配置表
/// </summary>
public class ScreenConfig
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>卡片键</summary>
public string CardKey { get; set; }
/// <summary>卡片类型</summary>
public string CardType { get; set; }
/// <summary>标题</summary>
public string Title { get; set; }
/// <summary>指标</summary>
public string Metric { get; set; }
/// <summary>维度</summary>
public string Dimension { get; set; }
/// <summary>排序</summary>
public int SortOrder { get; set; }
/// <summary>是否启用</summary>
public int IsEnabled { get; set; }
/// <summary>图表配置JSON 字符串)</summary>
public string ChartConfig { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,28 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_screen_filter 大屏筛选配置表
/// </summary>
public class ScreenFilter
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>屏幕Key</summary>
public string ScreenKey { get; set; }
/// <summary>筛选类型</summary>
public string FilterType { get; set; }
/// <summary>筛选值</summary>
public string FilterValue { get; set; }
/// <summary>是否为默认</summary>
public int IsDefault { get; set; }
/// <summary>排序</summary>
public int SortOrder { get; set; }
}
}

@ -0,0 +1,28 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_sys_config 系统配置表
/// </summary>
public class SysConfig
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>配置键</summary>
public string ConfigKey { get; set; }
/// <summary>配置值</summary>
public string ConfigValue { get; set; }
/// <summary>值类型</summary>
public string ValueType { get; set; }
/// <summary>描述</summary>
public string Description { get; set; }
/// <summary>最后修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,31 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// log_system 系统日志表
/// </summary>
public class SystemLog
{
/// <summary>主键ID</summary>
public long Id { get; set; }
/// <summary>日志等级</summary>
public string LogLevel { get; set; }
/// <summary>来源</summary>
public string Source { get; set; }
/// <summary>消息</summary>
public string Message { get; set; }
/// <summary>堆栈信息</summary>
public string StackTrace { get; set; }
/// <summary>扩展数据JSON 字符串)</summary>
public string ExtraData { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,28 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_worker 工人表
/// </summary>
public class Worker
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>姓名</summary>
public string Name { get; set; }
/// <summary>工号</summary>
public string Code { get; set; }
/// <summary>是否启用</summary>
public int IsEnabled { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,40 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_worker_daily_summary 工人日汇总表
/// </summary>
public class WorkerDailySummary
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>工人ID</summary>
public int WorkerId { get; set; }
/// <summary>生产日期</summary>
public DateTime ProductionDate { get; set; }
/// <summary>总产量</summary>
public decimal TotalQuantity { get; set; }
/// <summary>机床数量</summary>
public int MachineCount { get; set; }
/// <summary>程序数量</summary>
public int ProgramCount { get; set; }
/// <summary>是否已调整</summary>
public int IsAdjusted { get; set; }
/// <summary>调整后的数量</summary>
public decimal? AdjustedQuantity { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,22 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_worker_machine 工人-机床绑定表
/// </summary>
public class WorkerMachine
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>工人ID</summary>
public int WorkerId { get; set; }
/// <summary>机床ID</summary>
public int MachineId { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
}
}

@ -0,0 +1,28 @@
using System;
namespace CncModels.Entity
{
/// <summary>
/// cnc_workshop 车间表
/// </summary>
public class Workshop
{
/// <summary>主键ID</summary>
public int Id { get; set; }
/// <summary>车间名称</summary>
public string Name { get; set; }
/// <summary>排序序号</summary>
public int SortOrder { get; set; }
/// <summary>是否启用</summary>
public int IsEnabled { get; set; }
/// <summary>创建时间</summary>
public DateTime CreatedAt { get; set; }
/// <summary>修改时间</summary>
public DateTime UpdatedAt { get; set; }
}
}

@ -0,0 +1,25 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 告警类型常量集合(数据库以字符串存储)
/// </summary>
public static class AlertType
{
/// <summary>采集失败</summary>
public const string CollectFail = "collect_fail";
/// <summary>设备离线</summary>
public const string DeviceOffline = "device_offline";
/// <summary>产量异常</summary>
public const string ProductionAnomaly = "production_anomaly";
/// <summary>未知设备</summary>
public const string UnknownDevice = "unknown_device";
/// <summary>服务错误</summary>
public const string ServiceError = "service_error";
}
}

@ -0,0 +1,28 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 大屏卡片类型常量(存储为字符串)
/// </summary>
public static class CardType
{
/// <summary>统计数字</summary>
public const string StatNumber = "stat_number";
/// <summary>柱状图</summary>
public const string BarChart = "bar_chart";
/// <summary>折线图</summary>
public const string LineChart = "line_chart";
/// <summary>饼图</summary>
public const string PieChart = "pie_chart";
/// <summary>状态网格</summary>
public const string StatusGrid = "status_grid";
/// <summary>排名列表</summary>
public const string RankList = "rank_list";
}
}

@ -0,0 +1,19 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 采集结果状态常量
/// </summary>
public static class CollectStatus
{
/// <summary>成功</summary>
public const string Success = "success";
/// <summary>失败</summary>
public const string Fail = "fail";
/// <summary>超时</summary>
public const string Timeout = "timeout";
}
}

@ -0,0 +1,19 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 采集服务状态(字符串存储)
/// </summary>
public static class CollectorServiceStatus
{
/// <summary>运行中</summary>
public const string Running = "running";
/// <summary>已停止</summary>
public const string Stopped = "stopped";
/// <summary>错误</summary>
public const string Error = "error";
}
}

@ -0,0 +1,19 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 数据状态枚举(字符串存储版本)
/// </summary>
public static class DataStatus
{
/// <summary>正常</summary>
public const string Normal = "normal";
/// <summary>离线</summary>
public const string Offline = "offline";
/// <summary>数据缺失</summary>
public const string DataMissing = "data_missing";
}
}

@ -0,0 +1,16 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 数据类型枚举(字符串存储版本)
/// </summary>
public static class DataType
{
/// <summary>字符串</summary>
public const string String = "string";
/// <summary>数字</summary>
public const string Number = "number";
}
}

@ -0,0 +1,22 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 日志等级常量(字符串表示)
/// </summary>
public static class LogLevel
{
/// <summary>调试</summary>
public const string Debug = "DEBUG";
/// <summary>信息</summary>
public const string Info = "INFO";
/// <summary>警告</summary>
public const string Warn = "WARN";
/// <summary>错误</summary>
public const string Error = "ERROR";
}
}

@ -0,0 +1,16 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 字段匹配方式(字符串存储)
/// </summary>
public static class MatchBy
{
/// <summary>按ID匹配</summary>
public const string Id = "id";
/// <summary>按名称匹配</summary>
public const string Name = "name";
}
}

@ -0,0 +1,22 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 产量段关闭原因(字符串存储)
/// </summary>
public static class SegmentCloseReason
{
/// <summary>程序切换</summary>
public const string ProgramChange = "program_change";
/// <summary>手动复位</summary>
public const string ManualReset = "manual_reset";
/// <summary>日终结束</summary>
public const string EndOfDay = "end_of_day";
/// <summary>服务停止</summary>
public const string ServiceStop = "service_stop";
}
}

@ -0,0 +1,16 @@
using System;
namespace CncModels.Enum
{
/// <summary>
/// 值类型枚举(字符串存储)
/// </summary>
public static class ValueType
{
/// <summary>字符串</summary>
public const string String = "string";
/// <summary>数字</summary>
public const string Number = "number";
}
}
Loading…
Cancel
Save