| | |
| | | // WorkerPosition 机台管理 |
| | | WorkerPosition struct { |
| | | gorm.Model |
| | | StartDate string `gorm:"type:varchar(255);not null;default:'';comment:开始日期"` //开始日期 |
| | | EndDate string `gorm:"type:varchar(255);not null;default:'';comment:结束日期"` //结束日期 |
| | | Workshop string `gorm:"type:varchar(255);not null;comment:车间" json:"name"` //车间 |
| | | WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:车组" json:"workshopGroup"` //车组 |
| | | StartWorkerPosition int `json:"startWorkerPosition" gorm:"type:int(11);comment:开始车号"` //开始车号 |
| | | EndWorkerPosition int `json:"endWorkerPosition" gorm:"type:int(11);comment:结束车号"` //结束车号 |
| | | WorkerId string `gorm:"type:varchar(255);not null;default:'';comment:工人ID" json:"workerId"` //工人ID |
| | | Worker Worker `gorm:"foreignkey:WorkerId" json:"worker"` //工人 |
| | | StartDate string `gorm:"type:varchar(255);not null;default:'';comment:开始日期"` //开始日期 |
| | | EndDate string `gorm:"type:varchar(255);not null;default:'';comment:结束日期"` //结束日期 |
| | | Workshop string `gorm:"type:varchar(255);not null;default:'';comment:车间编号" json:"workshop"` //车间编号 |
| | | WorkshopName string `gorm:"type:varchar(255);not null;default:'';comment:车间名称" json:"workshopName"` //车间名称 |
| | | WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:车组" json:"workshopGroup"` //车组 |
| | | StartWorkerPosition int `json:"startWorkerPosition" gorm:"type:int(11);comment:开始车号"` //开始车号 |
| | | EndWorkerPosition int `json:"endWorkerPosition" gorm:"type:int(11);comment:结束车号"` //结束车号 |
| | | WorkerId string `gorm:"type:varchar(255);not null;default:'';comment:工人ID" json:"workerId"` //工人ID |
| | | Worker Worker `gorm:"foreignkey:WorkerId" json:"worker"` //工人 |
| | | Creator string `gorm:"type:varchar(255);not null;default:'';comment:添加人" json:"creator"` |
| | | } |
| | | WorkerPositionSearch struct { |
| | | WorkerPosition |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | Preload bool |
| | | Keyword string |
| | | Order string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | Preload bool |
| | | Keyword string |
| | | OverlappingDateStart string |
| | | OverlappingDateEnd string |
| | | WorkerDate string |
| | | } |
| | | ) |
| | | |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *WorkerPositionSearch) SetOverlappingDate(startDate string, endDate string) *WorkerPositionSearch { |
| | | slf.OverlappingDateStart = startDate |
| | | slf.OverlappingDateEnd = endDate |
| | | return slf |
| | | } |
| | | |
| | | func (slf *WorkerPositionSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Table(slf.TableName()) |
| | | |
| | |
| | | |
| | | if slf.Keyword != "" { |
| | | kw := "%" + slf.Keyword + "%" |
| | | db = db.Joins("Worker").Where("silk_mentor.worker_id LIKE ? or Worker.name LIKE ?", kw, kw) |
| | | db = db.Joins("Worker").Where("silk_worker_position.worker_id LIKE ? or Worker.name LIKE ? or silk_worker_position.workshop like ? or silk_worker_position.workshop_name like ?", kw, kw, kw, kw) |
| | | } |
| | | |
| | | if slf.Workshop != "" { |
| | |
| | | db = db.Model(&WorkerPosition{}).Preload("Worker") |
| | | } |
| | | |
| | | if slf.OverlappingDateStart != "" && slf.OverlappingDateEnd != "" { |
| | | db = db.Where("start_date <= ? and end_date >= ?", slf.OverlappingDateEnd, slf.OverlappingDateStart) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |