definitions: controller.Response: properties: code: allOf: - $ref: '#/definitions/controller.ResponseCode' description: 业务状态码 data: description: 业务数据 message: description: 提示信息 type: string type: object controller.ResponseCode: enum: - 2000 - 2001 - 4000 - 4001 - 4004 - 4009 - 5000 - 5003 type: integer x-enum-comments: CodeBadRequest: 请求参数错误 CodeConflict: 资源冲突 CodeCreated: 创建成功 CodeInternalError: 服务器内部错误 CodeNotFound: 资源未找到 CodeServiceUnavailable: 服务不可用 CodeSuccess: 操作成功 CodeUnauthorized: 未授权 x-enum-descriptions: - 操作成功 - 创建成功 - 请求参数错误 - 未授权 - 资源未找到 - 资源冲突 - 服务器内部错误 - 服务不可用 x-enum-varnames: - CodeSuccess - CodeCreated - CodeBadRequest - CodeUnauthorized - CodeNotFound - CodeConflict - CodeInternalError - CodeServiceUnavailable dto.AreaControllerResponse: properties: created_at: type: string id: type: integer location: type: string name: type: string network_id: type: string properties: additionalProperties: true type: object status: type: string updated_at: type: string type: object dto.AssignEmptyPensToBatchRequest: type: object dto.BuyPigsRequest: properties: penID: description: 猪栏ID type: integer quantity: description: 买入猪只数量 minimum: 1 type: integer remarks: description: 备注 type: string totalPrice: description: 总价 minimum: 0 type: number tradeDate: description: 交易日期 type: string traderName: description: 交易方名称 type: string unitPrice: description: 单价 minimum: 0 type: number required: - penID - quantity - totalPrice - tradeDate - traderName - unitPrice type: object dto.CreateAreaControllerRequest: properties: location: type: string name: type: string network_id: type: string properties: additionalProperties: true type: object required: - name - network_id type: object dto.CreateDeviceRequest: properties: area_controller_id: type: integer device_template_id: type: integer location: type: string name: type: string properties: additionalProperties: true type: object required: - area_controller_id - device_template_id - name type: object dto.CreateDeviceTemplateRequest: properties: category: $ref: '#/definitions/models.DeviceCategory' commands: additionalProperties: true type: object description: type: string manufacturer: type: string name: type: string values: items: $ref: '#/definitions/models.ValueDescriptor' type: array required: - category - commands - name type: object dto.CreatePenRequest: properties: capacity: type: integer house_id: type: integer pen_number: type: string required: - capacity - house_id - pen_number type: object dto.CreatePigHouseRequest: properties: description: type: string name: type: string required: - name type: object dto.CreatePlanRequest: properties: cron_expression: example: 0 0 6 * * * type: string description: example: 根据温度自动调节风扇和加热器 type: string execute_num: example: 10 type: integer execution_type: allOf: - $ref: '#/definitions/models.PlanExecutionType' example: 自动 name: example: 猪舍温度控制计划 type: string sub_plan_ids: items: type: integer type: array tasks: items: $ref: '#/definitions/dto.TaskRequest' type: array required: - execution_type - name type: object dto.CreateUserRequest: properties: password: example: password123 type: string username: example: newuser type: string required: - password - username type: object dto.CreateUserResponse: properties: id: example: 1 type: integer username: example: newuser type: string type: object dto.DeviceCommandLogDTO: properties: acknowledged_at: type: string device_id: type: integer message_id: type: string received_success: type: boolean sent_at: type: string type: object dto.DeviceResponse: properties: area_controller_id: type: integer area_controller_name: type: string created_at: type: string device_template_id: type: integer device_template_name: type: string id: type: integer location: type: string name: type: string properties: additionalProperties: true type: object updated_at: type: string type: object dto.DeviceTemplateResponse: properties: category: $ref: '#/definitions/models.DeviceCategory' commands: additionalProperties: true type: object created_at: type: string description: type: string id: type: integer manufacturer: type: string name: type: string updated_at: type: string values: items: $ref: '#/definitions/models.ValueDescriptor' type: array type: object dto.FeedFormulaDTO: properties: id: type: integer name: type: string type: object dto.FeedUsageRecordDTO: properties: amount: type: number feed_formula: $ref: '#/definitions/dto.FeedFormulaDTO' feed_formula_id: type: integer id: type: integer operator_id: type: integer pen: $ref: '#/definitions/dto.PenDTO' pen_id: type: integer recorded_at: type: string remarks: type: string type: object dto.ListDeviceCommandLogResponse: properties: list: items: $ref: '#/definitions/dto.DeviceCommandLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListFeedUsageRecordResponse: properties: list: items: $ref: '#/definitions/dto.FeedUsageRecordDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListMedicationLogResponse: properties: list: items: $ref: '#/definitions/dto.MedicationLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPendingCollectionResponse: properties: list: items: $ref: '#/definitions/dto.PendingCollectionDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPigBatchLogResponse: properties: list: items: $ref: '#/definitions/dto.PigBatchLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPigPurchaseResponse: properties: list: items: $ref: '#/definitions/dto.PigPurchaseDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPigSaleResponse: properties: list: items: $ref: '#/definitions/dto.PigSaleDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPigSickLogResponse: properties: list: items: $ref: '#/definitions/dto.PigSickLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPigTransferLogResponse: properties: list: items: $ref: '#/definitions/dto.PigTransferLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListPlanExecutionLogResponse: properties: list: items: $ref: '#/definitions/dto.PlanExecutionLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListRawMaterialPurchaseResponse: properties: list: items: $ref: '#/definitions/dto.RawMaterialPurchaseDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListRawMaterialStockLogResponse: properties: list: items: $ref: '#/definitions/dto.RawMaterialStockLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListSensorDataResponse: properties: list: items: $ref: '#/definitions/dto.SensorDataDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListTaskExecutionLogResponse: properties: list: items: $ref: '#/definitions/dto.TaskExecutionLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListUserActionLogResponse: properties: list: items: $ref: '#/definitions/dto.UserActionLogDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListWeighingBatchResponse: properties: list: items: $ref: '#/definitions/dto.WeighingBatchDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.ListWeighingRecordResponse: properties: list: items: $ref: '#/definitions/dto.WeighingRecordDTO' type: array pagination: $ref: '#/definitions/dto.PaginationDTO' type: object dto.LoginRequest: properties: identifier: description: Identifier 可以是用户名、邮箱、手机号、微信号或飞书账号 example: testuser type: string password: example: password123 type: string required: - identifier - password type: object dto.LoginResponse: properties: id: example: 1 type: integer token: example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... type: string username: example: testuser type: string type: object dto.ManualControlDeviceRequest: properties: action: description: Action 不传表示这是一个传感器, 会触发一次采集 type: string type: object dto.MedicationDTO: properties: id: type: integer name: type: string type: object dto.MedicationLogDTO: properties: description: type: string dosage_used: type: number happened_at: type: string id: type: integer medication: $ref: '#/definitions/dto.MedicationDTO' medication_id: type: integer operator_id: type: integer pig_batch_id: type: integer reason: $ref: '#/definitions/models.MedicationReasonType' target_count: type: integer type: object dto.MovePigsIntoPenRequest: properties: quantity: description: 移入猪只数量 minimum: 1 type: integer remarks: description: 备注 type: string toPenID: description: 目标猪栏ID type: integer required: - quantity - toPenID type: object dto.PaginationDTO: properties: page: type: integer pageSize: type: integer total: type: integer type: object dto.PenDTO: properties: id: type: integer name: type: string type: object dto.PenResponse: properties: capacity: type: integer current_pig_count: type: integer house_id: type: integer id: type: integer pen_number: type: string pig_batch_id: type: integer status: $ref: '#/definitions/models.PenStatus' type: object dto.PendingCollectionDTO: properties: command_metadata: items: type: integer type: array correlation_id: type: string created_at: type: string device_id: type: integer fulfilled_at: type: string status: $ref: '#/definitions/models.PendingCollectionStatus' type: object dto.PigBatchCreateDTO: properties: batch_number: description: 批次编号,必填 type: string initial_count: description: 初始数量,必填,最小为1 minimum: 1 type: integer origin_type: allOf: - $ref: '#/definitions/models.PigBatchOriginType' description: 批次来源,必填 start_date: description: 批次开始日期,必填 type: string status: allOf: - $ref: '#/definitions/models.PigBatchStatus' description: 批次状态,必填 required: - batch_number - initial_count - origin_type - start_date - status type: object dto.PigBatchLogDTO: properties: after_count: type: integer before_count: type: integer change_count: type: integer change_type: $ref: '#/definitions/models.LogChangeType' created_at: type: string happened_at: type: string id: type: integer operator_id: type: integer pig_batch_id: type: integer reason: type: string updated_at: type: string type: object dto.PigBatchResponseDTO: properties: batch_number: description: 批次编号 type: string create_time: description: 创建时间 type: string currentTotalPigsInPens: description: 当前存栏总数 type: integer currentTotalQuantity: description: 当前总数 type: integer end_date: description: 批次结束日期 type: string id: description: 批次ID type: integer initial_count: description: 初始数量 type: integer is_active: description: 是否活跃 type: boolean origin_type: allOf: - $ref: '#/definitions/models.PigBatchOriginType' description: 批次来源 start_date: description: 批次开始日期 type: string status: allOf: - $ref: '#/definitions/models.PigBatchStatus' description: 批次状态 update_time: description: 更新时间 type: string type: object dto.PigBatchUpdateDTO: properties: batch_number: description: 批次编号,可选 type: string end_date: description: 批次结束日期,可选 type: string initial_count: description: 初始数量,可选 type: integer origin_type: allOf: - $ref: '#/definitions/models.PigBatchOriginType' description: 批次来源,可选 start_date: description: 批次开始日期,可选 type: string status: allOf: - $ref: '#/definitions/models.PigBatchStatus' description: 批次状态,可选 type: object dto.PigHouseResponse: properties: description: type: string id: type: integer name: type: string type: object dto.PigPurchaseDTO: properties: created_at: type: string id: type: integer operator_id: type: integer pig_batch_id: type: integer purchase_date: type: string quantity: type: integer remarks: type: string supplier: type: string total_price: type: number unit_price: type: number updated_at: type: string type: object dto.PigSaleDTO: properties: buyer: type: string created_at: type: string id: type: integer operator_id: type: integer pig_batch_id: type: integer quantity: type: integer remarks: type: string sale_date: type: string total_price: type: number unit_price: type: number updated_at: type: string type: object dto.PigSickLogDTO: properties: after_count: type: integer before_count: type: integer change_count: type: integer created_at: type: string happened_at: type: string id: type: integer operator_id: type: integer pen_id: type: integer pig_batch_id: type: integer reason: $ref: '#/definitions/models.PigBatchSickPigReasonType' remarks: type: string treatment_location: $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation' updated_at: type: string type: object dto.PigTransferLogDTO: properties: correlation_id: type: string created_at: type: string id: type: integer operator_id: type: integer pen_id: type: integer pig_batch_id: type: integer quantity: type: integer remarks: type: string transfer_time: type: string type: $ref: '#/definitions/models.PigTransferType' updated_at: type: string type: object dto.PlanExecutionLogDTO: properties: created_at: type: string ended_at: type: string error: type: string id: type: integer plan_id: type: integer started_at: type: string status: $ref: '#/definitions/models.ExecutionStatus' updated_at: type: string type: object dto.PlanResponse: properties: content_type: allOf: - $ref: '#/definitions/models.PlanContentType' example: 任务 cron_expression: example: 0 0 6 * * * type: string description: example: 根据温度自动调节风扇和加热器 type: string execute_count: example: 0 type: integer execute_num: example: 10 type: integer execution_type: allOf: - $ref: '#/definitions/models.PlanExecutionType' example: 自动 id: example: 1 type: integer name: example: 猪舍温度控制计划 type: string status: allOf: - $ref: '#/definitions/models.PlanStatus' example: 已启用 sub_plans: items: $ref: '#/definitions/dto.SubPlanResponse' type: array tasks: items: $ref: '#/definitions/dto.TaskResponse' type: array type: object dto.RawMaterialDTO: properties: id: type: integer name: type: string type: object dto.RawMaterialPurchaseDTO: properties: amount: type: number created_at: type: string id: type: integer purchase_date: type: string raw_material: $ref: '#/definitions/dto.RawMaterialDTO' raw_material_id: type: integer supplier: type: string total_price: type: number unit_price: type: number type: object dto.RawMaterialStockLogDTO: properties: change_amount: type: number happened_at: type: string id: type: integer raw_material_id: type: integer remarks: type: string source_id: type: integer source_type: $ref: '#/definitions/models.StockLogSourceType' type: object dto.ReclassifyPenToNewBatchRequest: properties: penID: description: 待划拨的猪栏ID type: integer remarks: description: 备注 type: string toBatchID: description: 目标猪批次ID type: integer required: - penID - toBatchID type: object dto.RecordCullRequest: properties: happenedAt: description: 发生时间 type: string penID: description: 猪栏ID type: integer quantity: description: 淘汰猪数量 minimum: 1 type: integer remarks: description: 备注 type: string required: - happenedAt - penID - quantity type: object dto.RecordDeathRequest: properties: happenedAt: description: 发生时间 type: string penID: description: 猪栏ID type: integer quantity: description: 死亡猪数量 minimum: 1 type: integer remarks: description: 备注 type: string required: - happenedAt - penID - quantity type: object dto.RecordSickPigCullRequest: properties: happenedAt: description: 发生时间 type: string penID: description: 猪栏ID type: integer quantity: description: 淘汰猪数量 minimum: 1 type: integer remarks: description: 备注 type: string treatmentLocation: allOf: - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation' description: 治疗地点 required: - happenedAt - penID - quantity - treatmentLocation type: object dto.RecordSickPigDeathRequest: properties: happenedAt: description: 发生时间 type: string penID: description: 猪栏ID type: integer quantity: description: 死亡猪数量 minimum: 1 type: integer remarks: description: 备注 type: string treatmentLocation: allOf: - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation' description: 治疗地点 required: - happenedAt - penID - quantity - treatmentLocation type: object dto.RecordSickPigRecoveryRequest: properties: happenedAt: description: 发生时间 type: string penID: description: 猪栏ID type: integer quantity: description: 康复猪数量 minimum: 1 type: integer remarks: description: 备注 type: string treatmentLocation: allOf: - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation' description: 治疗地点 required: - happenedAt - penID - quantity - treatmentLocation type: object dto.RecordSickPigsRequest: properties: happenedAt: description: 发生时间 type: string penID: description: 猪栏ID type: integer quantity: description: 病猪数量 minimum: 1 type: integer remarks: description: 备注 type: string treatmentLocation: allOf: - $ref: '#/definitions/models.PigBatchSickPigTreatmentLocation' description: 治疗地点 required: - happenedAt - penID - quantity - treatmentLocation type: object dto.SellPigsRequest: properties: penID: description: 猪栏ID type: integer quantity: description: 卖出猪只数量 minimum: 1 type: integer remarks: description: 备注 type: string totalPrice: description: 总价 minimum: 0 type: number tradeDate: description: 交易日期 type: string traderName: description: 交易方名称 type: string unitPrice: description: 单价 minimum: 0 type: number required: - penID - quantity - totalPrice - tradeDate - traderName - unitPrice type: object dto.SendTestNotificationRequest: properties: type: allOf: - $ref: '#/definitions/notify.NotifierType' description: Type 指定要测试的通知渠道 required: - type type: object dto.SensorDataDTO: properties: data: items: type: integer type: array device_id: type: integer regional_controller_id: type: integer sensor_type: $ref: '#/definitions/models.SensorType' time: type: string type: object dto.SubPlanResponse: properties: child_plan: $ref: '#/definitions/dto.PlanResponse' child_plan_id: example: 2 type: integer execution_order: example: 1 type: integer id: example: 1 type: integer parent_plan_id: example: 1 type: integer type: object dto.TaskDTO: properties: description: type: string id: type: integer name: type: string type: object dto.TaskExecutionLogDTO: properties: created_at: type: string ended_at: type: string id: type: integer output: type: string plan_execution_log_id: type: integer started_at: type: string status: $ref: '#/definitions/models.ExecutionStatus' task: allOf: - $ref: '#/definitions/dto.TaskDTO' description: 嵌套的任务信息 task_id: type: integer updated_at: type: string type: object dto.TaskRequest: properties: description: example: 打开1号风扇 type: string execution_order: example: 1 type: integer name: example: 打开风扇 type: string parameters: additionalProperties: true type: object type: allOf: - $ref: '#/definitions/models.TaskType' example: 等待 type: object dto.TaskResponse: properties: description: example: 打开1号风扇 type: string execution_order: example: 1 type: integer id: example: 1 type: integer name: example: 打开风扇 type: string parameters: additionalProperties: true type: object plan_id: example: 1 type: integer type: allOf: - $ref: '#/definitions/models.TaskType' example: 等待 type: object dto.TransferPigsAcrossBatchesRequest: properties: destBatchID: description: 目标猪批次ID type: integer fromPenID: description: 源猪栏ID type: integer quantity: description: 调栏猪只数量 minimum: 1 type: integer remarks: description: 备注 type: string toPenID: description: 目标猪栏ID type: integer required: - destBatchID - fromPenID - quantity - toPenID type: object dto.TransferPigsWithinBatchRequest: properties: fromPenID: description: 源猪栏ID type: integer quantity: description: 调栏猪只数量 minimum: 1 type: integer remarks: description: 备注 type: string toPenID: description: 目标猪栏ID type: integer required: - fromPenID - quantity - toPenID type: object dto.UpdateAreaControllerRequest: properties: location: type: string name: type: string network_id: type: string properties: additionalProperties: true type: object required: - name - network_id type: object dto.UpdateDeviceRequest: properties: area_controller_id: type: integer device_template_id: type: integer location: type: string name: type: string properties: additionalProperties: true type: object required: - area_controller_id - device_template_id - name type: object dto.UpdateDeviceTemplateRequest: properties: category: $ref: '#/definitions/models.DeviceCategory' commands: additionalProperties: true type: object description: type: string manufacturer: type: string name: type: string values: items: $ref: '#/definitions/models.ValueDescriptor' type: array required: - category - commands - name type: object dto.UpdatePenRequest: properties: capacity: type: integer house_id: type: integer pen_number: type: string status: allOf: - $ref: '#/definitions/models.PenStatus' description: 添加oneof校验 enum: - 空闲 - 使用中 - 病猪栏 - 康复栏 - 清洗消毒 - 维修中 required: - capacity - house_id - pen_number - status type: object dto.UpdatePenStatusRequest: properties: status: allOf: - $ref: '#/definitions/models.PenStatus' enum: - 空闲 - 使用中 - 病猪栏 - 康复栏 - 清洗消毒 - 维修中 example: 病猪栏 required: - status type: object dto.UpdatePigHouseRequest: properties: description: type: string name: type: string required: - name type: object dto.UpdatePlanRequest: properties: cron_expression: example: 0 0 6 * * * type: string description: example: 更新后的描述 type: string execute_num: example: 10 type: integer execution_type: allOf: - $ref: '#/definitions/models.PlanExecutionType' example: 自动 name: example: 猪舍温度控制计划V2 type: string sub_plan_ids: items: type: integer type: array tasks: items: $ref: '#/definitions/dto.TaskRequest' type: array required: - execution_type type: object dto.UserActionLogDTO: properties: action_type: type: string description: type: string http_method: type: string http_path: type: string id: type: integer result_details: type: string source_ip: type: string status: $ref: '#/definitions/models.AuditStatus' target_resource: items: type: integer type: array time: type: string user_id: type: integer username: type: string type: object dto.WeighingBatchDTO: properties: created_at: type: string description: type: string id: type: integer pig_batch_id: type: integer updated_at: type: string weighing_time: type: string type: object dto.WeighingRecordDTO: properties: created_at: type: string id: type: integer operator_id: type: integer pen_id: type: integer remark: type: string updated_at: type: string weighing_batch_id: type: integer weighing_time: type: string weight: type: number type: object models.AuditStatus: enum: - 成功 - 失败 type: string x-enum-varnames: - AuditStatusSuccess - AuditStatusFailed models.DeviceCategory: enum: - 执行器 - 传感器 type: string x-enum-varnames: - CategoryActuator - CategorySensor models.ExecutionStatus: enum: - 已开始 - 已完成 - 失败 - 已取消 - 等待中 type: string x-enum-comments: ExecutionStatusCancelled: 执行取消 ExecutionStatusCompleted: 执行完成 ExecutionStatusFailed: 执行失败 ExecutionStatusStarted: 开始执行 ExecutionStatusWaiting: 等待执行 (用于预写日志) x-enum-descriptions: - 开始执行 - 执行完成 - 执行失败 - 执行取消 - 等待执行 (用于预写日志) x-enum-varnames: - ExecutionStatusStarted - ExecutionStatusCompleted - ExecutionStatusFailed - ExecutionStatusCancelled - ExecutionStatusWaiting models.LogChangeType: enum: - 死亡 - 淘汰 - 销售 - 购买 - 转入 - 转出 - 盘点校正 type: string x-enum-varnames: - ChangeTypeDeath - ChangeTypeCull - ChangeTypeSale - ChangeTypeBuy - ChangeTypeTransferIn - ChangeTypeTransferOut - ChangeTypeCorrection models.MedicationReasonType: enum: - 预防 - 治疗 - 保健 type: string x-enum-varnames: - ReasonTypePreventive - ReasonTypeTreatment - ReasonTypeHealthCare models.PenStatus: enum: - 空闲 - 使用中 - 病猪栏 - 康复栏 - 清洗消毒 - 维修中 type: string x-enum-varnames: - PenStatusEmpty - PenStatusOccupied - PenStatusSickPen - PenStatusRecovering - PenStatusCleaning - PenStatusUnderMaint models.PendingCollectionStatus: enum: - 等待中 - 已完成 - 已超时 type: string x-enum-comments: PendingStatusFulfilled: 已收到设备响应并成功处理 PendingStatusPending: 请求已发送,等待设备响应 PendingStatusTimedOut: 请求超时,未收到设备响应 x-enum-descriptions: - 请求已发送,等待设备响应 - 已收到设备响应并成功处理 - 请求超时,未收到设备响应 x-enum-varnames: - PendingStatusPending - PendingStatusFulfilled - PendingStatusTimedOut models.PigBatchOriginType: enum: - 自繁 - 外购 type: string x-enum-varnames: - OriginTypeSelfFarrowed - OriginTypePurchased models.PigBatchSickPigReasonType: enum: - 患病 - 康复 - 死亡 - 淘汰 - 转入 - 转出 - 其他 type: string x-enum-comments: SickPigReasonTypeDeath: 猪只死亡 SickPigReasonTypeEliminate: 猪只淘汰 SickPigReasonTypeIllness: 猪只患病 SickPigReasonTypeOther: 其他原因 SickPigReasonTypeRecovery: 猪只康复 SickPigReasonTypeTransferIn: 病猪转入当前批次 SickPigReasonTypeTransferOut: 病猪转出当前批次 (例如转到其他批次或出售) x-enum-descriptions: - 猪只患病 - 猪只康复 - 猪只死亡 - 猪只淘汰 - 病猪转入当前批次 - 病猪转出当前批次 (例如转到其他批次或出售) - 其他原因 x-enum-varnames: - SickPigReasonTypeIllness - SickPigReasonTypeRecovery - SickPigReasonTypeDeath - SickPigReasonTypeEliminate - SickPigReasonTypeTransferIn - SickPigReasonTypeTransferOut - SickPigReasonTypeOther models.PigBatchSickPigTreatmentLocation: enum: - 原地治疗 - 病猪栏治疗 type: string x-enum-varnames: - TreatmentLocationOnSite - TreatmentLocationSickBay models.PigBatchStatus: enum: - 保育 - 生长 - 育肥 - 待售 - 已出售 - 已归档 type: string x-enum-comments: BatchStatusArchived: 批次结束(如全群淘汰等) BatchStatusFinishing: 最后的育肥阶段 BatchStatusForSale: 达到出栏标准 BatchStatusGrowing: 生长育肥阶段 BatchStatusWeaning: 从断奶到保育结束 x-enum-descriptions: - 从断奶到保育结束 - 生长育肥阶段 - 最后的育肥阶段 - 达到出栏标准 - "" - 批次结束(如全群淘汰等) x-enum-varnames: - BatchStatusWeaning - BatchStatusGrowing - BatchStatusFinishing - BatchStatusForSale - BatchStatusSold - BatchStatusArchived models.PigTransferType: enum: - 群内调栏 - 跨群调栏 - 销售 - 死亡 - 淘汰 - 新购入 - 产房转入 type: string x-enum-comments: PigTransferTypeCrossBatch: 不同猪群间的调动 PigTransferTypeCull: 猪只淘汰 PigTransferTypeDeath: 猪只死亡 PigTransferTypeDeliveryRoomTransfor: 产房转入 PigTransferTypeInternal: 同一猪群内猪栏间的调动 PigTransferTypePurchase: 新购入猪只 PigTransferTypeSale: 猪只售出 x-enum-descriptions: - 同一猪群内猪栏间的调动 - 不同猪群间的调动 - 猪只售出 - 猪只死亡 - 猪只淘汰 - 新购入猪只 - 产房转入 x-enum-varnames: - PigTransferTypeInternal - PigTransferTypeCrossBatch - PigTransferTypeSale - PigTransferTypeDeath - PigTransferTypeCull - PigTransferTypePurchase - PigTransferTypeDeliveryRoomTransfor models.PlanContentType: enum: - 子计划 - 任务 type: string x-enum-comments: PlanContentTypeSubPlans: 计划包含子计划 PlanContentTypeTasks: 计划包含任务 x-enum-descriptions: - 计划包含子计划 - 计划包含任务 x-enum-varnames: - PlanContentTypeSubPlans - PlanContentTypeTasks models.PlanExecutionType: enum: - 自动 - 手动 type: string x-enum-comments: PlanExecutionTypeAutomatic: 自动执行 (包含定时和循环) PlanExecutionTypeManual: 手动执行 x-enum-descriptions: - 自动执行 (包含定时和循环) - 手动执行 x-enum-varnames: - PlanExecutionTypeAutomatic - PlanExecutionTypeManual models.PlanStatus: enum: - 已禁用 - 已启用 - 执行完毕 - 执行失败 type: string x-enum-comments: PlanStatusDisabled: 禁用计划 PlanStatusEnabled: 启用计划 PlanStatusFailed: 执行失败 PlanStatusStopped: 执行完毕 x-enum-descriptions: - 禁用计划 - 启用计划 - 执行完毕 - 执行失败 x-enum-varnames: - PlanStatusDisabled - PlanStatusEnabled - PlanStatusStopped - PlanStatusFailed models.SensorType: enum: - 信号强度 - 电池电量 - 温度 - 湿度 - 重量 type: string x-enum-comments: SensorTypeBatteryLevel: 电池电量 SensorTypeHumidity: 湿度 SensorTypeSignalMetrics: 信号强度 SensorTypeTemperature: 温度 SensorTypeWeight: 重量 x-enum-descriptions: - 信号强度 - 电池电量 - 温度 - 湿度 - 重量 x-enum-varnames: - SensorTypeSignalMetrics - SensorTypeBatteryLevel - SensorTypeTemperature - SensorTypeHumidity - SensorTypeWeight models.StockLogSourceType: enum: - 采购入库 - 饲喂出库 - 变质出库 - 售卖出库 - 杂用领取 - 手动盘点 type: string x-enum-varnames: - StockLogSourcePurchase - StockLogSourceFeeding - StockLogSourceDeteriorate - StockLogSourceSale - StockLogSourceMiscellaneous - StockLogSourceManual models.TaskType: enum: - 计划分析 - 等待 - 下料 type: string x-enum-comments: TaskPlanAnalysis: 解析Plan的Task列表并添加到待执行队列的特殊任务 TaskTypeReleaseFeedWeight: 下料口释放指定重量任务 TaskTypeWaiting: 等待任务 x-enum-descriptions: - 解析Plan的Task列表并添加到待执行队列的特殊任务 - 等待任务 - 下料口释放指定重量任务 x-enum-varnames: - TaskPlanAnalysis - TaskTypeWaiting - TaskTypeReleaseFeedWeight models.ValueDescriptor: properties: multiplier: description: 乘数,用于原始数据转换 type: number offset: description: 偏移量,用于原始数据转换 type: number type: $ref: '#/definitions/models.SensorType' type: object notify.NotifierType: enum: - smtp - wechat - lark - log type: string x-enum-varnames: - NotifierTypeSMTP - NotifierTypeWeChat - NotifierTypeLark - NotifierTypeLog info: contact: email: divano@example.com name: Divano url: http://www.example.com description: 这是一个用于管理猪场设备的后端服务。 license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: 猪场管理系统 API version: "1.0" paths: /api/v1/area-controllers: get: description: 获取系统中所有区域主控的列表 produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.AreaControllerResponse' type: array type: object security: - BearerAuth: [] summary: 获取所有区域主控列表 tags: - 区域主控管理 post: consumes: - application/json description: 根据提供的信息创建一个新区域主控 parameters: - description: 区域主控信息 in: body name: areaController required: true schema: $ref: '#/definitions/dto.CreateAreaControllerRequest' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.AreaControllerResponse' type: object security: - BearerAuth: [] summary: 创建新区域主控 tags: - 区域主控管理 /api/v1/area-controllers/{id}: delete: description: 根据ID删除一个区域主控(软删除) parameters: - description: 区域主控ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除区域主控 tags: - 区域主控管理 get: description: 根据ID获取单个区域主控的详细信息 parameters: - description: 区域主控ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.AreaControllerResponse' type: object security: - BearerAuth: [] summary: 获取区域主控信息 tags: - 区域主控管理 put: consumes: - application/json description: 根据ID更新一个已存在的区域主控信息 parameters: - description: 区域主控ID in: path name: id required: true type: string - description: 要更新的区域主控信息 in: body name: areaController required: true schema: $ref: '#/definitions/dto.UpdateAreaControllerRequest' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.AreaControllerResponse' type: object security: - BearerAuth: [] summary: 更新区域主控信息 tags: - 区域主控管理 /api/v1/device-templates: get: description: 获取系统中所有设备模板的列表 produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.DeviceTemplateResponse' type: array type: object security: - BearerAuth: [] summary: 获取设备模板列表 tags: - 设备模板管理 post: consumes: - application/json description: 根据提供的信息创建一个新设备模板 parameters: - description: 设备模板信息 in: body name: deviceTemplate required: true schema: $ref: '#/definitions/dto.CreateDeviceTemplateRequest' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.DeviceTemplateResponse' type: object security: - BearerAuth: [] summary: 创建新设备模板 tags: - 设备模板管理 /api/v1/device-templates/{id}: delete: description: 根据设备模板ID删除一个设备模板(软删除) parameters: - description: 设备模板ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除设备模板 tags: - 设备模板管理 get: description: 根据设备模板ID获取单个设备模板的详细信息 parameters: - description: 设备模板ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.DeviceTemplateResponse' type: object security: - BearerAuth: [] summary: 获取设备模板信息 tags: - 设备模板管理 put: consumes: - application/json description: 根据设备模板ID更新一个已存在的设备模板信息 parameters: - description: 设备模板ID in: path name: id required: true type: string - description: 要更新的设备模板信息 in: body name: deviceTemplate required: true schema: $ref: '#/definitions/dto.UpdateDeviceTemplateRequest' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.DeviceTemplateResponse' type: object security: - BearerAuth: [] summary: 更新设备模板信息 tags: - 设备模板管理 /api/v1/devices: get: description: 获取系统中所有设备的列表 produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.DeviceResponse' type: array type: object security: - BearerAuth: [] summary: 获取设备列表 tags: - 设备管理 post: consumes: - application/json description: 根据提供的信息创建一个新设备 parameters: - description: 设备信息 in: body name: device required: true schema: $ref: '#/definitions/dto.CreateDeviceRequest' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.DeviceResponse' type: object security: - BearerAuth: [] summary: 创建新设备 tags: - 设备管理 /api/v1/devices/{id}: delete: description: 根据设备ID删除一个设备(软删除) parameters: - description: 设备ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除设备 tags: - 设备管理 get: description: 根据设备ID获取单个设备的详细信息 parameters: - description: 设备ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.DeviceResponse' type: object security: - BearerAuth: [] summary: 获取设备信息 tags: - 设备管理 put: consumes: - application/json description: 根据设备ID更新一个已存在的设备信息 parameters: - description: 设备ID in: path name: id required: true type: string - description: 要更新的设备信息 in: body name: device required: true schema: $ref: '#/definitions/dto.UpdateDeviceRequest' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.DeviceResponse' type: object security: - BearerAuth: [] summary: 更新设备信息 tags: - 设备管理 /api/v1/devices/manual-control/{id}: post: consumes: - application/json description: 根据设备ID和指定的动作(开启或关闭)来手动控制设备 parameters: - description: 设备ID in: path name: id required: true type: string - description: 手动控制指令 in: body name: manualControl required: true schema: $ref: '#/definitions/dto.ManualControlDeviceRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 手动控制设备 tags: - 设备管理 /api/v1/monitor/device-command-logs: get: description: 根据提供的过滤条件,分页获取设备命令日志 parameters: - in: query name: device_id type: integer - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: received_success type: boolean - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListDeviceCommandLogResponse' type: object security: - BearerAuth: [] summary: 获取设备命令日志列表 tags: - 数据监控 /api/v1/monitor/feed-usage-records: get: description: 根据提供的过滤条件,分页获取饲料使用记录 parameters: - in: query name: end_time type: string - in: query name: feed_formula_id type: integer - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pen_id type: integer - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListFeedUsageRecordResponse' type: object security: - BearerAuth: [] summary: 获取饲料使用记录列表 tags: - 数据监控 /api/v1/monitor/medication-logs: get: description: 根据提供的过滤条件,分页获取用药记录 parameters: - in: query name: end_time type: string - in: query name: medication_id type: integer - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pig_batch_id type: integer - in: query name: reason type: string - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListMedicationLogResponse' type: object security: - BearerAuth: [] summary: 获取用药记录列表 tags: - 数据监控 /api/v1/monitor/pending-collections: get: description: 根据提供的过滤条件,分页获取待采集请求 parameters: - in: query name: device_id type: integer - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: start_time type: string - in: query name: status type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPendingCollectionResponse' type: object security: - BearerAuth: [] summary: 获取待采集请求列表 tags: - 数据监控 /api/v1/monitor/pig-batch-logs: get: description: 根据提供的过滤条件,分页获取猪批次日志 parameters: - in: query name: change_type type: string - in: query name: end_time type: string - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pig_batch_id type: integer - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPigBatchLogResponse' type: object security: - BearerAuth: [] summary: 获取猪批次日志列表 tags: - 数据监控 /api/v1/monitor/pig-purchases: get: description: 根据提供的过滤条件,分页获取猪只采购记录 parameters: - in: query name: end_time type: string - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pig_batch_id type: integer - in: query name: start_time type: string - in: query name: supplier type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPigPurchaseResponse' type: object security: - BearerAuth: [] summary: 获取猪只采购记录列表 tags: - 数据监控 /api/v1/monitor/pig-sales: get: description: 根据提供的过滤条件,分页获取猪只售卖记录 parameters: - in: query name: buyer type: string - in: query name: end_time type: string - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pig_batch_id type: integer - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPigSaleResponse' type: object security: - BearerAuth: [] summary: 获取猪只售卖记录列表 tags: - 数据监控 /api/v1/monitor/pig-sick-logs: get: description: 根据提供的过滤条件,分页获取病猪日志 parameters: - in: query name: end_time type: string - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pen_id type: integer - in: query name: pig_batch_id type: integer - in: query name: reason type: string - in: query name: start_time type: string - in: query name: treatment_location type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPigSickLogResponse' type: object security: - BearerAuth: [] summary: 获取病猪日志列表 tags: - 数据监控 /api/v1/monitor/pig-transfer-logs: get: description: 根据提供的过滤条件,分页获取猪只迁移日志 parameters: - in: query name: correlation_id type: string - in: query name: end_time type: string - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pen_id type: integer - in: query name: pig_batch_id type: integer - in: query name: start_time type: string - in: query name: transfer_type type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPigTransferLogResponse' type: object security: - BearerAuth: [] summary: 获取猪只迁移日志列表 tags: - 数据监控 /api/v1/monitor/plan-execution-logs: get: description: 根据提供的过滤条件,分页获取计划执行日志 parameters: - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: plan_id type: integer - in: query name: start_time type: string - in: query name: status type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListPlanExecutionLogResponse' type: object security: - BearerAuth: [] summary: 获取计划执行日志列表 tags: - 数据监控 /api/v1/monitor/raw-material-purchases: get: description: 根据提供的过滤条件,分页获取原料采购记录 parameters: - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: raw_material_id type: integer - in: query name: start_time type: string - in: query name: supplier type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListRawMaterialPurchaseResponse' type: object security: - BearerAuth: [] summary: 获取原料采购记录列表 tags: - 数据监控 /api/v1/monitor/raw-material-stock-logs: get: description: 根据提供的过滤条件,分页获取原料库存日志 parameters: - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: raw_material_id type: integer - in: query name: source_id type: integer - in: query name: source_type type: string - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListRawMaterialStockLogResponse' type: object security: - BearerAuth: [] summary: 获取原料库存日志列表 tags: - 数据监控 /api/v1/monitor/sensor-data: get: description: 根据提供的过滤条件,分页获取传感器数据 parameters: - in: query name: device_id type: integer - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: sensor_type type: string - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListSensorDataResponse' type: object security: - BearerAuth: [] summary: 获取传感器数据列表 tags: - 数据监控 /api/v1/monitor/task-execution-logs: get: description: 根据提供的过滤条件,分页获取任务执行日志 parameters: - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: plan_execution_log_id type: integer - in: query name: start_time type: string - in: query name: status type: string - in: query name: task_id type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListTaskExecutionLogResponse' type: object security: - BearerAuth: [] summary: 获取任务执行日志列表 tags: - 数据监控 /api/v1/monitor/user-action-logs: get: description: 根据提供的过滤条件,分页获取用户操作日志 parameters: - in: query name: action_type type: string - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: start_time type: string - in: query name: status type: string - in: query name: user_id type: integer - in: query name: username type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListUserActionLogResponse' type: object security: - BearerAuth: [] summary: 获取用户操作日志列表 tags: - 数据监控 /api/v1/monitor/weighing-batches: get: description: 根据提供的过滤条件,分页获取批次称重记录 parameters: - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pig_batch_id type: integer - in: query name: start_time type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListWeighingBatchResponse' type: object security: - BearerAuth: [] summary: 获取批次称重记录列表 tags: - 数据监控 /api/v1/monitor/weighing-records: get: description: 根据提供的过滤条件,分页获取单次称重记录 parameters: - in: query name: end_time type: string - in: query name: operator_id type: integer - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: pen_id type: integer - in: query name: start_time type: string - in: query name: weighing_batch_id type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListWeighingRecordResponse' type: object security: - BearerAuth: [] summary: 获取单次称重记录列表 tags: - 数据监控 /api/v1/pens: get: description: 获取所有猪栏的列表 produces: - application/json responses: "200": description: 获取成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.PenResponse' type: array type: object security: - BearerAuth: [] summary: 获取猪栏列表 tags: - 猪场管理 post: consumes: - application/json description: 创建一个新的猪栏 parameters: - description: 猪栏信息 in: body name: body required: true schema: $ref: '#/definitions/dto.CreatePenRequest' produces: - application/json responses: "201": description: 创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PenResponse' type: object security: - BearerAuth: [] summary: 创建猪栏 tags: - 猪场管理 /api/v1/pens/{id}: delete: description: 根据ID删除一个猪栏 parameters: - description: 猪栏ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 删除成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除猪栏 tags: - 猪场管理 get: description: 根据ID获取单个猪栏信息 parameters: - description: 猪栏ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 获取成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PenResponse' type: object security: - BearerAuth: [] summary: 获取单个猪栏 tags: - 猪场管理 put: consumes: - application/json description: 更新一个已存在的猪栏信息 parameters: - description: 猪栏ID in: path name: id required: true type: integer - description: 猪栏信息 in: body name: body required: true schema: $ref: '#/definitions/dto.UpdatePenRequest' produces: - application/json responses: "200": description: 更新成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PenResponse' type: object security: - BearerAuth: [] summary: 更新猪栏 tags: - 猪场管理 /api/v1/pens/{id}/status: put: consumes: - application/json description: 更新指定猪栏的当前状态 parameters: - description: 猪栏ID in: path name: id required: true type: integer - description: 新的猪栏状态 in: body name: body required: true schema: $ref: '#/definitions/dto.UpdatePenStatusRequest' produces: - application/json responses: "200": description: 更新成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PenResponse' type: object security: - BearerAuth: [] summary: 更新猪栏状态 tags: - 猪场管理 /api/v1/pig-batches: get: description: 获取所有猪批次的列表,支持按活跃状态筛选 parameters: - description: 是否活跃 (true/false) in: query name: is_active type: boolean produces: - application/json responses: "200": description: 获取成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.PigBatchResponseDTO' type: array type: object security: - BearerAuth: [] summary: 获取猪批次列表 tags: - 猪群管理 post: consumes: - application/json description: 创建一个新的猪批次 parameters: - description: 猪批次信息 in: body name: body required: true schema: $ref: '#/definitions/dto.PigBatchCreateDTO' produces: - application/json responses: "201": description: 创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PigBatchResponseDTO' type: object security: - BearerAuth: [] summary: 创建猪批次 tags: - 猪群管理 /api/v1/pig-batches/{id}: delete: description: 根据ID删除一个猪批次 parameters: - description: 猪批次ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 删除成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除猪批次 tags: - 猪群管理 get: description: 根据ID获取单个猪批次信息 parameters: - description: 猪批次ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 获取成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PigBatchResponseDTO' type: object security: - BearerAuth: [] summary: 获取单个猪批次 tags: - 猪群管理 put: consumes: - application/json description: 更新一个已存在的猪批次信息 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 猪批次信息 in: body name: body required: true schema: $ref: '#/definitions/dto.PigBatchUpdateDTO' produces: - application/json responses: "200": description: 更新成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PigBatchResponseDTO' type: object security: - BearerAuth: [] summary: 更新猪批次 tags: - 猪群管理 /api/v1/pig-batches/assign-pens/{id}: post: consumes: - application/json description: 将一个或多个空闲猪栏分配给指定的猪批次 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 待分配的猪栏ID列表 in: body name: body required: true schema: $ref: '#/definitions/dto.AssignEmptyPensToBatchRequest' produces: - application/json responses: "200": description: 分配成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 为猪批次分配空栏 tags: - 猪群管理 /api/v1/pig-batches/buy-pigs/{id}: post: consumes: - application/json description: 记录猪批次中的猪只购买事件 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 买猪请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.BuyPigsRequest' produces: - application/json responses: "200": description: 买猪成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 处理买猪的业务逻辑 tags: - 猪群管理 /api/v1/pig-batches/move-pigs-into-pen/{id}: post: consumes: - application/json description: 将指定数量的猪只从批次的“虚拟库存”移入一个已分配的猪栏 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 移入猪只请求信息 (包含目标猪栏ID、数量和备注) in: body name: body required: true schema: $ref: '#/definitions/dto.MovePigsIntoPenRequest' produces: - application/json responses: "200": description: 移入成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 将猪只从“虚拟库存”移入指定猪栏 tags: - 猪群管理 /api/v1/pig-batches/reclassify-pen/{fromBatchID}: post: consumes: - application/json description: 将一个猪栏(连同其中的猪只)从一个批次整体划拨到另一个批次 parameters: - description: 源猪批次ID in: path name: fromBatchID required: true type: integer - description: 划拨请求信息 (包含目标批次ID、猪栏ID和备注) in: body name: body required: true schema: $ref: '#/definitions/dto.ReclassifyPenToNewBatchRequest' produces: - application/json responses: "200": description: 划拨成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 将猪栏划拨到新批次 tags: - 猪群管理 /api/v1/pig-batches/record-cull/{id}: post: consumes: - application/json description: 记录猪批次中正常猪只淘汰的数量和发生时间 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 记录正常猪只淘汰请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.RecordCullRequest' produces: - application/json responses: "200": description: 记录成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 记录正常猪只淘汰事件 tags: - 猪群管理 /api/v1/pig-batches/record-death/{id}: post: consumes: - application/json description: 记录猪批次中正常猪只死亡的数量和发生时间 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 记录正常猪只死亡请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.RecordDeathRequest' produces: - application/json responses: "200": description: 记录成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 记录正常猪只死亡事件 tags: - 猪群管理 /api/v1/pig-batches/record-sick-pig-cull/{id}: post: consumes: - application/json description: 记录猪批次中病猪淘汰的数量、治疗地点和发生时间 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 记录病猪淘汰请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.RecordSickPigCullRequest' produces: - application/json responses: "200": description: 记录成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 记录病猪淘汰事件 tags: - 猪群管理 /api/v1/pig-batches/record-sick-pig-death/{id}: post: consumes: - application/json description: 记录猪批次中病猪死亡的数量、治疗地点和发生时间 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 记录病猪死亡请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.RecordSickPigDeathRequest' produces: - application/json responses: "200": description: 记录成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 记录病猪死亡事件 tags: - 猪群管理 /api/v1/pig-batches/record-sick-pig-recovery/{id}: post: consumes: - application/json description: 记录猪批次中病猪康复的数量、治疗地点和发生时间 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 记录病猪康复请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.RecordSickPigRecoveryRequest' produces: - application/json responses: "200": description: 记录成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 记录病猪康复事件 tags: - 猪群管理 /api/v1/pig-batches/record-sick-pigs/{id}: post: consumes: - application/json description: 记录猪批次中新增病猪的数量、治疗地点和发生时间 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 记录病猪请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.RecordSickPigsRequest' produces: - application/json responses: "200": description: 记录成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 记录新增病猪事件 tags: - 猪群管理 /api/v1/pig-batches/remove-pen/{penID}/{batchID}: delete: description: 将一个空闲猪栏从指定的猪批次中移除 parameters: - description: 猪批次ID in: path name: batchID required: true type: integer - description: 待移除的猪栏ID in: path name: penID required: true type: integer produces: - application/json responses: "200": description: 移除成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 从猪批次移除空栏 tags: - 猪群管理 /api/v1/pig-batches/sell-pigs/{id}: post: consumes: - application/json description: 记录猪批次中的猪只出售事件 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 卖猪请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.SellPigsRequest' produces: - application/json responses: "200": description: 卖猪成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 处理卖猪的业务逻辑 tags: - 猪群管理 /api/v1/pig-batches/transfer-across-batches/{sourceBatchID}: post: consumes: - application/json description: 将指定数量的猪只从一个猪群的猪栏调动到另一个猪群的猪栏 parameters: - description: 源猪批次ID in: path name: sourceBatchID required: true type: integer - description: 跨群调栏请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.TransferPigsAcrossBatchesRequest' produces: - application/json responses: "200": description: 调栏成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 跨猪群调栏 tags: - 猪群管理 /api/v1/pig-batches/transfer-within-batch/{id}: post: consumes: - application/json description: 将指定数量的猪只在同一个猪群的不同猪栏间调动 parameters: - description: 猪批次ID in: path name: id required: true type: integer - description: 群内调栏请求信息 in: body name: body required: true schema: $ref: '#/definitions/dto.TransferPigsWithinBatchRequest' produces: - application/json responses: "200": description: 调栏成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 群内调栏 tags: - 猪群管理 /api/v1/pig-houses: get: description: 获取所有猪舍的列表 produces: - application/json responses: "200": description: 获取成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.PigHouseResponse' type: array type: object security: - BearerAuth: [] summary: 获取猪舍列表 tags: - 猪场管理 post: consumes: - application/json description: 创建一个新的猪舍 parameters: - description: 猪舍信息 in: body name: body required: true schema: $ref: '#/definitions/dto.CreatePigHouseRequest' produces: - application/json responses: "201": description: 创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PigHouseResponse' type: object security: - BearerAuth: [] summary: 创建猪舍 tags: - 猪场管理 /api/v1/pig-houses/{id}: delete: description: 根据ID删除一个猪舍 parameters: - description: 猪舍ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 删除成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除猪舍 tags: - 猪场管理 get: description: 根据ID获取单个猪舍信息 parameters: - description: 猪舍ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 获取成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PigHouseResponse' type: object security: - BearerAuth: [] summary: 获取单个猪舍 tags: - 猪场管理 put: consumes: - application/json description: 更新一个已存在的猪舍信息 parameters: - description: 猪舍ID in: path name: id required: true type: integer - description: 猪舍信息 in: body name: body required: true schema: $ref: '#/definitions/dto.UpdatePigHouseRequest' produces: - application/json responses: "200": description: 更新成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PigHouseResponse' type: object security: - BearerAuth: [] summary: 更新猪舍 tags: - 猪场管理 /api/v1/plans: get: description: 获取所有计划的列表 produces: - application/json responses: "200": description: 业务码为200代表成功获取列表 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: items: $ref: '#/definitions/dto.PlanResponse' type: array type: object security: - BearerAuth: [] summary: 获取计划列表 tags: - 计划管理 post: consumes: - application/json description: 创建一个新的计划,包括其基本信息和所有关联的子计划/任务。 parameters: - description: 计划信息 in: body name: plan required: true schema: $ref: '#/definitions/dto.CreatePlanRequest' produces: - application/json responses: "200": description: 业务码为201代表创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PlanResponse' type: object security: - BearerAuth: [] summary: 创建计划 tags: - 计划管理 /api/v1/plans/{id}: delete: description: 根据计划ID删除计划。(软删除) parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表删除成功 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 删除计划 tags: - 计划管理 get: description: 根据计划ID获取单个计划的详细信息。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表成功获取 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PlanResponse' type: object security: - BearerAuth: [] summary: 获取计划详情 tags: - 计划管理 put: consumes: - application/json description: 根据计划ID更新计划的详细信息。 parameters: - description: 计划ID in: path name: id required: true type: integer - description: 更新后的计划信息 in: body name: plan required: true schema: $ref: '#/definitions/dto.UpdatePlanRequest' produces: - application/json responses: "200": description: 业务码为200代表更新成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.PlanResponse' type: object security: - BearerAuth: [] summary: 更新计划 tags: - 计划管理 /api/v1/plans/{id}/start: post: description: 根据计划ID启动一个计划的执行。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表成功启动计划 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 启动计划 tags: - 计划管理 /api/v1/plans/{id}/stop: post: description: 根据计划ID停止一个正在执行的计划。 parameters: - description: 计划ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: 业务码为200代表成功停止计划 schema: $ref: '#/definitions/controller.Response' security: - BearerAuth: [] summary: 停止计划 tags: - 计划管理 /api/v1/users: post: consumes: - application/json description: 根据用户名和密码创建一个新的系统用户。 parameters: - description: 用户信息 in: body name: user required: true schema: $ref: '#/definitions/dto.CreateUserRequest' produces: - application/json responses: "200": description: 业务码为201代表创建成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.CreateUserResponse' type: object summary: 创建新用户 tags: - 用户管理 /api/v1/users/{id}/history: get: description: 根据用户ID,分页获取该用户的操作审计日志。支持与通用日志查询接口相同的过滤和排序参数。 parameters: - description: 用户ID in: path name: id required: true type: integer - in: query name: action_type type: string - in: query name: end_time type: string - in: query name: order_by type: string - in: query name: page type: integer - in: query name: pageSize type: integer - in: query name: start_time type: string - in: query name: status type: string - in: query name: user_id type: integer - in: query name: username type: string produces: - application/json responses: "200": description: 业务码为200代表成功获取 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.ListUserActionLogResponse' type: object security: - BearerAuth: [] summary: 获取指定用户的操作历史 tags: - 用户管理 /api/v1/users/{id}/notifications/test: post: consumes: - application/json description: 为指定用户发送一条特定渠道的测试消息,以验证其配置是否正确。 parameters: - description: 用户ID in: path name: id required: true type: integer - description: 请求体 in: body name: body required: true schema: $ref: '#/definitions/dto.SendTestNotificationRequest' produces: - application/json responses: "200": description: 成功响应 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: type: string type: object security: - BearerAuth: [] summary: 发送测试通知 tags: - 用户管理 /api/v1/users/login: post: consumes: - application/json description: 用户可以使用用户名、邮箱、手机号、微信号或飞书账号进行登录,成功后返回 JWT 令牌。 parameters: - description: 登录凭证 in: body name: credentials required: true schema: $ref: '#/definitions/dto.LoginRequest' produces: - application/json responses: "200": description: 业务码为200代表登录成功 schema: allOf: - $ref: '#/definitions/controller.Response' - properties: data: $ref: '#/definitions/dto.LoginResponse' type: object summary: 用户登录 tags: - 用户管理 securityDefinitions: BearerAuth: in: header name: Authorization type: apiKey swagger: "2.0"