定义model
This commit is contained in:
@@ -25,7 +25,7 @@ func (RawMaterial) TableName() string {
|
||||
|
||||
// RawMaterialPurchase 记录了原料的每一次采购。
|
||||
type RawMaterialPurchase struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
gorm.Model
|
||||
RawMaterialID uint `gorm:"not null;index;comment:关联的原料ID"`
|
||||
RawMaterial RawMaterial `gorm:"foreignKey:RawMaterialID"`
|
||||
Supplier string `gorm:"size:100;comment:供应商"`
|
||||
@@ -34,8 +34,6 @@ type RawMaterialPurchase struct {
|
||||
TotalPrice float64 `gorm:"comment:总价"`
|
||||
PurchaseDate time.Time `gorm:"primaryKey;comment:采购日期"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||
}
|
||||
|
||||
func (RawMaterialPurchase) TableName() string {
|
||||
@@ -56,16 +54,13 @@ const (
|
||||
|
||||
// RawMaterialStockLog 记录了原料库存的所有变动,提供了完整的追溯链。
|
||||
type RawMaterialStockLog struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
gorm.Model
|
||||
RawMaterialID uint `gorm:"not null;index;comment:关联的原料ID"`
|
||||
ChangeAmount float64 `gorm:"not null;comment:变动数量, 正数为入库, 负数为出库"`
|
||||
SourceType StockLogSourceType `gorm:"size:50;not null;index;comment:库存变动来源类型"`
|
||||
SourceID uint `gorm:"not null;index;comment:来源记录的ID (如 RawMaterialPurchase.ID 或 FeedUsageRecord.ID)"`
|
||||
HappenedAt time.Time `gorm:"primaryKey;comment:业务发生时间"`
|
||||
Remarks string `gorm:"comment:备注, 如主动领取的理由等"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||
}
|
||||
|
||||
func (RawMaterialStockLog) TableName() string {
|
||||
@@ -102,7 +97,7 @@ func (FeedFormulaComponent) TableName() string {
|
||||
// 应用层逻辑:当一条使用记录被创建时,应根据其使用的 FeedFormula,
|
||||
// 计算出每种 RawMaterial 的消耗量,并在 RawMaterialStockLog 中创建对应的出库记录。
|
||||
type FeedUsageRecord struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
gorm.Model
|
||||
PenID uint `gorm:"not null;index;comment:关联的猪栏ID"`
|
||||
Pen Pen `gorm:"foreignKey:PenID"`
|
||||
FeedFormulaID uint `gorm:"not null;index;comment:使用的饲料配方ID"`
|
||||
@@ -111,9 +106,6 @@ type FeedUsageRecord struct {
|
||||
RecordedAt time.Time `gorm:"primaryKey;comment:记录时间"`
|
||||
OperatorID uint `gorm:"not null;comment:操作员"`
|
||||
Remarks string `gorm:"comment:备注, 如 '例行喂料, 弱猪补料' 等"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||
}
|
||||
|
||||
func (FeedUsageRecord) TableName() string {
|
||||
|
||||
@@ -82,7 +82,7 @@ const (
|
||||
|
||||
// GroupMedicationLog 记录了对整个猪批次的用药情况
|
||||
type GroupMedicationLog struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
gorm.Model
|
||||
PigBatchID uint `gorm:"not null;index;comment:关联的猪批次ID"`
|
||||
MedicationID uint `gorm:"not null;index;comment:关联的药品ID"`
|
||||
Medication Medication `gorm:"foreignKey:MedicationID"` // 预加载药品信息
|
||||
@@ -92,9 +92,6 @@ type GroupMedicationLog struct {
|
||||
Description string `gorm:"size:255;comment:具体描述,如'治疗呼吸道病'"`
|
||||
Operator string `gorm:"size:50;comment:操作员"`
|
||||
HappenedAt time.Time `gorm:"primaryKey;comment:用药时间"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||
}
|
||||
|
||||
func (GroupMedicationLog) TableName() string {
|
||||
|
||||
@@ -39,6 +39,8 @@ func GetAllModels() []interface{} {
|
||||
// Pig & Batch Models
|
||||
&PigBatch{},
|
||||
&PigBatchLog{},
|
||||
&WeighingBatch{},
|
||||
&WeighingRecord{},
|
||||
|
||||
// Feed Models
|
||||
&RawMaterial{},
|
||||
|
||||
@@ -39,7 +39,6 @@ type PigBatch struct {
|
||||
InitialCount int `gorm:"not null;comment:初始数量"`
|
||||
CurrentCount int `gorm:"not null;comment:当前存栏数量"`
|
||||
CurrentSickCount int `gorm:"not null;default:0;comment:当前病猪数量"`
|
||||
AverageWeight float64 `gorm:"comment:平均体重 (kg)"`
|
||||
Status PigBatchStatus `gorm:"size:20;not null;index;comment:批次状态"`
|
||||
Pens []Pen `gorm:"foreignKey:PigBatchID;comment:所在圈舍ID"`
|
||||
}
|
||||
@@ -64,7 +63,7 @@ const (
|
||||
|
||||
// PigBatchLog 记录了猪批次数量或状态的每一次变更
|
||||
type PigBatchLog struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
gorm.Model
|
||||
PigBatchID uint `gorm:"not null;index;comment:关联的猪批次ID"`
|
||||
ChangeType LogChangeType `gorm:"size:20;not null;comment:变更类型"`
|
||||
ChangeCount int `gorm:"not null;comment:数量变化,负数表示减少"`
|
||||
@@ -75,11 +74,35 @@ type PigBatchLog struct {
|
||||
AfterSickCount int `gorm:"not null;comment:变更后病猪数"`
|
||||
Operator string `gorm:"size:50;comment:操作员"`
|
||||
HappenedAt time.Time `gorm:"primaryKey;comment:事件发生时间"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||
}
|
||||
|
||||
func (PigBatchLog) TableName() string {
|
||||
return "pig_batch_logs"
|
||||
}
|
||||
|
||||
// WeighingBatch 记录了一次批次称重的信息
|
||||
type WeighingBatch struct {
|
||||
gorm.Model
|
||||
WeighingTime time.Time `gorm:"primaryKey;comment:称重时间"`
|
||||
Description string `gorm:"size:255;comment:批次称重描述"`
|
||||
PigBatchID uint `gorm:"not null;index;comment:关联的猪批次ID"`
|
||||
}
|
||||
|
||||
func (WeighingBatch) TableName() string {
|
||||
return "weighing_batches"
|
||||
}
|
||||
|
||||
// WeighingRecord 记录了单次称重信息
|
||||
type WeighingRecord struct {
|
||||
gorm.Model
|
||||
Weight float64 `gorm:"not null;comment:单只猪重量 (kg)"`
|
||||
WeighingBatchID uint `gorm:"not null;index;comment:关联的批次称重ID"`
|
||||
PenID uint `gorm:"not null;index;comment:所在猪圈ID"`
|
||||
OperatorID uint `gorm:"not null;comment:操作员ID"`
|
||||
Remark string `gorm:"size:255;comment:备注"`
|
||||
WeighingTime time.Time `gorm:"primaryKey;comment:称重时间"`
|
||||
}
|
||||
|
||||
func (WeighingRecord) TableName() string {
|
||||
return "weighing_records"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user