48 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package models
 | 
						|
 | 
						|
import (
 | 
						|
	"time"
 | 
						|
 | 
						|
	"gorm.io/gorm"
 | 
						|
)
 | 
						|
 | 
						|
// PigBatchSickPigTreatmentLocation 定义了病猪治疗地点
 | 
						|
type PigBatchSickPigTreatmentLocation string
 | 
						|
 | 
						|
const (
 | 
						|
	TreatmentLocationOnSite  PigBatchSickPigTreatmentLocation = "原地治疗"
 | 
						|
	TreatmentLocationSickBay PigBatchSickPigTreatmentLocation = "病猪栏治疗"
 | 
						|
)
 | 
						|
 | 
						|
// PigBatchSickPigReasonType 定义了病猪变化的原因类型
 | 
						|
type PigBatchSickPigReasonType string
 | 
						|
 | 
						|
const (
 | 
						|
	SickPigReasonTypeIllness     PigBatchSickPigReasonType = "患病" // 猪只患病
 | 
						|
	SickPigReasonTypeRecovery    PigBatchSickPigReasonType = "康复" // 猪只康复
 | 
						|
	SickPigReasonTypeDeath       PigBatchSickPigReasonType = "死亡" // 猪只死亡
 | 
						|
	SickPigReasonTypeEliminate   PigBatchSickPigReasonType = "淘汰" // 猪只淘汰
 | 
						|
	SickPigReasonTypeTransferIn  PigBatchSickPigReasonType = "转入" // 病猪转入当前批次
 | 
						|
	SickPigReasonTypeTransferOut PigBatchSickPigReasonType = "转出" // 病猪转出当前批次 (例如转到其他批次或出售)
 | 
						|
	SickPigReasonTypeOther       PigBatchSickPigReasonType = "其他" // 其他原因
 | 
						|
)
 | 
						|
 | 
						|
// PigSickLog 记录了猪批次中病猪数量的变化日志
 | 
						|
type PigSickLog struct {
 | 
						|
	gorm.Model
 | 
						|
	PigBatchID        uint                             `gorm:"primaryKey;comment:关联的猪批次ID"`
 | 
						|
	PenID             uint                             `gorm:"not null;index;comment:所在猪圈ID"`
 | 
						|
	ChangeCount       int                              `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"`
 | 
						|
	Reason            PigBatchSickPigReasonType        `gorm:"size:20;not null;comment:变化原因 (如: 患病, 康复, 死亡, 转入, 转出, 其他)"`
 | 
						|
	BeforeCount       int                              `gorm:"comment:变化前的数量"`
 | 
						|
	AfterCount        int                              `gorm:"comment:变化后的数量"`
 | 
						|
	Remarks           string                           `gorm:"size:255;comment:备注"`
 | 
						|
	TreatmentLocation PigBatchSickPigTreatmentLocation `gorm:"size:50;comment:治疗地点"`
 | 
						|
	OperatorID        uint                             `gorm:"comment:操作员ID"`
 | 
						|
	HappenedAt        time.Time                        `gorm:"primaryKey;comment:事件发生时间"`
 | 
						|
}
 | 
						|
 | 
						|
func (PigSickLog) TableName() string {
 | 
						|
	return "pig_sick_logs"
 | 
						|
}
 |