From 38c6f7308c1dd22a8ea286c3ea1de3a4e714f78f Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期五, 02 八月 2024 16:44:51 +0800 Subject: [PATCH] BUG修复,新的工资计算方式添加遗漏的“考勤及补贴数据”(工作日加班时长、休息日加班时长、带徒天数、满勤奖、请假天数、工龄) --- models/workshop_manage.go | 126 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 112 insertions(+), 14 deletions(-) diff --git a/models/workshop_manage.go b/models/workshop_manage.go index f1bdc07..df3e9b6 100644 --- a/models/workshop_manage.go +++ b/models/workshop_manage.go @@ -11,24 +11,30 @@ type ( WorkshopManage struct { gorm.Model - WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"` - GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"` - StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:寮�濮嬭溅鍙�"` - EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:缁撴潫杞﹀彿"` - CarFlag constvar.CarFlag `json:"carFlag" gorm:"type:int(1);comment:鍗婅溅鏍囧織"` - Notes string `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"` + WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"` + WorkshopName string `json:"workshopName" gorm:"type:varchar(255);comment:杞﹂棿鍚嶇О"` + Type constvar.WorkshopType `json:"type" gorm:"size:1;comment:绫诲瀷(1杞﹂棿銆�2鍒嗙粍)"` // 绫诲瀷(1杞﹂棿銆�2鍒嗙粍) + ParentID string `json:"parentID" gorm:"size:11;comment:杞﹂棿缂栧彿"` + GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"` + StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:寮�濮嬭溅鍙�"` + StartCarHalf constvar.CarFlag `json:"startCarHalf" gorm:"type:int(1);comment:寮�濮嬪崐杞︽爣璇�(1宸﹀崐杞︺��2鍙冲崐杞�)"` + EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:缁撴潫杞﹀彿"` + EndCarHalf constvar.CarFlag `json:"endCarHalf" gorm:"type:int(1);comment:缁撴潫鍗婅溅鏍囪瘑(1宸﹀崐杞︺��2鍙冲崐杞�)"` + CarFlag int `json:"carFlag" gorm:"type:int(1);comment:鍗婅溅鏍囧織(0鍏ㄨ溅銆�1鍗婅溅)"` + Notes string `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"` } WorkshopManageSearch struct { WorkshopManage - PageNum int - PageSize int - Order string - Orm *gorm.DB + WorkshopNumberArr []string + PageNum int + PageSize int + Order string + Orm *gorm.DB } ) func (slf WorkshopManage) TableName() string { - return "workshop_manage" + return "silk_workshop_manage" } func NewWorkshopManageSearch() *WorkshopManageSearch { @@ -50,8 +56,28 @@ return slf } +func (slf *WorkshopManageSearch) SetType(types constvar.WorkshopType) *WorkshopManageSearch { + slf.Type = types + return slf +} + +func (slf *WorkshopManageSearch) SetParentID(parentID string) *WorkshopManageSearch { + slf.ParentID = parentID + return slf +} + func (slf *WorkshopManageSearch) SetWorkshopNumber(workshopNumber string) *WorkshopManageSearch { slf.WorkshopNumber = workshopNumber + return slf +} + +func (slf *WorkshopManageSearch) SetWorkshopName(workshopName string) *WorkshopManageSearch { + slf.WorkshopName = workshopName + return slf +} + +func (slf *WorkshopManageSearch) SetWorkshopNumberArr(workshopNumberArr []string) *WorkshopManageSearch { + slf.WorkshopNumberArr = workshopNumberArr return slf } @@ -72,8 +98,24 @@ db = db.Where("id = ?", slf.ID) } + if slf.Type > 0 { + db = db.Where("`type` = ?", slf.Type) + } + + if slf.ParentID != "" { + db = db.Where("parent_id = ?", slf.ParentID) + } + if slf.WorkshopNumber != "" { db = db.Where("workshop_number = ?", slf.WorkshopNumber) + } + + if len(slf.WorkshopNumberArr) > 0 { + db = db.Where("workshop_number in (?)", slf.WorkshopNumberArr) + } + + if slf.WorkshopName != "" { + db = db.Where("workshop_name = ?", slf.WorkshopName) } if slf.GroupNumber != 0 { @@ -93,6 +135,19 @@ return nil } +func (slf *WorkshopManageSearch) First() (*WorkshopManage, error) { + var ( + record = new(WorkshopManage) + db = slf.build() + ) + + if err := db.First(record).Error; err != nil { + return record, err + } + + return record, nil +} + func (slf *WorkshopManageSearch) Find() ([]*WorkshopManage, int64, error) { var ( records = make([]*WorkshopManage, 0) @@ -106,18 +161,32 @@ if slf.PageNum*slf.PageSize > 0 { db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) } - if err := db.Order("updated_at desc").Find(&records).Error; err != nil { + if slf.Order != "" { + db = db.Order(slf.Order) + } else { + db = db.Order("updated_at desc") + } + if err := db.Find(&records).Error; err != nil { return records, total, fmt.Errorf("find records err: %v", err) } return records, total, nil } -func (slf *WorkshopManageSearch) FindAll() ([]*WorkshopManage, error) { +func (slf *WorkshopManageSearch) FindNotTotal() ([]*WorkshopManage, error) { var ( records = make([]*WorkshopManage, 0) db = slf.build() ) + + if slf.PageNum*slf.PageSize > 0 { + db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) + } + if slf.Order != "" { + db = db.Order(slf.Order) + } else { + db = db.Order("updated_at desc") + } if err := db.Find(&records).Error; err != nil { return records, fmt.Errorf("find records err: %v", err) @@ -129,7 +198,7 @@ func (slf *WorkshopManageSearch) Save(record *WorkshopManage) error { var db = slf.build() - if err := db.Save(record).Error; err != nil { + if err := db.Omit("CreatedAt").Save(record).Error; err != nil { return fmt.Errorf("save err: %v, record: %+v", err, record) } @@ -145,3 +214,32 @@ return nil } + +func (slf *WorkshopManageSearch) Count() (int64, error) { + var ( + total int64 + db = slf.build() + ) + + if err := db.Count(&total).Error; err != nil { + return total, fmt.Errorf("find count err: %v", err) + } + return total, nil +} + +func (slf *WorkshopManageSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} -- Gitblit v1.8.0