Files
pig-farm-controller-fe/src/enums.js
2025-12-07 18:08:22 +08:00

389 lines
8.8 KiB
JavaScript

/**
* @fileoverview 枚举常量定义文件
* @author Divano
* @date 2023-11-20
*/
/**
* 业务状态码
* @enum {number}
*/
export const ResponseCode = {
SUCCESS: 2000, // 操作成功
CREATED: 2001, // 创建成功
BAD_REQUEST: 4000, // 请求参数错误
UNAUTHORIZED: 4001, // 未授权
FORBIDDEN: 4003, // 禁止访问
NOT_FOUND: 4004, // 资源未找到
CONFLICT: 4009, // 资源冲突
INTERNAL_ERROR: 5000, // 服务器内部错误
SERVICE_UNAVAILABLE: 5003, // 服务不可用
};
/**
* 审计状态
* @enum {string}
*/
export const AuditStatus = {
SUCCESS: '成功',
FAILED: '失败',
};
/**
* 设备类别
* @enum {string}
*/
export const DeviceCategory = {
ACTUATOR: '执行器',
SENSOR: '传感器',
};
/**
* 执行状态
* @enum {string}
*/
export const ExecutionStatus = {
STARTED: '已开始', // 开始执行
COMPLETED: '已完成', // 执行完成
FAILED: '失败', // 执行失败
CANCELLED: '已取消', // 执行取消
WAITING: '等待中', // 等待执行 (用于预写日志)
};
/**
* 日志变更类型
* @enum {string}
*/
export const LogChangeType = {
DEATH: '死亡',
CULL: '淘汰',
SALE: '销售',
BUY: '购买',
TRANSFER_IN: '转入',
TRANSFER_OUT: '转出',
CORRECTION: '盘点校正',
};
/**
* 库存变动来源类型
* @enum {string}
*/
export const StockLogSourceType = {
PURCHASE: '采购入库',
FEEDING: '饲喂出库',
DETERIORATE: '变质出库',
SALE: '售卖出库',
MISCELLANEOUS: '杂用领取',
MANUAL: '手动盘点',
FERMENT_START: '发酵出库', // 原料投入发酵,从库存中扣除
FERMENT_END: '发酵入库', // 发酵料产出,作为新原料计入库存
};
/**
* 根据库存变动来源的键或值获取其对应的中文标签。
* @param {string} sourceTypeKeyOrValue - 库存变动来源的键 (如 "PURCHASE") 或值 (如 "采购入库")。
* @returns {string} 对应的中文标签,如果未找到则返回 '--'。
*/
export function getStockLogSourceTypeLabel(sourceTypeKeyOrValue) {
if (!sourceTypeKeyOrValue) {
return '--';
}
// 尝试直接通过键查找
if (StockLogSourceType[sourceTypeKeyOrValue]) {
return StockLogSourceType[sourceTypeKeyOrValue];
}
// 尝试通过值反向查找
for (const key in StockLogSourceType) {
if (StockLogSourceType[key] === sourceTypeKeyOrValue) {
return StockLogSourceType[key];
}
}
return '--';
}
/**
* 用药原因
* @enum {string}
*/
export const MedicationReasonType = {
PREVENTIVE: '预防',
TREATMENT: '治疗',
HEALTH_CARE: '保健',
};
/**
* 通知状态
* @enum {string}
*/
export const NotificationStatus = {
SUCCESS: '发送成功', // 通知已成功发送
FAILED: '发送失败', // 通知发送失败
SKIPPED: '已跳过', // 通知因某些原因被跳过(例如:用户未配置联系方式)
};
/**
* 猪栏状态
* @enum {string}
*/
export const PenStatus = {
EMPTY: '空闲',
OCCUPIED: '使用中',
SICK_PEN: '病猪栏',
RECOVERING: '康复栏',
CLEANING: '清洗消毒',
UNDER_MAINTENANCE: '维修中',
};
/**
* 待采集请求状态
* @enum {string}
*/
export const PendingCollectionStatus = {
PENDING: '等待中', // 请求已发送,等待设备响应
FULFILLED: '已完成', // 已收到设备响应并成功处理
TIMED_OUT: '已超时', // 请求超时,未收到设备响应
};
/**
* 猪批次来源
* @enum {string}
*/
export const PigBatchOriginType = {
SELF_FARROWED: '自繁',
PURCHASED: '外购',
};
/**
* 病猪日志原因类型
* @enum {string}
*/
export const PigBatchSickPigReasonType = {
ILLNESS: '患病',
RECOVERY: '康复',
DEATH: '死亡',
ELIMINATE: '淘汰',
TRANSFER_IN: '转入', // 病猪转入当前批次
TRANSFER_OUT: '转出', // 病猪转出当前批次 (例如转到其他批次或出售)
OTHER: '其他',
};
/**
* 病猪治疗地点
* @enum {string}
*/
export const PigBatchSickPigTreatmentLocation = {
ON_SITE: '原地治疗',
SICK_BAY: '病猪栏治疗',
};
/**
* 猪批次状态
* @enum {string}
*/
export const PigBatchStatus = {
ACTIVE: '生产中', // 饲养中
FOR_SALE: '待售', // 达到出栏标准
SOLD: '已出售',
ARCHIVED: '已归档', // 批次结束(如全群淘汰等)
};
/**
* 猪只迁移类型
* @enum {string}
*/
export const PigTransferType = {
INTERNAL: '群内调栏', // 同一猪群内猪栏间的调动
CROSS_BATCH: '跨群调栏', // 不同猪群间的调动
SALE: '销售', // 猪只售出
DEATH: '死亡', // 猪只死亡
CULL: '淘汰', // 猪只淘汰
PURCHASE: '新购入', // 新购入猪只
DELIVERY_ROOM_TRANSFER: '产房转入',
};
/**
* 计划内容类型
* @enum {string}
*/
export const PlanContentType = {
SUB_PLANS: '子计划', // 计划包含子计划
TASKS: '任务', // 计划包含任务
};
/**
* 计划执行类型
* @enum {string}
*/
export const PlanExecutionType = {
AUTOMATIC: '自动', // 自动执行 (包含定时和循环)
MANUAL: '手动', // 手动执行
};
/**
* 计划状态
* @enum {string}
*/
export const PlanStatus = {
DISABLED: '已禁用', // 禁用计划
ENABLED: '已启用', // 启用计划
STOPPED: '执行完毕', // 执行完毕
FAILED: '执行失败', // 执行失败
};
/**
* 计划类型
* @enum {string}
*/
export const PlanType = {
CUSTOM: '自定义任务',
SYSTEM: '系统任务',
};
/**
* 传感器类型
* @enum {string}
*/
export const SensorType = {
SIGNAL_METRICS: '信号强度',
BATTERY_LEVEL: '电池电量',
TEMPERATURE: '温度',
HUMIDITY: '湿度',
WEIGHT: '重量',
ONLINE_STATUS: '在线状态',
};
/**
* 任务类型
* @enum {string}
*/
export const TaskType = {
PLAN_ANALYSIS: '计划分析', // 解析Plan的Task列表并添加到待执行队列的特殊任务
WAITING: '等待', // 等待任务
RELEASE_FEED_WEIGHT: '下料', // 下料口释放指定重量任务
FULL_COLLECTION: '全量采集', // 新增的全量采集任务
HEARTBEAT: '心跳检测', // 区域主控心跳检测任务
ALARM_NOTIFICATION: '告警通知', // 告警通知任务
NOTIFICATION_REFRESH: '通知刷新', // 通知刷新任务
DEVICE_THRESHOLD_CHECK: '设备阈值检查', // 设备阈值检查任务
AREA_COLLECTOR_THRESHOLD_CHECK: '区域阈值检查', // 区域阈值检查任务
OTA_CHECK: 'OTA升级检查任务', // OTA升级超时检查任务
};
/**
* 通知渠道类型
* @enum {string}
*/
export const NotifierType = {
SMTP: '邮件',
WECHAT: '企业微信',
LARK: '飞书',
LOG: '日志',
};
/**
* 计划类型过滤器
* @enum {string}
*/
export const PlanTypeFilter = {
ALL: '所有任务',
CUSTOM: '自定义任务',
SYSTEM: '系统任务',
};
/**
* 日志级别, 对应后端的 zapcore.Level
* @enum {number}
*/
export const ZapcoreLevel = {
DEBUG: -1,
INFO: 0,
WARN: 1,
ERROR: 2,
DPANIC: 3,
PANIC: 4,
FATAL: 5,
INVALID: 6,
NUM_LEVELS: 7, // 新增的级别数量
};
/**
* 告警代码
* @enum {string}
*/
export const AlarmCode = {
TEMPERATURE: '温度阈值',
HUMIDITY: '湿度阈值',
WEIGHT: '重量阈值',
BATTERY_LEVEL: '电池电量阈值',
SIGNAL_METRICS: '信号强度阈值',
DEVICE_OFFLINE: '设备离线',
AREA_CONTROLLER_OFFLINE: '区域主控离线',
};
/**
* 告警来源类型
* @enum {string}
*/
export const AlarmSourceType = {
DEVICE: '普通设备',
AREA_CONTROLLER: '区域主控',
SYSTEM: '系统',
};
/**
* AI模型
* @enum {string}
*/
export const AIModel = {
AI_MODEL_NONE: 'None',
AI_MODEL_GEMINI: 'Gemini',
};
/**
* 操作符
* @enum {string}
*/
export const Operator = {
LESS_THAN: '<',
LESS_THAN_OR_EQUAL_TO: '<=',
GREATER_THAN: '>',
GREATER_THAN_OR_EQUAL_TO: '>=',
EQUAL_TO: '=',
NOT_EQUAL_TO: '!=',
};
/**
* 告警严重性等级
* @enum {string}
*/
export const SeverityLevel = {
DEBUG: 'debug',
INFO: 'info',
WARN: 'warn',
ERROR: 'error',
DPANIC: 'dpanic',
PANIC: 'panic',
FATAL: 'fatal',
};
/**
* OTA任务状态
* @enum {string}
*/
export const OTATaskStatus = {
PENDING: '待开始', // 任务已创建,等待下发
IN_PROGRESS: '进行中', // 任务已下发,设备正在处理
SUCCESS: '成功', // 设备报告升级成功,新固件已运行
ALREADY_UP_TO_DATE: '版本已是最新', // 设备报告版本已是最新,未执行升级
FAILED_PREPARATION: '准备升级失败', // 平台在解压、生成清单等文件操作阶段发生错误
FAILED_PRE_CHECK: '预检失败', // 设备报告升级前检查失败 (如拒绝降级、准备分区失败)
FAILED_DOWNLOAD: '下载或校验失败', // 设备报告文件下载或校验失败 (包括清单文件和固件文件)
FAILED_ROLLBACK: '固件回滚', // 新固件启动失败,设备自动回滚
TIMED_OUT: '超时', // 平台在超时后仍未收到最终报告
PLATFORM_ERROR: '平台内部错误', // 平台处理过程中发生的非设备报告错误
STOPPED: '手动停止', // 手动停止
};