609 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			609 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package dto
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"time"
 | |
| 
 | |
| 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
 | |
| )
 | |
| 
 | |
| // --- General ---
 | |
| 
 | |
| // PaginationDTO 定义了分页信息的标准结构
 | |
| type PaginationDTO struct {
 | |
| 	Total    int64 `json:"total"`
 | |
| 	Page     int   `json:"page"`
 | |
| 	PageSize int   `json:"pageSize"`
 | |
| }
 | |
| 
 | |
| // --- SensorData ---
 | |
| 
 | |
| // ListSensorDataRequest 定义了获取传感器数据列表的请求参数
 | |
| type ListSensorDataRequest struct {
 | |
| 	Page       int        `form:"page,default=1"`
 | |
| 	PageSize   int        `form:"pageSize,default=10"`
 | |
| 	DeviceID   *uint      `form:"device_id"`
 | |
| 	SensorType *string    `form:"sensor_type"`
 | |
| 	StartTime  *time.Time `form:"start_time"`
 | |
| 	EndTime    *time.Time `form:"end_time"`
 | |
| 	OrderBy    string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // SensorDataDTO 是用于API响应的传感器数据结构
 | |
| type SensorDataDTO struct {
 | |
| 	Time                 time.Time         `json:"time"`
 | |
| 	DeviceID             uint              `json:"device_id"`
 | |
| 	RegionalControllerID uint              `json:"regional_controller_id"`
 | |
| 	SensorType           models.SensorType `json:"sensor_type"`
 | |
| 	Data                 json.RawMessage   `json:"data"`
 | |
| }
 | |
| 
 | |
| // ListSensorDataResponse 是获取传感器数据列表的响应结构
 | |
| type ListSensorDataResponse struct {
 | |
| 	List       []SensorDataDTO `json:"list"`
 | |
| 	Pagination PaginationDTO   `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- DeviceCommandLog ---
 | |
| 
 | |
| // ListDeviceCommandLogRequest 定义了获取设备命令日志列表的请求参数
 | |
| type ListDeviceCommandLogRequest struct {
 | |
| 	Page            int        `form:"page,default=1"`
 | |
| 	PageSize        int        `form:"pageSize,default=10"`
 | |
| 	DeviceID        *uint      `form:"device_id"`
 | |
| 	ReceivedSuccess *bool      `form:"received_success"`
 | |
| 	StartTime       *time.Time `form:"start_time"`
 | |
| 	EndTime         *time.Time `form:"end_time"`
 | |
| 	OrderBy         string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // DeviceCommandLogDTO 是用于API响应的设备命令日志结构
 | |
| type DeviceCommandLogDTO struct {
 | |
| 	MessageID       string     `json:"message_id"`
 | |
| 	DeviceID        uint       `json:"device_id"`
 | |
| 	SentAt          time.Time  `json:"sent_at"`
 | |
| 	AcknowledgedAt  *time.Time `json:"acknowledged_at"`
 | |
| 	ReceivedSuccess bool       `json:"received_success"`
 | |
| }
 | |
| 
 | |
| // ListDeviceCommandLogResponse 是获取设备命令日志列表的响应结构
 | |
| type ListDeviceCommandLogResponse struct {
 | |
| 	List       []DeviceCommandLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO         `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PlanExecutionLog ---
 | |
| 
 | |
| // ListPlanExecutionLogRequest 定义了获取计划执行日志列表的请求参数
 | |
| type ListPlanExecutionLogRequest struct {
 | |
| 	Page      int        `form:"page,default=1"`
 | |
| 	PageSize  int        `form:"pageSize,default=10"`
 | |
| 	PlanID    *uint      `form:"plan_id"`
 | |
| 	Status    *string    `form:"status"`
 | |
| 	StartTime *time.Time `form:"start_time"`
 | |
| 	EndTime   *time.Time `form:"end_time"`
 | |
| 	OrderBy   string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PlanExecutionLogDTO 是用于API响应的计划执行日志结构
 | |
| type PlanExecutionLogDTO struct {
 | |
| 	ID        uint                   `json:"id"`
 | |
| 	CreatedAt time.Time              `json:"created_at"`
 | |
| 	UpdatedAt time.Time              `json:"updated_at"`
 | |
| 	PlanID    uint                   `json:"plan_id"`
 | |
| 	Status    models.ExecutionStatus `json:"status"`
 | |
| 	StartedAt time.Time              `json:"started_at"`
 | |
| 	EndedAt   time.Time              `json:"ended_at"`
 | |
| 	Error     string                 `json:"error"`
 | |
| }
 | |
| 
 | |
| // ListPlanExecutionLogResponse 是获取计划执行日志列表的响应结构
 | |
| type ListPlanExecutionLogResponse struct {
 | |
| 	List       []PlanExecutionLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO         `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- TaskExecutionLog ---
 | |
| 
 | |
| // ListTaskExecutionLogRequest 定义了获取任务执行日志列表的请求参数
 | |
| type ListTaskExecutionLogRequest struct {
 | |
| 	Page               int        `form:"page,default=1"`
 | |
| 	PageSize           int        `form:"pageSize,default=10"`
 | |
| 	PlanExecutionLogID *uint      `form:"plan_execution_log_id"`
 | |
| 	TaskID             *int       `form:"task_id"`
 | |
| 	Status             *string    `form:"status"`
 | |
| 	StartTime          *time.Time `form:"start_time"`
 | |
| 	EndTime            *time.Time `form:"end_time"`
 | |
| 	OrderBy            string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // TaskDTO 是用于API响应的简化版任务结构
 | |
| type TaskDTO struct {
 | |
| 	ID          uint   `json:"id"`
 | |
| 	Name        string `json:"name"`
 | |
| 	Description string `json:"description"`
 | |
| }
 | |
| 
 | |
| // TaskExecutionLogDTO 是用于API响应的任务执行日志结构
 | |
| type TaskExecutionLogDTO struct {
 | |
| 	ID                 uint                   `json:"id"`
 | |
| 	CreatedAt          time.Time              `json:"created_at"`
 | |
| 	UpdatedAt          time.Time              `json:"updated_at"`
 | |
| 	PlanExecutionLogID uint                   `json:"plan_execution_log_id"`
 | |
| 	TaskID             int                    `json:"task_id"`
 | |
| 	Task               TaskDTO                `json:"task"` // 嵌套的任务信息
 | |
| 	Status             models.ExecutionStatus `json:"status"`
 | |
| 	Output             string                 `json:"output"`
 | |
| 	StartedAt          time.Time              `json:"started_at"`
 | |
| 	EndedAt            time.Time              `json:"ended_at"`
 | |
| }
 | |
| 
 | |
| // ListTaskExecutionLogResponse 是获取任务执行日志列表的响应结构
 | |
| type ListTaskExecutionLogResponse struct {
 | |
| 	List       []TaskExecutionLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO         `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PendingCollection ---
 | |
| 
 | |
| // ListPendingCollectionRequest 定义了获取待采集请求列表的请求参数
 | |
| type ListPendingCollectionRequest struct {
 | |
| 	Page      int        `form:"page,default=1"`
 | |
| 	PageSize  int        `form:"pageSize,default=10"`
 | |
| 	DeviceID  *uint      `form:"device_id"`
 | |
| 	Status    *string    `form:"status"`
 | |
| 	StartTime *time.Time `form:"start_time"`
 | |
| 	EndTime   *time.Time `form:"end_time"`
 | |
| 	OrderBy   string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PendingCollectionDTO 是用于API响应的待采集请求结构
 | |
| type PendingCollectionDTO struct {
 | |
| 	CorrelationID   string                         `json:"correlation_id"`
 | |
| 	DeviceID        uint                           `json:"device_id"`
 | |
| 	CommandMetadata models.UintArray               `json:"command_metadata"`
 | |
| 	Status          models.PendingCollectionStatus `json:"status"`
 | |
| 	FulfilledAt     *time.Time                     `json:"fulfilled_at"`
 | |
| 	CreatedAt       time.Time                      `json:"created_at"`
 | |
| }
 | |
| 
 | |
| // ListPendingCollectionResponse 是获取待采集请求列表的响应结构
 | |
| type ListPendingCollectionResponse struct {
 | |
| 	List       []PendingCollectionDTO `json:"list"`
 | |
| 	Pagination PaginationDTO          `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- UserActionLog ---
 | |
| 
 | |
| // ListUserActionLogRequest 定义了获取用户操作日志列表的请求参数
 | |
| type ListUserActionLogRequest struct {
 | |
| 	Page       int        `form:"page,default=1"`
 | |
| 	PageSize   int        `form:"pageSize,default=10"`
 | |
| 	UserID     *uint      `form:"user_id"`
 | |
| 	Username   *string    `form:"username"`
 | |
| 	ActionType *string    `form:"action_type"`
 | |
| 	Status     *string    `form:"status"`
 | |
| 	StartTime  *time.Time `form:"start_time"`
 | |
| 	EndTime    *time.Time `form:"end_time"`
 | |
| 	OrderBy    string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // UserActionLogDTO 是用于API响应的用户操作日志结构
 | |
| type UserActionLogDTO struct {
 | |
| 	ID             uint               `json:"id"`
 | |
| 	Time           time.Time          `json:"time"`
 | |
| 	UserID         uint               `json:"user_id"`
 | |
| 	Username       string             `json:"username"`
 | |
| 	SourceIP       string             `json:"source_ip"`
 | |
| 	ActionType     string             `json:"action_type"`
 | |
| 	TargetResource json.RawMessage    `json:"target_resource"`
 | |
| 	Description    string             `json:"description"`
 | |
| 	Status         models.AuditStatus `json:"status"`
 | |
| 	HTTPPath       string             `json:"http_path"`
 | |
| 	HTTPMethod     string             `json:"http_method"`
 | |
| 	ResultDetails  string             `json:"result_details"`
 | |
| }
 | |
| 
 | |
| // ListUserActionLogResponse 是获取用户操作日志列表的响应结构
 | |
| type ListUserActionLogResponse struct {
 | |
| 	List       []UserActionLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO      `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- RawMaterialPurchase ---
 | |
| 
 | |
| // ListRawMaterialPurchaseRequest 定义了获取原料采购列表的请求参数
 | |
| type ListRawMaterialPurchaseRequest struct {
 | |
| 	Page          int        `form:"page,default=1"`
 | |
| 	PageSize      int        `form:"pageSize,default=10"`
 | |
| 	RawMaterialID *uint      `form:"raw_material_id"`
 | |
| 	Supplier      *string    `form:"supplier"`
 | |
| 	StartTime     *time.Time `form:"start_time"`
 | |
| 	EndTime       *time.Time `form:"end_time"`
 | |
| 	OrderBy       string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // RawMaterialDTO 是用于API响应的简化版原料结构
 | |
| type RawMaterialDTO struct {
 | |
| 	ID   uint   `json:"id"`
 | |
| 	Name string `json:"name"`
 | |
| }
 | |
| 
 | |
| // RawMaterialPurchaseDTO 是用于API响应的原料采购结构
 | |
| type RawMaterialPurchaseDTO struct {
 | |
| 	ID            uint           `json:"id"`
 | |
| 	RawMaterialID uint           `json:"raw_material_id"`
 | |
| 	RawMaterial   RawMaterialDTO `json:"raw_material"`
 | |
| 	Supplier      string         `json:"supplier"`
 | |
| 	Amount        float64        `json:"amount"`
 | |
| 	UnitPrice     float64        `json:"unit_price"`
 | |
| 	TotalPrice    float64        `json:"total_price"`
 | |
| 	PurchaseDate  time.Time      `json:"purchase_date"`
 | |
| 	CreatedAt     time.Time      `json:"created_at"`
 | |
| }
 | |
| 
 | |
| // ListRawMaterialPurchaseResponse 是获取原料采购列表的响应结构
 | |
| type ListRawMaterialPurchaseResponse struct {
 | |
| 	List       []RawMaterialPurchaseDTO `json:"list"`
 | |
| 	Pagination PaginationDTO            `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- RawMaterialStockLog ---
 | |
| 
 | |
| // ListRawMaterialStockLogRequest 定义了获取原料库存日志列表的请求参数
 | |
| type ListRawMaterialStockLogRequest struct {
 | |
| 	Page          int        `form:"page,default=1"`
 | |
| 	PageSize      int        `form:"pageSize,default=10"`
 | |
| 	RawMaterialID *uint      `form:"raw_material_id"`
 | |
| 	SourceType    *string    `form:"source_type"`
 | |
| 	SourceID      *uint      `form:"source_id"`
 | |
| 	StartTime     *time.Time `form:"start_time"`
 | |
| 	EndTime       *time.Time `form:"end_time"`
 | |
| 	OrderBy       string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // RawMaterialStockLogDTO 是用于API响应的原料库存日志结构
 | |
| type RawMaterialStockLogDTO struct {
 | |
| 	ID            uint                      `json:"id"`
 | |
| 	RawMaterialID uint                      `json:"raw_material_id"`
 | |
| 	ChangeAmount  float64                   `json:"change_amount"`
 | |
| 	SourceType    models.StockLogSourceType `json:"source_type"`
 | |
| 	SourceID      uint                      `json:"source_id"`
 | |
| 	HappenedAt    time.Time                 `json:"happened_at"`
 | |
| 	Remarks       string                    `json:"remarks"`
 | |
| }
 | |
| 
 | |
| // ListRawMaterialStockLogResponse 是获取原料库存日志列表的响应结构
 | |
| type ListRawMaterialStockLogResponse struct {
 | |
| 	List       []RawMaterialStockLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO            `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- FeedUsageRecord ---
 | |
| 
 | |
| // ListFeedUsageRecordRequest 定义了获取饲料使用记录列表的请求参数
 | |
| type ListFeedUsageRecordRequest struct {
 | |
| 	Page          int        `form:"page,default=1"`
 | |
| 	PageSize      int        `form:"pageSize,default=10"`
 | |
| 	PenID         *uint      `form:"pen_id"`
 | |
| 	FeedFormulaID *uint      `form:"feed_formula_id"`
 | |
| 	OperatorID    *uint      `form:"operator_id"`
 | |
| 	StartTime     *time.Time `form:"start_time"`
 | |
| 	EndTime       *time.Time `form:"end_time"`
 | |
| 	OrderBy       string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PenDTO 是用于API响应的简化版猪栏结构
 | |
| type PenDTO struct {
 | |
| 	ID   uint   `json:"id"`
 | |
| 	Name string `json:"name"`
 | |
| }
 | |
| 
 | |
| // FeedFormulaDTO 是用于API响应的简化版饲料配方结构
 | |
| type FeedFormulaDTO struct {
 | |
| 	ID   uint   `json:"id"`
 | |
| 	Name string `json:"name"`
 | |
| }
 | |
| 
 | |
| // FeedUsageRecordDTO 是用于API响应的饲料使用记录结构
 | |
| type FeedUsageRecordDTO struct {
 | |
| 	ID            uint           `json:"id"`
 | |
| 	PenID         uint           `json:"pen_id"`
 | |
| 	Pen           PenDTO         `json:"pen"`
 | |
| 	FeedFormulaID uint           `json:"feed_formula_id"`
 | |
| 	FeedFormula   FeedFormulaDTO `json:"feed_formula"`
 | |
| 	Amount        float64        `json:"amount"`
 | |
| 	RecordedAt    time.Time      `json:"recorded_at"`
 | |
| 	OperatorID    uint           `json:"operator_id"`
 | |
| 	Remarks       string         `json:"remarks"`
 | |
| }
 | |
| 
 | |
| // ListFeedUsageRecordResponse 是获取饲料使用记录列表的响应结构
 | |
| type ListFeedUsageRecordResponse struct {
 | |
| 	List       []FeedUsageRecordDTO `json:"list"`
 | |
| 	Pagination PaginationDTO        `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- MedicationLog ---
 | |
| 
 | |
| // ListMedicationLogRequest 定义了获取用药记录列表的请求参数
 | |
| type ListMedicationLogRequest struct {
 | |
| 	Page         int        `form:"page,default=1"`
 | |
| 	PageSize     int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID   *uint      `form:"pig_batch_id"`
 | |
| 	MedicationID *uint      `form:"medication_id"`
 | |
| 	Reason       *string    `form:"reason"`
 | |
| 	OperatorID   *uint      `form:"operator_id"`
 | |
| 	StartTime    *time.Time `form:"start_time"`
 | |
| 	EndTime      *time.Time `form:"end_time"`
 | |
| 	OrderBy      string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // MedicationDTO 是用于API响应的简化版药品结构
 | |
| type MedicationDTO struct {
 | |
| 	ID   uint   `json:"id"`
 | |
| 	Name string `json:"name"`
 | |
| }
 | |
| 
 | |
| // MedicationLogDTO 是用于API响应的用药记录结构
 | |
| type MedicationLogDTO struct {
 | |
| 	ID           uint                        `json:"id"`
 | |
| 	PigBatchID   uint                        `json:"pig_batch_id"`
 | |
| 	MedicationID uint                        `json:"medication_id"`
 | |
| 	Medication   MedicationDTO               `json:"medication"`
 | |
| 	DosageUsed   float64                     `json:"dosage_used"`
 | |
| 	TargetCount  int                         `json:"target_count"`
 | |
| 	Reason       models.MedicationReasonType `json:"reason"`
 | |
| 	Description  string                      `json:"description"`
 | |
| 	OperatorID   uint                        `json:"operator_id"`
 | |
| 	HappenedAt   time.Time                   `json:"happened_at"`
 | |
| }
 | |
| 
 | |
| // ListMedicationLogResponse 是获取用药记录列表的响应结构
 | |
| type ListMedicationLogResponse struct {
 | |
| 	List       []MedicationLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO      `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PigBatchLog ---
 | |
| 
 | |
| // ListPigBatchLogRequest 定义了获取猪批次日志列表的请求参数
 | |
| type ListPigBatchLogRequest struct {
 | |
| 	Page       int        `form:"page,default=1"`
 | |
| 	PageSize   int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID *uint      `form:"pig_batch_id"`
 | |
| 	ChangeType *string    `form:"change_type"`
 | |
| 	OperatorID *uint      `form:"operator_id"`
 | |
| 	StartTime  *time.Time `form:"start_time"`
 | |
| 	EndTime    *time.Time `form:"end_time"`
 | |
| 	OrderBy    string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PigBatchLogDTO 是用于API响应的猪批次日志结构
 | |
| type PigBatchLogDTO struct {
 | |
| 	ID          uint                 `json:"id"`
 | |
| 	CreatedAt   time.Time            `json:"created_at"`
 | |
| 	UpdatedAt   time.Time            `json:"updated_at"`
 | |
| 	PigBatchID  uint                 `json:"pig_batch_id"`
 | |
| 	ChangeType  models.LogChangeType `json:"change_type"`
 | |
| 	ChangeCount int                  `json:"change_count"`
 | |
| 	Reason      string               `json:"reason"`
 | |
| 	BeforeCount int                  `json:"before_count"`
 | |
| 	AfterCount  int                  `json:"after_count"`
 | |
| 	OperatorID  uint                 `json:"operator_id"`
 | |
| 	HappenedAt  time.Time            `json:"happened_at"`
 | |
| }
 | |
| 
 | |
| // ListPigBatchLogResponse 是获取猪批次日志列表的响应结构
 | |
| type ListPigBatchLogResponse struct {
 | |
| 	List       []PigBatchLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO    `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- WeighingBatch ---
 | |
| 
 | |
| // ListWeighingBatchRequest 定义了获取批次称重记录列表的请求参数
 | |
| type ListWeighingBatchRequest struct {
 | |
| 	Page       int        `form:"page,default=1"`
 | |
| 	PageSize   int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID *uint      `form:"pig_batch_id"`
 | |
| 	StartTime  *time.Time `form:"start_time"`
 | |
| 	EndTime    *time.Time `form:"end_time"`
 | |
| 	OrderBy    string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // WeighingBatchDTO 是用于API响应的批次称重记录结构
 | |
| type WeighingBatchDTO struct {
 | |
| 	ID           uint      `json:"id"`
 | |
| 	CreatedAt    time.Time `json:"created_at"`
 | |
| 	UpdatedAt    time.Time `json:"updated_at"`
 | |
| 	WeighingTime time.Time `json:"weighing_time"`
 | |
| 	Description  string    `json:"description"`
 | |
| 	PigBatchID   uint      `json:"pig_batch_id"`
 | |
| }
 | |
| 
 | |
| // ListWeighingBatchResponse 是获取批次称重记录列表的响应结构
 | |
| type ListWeighingBatchResponse struct {
 | |
| 	List       []WeighingBatchDTO `json:"list"`
 | |
| 	Pagination PaginationDTO      `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- WeighingRecord ---
 | |
| 
 | |
| // ListWeighingRecordRequest 定义了获取单次称重记录列表的请求参数
 | |
| type ListWeighingRecordRequest struct {
 | |
| 	Page            int        `form:"page,default=1"`
 | |
| 	PageSize        int        `form:"pageSize,default=10"`
 | |
| 	WeighingBatchID *uint      `form:"weighing_batch_id"`
 | |
| 	PenID           *uint      `form:"pen_id"`
 | |
| 	OperatorID      *uint      `form:"operator_id"`
 | |
| 	StartTime       *time.Time `form:"start_time"`
 | |
| 	EndTime         *time.Time `form:"end_time"`
 | |
| 	OrderBy         string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // WeighingRecordDTO 是用于API响应的单次称重记录结构
 | |
| type WeighingRecordDTO struct {
 | |
| 	ID              uint      `json:"id"`
 | |
| 	CreatedAt       time.Time `json:"created_at"`
 | |
| 	UpdatedAt       time.Time `json:"updated_at"`
 | |
| 	Weight          float64   `json:"weight"`
 | |
| 	WeighingBatchID uint      `json:"weighing_batch_id"`
 | |
| 	PenID           uint      `json:"pen_id"`
 | |
| 	OperatorID      uint      `json:"operator_id"`
 | |
| 	Remark          string    `json:"remark"`
 | |
| 	WeighingTime    time.Time `json:"weighing_time"`
 | |
| }
 | |
| 
 | |
| // ListWeighingRecordResponse 是获取单次称重记录列表的响应结构
 | |
| type ListWeighingRecordResponse struct {
 | |
| 	List       []WeighingRecordDTO `json:"list"`
 | |
| 	Pagination PaginationDTO       `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PigTransferLog ---
 | |
| 
 | |
| // ListPigTransferLogRequest 定义了获取猪只迁移日志列表的请求参数
 | |
| type ListPigTransferLogRequest struct {
 | |
| 	Page          int        `form:"page,default=1"`
 | |
| 	PageSize      int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID    *uint      `form:"pig_batch_id"`
 | |
| 	PenID         *uint      `form:"pen_id"`
 | |
| 	TransferType  *string    `form:"transfer_type"`
 | |
| 	OperatorID    *uint      `form:"operator_id"`
 | |
| 	CorrelationID *string    `form:"correlation_id"`
 | |
| 	StartTime     *time.Time `form:"start_time"`
 | |
| 	EndTime       *time.Time `form:"end_time"`
 | |
| 	OrderBy       string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PigTransferLogDTO 是用于API响应的猪只迁移日志结构
 | |
| type PigTransferLogDTO struct {
 | |
| 	ID            uint                   `json:"id"`
 | |
| 	CreatedAt     time.Time              `json:"created_at"`
 | |
| 	UpdatedAt     time.Time              `json:"updated_at"`
 | |
| 	TransferTime  time.Time              `json:"transfer_time"`
 | |
| 	PigBatchID    uint                   `json:"pig_batch_id"`
 | |
| 	PenID         uint                   `json:"pen_id"`
 | |
| 	Quantity      int                    `json:"quantity"`
 | |
| 	Type          models.PigTransferType `json:"type"`
 | |
| 	CorrelationID string                 `json:"correlation_id"`
 | |
| 	OperatorID    uint                   `json:"operator_id"`
 | |
| 	Remarks       string                 `json:"remarks"`
 | |
| }
 | |
| 
 | |
| // ListPigTransferLogResponse 是获取猪只迁移日志列表的响应结构
 | |
| type ListPigTransferLogResponse struct {
 | |
| 	List       []PigTransferLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO       `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PigSickLog ---
 | |
| 
 | |
| // ListPigSickLogRequest 定义了获取病猪日志列表的请求参数
 | |
| type ListPigSickLogRequest struct {
 | |
| 	Page              int        `form:"page,default=1"`
 | |
| 	PageSize          int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID        *uint      `form:"pig_batch_id"`
 | |
| 	PenID             *uint      `form:"pen_id"`
 | |
| 	Reason            *string    `form:"reason"`
 | |
| 	TreatmentLocation *string    `form:"treatment_location"`
 | |
| 	OperatorID        *uint      `form:"operator_id"`
 | |
| 	StartTime         *time.Time `form:"start_time"`
 | |
| 	EndTime           *time.Time `form:"end_time"`
 | |
| 	OrderBy           string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PigSickLogDTO 是用于API响应的病猪日志结构
 | |
| type PigSickLogDTO struct {
 | |
| 	ID                uint                                    `json:"id"`
 | |
| 	CreatedAt         time.Time                               `json:"created_at"`
 | |
| 	UpdatedAt         time.Time                               `json:"updated_at"`
 | |
| 	PigBatchID        uint                                    `json:"pig_batch_id"`
 | |
| 	PenID             uint                                    `json:"pen_id"`
 | |
| 	ChangeCount       int                                     `json:"change_count"`
 | |
| 	Reason            models.PigBatchSickPigReasonType        `json:"reason"`
 | |
| 	BeforeCount       int                                     `json:"before_count"`
 | |
| 	AfterCount        int                                     `json:"after_count"`
 | |
| 	Remarks           string                                  `json:"remarks"`
 | |
| 	TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatment_location"`
 | |
| 	OperatorID        uint                                    `json:"operator_id"`
 | |
| 	HappenedAt        time.Time                               `json:"happened_at"`
 | |
| }
 | |
| 
 | |
| // ListPigSickLogResponse 是获取病猪日志列表的响应结构
 | |
| type ListPigSickLogResponse struct {
 | |
| 	List       []PigSickLogDTO `json:"list"`
 | |
| 	Pagination PaginationDTO   `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PigPurchase ---
 | |
| 
 | |
| // ListPigPurchaseRequest 定义了获取猪只采购记录列表的请求参数
 | |
| type ListPigPurchaseRequest struct {
 | |
| 	Page       int        `form:"page,default=1"`
 | |
| 	PageSize   int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID *uint      `form:"pig_batch_id"`
 | |
| 	Supplier   *string    `form:"supplier"`
 | |
| 	OperatorID *uint      `form:"operator_id"`
 | |
| 	StartTime  *time.Time `form:"start_time"`
 | |
| 	EndTime    *time.Time `form:"end_time"`
 | |
| 	OrderBy    string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PigPurchaseDTO 是用于API响应的猪只采购记录结构
 | |
| type PigPurchaseDTO struct {
 | |
| 	ID           uint      `json:"id"`
 | |
| 	CreatedAt    time.Time `json:"created_at"`
 | |
| 	UpdatedAt    time.Time `json:"updated_at"`
 | |
| 	PigBatchID   uint      `json:"pig_batch_id"`
 | |
| 	PurchaseDate time.Time `json:"purchase_date"`
 | |
| 	Supplier     string    `json:"supplier"`
 | |
| 	Quantity     int       `json:"quantity"`
 | |
| 	UnitPrice    float64   `json:"unit_price"`
 | |
| 	TotalPrice   float64   `json:"total_price"`
 | |
| 	Remarks      string    `json:"remarks"`
 | |
| 	OperatorID   uint      `json:"operator_id"`
 | |
| }
 | |
| 
 | |
| // ListPigPurchaseResponse 是获取猪只采购记录列表的响应结构
 | |
| type ListPigPurchaseResponse struct {
 | |
| 	List       []PigPurchaseDTO `json:"list"`
 | |
| 	Pagination PaginationDTO    `json:"pagination"`
 | |
| }
 | |
| 
 | |
| // --- PigSale ---
 | |
| 
 | |
| // ListPigSaleRequest 定义了获取猪只销售记录列表的请求参数
 | |
| type ListPigSaleRequest struct {
 | |
| 	Page       int        `form:"page,default=1"`
 | |
| 	PageSize   int        `form:"pageSize,default=10"`
 | |
| 	PigBatchID *uint      `form:"pig_batch_id"`
 | |
| 	Buyer      *string    `form:"buyer"`
 | |
| 	OperatorID *uint      `form:"operator_id"`
 | |
| 	StartTime  *time.Time `form:"start_time"`
 | |
| 	EndTime    *time.Time `form:"end_time"`
 | |
| 	OrderBy    string     `form:"order_by"`
 | |
| }
 | |
| 
 | |
| // PigSaleDTO 是用于API响应的猪只销售记录结构
 | |
| type PigSaleDTO struct {
 | |
| 	ID         uint      `json:"id"`
 | |
| 	CreatedAt  time.Time `json:"created_at"`
 | |
| 	UpdatedAt  time.Time `json:"updated_at"`
 | |
| 	PigBatchID uint      `json:"pig_batch_id"`
 | |
| 	SaleDate   time.Time `json:"sale_date"`
 | |
| 	Buyer      string    `json:"buyer"`
 | |
| 	Quantity   int       `json:"quantity"`
 | |
| 	UnitPrice  float64   `json:"unit_price"`
 | |
| 	TotalPrice float64   `json:"total_price"`
 | |
| 	Remarks    string    `json:"remarks"`
 | |
| 	OperatorID uint      `json:"operator_id"`
 | |
| }
 | |
| 
 | |
| // ListPigSaleResponse 是获取猪只销售记录列表的响应结构
 | |
| type ListPigSaleResponse struct {
 | |
| 	List       []PigSaleDTO  `json:"list"`
 | |
| 	Pagination PaginationDTO `json:"pagination"`
 | |
| }
 |