yinbentan
2024-07-25 1bd58eb901da8ca32d15c121effa7e22cc89e1bd
models/worker_position.go
@@ -10,24 +10,28 @@
   // 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
   }
)
@@ -84,6 +88,12 @@
   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())
@@ -97,7 +107,7 @@
   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 != "" {
@@ -116,6 +126,10 @@
      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
}