From f874e81b77282079398c22c67af754a23d260c91 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期四, 25 七月 2024 11:42:01 +0800
Subject: [PATCH] 添加字段,工种添加工种编码,用于计算工资(id无法固定工种信息)

---
 constvar/const.go                             |   60 ++++++++++++++++++++
 controllers/request/yield_register_request.go |    1 
 models/yield_register.go                      |    1 
 controllers/work_type_manage_controller.go    |   34 +++++++++++
 models/work_type_manage.go                    |   14 ++--
 models/yield_register_circle.go               |   24 +++++++
 6 files changed, 126 insertions(+), 8 deletions(-)

diff --git a/constvar/const.go b/constvar/const.go
index 72056a6..b92b930 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -140,3 +140,63 @@
 	TotalAttendanceDays     = "鍑哄嫟澶╂暟"
 	Seniority               = "宸ラ緞"
 )
+
+type ShiftOvertimeType string // 鍔犵彮绫诲瀷
+
+const (
+	ShiftOvertimeTypeTimeout  ShiftOvertimeType = "timeout"  // 瓒呮椂鍔犵彮
+	ShiftOvertimeTypeOvertime ShiftOvertimeType = "overtime" // 瓒呰繃鍥哄畾鐝鍔犵彮
+)
+
+type JobType string // 宸ョ绫诲瀷
+
+const (
+	JobTypeWeavers        JobType = "weavers"         // 鎸¤溅宸�
+	JobTypeCarHead        JobType = "car_head"        // 杞﹀ご宸�
+	JobTypeMaintenance    JobType = "maintenance"     // 淇濆叏宸�
+	JobTypeBoiled         JobType = "boiled"          // 鐓導宸�
+	JobTypeScoop          JobType = "scoop"           // 鑸�鑼у伐
+	JobTypeTransport      JobType = "transport"       // 閫佽導宸�
+	JobTypeCleaner        JobType = "cleaner"         // 娓呮磥宸�
+	JobTypeMachineCleaner JobType = "machine_cleaner" // 鎰熺煡鍣ㄦ竻娲楀伐
+	JobTypeAllPowerful    JobType = "all-powerful"    // 鍏ㄨ兘鏈哄姩
+	JobTypeMonitor        JobType = "monitor"         // 鐝暱
+	JobTypeTest           JobType = "test"            // 娴嬭瘯
+	JobTypeOther          JobType = "other"           // 鍏跺畠
+)
+
+var JobTypeArr = []JobType{JobTypeWeavers, JobTypeCarHead, JobTypeMaintenance,
+	JobTypeBoiled, JobTypeScoop, JobTypeTransport, JobTypeCleaner,
+	JobTypeMachineCleaner, JobTypeAllPowerful, JobTypeMonitor}
+var JobTypeMap = map[JobType]string{JobTypeWeavers: "鎸¤溅宸�", JobTypeCarHead: "杞﹀ご宸�", JobTypeMaintenance: "淇濆叏宸�",
+	JobTypeBoiled: "鐓導宸�", JobTypeScoop: "鑸�鑼у伐", JobTypeTransport: "閫佽導宸�", JobTypeCleaner: "娓呮磥宸�",
+	JobTypeMachineCleaner: "鎰熺煡鍣ㄦ竻娲楀伐", JobTypeAllPowerful: "鍏ㄨ兘鏈哄姩", JobTypeMonitor: "鐝暱"}
+
+type PayrollSubsidyType string // 琛ヨ创绫诲瀷
+
+const (
+	SubsidyTypeProduction         PayrollSubsidyType = "production"          // 鐢熶骇宸ヨ祫
+	SubsidyTypeLongTerm           PayrollSubsidyType = "long-term"           // 婊″嫟
+	SubsidyTypeTimeout            PayrollSubsidyType = "timeout"             // 瓒呮椂鍔犵彮
+	SubsidyTypeOvertime           PayrollSubsidyType = "overtime"            // 瓒呰繃鍥哄畾鐝鍔犵彮
+	SubsidyTypeTraffic            PayrollSubsidyType = "traffic"             // 浜ら��
+	SubsidyTypeMasterApprentice   PayrollSubsidyType = "master_apprentice"   // 甯﹀緬
+	SubsidyTypePosition           PayrollSubsidyType = "position"            // 宀椾綅
+	SubsidyTypeSocialSecurity     PayrollSubsidyType = "social_security "    // 绀句繚
+	SubsidyTypeSeniority          PayrollSubsidyType = "seniority"           // 宸ラ緞
+	SubsidyTypeBaseSalary         PayrollSubsidyType = "baseSalary "         // 淇濆簳
+	SubsidyTypeQualityStandards   PayrollSubsidyType = "quality_standards"   // 璐ㄩ噺濂�
+	SubsidyTypeSubstandardQuality PayrollSubsidyType = "substandard_quality" // 璐ㄩ噺缃�
+	SubsidyTypeHeat               PayrollSubsidyType = "heat"                // 楂樻俯
+	SubsidyTypeDailyInspection    PayrollSubsidyType = "daily_inspection"    // 鏃ュ父妫�鏌�
+	SubsidyTypeDowntime           PayrollSubsidyType = "downtime"            // 鍋滄満
+)
+
+var PayrollSubsidyTypeList = []PayrollSubsidyType{SubsidyTypeProduction, SubsidyTypeLongTerm, SubsidyTypeTimeout,
+	SubsidyTypeOvertime, SubsidyTypeTraffic, SubsidyTypeMasterApprentice, SubsidyTypePosition, SubsidyTypeSocialSecurity,
+	SubsidyTypeSeniority, SubsidyTypeBaseSalary, SubsidyTypeQualityStandards, SubsidyTypeSubstandardQuality, SubsidyTypeHeat,
+	SubsidyTypeDailyInspection, SubsidyTypeDowntime}
+var PayrollSubsidyTypeMap = map[PayrollSubsidyType]string{SubsidyTypeProduction: "鐢熶骇宸ヨ祫", SubsidyTypeLongTerm: "婊″嫟濂�", SubsidyTypeTimeout: "瓒呮椂鍔犵彮",
+	SubsidyTypeOvertime: "瓒呰繃鍥哄畾鐝鍔犵彮", SubsidyTypeTraffic: "浜ら�氳ˉ璐�", SubsidyTypeMasterApprentice: "甯﹀緬琛ヨ创", SubsidyTypePosition: "宀椾綅琛ヨ创", SubsidyTypeSocialSecurity: "涓嶇即绀句繚琛ヨ创",
+	SubsidyTypeSeniority: "宸ラ緞琛ヨ创", SubsidyTypeBaseSalary: "淇濆簳琛ュ樊", SubsidyTypeQualityStandards: "璐ㄩ噺濂�", SubsidyTypeSubstandardQuality: "璐ㄩ噺缃�", SubsidyTypeHeat: "楂樻俯琛ヨ创",
+	SubsidyTypeDailyInspection: "鏃ュ父妫�鏌�", SubsidyTypeDowntime: "鍋滄満琛ヨ创"}
diff --git a/controllers/request/yield_register_request.go b/controllers/request/yield_register_request.go
index 6331b25..786e8cf 100644
--- a/controllers/request/yield_register_request.go
+++ b/controllers/request/yield_register_request.go
@@ -13,6 +13,7 @@
 	Number                  string                    `json:"number"`                  //缂栧彿
 	CreateTime              string                    `json:"createTime"`              //鍒涘缓鏃堕棿
 	MarketId                uint                      `json:"marketId"`                //搴勫彛id
+	MarketNumber            string                    `json:"marketNumber"`            //搴勫彛缂栧彿
 	WorkshopNumber          string                    `json:"workshopNumber"`          //杞﹂棿缂栫爜
 	GroupNumber             int                       `json:"groupNumber"`             //缁勫埆
 	Spec                    string                    `json:"spec"`                    //瑙勬牸
diff --git a/controllers/work_type_manage_controller.go b/controllers/work_type_manage_controller.go
index 336edc3..1f90095 100644
--- a/controllers/work_type_manage_controller.go
+++ b/controllers/work_type_manage_controller.go
@@ -2,6 +2,7 @@
 
 import (
 	"github.com/gin-gonic/gin"
+	"silkserver/constvar"
 	"silkserver/controllers/request"
 	"silkserver/extend/code"
 	"silkserver/extend/util"
@@ -9,6 +10,7 @@
 	"silkserver/models"
 	"silkserver/pkg/timex"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -31,6 +33,7 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+	setWorkTypeCode(&params)
 	if params.ID > 0 {
 		//鏇存柊
 		err = models.NewWorkTypeManageSearch().Save(&params)
@@ -104,3 +107,34 @@
 	}
 	util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛")
 }
+
+func setWorkTypeCode(workType *models.WorkTypeManage) {
+	if workType.WorkName == "" {
+		return
+	}
+	if strings.Contains(workType.WorkName, "鎸¤溅") {
+		workType.Code = constvar.JobTypeWeavers
+	} else if strings.Contains(workType.WorkName, "杞﹀ご") {
+		workType.Code = constvar.JobTypeCarHead
+	} else if strings.Contains(workType.WorkName, "淇濆叏") {
+		workType.Code = constvar.JobTypeMaintenance
+	} else if strings.Contains(workType.WorkName, "鐓導") {
+		workType.Code = constvar.JobTypeBoiled
+	} else if strings.Contains(workType.WorkName, "鑸�鑼�") {
+		workType.Code = constvar.JobTypeScoop
+	} else if strings.Contains(workType.WorkName, "閫佽導") {
+		workType.Code = constvar.JobTypeTransport
+	} else if strings.Contains(workType.WorkName, "鍣ㄦ竻娲�") {
+		workType.Code = constvar.JobTypeMachineCleaner
+	} else if strings.Contains(workType.WorkName, "娓呮磥") {
+		workType.Code = constvar.JobTypeCleaner
+	} else if strings.Contains(workType.WorkName, "鍏ㄨ兘") {
+		workType.Code = constvar.JobTypeAllPowerful
+	} else if strings.Contains(workType.WorkName, "鐝暱") {
+		workType.Code = constvar.JobTypeMonitor
+	} else if strings.Contains(workType.WorkName, "娴嬭瘯") {
+		workType.Code = constvar.JobTypeTest
+	} else {
+		workType.Code = constvar.JobTypeOther
+	}
+}
diff --git a/models/work_type_manage.go b/models/work_type_manage.go
index c7ea433..fab18e6 100644
--- a/models/work_type_manage.go
+++ b/models/work_type_manage.go
@@ -4,6 +4,7 @@
 	"fmt"
 	"github.com/shopspring/decimal"
 	"gorm.io/gorm"
+	"silkserver/constvar"
 	"silkserver/pkg/mysqlx"
 )
 
@@ -11,12 +12,13 @@
 	//WorkTypeManage 宸ョ绠$悊
 	WorkTypeManage struct {
 		gorm.Model
-		WorkName        string          `json:"workName" gorm:"type:varchar(255);comment:宸ョ鍚嶇О"`
-		IsGuaranteed    bool            `json:"isGuaranteed" gorm:"type:int(1);comment:涓嶈揪鏍囦繚搴�"`
-		GuaranteedWages decimal.Decimal `json:"guaranteedWages" gorm:"type:decimal(20,3);comment:淇濆簳宸ヨ祫"`
-		CreateTime      string          `json:"createTime" gorm:"type:varchar(255);comment:娣诲姞鏃堕棿"`
-		AddPeople       string          `json:"addPeople" gorm:"type:varchar(255);comment:娣诲姞浜�"`
-		SalaryPlans     []*SalaryPlan   `json:"salaryPlans" gorm:"many2many:silk_salaryPlan_workType"`
+		Code            constvar.JobType `json:"code" gorm:"type:varchar(255);comment:宸ョ缂栫爜"`
+		WorkName        string           `json:"workName" gorm:"type:varchar(255);comment:宸ョ鍚嶇О"`
+		IsGuaranteed    bool             `json:"isGuaranteed" gorm:"type:int(1);comment:涓嶈揪鏍囦繚搴�"`
+		GuaranteedWages decimal.Decimal  `json:"guaranteedWages" gorm:"type:decimal(20,3);comment:淇濆簳宸ヨ祫"`
+		CreateTime      string           `json:"createTime" gorm:"type:varchar(255);comment:娣诲姞鏃堕棿"`
+		AddPeople       string           `json:"addPeople" gorm:"type:varchar(255);comment:娣诲姞浜�"`
+		SalaryPlans     []*SalaryPlan    `json:"salaryPlans" gorm:"many2many:silk_salaryPlan_workType"`
 	}
 	WorkTypeManageSearch struct {
 		WorkTypeManage
diff --git a/models/yield_register.go b/models/yield_register.go
index 489a38a..2b863b3 100644
--- a/models/yield_register.go
+++ b/models/yield_register.go
@@ -14,6 +14,7 @@
 		Number                  string                 `json:"number" gorm:"type:varchar(255);not null;comment:缂栧彿"`
 		CreateTime              string                 `json:"createTime" gorm:"type:varchar(255);comment:鍒涘缓鏃堕棿"`
 		MarketId                uint                   `json:"marketId" gorm:"type:int(11);comment:搴勫彛id"`
+		MarketNumber            string                 `gorm:"size:255;comment:搴勫彛" json:"marketNumber"` //搴勫彛缂栧彿
 		WorkshopNumber          string                 `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栫爜"`
 		GroupNumber             int                    `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"`
 		Spec                    string                 `json:"spec" gorm:"type:varchar(255);comment:瑙勬牸"`
diff --git a/models/yield_register_circle.go b/models/yield_register_circle.go
index 7f089cc..44a83dd 100644
--- a/models/yield_register_circle.go
+++ b/models/yield_register_circle.go
@@ -22,7 +22,9 @@
 	}
 	YieldRegisterCircleSearch struct {
 		YieldRegisterCircle
-		Orm *gorm.DB
+		YieldRegisterIds []uint
+		Order            string
+		Orm              *gorm.DB
 	}
 )
 
@@ -44,11 +46,29 @@
 	return slf
 }
 
+func (slf *YieldRegisterCircleSearch) SetYieldRegisterIds(ids []uint) *YieldRegisterCircleSearch {
+	slf.YieldRegisterIds = ids
+	return slf
+}
+
+func (slf *YieldRegisterCircleSearch) SetOrder(order string) *YieldRegisterCircleSearch {
+	slf.Order = order
+	return slf
+}
+
 func (slf *YieldRegisterCircleSearch) build() *gorm.DB {
 	db := slf.Orm.Table(slf.TableName())
 
 	if slf.YieldRegisterId > 0 {
 		db = db.Where("yield_register_id = ?", slf.YieldRegisterId)
+	}
+
+	if len(slf.YieldRegisterIds) > 0 {
+		db = db.Where("yield_register_id in ?", slf.YieldRegisterIds)
+	}
+
+	if slf.Order != "" {
+		db = db.Order(slf.Order)
 	}
 
 	return db
@@ -70,7 +90,7 @@
 		db      = slf.build()
 	)
 
-	if err := db.Find(&records).Error; err != nil {
+	if err := db.Order("car_number").Find(&records).Error; err != nil {
 		return records, fmt.Errorf("find records err: %v", err)
 	}
 

--
Gitblit v1.8.0