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