liujiandao
2024-04-23 3ae25318873c7175aedc529f05bacde8005d8b50
models/attendance_manage.go
@@ -2,7 +2,9 @@
import (
   "fmt"
   "github.com/shopspring/decimal"
   "gorm.io/gorm"
   "silkserver/constvar"
   "silkserver/pkg/mysqlx"
)
@@ -10,22 +12,28 @@
   //AttendanceManage 考勤管理表
   AttendanceManage struct {
      gorm.Model
      Date             string `json:"date" gorm:"type:varchar(255);comment:考勤时间"`
      WorkerId         string `json:"workerId" gorm:"type:varchar(255);comment:人员id"`
      WorkerName       string `json:"workerName" gorm:"type:varchar(255);comment:人员姓名"`
      StartWorkTime    string `json:"startWorkTime" gorm:"type:varchar(255);comment:上班打卡时间"`
      EndWorkTime      string `json:"endWorkTime" gorm:"type:varchar(255);comment:下班打卡时间"`
      Classes          string `json:"classes" gorm:"type:varchar(255);comment:班次"`
      ClassesStartTime string `json:"classesStartTime" gorm:"type:varchar(255);comment:班次开始时间"`
      ClassesEndTime   string `json:"classesEndTime" gorm:"type:varchar(255);comment:班次下班时间"`
      CreateTime       string `json:"createTime" gorm:"type:varchar(255);comment:添加时间"`
      AddPeople        string `json:"addPeople" gorm:"type:varchar(255);comment:添加人"`
      Date             string                    `json:"date" gorm:"type:varchar(255);comment:考勤时间"`
      WorkerId         string                    `json:"workerId" gorm:"type:varchar(255);comment:人员id"`
      WorkerName       string                    `json:"workerName" gorm:"type:varchar(255);comment:人员姓名"`
      StartWorkTime    string                    `json:"startWorkTime" gorm:"type:varchar(255);comment:上班打卡时间"`
      EndWorkTime      string                    `json:"endWorkTime" gorm:"type:varchar(255);comment:下班打卡时间"`
      Classes          string                    `json:"classes" gorm:"type:varchar(255);comment:班次"`
      ClassesStartTime string                    `json:"classesStartTime" gorm:"type:varchar(255);comment:班次开始时间"`
      ClassesEndTime   string                    `json:"classesEndTime" gorm:"type:varchar(255);comment:班次下班时间"`
      CreateTime       string                    `json:"createTime" gorm:"type:varchar(255);comment:添加时间"`
      AddPeople        string                    `json:"addPeople" gorm:"type:varchar(255);comment:添加人"`
      WorkTypeId       uint                      `json:"workTypeId" gorm:"type:int(11);comment:工种id"`
      WorkType         WorkTypeManage            `json:"workType" gorm:"foreignKey:WorkTypeId"`
      Status           constvar.AttendanceStatus `json:"status" gorm:"type:int(11);comment:状态"`
      OverTimeDuration decimal.Decimal           `json:"overTimeDuration" gorm:"type:decimal(20,2);comment:加班时长"`
   }
   AttendanceManageSearch struct {
      AttendanceManage
      PageNum  int
      PageSize int
      Preload  bool
      Ids      []uint
      Month    string
      Orm      *gorm.DB
   }
)
@@ -53,6 +61,26 @@
   return slf
}
func (slf *AttendanceManageSearch) SetPreload(preload bool) *AttendanceManageSearch {
   slf.Preload = preload
   return slf
}
func (slf *AttendanceManageSearch) SetMonth(month string) *AttendanceManageSearch {
   slf.Month = month
   return slf
}
func (slf *AttendanceManageSearch) SetDate(date string) *AttendanceManageSearch {
   slf.Date = date
   return slf
}
func (slf *AttendanceManageSearch) SetWorkerId(workerId string) *AttendanceManageSearch {
   slf.WorkerId = workerId
   return slf
}
func (slf *AttendanceManageSearch) build() *gorm.DB {
   var db = slf.Orm.Table(slf.TableName())
@@ -60,6 +88,22 @@
      db = db.Where("id in (?)", slf.Ids)
   }
   if slf.Preload {
      db = db.Model(&AttendanceManage{}).Preload("WorkType")
   }
   if slf.Month != "" {
      db = db.Where("date like ?", slf.Month+"%")
   }
   if slf.Date != "" {
      db = db.Where("date = ?", slf.Date)
   }
   if slf.WorkerId != "" {
      db = db.Where("worker_id = ?", slf.WorkerId)
   }
   return db
}