定义病猪用药两个repo

This commit is contained in:
2025-10-06 15:26:44 +08:00
parent 91e18c432c
commit 1b026d6106
6 changed files with 61 additions and 1229 deletions

View File

@@ -78,6 +78,8 @@ func NewApplication(configPath string) (*Application, error) {
pigPenRepo := repository.NewGormPigPenRepository(storage.GetDB()) pigPenRepo := repository.NewGormPigPenRepository(storage.GetDB())
pigTransferLogRepo := repository.NewGormPigTransferLogRepository(storage.GetDB()) pigTransferLogRepo := repository.NewGormPigTransferLogRepository(storage.GetDB())
pigTradeRepo := repository.NewGormPigTradeRepository(storage.GetDB()) pigTradeRepo := repository.NewGormPigTradeRepository(storage.GetDB())
pigSickPigLogRepo := repository.NewGormPigSickLogRepository(storage.GetDB())
pigGroupMedicationLogRepo := repository.NewGormGroupMedicationLogRepository(storage.GetDB())
// 初始化事务管理器 // 初始化事务管理器
unitOfWork := repository.NewGormUnitOfWork(storage.GetDB(), logger) unitOfWork := repository.NewGormUnitOfWork(storage.GetDB(), logger)

View File

@@ -0,0 +1 @@
package pig

View File

@@ -27,20 +27,22 @@ const (
SickPigReasonTypeOther PigBatchSickPigReasonType = "其他" // 其他原因 SickPigReasonTypeOther PigBatchSickPigReasonType = "其他" // 其他原因
) )
// PigBatchSickPigLog 记录了猪批次中病猪数量的变化日志 // PigSickLog 记录了猪批次中病猪数量的变化日志
type PigBatchSickPigLog struct { type PigSickLog struct {
gorm.Model gorm.Model
PigBatchID uint `gorm:"primaryKey;comment:关联的猪批次ID"` PigBatchID uint `gorm:"primaryKey;comment:关联的猪批次ID"`
PenID uint `gorm:"not null;index;comment:所在猪圈ID"` PenID uint `gorm:"not null;index;comment:所在猪圈ID"`
PigIDs string `gorm:"size:500;comment:涉及的猪只ID列表逗号分隔"` PigIDs string `gorm:"size:500;comment:涉及的猪只ID列表逗号分隔"`
ChangeCount int `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"` ChangeCount int `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"`
Reason PigBatchSickPigReasonType `gorm:"size:20;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:备注"` Remarks string `gorm:"size:255;comment:备注"`
TreatmentLocation PigBatchSickPigTreatmentLocation `gorm:"size:50;comment:治疗地点"` TreatmentLocation PigBatchSickPigTreatmentLocation `gorm:"size:50;comment:治疗地点"`
OperatorID uint `gorm:"comment:操作员ID"` OperatorID uint `gorm:"comment:操作员ID"`
HappenedAt time.Time `gorm:"primaryKey;comment:事件发生时间"` HappenedAt time.Time `gorm:"primaryKey;comment:事件发生时间"`
} }
func (PigBatchSickPigLog) TableName() string { func (PigSickLog) TableName() string {
return "pig_batch_sick_pig_logs" return "pig_sick_logs"
} }

View File

@@ -0,0 +1,26 @@
package repository
import (
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
"gorm.io/gorm"
)
// GroupMedicationLogRepository 定义了与群体用药日志模型相关的数据库操作接口。
type GroupMedicationLogRepository interface {
CreateGroupMedicationLog(log *models.GroupMedicationLog) error
}
// gormGroupMedicationLogRepository 是 GroupMedicationLogRepository 接口的 GORM 实现。
type gormGroupMedicationLogRepository struct {
db *gorm.DB
}
// NewGormGroupMedicationLogRepository 创建一个新的 GroupMedicationLogRepository GORM 实现实例。
func NewGormGroupMedicationLogRepository(db *gorm.DB) GroupMedicationLogRepository {
return &gormGroupMedicationLogRepository{db: db}
}
// CreateGroupMedicationLog 创建一条新的群体用药日志记录
func (r *gormGroupMedicationLogRepository) CreateGroupMedicationLog(log *models.GroupMedicationLog) error {
return r.db.Create(log).Error
}

View File

@@ -0,0 +1,26 @@
package repository
import (
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
"gorm.io/gorm"
)
// PigSickLogRepository 定义了与病猪日志模型相关的数据库操作接口。
type PigSickLogRepository interface {
CreatePigSickLog(log *models.PigSickLog) error
}
// gormPigSickLogRepository 是 PigSickLogRepository 接口的 GORM 实现。
type gormPigSickLogRepository struct {
db *gorm.DB
}
// NewGormPigSickLogRepository 创建一个新的 PigSickLogRepository GORM 实现实例。
func NewGormPigSickLogRepository(db *gorm.DB) PigSickLogRepository {
return &gormPigSickLogRepository{db: db}
}
// CreatePigSickLog 创建一条新的病猪日志记录
func (r *gormPigSickLogRepository) CreatePigSickLog(log *models.PigSickLog) error {
return r.db.Create(log).Error
}

File diff suppressed because it is too large Load Diff