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(¶ms)
if params.ID > 0 {
//鏇存柊
err = models.NewWorkTypeManageSearch().Save(¶ms)
@@ -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