389 lines
8.8 KiB
JavaScript
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: '手动停止', // 手动停止
|
|
};
|