163 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package dto
 | ||
| 
 | ||
| import (
 | ||
| 	"time"
 | ||
| 
 | ||
| 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
 | ||
| )
 | ||
| 
 | ||
| // PigBatchCreateDTO 定义了创建猪批次的请求结构
 | ||
| type PigBatchCreateDTO struct {
 | ||
| 	BatchNumber  string                    `json:"batch_number" binding:"required"`        // 批次编号,必填
 | ||
| 	OriginType   models.PigBatchOriginType `json:"origin_type" binding:"required"`         // 批次来源,必填
 | ||
| 	StartDate    time.Time                 `json:"start_date" binding:"required"`          // 批次开始日期,必填
 | ||
| 	InitialCount int                       `json:"initial_count" binding:"required,min=1"` // 初始数量,必填,最小为1
 | ||
| 	Status       models.PigBatchStatus     `json:"status" binding:"required"`              // 批次状态,必填
 | ||
| }
 | ||
| 
 | ||
| // PigBatchUpdateDTO 定义了更新猪批次的请求结构
 | ||
| type PigBatchUpdateDTO struct {
 | ||
| 	BatchNumber  *string                    `json:"batch_number"`  // 批次编号,可选
 | ||
| 	OriginType   *models.PigBatchOriginType `json:"origin_type"`   // 批次来源,可选
 | ||
| 	StartDate    *time.Time                 `json:"start_date"`    // 批次开始日期,可选
 | ||
| 	EndDate      *time.Time                 `json:"end_date"`      // 批次结束日期,可选
 | ||
| 	InitialCount *int                       `json:"initial_count"` // 初始数量,可选
 | ||
| 	Status       *models.PigBatchStatus     `json:"status"`        // 批次状态,可选
 | ||
| }
 | ||
| 
 | ||
| // PigBatchQueryDTO 定义了查询猪批次的请求结构
 | ||
| type PigBatchQueryDTO struct {
 | ||
| 	IsActive *bool `json:"is_active" form:"is_active"` // 是否活跃,可选,用于URL查询参数
 | ||
| }
 | ||
| 
 | ||
| // PigBatchResponseDTO 定义了猪批次信息的响应结构
 | ||
| type PigBatchResponseDTO struct {
 | ||
| 	ID                     uint                      `json:"id"`                     // 批次ID
 | ||
| 	BatchNumber            string                    `json:"batch_number"`           // 批次编号
 | ||
| 	OriginType             models.PigBatchOriginType `json:"origin_type"`            // 批次来源
 | ||
| 	StartDate              time.Time                 `json:"start_date"`             // 批次开始日期
 | ||
| 	EndDate                time.Time                 `json:"end_date"`               // 批次结束日期
 | ||
| 	InitialCount           int                       `json:"initial_count"`          // 初始数量
 | ||
| 	Status                 models.PigBatchStatus     `json:"status"`                 // 批次状态
 | ||
| 	IsActive               bool                      `json:"is_active"`              // 是否活跃
 | ||
| 	CurrentTotalQuantity   int                       `json:"currentTotalQuantity"`   // 当前总数
 | ||
| 	CurrentTotalPigsInPens int                       `json:"currentTotalPigsInPens"` // 当前存栏总数
 | ||
| 	CreateTime             time.Time                 `json:"create_time"`            // 创建时间
 | ||
| 	UpdateTime             time.Time                 `json:"update_time"`            // 更新时间
 | ||
| }
 | ||
| 
 | ||
| // AssignEmptyPensToBatchRequest 用于为猪批次分配空栏的请求体
 | ||
| type AssignEmptyPensToBatchRequest struct {
 | ||
| 	PenIDs []uint `json:"penIDs" binding:"required,min=1" example:"[1,2,3]"` // 待分配的猪栏ID列表
 | ||
| }
 | ||
| 
 | ||
| // ReclassifyPenToNewBatchRequest 用于将猪栏划拨到新批次的请求体
 | ||
| type ReclassifyPenToNewBatchRequest struct {
 | ||
| 	ToBatchID uint   `json:"toBatchID" binding:"required"` // 目标猪批次ID
 | ||
| 	PenID     uint   `json:"penID" binding:"required"`     // 待划拨的猪栏ID
 | ||
| 	Remarks   string `json:"remarks"`                      // 备注
 | ||
| }
 | ||
| 
 | ||
| // RemoveEmptyPenFromBatchRequest 用于从猪批次移除空栏的请求体
 | ||
| type RemoveEmptyPenFromBatchRequest struct {
 | ||
| 	PenID uint `json:"penID" binding:"required"` // 待移除的猪栏ID
 | ||
| }
 | ||
| 
 | ||
| // MovePigsIntoPenRequest 用于将猪只从“虚拟库存”移入指定猪栏的请求体
 | ||
| type MovePigsIntoPenRequest struct {
 | ||
| 	ToPenID  uint   `json:"toPenID" binding:"required"`        // 目标猪栏ID
 | ||
| 	Quantity int    `json:"quantity" binding:"required,min=1"` // 移入猪只数量
 | ||
| 	Remarks  string `json:"remarks"`                           // 备注
 | ||
| }
 | ||
| 
 | ||
| // SellPigsRequest 用于处理卖猪的请求体
 | ||
| type SellPigsRequest struct {
 | ||
| 	PenID      uint      `json:"penID" binding:"required"`            // 猪栏ID
 | ||
| 	Quantity   int       `json:"quantity" binding:"required,min=1"`   // 卖出猪只数量
 | ||
| 	UnitPrice  float64   `json:"unitPrice" binding:"required,min=0"`  // 单价
 | ||
| 	TotalPrice float64   `json:"totalPrice" binding:"required,min=0"` // 总价
 | ||
| 	TraderName string    `json:"traderName" binding:"required"`       // 交易方名称
 | ||
| 	TradeDate  time.Time `json:"tradeDate" binding:"required"`        // 交易日期
 | ||
| 	Remarks    string    `json:"remarks"`                             // 备注
 | ||
| }
 | ||
| 
 | ||
| // BuyPigsRequest 用于处理买猪的请求体
 | ||
| type BuyPigsRequest struct {
 | ||
| 	PenID      uint      `json:"penID" binding:"required"`            // 猪栏ID
 | ||
| 	Quantity   int       `json:"quantity" binding:"required,min=1"`   // 买入猪只数量
 | ||
| 	UnitPrice  float64   `json:"unitPrice" binding:"required,min=0"`  // 单价
 | ||
| 	TotalPrice float64   `json:"totalPrice" binding:"required,min=0"` // 总价
 | ||
| 	TraderName string    `json:"traderName" binding:"required"`       // 交易方名称
 | ||
| 	TradeDate  time.Time `json:"tradeDate" binding:"required"`        // 交易日期
 | ||
| 	Remarks    string    `json:"remarks"`                             // 备注
 | ||
| }
 | ||
| 
 | ||
| // TransferPigsAcrossBatchesRequest 用于跨猪群调栏的请求体
 | ||
| type TransferPigsAcrossBatchesRequest struct {
 | ||
| 	DestBatchID uint   `json:"destBatchID" binding:"required"`    // 目标猪批次ID
 | ||
| 	FromPenID   uint   `json:"fromPenID" binding:"required"`      // 源猪栏ID
 | ||
| 	ToPenID     uint   `json:"toPenID" binding:"required"`        // 目标猪栏ID
 | ||
| 	Quantity    uint   `json:"quantity" binding:"required,min=1"` // 调栏猪只数量
 | ||
| 	Remarks     string `json:"remarks"`                           // 备注
 | ||
| }
 | ||
| 
 | ||
| // TransferPigsWithinBatchRequest 用于群内调栏的请求体
 | ||
| type TransferPigsWithinBatchRequest struct {
 | ||
| 	FromPenID uint   `json:"fromPenID" binding:"required"`      // 源猪栏ID
 | ||
| 	ToPenID   uint   `json:"toPenID" binding:"required"`        // 目标猪栏ID
 | ||
| 	Quantity  uint   `json:"quantity" binding:"required,min=1"` // 调栏猪只数量
 | ||
| 	Remarks   string `json:"remarks"`                           // 备注
 | ||
| }
 | ||
| 
 | ||
| // RecordSickPigsRequest 用于记录新增病猪事件的请求体
 | ||
| type RecordSickPigsRequest struct {
 | ||
| 	PenID             uint                                    `json:"penID" binding:"required"`             // 猪栏ID
 | ||
| 	Quantity          int                                     `json:"quantity" binding:"required,min=1"`    // 病猪数量
 | ||
| 	TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
 | ||
| 	HappenedAt        time.Time                               `json:"happenedAt" binding:"required"`        // 发生时间
 | ||
| 	Remarks           string                                  `json:"remarks"`                              // 备注
 | ||
| }
 | ||
| 
 | ||
| // RecordSickPigRecoveryRequest 用于记录病猪康复事件的请求体
 | ||
| type RecordSickPigRecoveryRequest struct {
 | ||
| 	PenID             uint                                    `json:"penID" binding:"required"`             // 猪栏ID
 | ||
| 	Quantity          int                                     `json:"quantity" binding:"required,min=1"`    // 康复猪数量
 | ||
| 	TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
 | ||
| 	HappenedAt        time.Time                               `json:"happenedAt" binding:"required"`        // 发生时间
 | ||
| 	Remarks           string                                  `json:"remarks"`                              // 备注
 | ||
| }
 | ||
| 
 | ||
| // RecordSickPigDeathRequest 用于记录病猪死亡事件的请求体
 | ||
| type RecordSickPigDeathRequest struct {
 | ||
| 	PenID             uint                                    `json:"penID" binding:"required"`             // 猪栏ID
 | ||
| 	Quantity          int                                     `json:"quantity" binding:"required,min=1"`    // 死亡猪数量
 | ||
| 	TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
 | ||
| 	HappenedAt        time.Time                               `json:"happenedAt" binding:"required"`        // 发生时间
 | ||
| 	Remarks           string                                  `json:"remarks"`                              // 备注
 | ||
| }
 | ||
| 
 | ||
| // RecordSickPigCullRequest 用于记录病猪淘汰事件的请求体
 | ||
| type RecordSickPigCullRequest struct {
 | ||
| 	PenID             uint                                    `json:"penID" binding:"required"`             // 猪栏ID
 | ||
| 	Quantity          int                                     `json:"quantity" binding:"required,min=1"`    // 淘汰猪数量
 | ||
| 	TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
 | ||
| 	HappenedAt        time.Time                               `json:"happenedAt" binding:"required"`        // 发生时间
 | ||
| 	Remarks           string                                  `json:"remarks"`                              // 备注
 | ||
| }
 | ||
| 
 | ||
| // RecordDeathRequest 用于记录正常猪只死亡事件的请求体
 | ||
| type RecordDeathRequest struct {
 | ||
| 	PenID      uint      `json:"penID" binding:"required"`          // 猪栏ID
 | ||
| 	Quantity   int       `json:"quantity" binding:"required,min=1"` // 死亡猪数量
 | ||
| 	HappenedAt time.Time `json:"happenedAt" binding:"required"`     // 发生时间
 | ||
| 	Remarks    string    `json:"remarks"`                           // 备注
 | ||
| }
 | ||
| 
 | ||
| // RecordCullRequest 用于记录正常猪只淘汰事件的请求体
 | ||
| type RecordCullRequest struct {
 | ||
| 	PenID      uint      `json:"penID" binding:"required"`          // 猪栏ID
 | ||
| 	Quantity   int       `json:"quantity" binding:"required,min=1"` // 淘汰猪数量
 | ||
| 	HappenedAt time.Time `json:"happenedAt" binding:"required"`     // 发生时间
 | ||
| 	Remarks    string    `json:"remarks"`                           // 备注
 | ||
| }
 |