枚举改成中文

This commit is contained in:
2025-10-01 20:39:59 +08:00
parent f814e682cf
commit 3cc88a5248
12 changed files with 136 additions and 128 deletions

View File

@@ -1345,8 +1345,8 @@ const docTemplate = `{
"models.DeviceCategory": {
"type": "string",
"enum": [
"actuator",
"sensor"
"执行器",
"传感器"
],
"x-enum-varnames": [
"CategoryActuator",
@@ -1356,8 +1356,8 @@ const docTemplate = `{
"models.PlanContentType": {
"type": "string",
"enum": [
"sub_plans",
"tasks"
"子计划",
"任务"
],
"x-enum-comments": {
"PlanContentTypeSubPlans": "计划包含子计划",
@@ -1375,8 +1375,8 @@ const docTemplate = `{
"models.PlanExecutionType": {
"type": "string",
"enum": [
"automatic",
"manual"
"自动",
"手动"
],
"x-enum-comments": {
"PlanExecutionTypeAutomatic": "自动执行 (包含定时和循环)",
@@ -1392,19 +1392,18 @@ const docTemplate = `{
]
},
"models.PlanStatus": {
"type": "integer",
"format": "int32",
"type": "string",
"enum": [
0,
1,
2,
3
"已禁用",
"已启用",
"执行完毕",
"执行失败"
],
"x-enum-comments": {
"PlanStatusDisabled": "禁用计划",
"PlanStatusEnabled": "启用计划",
"PlanStatusFailed": "执行失败",
"PlanStatusStopeed": "执行完毕"
"PlanStatusStopped": "执行完毕"
},
"x-enum-descriptions": [
"禁用计划",
@@ -1415,18 +1414,18 @@ const docTemplate = `{
"x-enum-varnames": [
"PlanStatusDisabled",
"PlanStatusEnabled",
"PlanStatusStopeed",
"PlanStatusStopped",
"PlanStatusFailed"
]
},
"models.SensorType": {
"type": "string",
"enum": [
"signal_metrics",
"battery_level",
"temperature",
"humidity",
"weight"
"信号强度",
"电池电量",
"温度",
"湿度",
"重量"
],
"x-enum-comments": {
"SensorTypeBatteryLevel": "电池电量",
@@ -1453,9 +1452,9 @@ const docTemplate = `{
"models.TaskType": {
"type": "string",
"enum": [
"plan_analysis",
"waiting",
"release_feed_weight"
"计划分析",
"等待",
"下料"
],
"x-enum-comments": {
"TaskPlanAnalysis": "解析Plan的Task列表并添加到待执行队列的特殊任务",
@@ -1514,7 +1513,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
"example": "自动"
},
"name": {
"type": "string",
@@ -1558,7 +1557,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.PlanContentType"
}
],
"example": "tasks"
"example": "任务"
},
"cron_expression": {
"type": "string",
@@ -1582,7 +1581,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
"example": "自动"
},
"id": {
"type": "integer",
@@ -1598,7 +1597,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.PlanStatus"
}
],
"example": 0
"example": "已启用"
},
"sub_plans": {
"type": "array",
@@ -1663,7 +1662,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.TaskType"
}
],
"example": "waiting"
"example": "等待"
}
}
},
@@ -1700,7 +1699,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.TaskType"
}
],
"example": "waiting"
"example": "等待"
}
}
},
@@ -1725,7 +1724,7 @@ const docTemplate = `{
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
"example": "自动"
},
"name": {
"type": "string",

View File

@@ -1334,8 +1334,8 @@
"models.DeviceCategory": {
"type": "string",
"enum": [
"actuator",
"sensor"
"执行器",
"传感器"
],
"x-enum-varnames": [
"CategoryActuator",
@@ -1345,8 +1345,8 @@
"models.PlanContentType": {
"type": "string",
"enum": [
"sub_plans",
"tasks"
"子计划",
"任务"
],
"x-enum-comments": {
"PlanContentTypeSubPlans": "计划包含子计划",
@@ -1364,8 +1364,8 @@
"models.PlanExecutionType": {
"type": "string",
"enum": [
"automatic",
"manual"
"自动",
"手动"
],
"x-enum-comments": {
"PlanExecutionTypeAutomatic": "自动执行 (包含定时和循环)",
@@ -1381,19 +1381,18 @@
]
},
"models.PlanStatus": {
"type": "integer",
"format": "int32",
"type": "string",
"enum": [
0,
1,
2,
3
"已禁用",
"已启用",
"执行完毕",
"执行失败"
],
"x-enum-comments": {
"PlanStatusDisabled": "禁用计划",
"PlanStatusEnabled": "启用计划",
"PlanStatusFailed": "执行失败",
"PlanStatusStopeed": "执行完毕"
"PlanStatusStopped": "执行完毕"
},
"x-enum-descriptions": [
"禁用计划",
@@ -1404,18 +1403,18 @@
"x-enum-varnames": [
"PlanStatusDisabled",
"PlanStatusEnabled",
"PlanStatusStopeed",
"PlanStatusStopped",
"PlanStatusFailed"
]
},
"models.SensorType": {
"type": "string",
"enum": [
"signal_metrics",
"battery_level",
"temperature",
"humidity",
"weight"
"信号强度",
"电池电量",
"温度",
"湿度",
"重量"
],
"x-enum-comments": {
"SensorTypeBatteryLevel": "电池电量",
@@ -1442,9 +1441,9 @@
"models.TaskType": {
"type": "string",
"enum": [
"plan_analysis",
"waiting",
"release_feed_weight"
"计划分析",
"等待",
"下料"
],
"x-enum-comments": {
"TaskPlanAnalysis": "解析Plan的Task列表并添加到待执行队列的特殊任务",
@@ -1503,7 +1502,7 @@
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
"example": "自动"
},
"name": {
"type": "string",
@@ -1547,7 +1546,7 @@
"$ref": "#/definitions/models.PlanContentType"
}
],
"example": "tasks"
"example": "任务"
},
"cron_expression": {
"type": "string",
@@ -1571,7 +1570,7 @@
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
"example": "自动"
},
"id": {
"type": "integer",
@@ -1587,7 +1586,7 @@
"$ref": "#/definitions/models.PlanStatus"
}
],
"example": 0
"example": "已启用"
},
"sub_plans": {
"type": "array",
@@ -1652,7 +1651,7 @@
"$ref": "#/definitions/models.TaskType"
}
],
"example": "waiting"
"example": "等待"
}
}
},
@@ -1689,7 +1688,7 @@
"$ref": "#/definitions/models.TaskType"
}
],
"example": "waiting"
"example": "等待"
}
}
},
@@ -1714,7 +1713,7 @@
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
"example": "自动"
},
"name": {
"type": "string",

View File

@@ -229,16 +229,16 @@ definitions:
type: object
models.DeviceCategory:
enum:
- actuator
- sensor
- 执行器
- 传感器
type: string
x-enum-varnames:
- CategoryActuator
- CategorySensor
models.PlanContentType:
enum:
- sub_plans
- tasks
- 子计划
- 任务
type: string
x-enum-comments:
PlanContentTypeSubPlans: 计划包含子计划
@@ -251,8 +251,8 @@ definitions:
- PlanContentTypeTasks
models.PlanExecutionType:
enum:
- automatic
- manual
- 自动
- 手动
type: string
x-enum-comments:
PlanExecutionTypeAutomatic: 自动执行 (包含定时和循环)
@@ -265,17 +265,16 @@ definitions:
- PlanExecutionTypeManual
models.PlanStatus:
enum:
- 0
- 1
- 2
- 3
format: int32
type: integer
- 已禁用
- 已启用
- 执行完毕
- 执行失败
type: string
x-enum-comments:
PlanStatusDisabled: 禁用计划
PlanStatusEnabled: 启用计划
PlanStatusFailed: 执行失败
PlanStatusStopeed: 执行完毕
PlanStatusStopped: 执行完毕
x-enum-descriptions:
- 禁用计划
- 启用计划
@@ -284,15 +283,15 @@ definitions:
x-enum-varnames:
- PlanStatusDisabled
- PlanStatusEnabled
- PlanStatusStopeed
- PlanStatusStopped
- PlanStatusFailed
models.SensorType:
enum:
- signal_metrics
- battery_level
- temperature
- humidity
- weight
- 信号强度
- 电池电量
- 温度
- 湿度
- 重量
type: string
x-enum-comments:
SensorTypeBatteryLevel: 电池电量
@@ -314,9 +313,9 @@ definitions:
- SensorTypeWeight
models.TaskType:
enum:
- plan_analysis
- waiting
- release_feed_weight
- 计划分析
- 等待
- 下料
type: string
x-enum-comments:
TaskPlanAnalysis: 解析Plan的Task列表并添加到待执行队列的特殊任务
@@ -355,7 +354,7 @@ definitions:
execution_type:
allOf:
- $ref: '#/definitions/models.PlanExecutionType'
example: automatic
example: 自动
name:
example: 猪舍温度控制计划
type: string
@@ -386,7 +385,7 @@ definitions:
content_type:
allOf:
- $ref: '#/definitions/models.PlanContentType'
example: tasks
example: 任务
cron_expression:
example: 0 0 6 * * *
type: string
@@ -402,7 +401,7 @@ definitions:
execution_type:
allOf:
- $ref: '#/definitions/models.PlanExecutionType'
example: automatic
example: 自动
id:
example: 1
type: integer
@@ -412,7 +411,7 @@ definitions:
status:
allOf:
- $ref: '#/definitions/models.PlanStatus'
example: 0
example: 已启用
sub_plans:
items:
$ref: '#/definitions/plan.SubPlanResponse'
@@ -456,7 +455,7 @@ definitions:
type:
allOf:
- $ref: '#/definitions/models.TaskType'
example: waiting
example: 等待
type: object
plan.TaskResponse:
properties:
@@ -481,7 +480,7 @@ definitions:
type:
allOf:
- $ref: '#/definitions/models.TaskType'
example: waiting
example: 等待
type: object
plan.UpdatePlanRequest:
properties:
@@ -497,7 +496,7 @@ definitions:
execution_type:
allOf:
- $ref: '#/definitions/models.PlanExecutionType'
example: automatic
example: 自动
name:
example: 猪舍温度控制计划V2
type: string

View File

@@ -19,7 +19,7 @@ import (
type CreatePlanRequest struct {
Name string `json:"name" binding:"required" example:"猪舍温度控制计划"`
Description string `json:"description" example:"根据温度自动调节风扇和加热器"`
ExecutionType models.PlanExecutionType `json:"execution_type" binding:"required" example:"automatic"`
ExecutionType models.PlanExecutionType `json:"execution_type" binding:"required" example:"自动"`
ExecuteNum uint `json:"execute_num,omitempty" example:"10"`
CronExpression string `json:"cron_expression" example:"0 0 6 * * *"`
SubPlanIDs []uint `json:"sub_plan_ids,omitempty"`
@@ -31,12 +31,12 @@ type PlanResponse struct {
ID uint `json:"id" example:"1"`
Name string `json:"name" example:"猪舍温度控制计划"`
Description string `json:"description" example:"根据温度自动调节风扇和加热器"`
ExecutionType models.PlanExecutionType `json:"execution_type" example:"automatic"`
Status models.PlanStatus `json:"status" example:"0"`
ExecutionType models.PlanExecutionType `json:"execution_type" example:"自动"`
Status models.PlanStatus `json:"status" example:"已启用"`
ExecuteNum uint `json:"execute_num" example:"10"`
ExecuteCount uint `json:"execute_count" example:"0"`
CronExpression string `json:"cron_expression" example:"0 0 6 * * *"`
ContentType models.PlanContentType `json:"content_type" example:"tasks"`
ContentType models.PlanContentType `json:"content_type" example:"任务"`
SubPlans []SubPlanResponse `json:"sub_plans,omitempty"`
Tasks []TaskResponse `json:"tasks,omitempty"`
}
@@ -51,7 +51,7 @@ type ListPlansResponse struct {
type UpdatePlanRequest struct {
Name string `json:"name" example:"猪舍温度控制计划V2"`
Description string `json:"description" example:"更新后的描述"`
ExecutionType models.PlanExecutionType `json:"execution_type" example:"automatic"`
ExecutionType models.PlanExecutionType `json:"execution_type" example:"自动"`
ExecuteNum uint `json:"execute_num,omitempty" example:"10"`
CronExpression string `json:"cron_expression" example:"0 0 6 * * *"`
SubPlanIDs []uint `json:"sub_plan_ids,omitempty"`
@@ -72,7 +72,7 @@ type TaskRequest struct {
Name string `json:"name" example:"打开风扇"`
Description string `json:"description" example:"打开1号风扇"`
ExecutionOrder int `json:"execution_order" example:"1"`
Type models.TaskType `json:"type" example:"waiting"`
Type models.TaskType `json:"type" example:"等待"`
Parameters map[string]interface{} `json:"parameters,omitempty"`
}
@@ -83,7 +83,7 @@ type TaskResponse struct {
Name string `json:"name" example:"打开风扇"`
Description string `json:"description" example:"打开1号风扇"`
ExecutionOrder int `json:"execution_order" example:"1"`
Type models.TaskType `json:"type" example:"waiting"`
Type models.TaskType `json:"type" example:"等待"`
Parameters map[string]interface{} `json:"parameters,omitempty"`
}

View File

@@ -435,7 +435,7 @@ func (s *Scheduler) handlePlanCompletion(planLogID uint) {
// 如果是自动计划且达到执行次数上限,或计划是手动类型,则更新计划状态为已停止
if (plan.ExecutionType == models.PlanExecutionTypeAutomatic && plan.ExecuteNum > 0 && newExecuteCount >= plan.ExecuteNum) || plan.ExecutionType == models.PlanExecutionTypeManual {
newStatus = models.PlanStatusStopeed
newStatus = models.PlanStatusStopped
s.logger.Infof("计划 %d 已完成执行,状态更新为 '执行完毕'。", topLevelPlanID)
}

View File

@@ -263,7 +263,7 @@ func (app *Application) initializePendingTasks(
if plan.ExecutionType == models.PlanExecutionTypeManual ||
(plan.ExecutionType == models.PlanExecutionTypeAutomatic && plan.ExecuteCount >= plan.ExecuteNum) {
// 更新计划状态为已停止
plan.Status = models.PlanStatusStopeed
plan.Status = models.PlanStatusStopped
logger.Infof("计划 #%d 状态已更新为 '执行完毕'。", plan.ID)
}

View File

@@ -15,9 +15,9 @@ type DeviceCategory string
const (
// CategoryActuator 代表一个执行器,可以被控制(例如:风机、阀门)
CategoryActuator DeviceCategory = "actuator"
CategoryActuator DeviceCategory = "执行器"
// CategorySensor 代表一个传感器,用于报告测量值(例如:温度计)
CategorySensor DeviceCategory = "sensor"
CategorySensor DeviceCategory = "传感器"
)
// ValueDescriptor 描述了传感器可以报告的单个数值。

View File

@@ -17,11 +17,11 @@ const (
type ExecutionStatus string
const (
ExecutionStatusStarted ExecutionStatus = "started" // 开始执行
ExecutionStatusCompleted ExecutionStatus = "completed" // 执行完成
ExecutionStatusFailed ExecutionStatus = "failed" // 执行失败
ExecutionStatusCancelled ExecutionStatus = "cancelled" // 执行取消
ExecutionStatusWaiting ExecutionStatus = "waiting" // 等待执行 (用于预写日志)
ExecutionStatusStarted ExecutionStatus = "已开始" // 开始执行
ExecutionStatusCompleted ExecutionStatus = "已完成" // 执行完成
ExecutionStatusFailed ExecutionStatus = "失败" // 执行失败
ExecutionStatusCancelled ExecutionStatus = "已取消" // 执行取消
ExecutionStatusWaiting ExecutionStatus = "等待中" // 等待执行 (用于预写日志)
)
// PlanExecutionLog 记录整个计划的一次执行历史
@@ -92,9 +92,9 @@ func (log *TaskExecutionLog) AfterFind(tx *gorm.DB) (err error) {
type PendingCollectionStatus string
const (
PendingStatusPending PendingCollectionStatus = "pending" // 请求已发送,等待设备响应
PendingStatusFulfilled PendingCollectionStatus = "fulfilled" // 已收到设备响应并成功处理
PendingStatusTimedOut PendingCollectionStatus = "timed_out" // 请求超时,未收到设备响应
PendingStatusPending PendingCollectionStatus = "等待中" // 请求已发送,等待设备响应
PendingStatusFulfilled PendingCollectionStatus = "已完成" // 已收到设备响应并成功处理
PendingStatusTimedOut PendingCollectionStatus = "已超时" // 请求超时,未收到设备响应
)
// DeviceCommandLog 记录所有“发后即忘”的下行指令日志。
@@ -160,8 +160,8 @@ func (PendingCollection) TableName() string {
type AuditStatus string
const (
AuditStatusSuccess AuditStatus = "success"
AuditStatusFailed AuditStatus = "failed"
AuditStatusSuccess AuditStatus = "成功"
AuditStatusFailed AuditStatus = "失败"
)
// --- 审计日志相关上下文键 ---

View File

@@ -0,0 +1,5 @@
package models
/*
饲料和饲喂相关的模型
*/

View File

@@ -0,0 +1,5 @@
package models
/*
和猪只本身相关的模型
*/

View File

@@ -15,25 +15,25 @@ import (
type PlanExecutionType string
const (
PlanExecutionTypeAutomatic PlanExecutionType = "automatic" // 自动执行 (包含定时和循环)
PlanExecutionTypeManual PlanExecutionType = "manual" // 手动执行
PlanExecutionTypeAutomatic PlanExecutionType = "自动" // 自动执行 (包含定时和循环)
PlanExecutionTypeManual PlanExecutionType = "手动" // 手动执行
)
// PlanContentType 定义了计划包含的内容类型
type PlanContentType string
const (
PlanContentTypeSubPlans PlanContentType = "sub_plans" // 计划包含子计划
PlanContentTypeTasks PlanContentType = "tasks" // 计划包含任务
PlanContentTypeSubPlans PlanContentType = "子计划" // 计划包含子计划
PlanContentTypeTasks PlanContentType = "任务" // 计划包含任务
)
// TaskType 定义了任务的类型,每个类型可以对应 task 包中的一个具体动作
type TaskType string
const (
TaskPlanAnalysis TaskType = "plan_analysis" // 解析Plan的Task列表并添加到待执行队列的特殊任务
TaskTypeWaiting TaskType = "waiting" // 等待任务
TaskTypeReleaseFeedWeight TaskType = "release_feed_weight" // 下料口释放指定重量任务
TaskPlanAnalysis TaskType = "计划分析" // 解析Plan的Task列表并添加到待执行队列的特殊任务
TaskTypeWaiting TaskType = "等待" // 等待任务
TaskTypeReleaseFeedWeight TaskType = "下料" // 下料口释放指定重量任务
)
// -- Task Parameters --
@@ -42,13 +42,14 @@ const (
ParamsPlanID = "plan_id"
)
type PlanStatus uint8
// PlanStatus 定义了计划的状态
type PlanStatus string
const (
PlanStatusDisabled PlanStatus = 0 // 禁用计划
PlanStatusEnabled PlanStatus = 1 // 启用计划
PlanStatusStopeed PlanStatus = 2 // 执行完毕
PlanStatusFailed PlanStatus = 3 // 执行失败
PlanStatusDisabled PlanStatus = "已禁用" // 禁用计划
PlanStatusEnabled PlanStatus = "已启用" // 启用计划
PlanStatusStopped PlanStatus = "执行完毕" // 执行完毕
PlanStatusFailed PlanStatus = "执行失败" // 执行失败
)
// Plan 代表系统中的一个计划,可以包含子计划或任务
@@ -58,7 +59,7 @@ type Plan struct {
Name string `gorm:"not null" json:"name"`
Description string `json:"description"`
ExecutionType PlanExecutionType `gorm:"not null;index" json:"execution_type"`
Status PlanStatus `gorm:"default:0;index" json:"status"` // 计划是否被启动
Status PlanStatus `gorm:"default:'已禁用';index" json:"status"` // 计划是否被启动
ExecuteNum uint `gorm:"default:0" json:"execute_num"` // 计划预期执行次数
ExecuteCount uint `gorm:"default:0" json:"execute_count"` // 执行计数器

View File

@@ -10,11 +10,11 @@ import (
type SensorType string
const (
SensorTypeSignalMetrics SensorType = "signal_metrics" // 信号强度
SensorTypeBatteryLevel SensorType = "battery_level" // 电池电量
SensorTypeTemperature SensorType = "temperature" // 温度
SensorTypeHumidity SensorType = "humidity" // 湿度
SensorTypeWeight SensorType = "weight" // 重量
SensorTypeSignalMetrics SensorType = "信号强度" // 信号强度
SensorTypeBatteryLevel SensorType = "电池电量" // 电池电量
SensorTypeTemperature SensorType = "温度" // 温度
SensorTypeHumidity SensorType = "湿度" // 湿度
SensorTypeWeight SensorType = "重量" // 重量
)
// SignalMetrics 存储信号强度数据