From a904aa32e66688ba76c9e4b71b6738b0ba5f5d4f Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期四, 25 七月 2024 11:44:09 +0800 Subject: [PATCH] 添加字段,工种添加工种编码,用于计算工资(id无法固定工种信息) --- models/worker_position.go | 44 +++++++++++++++++++++++++++++--------------- 1 files changed, 29 insertions(+), 15 deletions(-) diff --git a/models/worker_position.go b/models/worker_position.go index 5597232..7907e4e 100644 --- a/models/worker_position.go +++ b/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 } -- Gitblit v1.8.0