issue_29 #32

Merged
huang merged 65 commits from issue_29 into main 2025-10-07 13:33:25 +08:00
2 changed files with 46 additions and 48 deletions
Showing only changes of commit 59b6977367 - Show all commits

View File

@@ -106,51 +106,3 @@ type WeighingRecord struct {
func (WeighingRecord) TableName() string { func (WeighingRecord) TableName() string {
return "weighing_records" return "weighing_records"
} }
// PigBatchSickPigLogChangeType 定义了病猪变化日志的类型
type PigBatchSickPigLogChangeType string
const (
SickPigChangeTypeAdd PigBatchSickPigLogChangeType = "新增" // 新增病猪
SickPigChangeTypeRemove PigBatchSickPigLogChangeType = "移除" // 移除病猪 (康复, 死亡, 转出等)
)
// 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 = "其他" // 其他原因
)
// PigBatchSickPigLog 记录了猪批次中病猪数量的变化日志
type PigBatchSickPigLog struct {
gorm.Model
PigBatchID uint `gorm:"primaryKey;comment:关联的猪批次ID"`
PenID uint `gorm:"not null;index;comment:所在猪圈ID"`
PigIDs string `gorm:"size:500;comment:涉及的猪只ID列表逗号分隔"`
ChangeType PigBatchSickPigLogChangeType `gorm:"size:20;not null;comment:变化类型 (新增, 移除)"`
ChangeCount int `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"`
Reason PigBatchSickPigReasonType `gorm:"size:20;not null;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 (PigBatchSickPigLog) TableName() string {
return "pig_batch_sick_pig_logs"
}

View File

@@ -0,0 +1,46 @@
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 = "其他" // 其他原因
)
// PigBatchSickPigLog 记录了猪批次中病猪数量的变化日志
type PigBatchSickPigLog struct {
gorm.Model
PigBatchID uint `gorm:"primaryKey;comment:关联的猪批次ID"`
PenID uint `gorm:"not null;index;comment:所在猪圈ID"`
PigIDs string `gorm:"size:500;comment:涉及的猪只ID列表逗号分隔"`
ChangeCount int `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"`
Reason PigBatchSickPigReasonType `gorm:"size:20;not null;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 (PigBatchSickPigLog) TableName() string {
return "pig_batch_sick_pig_logs"
}