| | |
| | | |
| | | import ( |
| | | "fmt" |
| | | "github.com/shopspring/decimal" |
| | | "gorm.io/gorm" |
| | | "silkserver/constvar" |
| | | "silkserver/pkg/mysqlx" |
| | | ) |
| | | |
| | |
| | | //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:加班时长"` |
| | | PhoneNum string `gorm:"type:varchar(191);comment:手机号" json:"phoneNum"` |
| | | } |
| | | AttendanceManageSearch struct { |
| | | AttendanceManage |
| | | PageNum int |
| | | PageSize int |
| | | Preload bool |
| | | Ids []uint |
| | | Month string |
| | | Keyword string |
| | | Order string |
| | | Orm *gorm.DB |
| | | } |
| | | ) |
| | |
| | | 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) SetKeyword(keyword string) *AttendanceManageSearch { |
| | | slf.Keyword = keyword |
| | | return slf |
| | | } |
| | | |
| | | func (slf *AttendanceManageSearch) SetOrder(order string) *AttendanceManageSearch { |
| | | slf.Order = order |
| | | return slf |
| | | } |
| | | |
| | | func (slf *AttendanceManageSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Table(slf.TableName()) |
| | | |
| | |
| | | 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) |
| | | } |
| | | |
| | | if slf.Keyword != "" { |
| | | db = db.Where("worker_name like ? or worker_id like ?", "%"+slf.Keyword+"%", "%"+slf.Keyword+"%") |
| | | } |
| | | if slf.Order != "" { |
| | | db = db.Order(slf.Order) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |