yinbentan
2024-07-25 f874e81b77282079398c22c67af754a23d260c91
添加字段,工种添加工种编码,用于计算工资(id无法固定工种信息)
6个文件已修改
134 ■■■■■ 已修改文件
constvar/const.go 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/request/yield_register_request.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/work_type_manage_controller.go 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/work_type_manage.go 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_circle.go 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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: "停机补贴"}
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"`                    //规格
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, "参数解析失败,数据类型错误")
        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
    }
}
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
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:规格"`
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)
    }