From 43c71d8c5f0f65f919a8600b411ebb614097549b Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期四, 18 四月 2024 16:10:33 +0800 Subject: [PATCH] 工种与薪资方案 --- constvar/const.go | 14 + models/salary_plan.go | 154 ++++++++++++ controllers/work_type_manage_controller.go | 59 ++++ pkg/timex/timex.go | 28 -- models/mini_dict.go | 269 ++++++++++++++++++++++ models/work_type_manage.go | 14 + controllers/response/salary_work_response.go | 13 + controllers/request/worker_request.go | 10 controllers/salary_plan_controller.go | 106 ++++++++ models/db.go | 1 controllers/worker_controller.go | 4 router/router.go | 12 12 files changed, 650 insertions(+), 34 deletions(-) diff --git a/constvar/const.go b/constvar/const.go index 9ac7e61..dcc75db 100644 --- a/constvar/const.go +++ b/constvar/const.go @@ -56,3 +56,17 @@ WorkerStatusHoliday // 璇峰亣 WorkerStatusOvertime // 鍔犵彮 ) + +// MiniDictType 杩蜂綘瀛楀吀绫诲瀷 +type MiniDictType int + +const ( + MiniDictTypePlcBrand MiniDictType = iota + 1 // PLC鍝佺墝 + MiniDictTypeBomVersionType // Bom鐗堟湰绫诲瀷 + EarlyWarningDay //棰勮澶╂暟 + InspectionWayType //璐ㄦ鏂瑰紡绫诲瀷 + OutsourcingSupplierType //濮斿渚涘簲鍟嗙被鍨� + OutsourcingSupplierCreditGrade //淇$敤绛夌骇 + OutsourcingSupplierRange //渚涜揣鑼冨洿 + SalaryType //鍢夎仈钖祫绫诲瀷 +) diff --git a/controllers/request/worker_request.go b/controllers/request/worker_request.go index 61ca9d2..3eb6fbf 100644 --- a/controllers/request/worker_request.go +++ b/controllers/request/worker_request.go @@ -4,3 +4,13 @@ PageInfo KeyWord string `json:"keyWord"` } + +type GetWorkTypeList struct { + PageInfo + KeyWord string `json:"keyWord"` +} + +type GetSalaryPlanList struct { + PageInfo + KeyWord string `json:"keyWord"` +} diff --git a/controllers/response/salary_work_response.go b/controllers/response/salary_work_response.go new file mode 100644 index 0000000..ffcbc11 --- /dev/null +++ b/controllers/response/salary_work_response.go @@ -0,0 +1,13 @@ +package response + +import "github.com/shopspring/decimal" + +type WorkTypeList struct { + Id uint `json:"id"` + WorkName string `json:"workName"` //宸ョ鍚嶇О + IsGuaranteed bool `json:"isGuaranteed"` //涓嶈揪鏍囦繚搴� + GuaranteedWages decimal.Decimal `json:"guaranteedWages"` //淇濆簳宸ヨ祫 + AddPeople string `json:"addPeople"` //娣诲姞浜� + CreateTime string `json:"createTime"` //娣诲姞鏃堕棿 + SalaryPlan string `json:"salaryPlan"` //钖祫鏂规 +} diff --git a/controllers/salary_plan_controller.go b/controllers/salary_plan_controller.go new file mode 100644 index 0000000..1aa74b4 --- /dev/null +++ b/controllers/salary_plan_controller.go @@ -0,0 +1,106 @@ +package controllers + +import ( + "github.com/gin-gonic/gin" + "silkserver/controllers/request" + "silkserver/extend/code" + "silkserver/extend/util" + "silkserver/middleware" + "silkserver/models" + "silkserver/pkg/timex" + "strconv" + "time" +) + +type SalaryPlanController struct { +} + +// SaveSalaryPlan +// +// @Tags 鍛樺伐钖祫/钖叕鏂规 +// @Summary 淇濆瓨钖叕鏂规 +// @Produce application/json +// @Param object body models.SaveSalaryPlan true "鍙傛暟" +// @Param Authorization header string true "token" +// @Success 200 {object} util.Response "鎴愬姛" +// @Router /api-jl/v1/salary/saveSalaryPlan [post] +func (slf SalaryPlanController) SaveSalaryPlan(c *gin.Context) { + var params models.SalaryPlan + err := c.BindJSON(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") + return + } + if params.ID > 0 { + //鏇存柊 + err = models.NewSalaryPlanSearch().Save(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") + return + } + } else { + //鏂板缓 + info := middleware.GetUserInfo(c) + params.AddPeople = info.NickName + params.CreateTime = timex.TimeToString2(time.Now()) + err = models.NewSalaryPlanSearch().Create(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") + return + } + } + + util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛") +} + +// GetSalaryPlanList +// +// @Tags 鍛樺伐钖祫/钖叕鏂规 +// @Summary 鑾峰彇钖叕鏂规鍒楄〃 +// @Produce application/json +// @Param object body request.GetSalaryPlanList true "鍙傛暟" +// @Param Authorization header string true "token" +// @Success 200 {object} util.ResponseList{data=[]models.SalaryPlan} "鎴愬姛" +// @Router /api-jl/v1/salary/getSalaryPlanList [post] +func (slf SalaryPlanController) GetSalaryPlanList(c *gin.Context) { + var params request.GetSalaryPlanList + err := c.BindJSON(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") + return + } + find, total, err := models.NewSalaryPlanSearch().SetPage(params.Page, params.PageSize).Find() + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触") + return + } + util.ResponseFormatList(c, code.Success, find, total) +} + +// DeleteSalaryPlanInfo +// +// @Tags 鍛樺伐钖祫/钖叕鏂规 +// @Summary 鍒犻櫎钖叕鏂规 +// @Produce application/json +// @Param number path string true "id" +// @Param Authorization header string true "token" +// @Success 200 {object} util.Response "鎴愬姛" +// @Router /api-jl/v1/salary/deleteSalaryPlanInfo/{id} [delete] +func (slf SalaryPlanController) DeleteSalaryPlanInfo(c *gin.Context) { + id := c.Param("id") + if id == "" { + util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨刬d") + return + } + atoi, _ := strconv.Atoi(id) + if atoi == 0 { + util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨刬d") + return + } + err := models.NewSalaryPlanSearch().SetId(atoi).Delete() + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触") + return + } + util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛") +} diff --git a/controllers/work_type_manage_controller.go b/controllers/work_type_manage_controller.go index dd6446e..57dc595 100644 --- a/controllers/work_type_manage_controller.go +++ b/controllers/work_type_manage_controller.go @@ -2,10 +2,14 @@ import ( "github.com/gin-gonic/gin" + "silkserver/controllers/request" "silkserver/extend/code" "silkserver/extend/util" "silkserver/middleware" "silkserver/models" + "silkserver/pkg/timex" + "strconv" + "time" ) type WorkTypeManageController struct { @@ -13,7 +17,7 @@ // SaveWorkTypeInfo // -// @Tags 鍛樺伐绠$悊/鍛樺伐淇℃伅 +// @Tags 鍛樺伐绠$悊/宸ョ淇℃伅 // @Summary 淇濆瓨宸ョ淇℃伅 // @Produce application/json // @Param object body models.WorkTypeManage true "鍙傛暟" @@ -38,6 +42,7 @@ //鏂板缓 info := middleware.GetUserInfo(c) params.AddPeople = info.NickName + params.CreateTime = timex.TimeToString2(time.Now()) err = models.NewWorkTypeManageSearch().Create(¶ms) if err != nil { util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") @@ -47,3 +52,55 @@ util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛") } + +// GetWorkTypeList +// +// @Tags 鍛樺伐绠$悊/宸ョ淇℃伅 +// @Summary 鑾峰彇宸ョ鍒楄〃 +// @Produce application/json +// @Param object body request.GetWorkTypeList true "鍙傛暟" +// @Param Authorization header string true "token" +// @Success 200 {object} util.ResponseList{data=[]models.WorkTypeManage} "鎴愬姛" +// @Router /api-jl/v1/worker/getWorkTypeList [post] +func (slf WorkTypeManageController) GetWorkTypeList(c *gin.Context) { + var params request.GetWorkTypeList + err := c.BindJSON(¶ms) + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�") + return + } + find, total, err := models.NewWorkTypeManageSearch().SetPage(params.Page, params.PageSize).Find() + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触") + return + } + util.ResponseFormatList(c, code.Success, find, total) +} + +// DeleteWorkTypeInfo +// +// @Tags 鍛樺伐绠$悊/宸ョ淇℃伅 +// @Summary 鍒犻櫎宸ョ淇℃伅 +// @Produce application/json +// @Param number path string true "id" +// @Param Authorization header string true "token" +// @Success 200 {object} util.Response "鎴愬姛" +// @Router /api-jl/v1/worker/deleteWorkTypeInfo/{id} [delete] +func (slf WorkTypeManageController) DeleteWorkTypeInfo(c *gin.Context) { + id := c.Param("id") + if id == "" { + util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨刬d") + return + } + atoi, _ := strconv.Atoi(id) + if atoi == 0 { + util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨刬d") + return + } + err := models.NewWorkTypeManageSearch().SetId(atoi).Delete() + if err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触") + return + } + util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛") +} diff --git a/controllers/worker_controller.go b/controllers/worker_controller.go index ba2f5c8..235786f 100644 --- a/controllers/worker_controller.go +++ b/controllers/worker_controller.go @@ -114,9 +114,9 @@ // @Tags 鍛樺伐绠$悊/鍛樺伐淇℃伅 // @Summary 鍒犻櫎浜哄憳淇℃伅 // @Produce application/json -// @Param object body request.GetWorkerList true "鍙傛暟" +// @Param number path string true "id" // @Param Authorization header string true "token" -// @Success 200 {object} util.ResponseList{data=[]models.Worker} "鎴愬姛" +// @Success 200 {object} util.Response "鎴愬姛" // @Router /api-jl/v1/worker/deleteWorkerInfo/{id} [delete] func (slf WorkerController) DeleteWorkerInfo(c *gin.Context) { id := c.Param("id") diff --git a/models/db.go b/models/db.go index 3928e7d..5fa289f 100644 --- a/models/db.go +++ b/models/db.go @@ -86,6 +86,7 @@ YieldRegisterCircle{}, Worker{}, WorkTypeManage{}, + SalaryPlan{}, ) return err } diff --git a/models/mini_dict.go b/models/mini_dict.go new file mode 100644 index 0000000..729307e --- /dev/null +++ b/models/mini_dict.go @@ -0,0 +1,269 @@ +package models + +import ( + "fmt" + "gorm.io/gorm" + "silkserver/constvar" + "silkserver/pkg/mysqlx" +) + +type ( + // MiniDict 杩蜂綘瀛楀吀 + MiniDict struct { + BaseModelInt + Type constvar.MiniDictType `gorm:"uniqueIndex:idx_type_name;type:int(11);not null;comment:瀛楀吀绫诲瀷" json:"type"` + Name string `gorm:"uniqueIndex:idx_type_name;;type:varchar(191);not null;comment:鍚嶇О" json:"name"` + Value string `gorm:"type:varchar(191);;comment:鍊�" json:"value"` + IsDefault bool `gorm:"type:tinyint(1);comment:鏄惁榛樿" json:"isDefault"` + } + + MiniDictSearch struct { + MiniDict + Order string + PageNum int + PageSize int + Orm *gorm.DB + } +) + +func (slf MiniDict) TableName() string { + return "mini_dict" +} + +func NewMiniDictSearch() *MiniDictSearch { + return &MiniDictSearch{Orm: mysqlx.GetDB()} +} + +func (slf *MiniDictSearch) SetOrm(tx *gorm.DB) *MiniDictSearch { + slf.Orm = tx + return slf +} + +func (slf *MiniDictSearch) SetPage(page, size int) *MiniDictSearch { + slf.PageNum, slf.PageSize = page, size + return slf +} + +func (slf *MiniDictSearch) SetOrder(order string) *MiniDictSearch { + slf.Order = order + return slf +} + +func (slf *MiniDictSearch) SetID(id uint) *MiniDictSearch { + slf.ID = id + return slf +} + +func (slf *MiniDictSearch) SetType(tp constvar.MiniDictType) *MiniDictSearch { + slf.Type = tp + return slf +} + +func (slf *MiniDictSearch) SetName(name string) *MiniDictSearch { + slf.Name = name + return slf +} + +func (slf *MiniDictSearch) SetValue(value string) *MiniDictSearch { + slf.Value = value + return slf +} + +func (slf *MiniDictSearch) build() *gorm.DB { + var db = slf.Orm.Table(slf.TableName()) + + if slf.ID > 0 { + db = db.Where("id = ?", slf.ID) + } + + if slf.Type > 0 { + db = db.Where("type = ?", slf.Type) + } + + if slf.Name != "" { + db = db.Where("name = ?", slf.Name) + } + + if slf.Value != "" { + db = db.Where("value = ?", slf.Value) + } + + db.Where("1 = 1") + if slf.Order != "" { + db = db.Order(slf.Order) + } + + return db +} + +// Create 鍗曟潯鎻掑叆 +func (slf *MiniDictSearch) Create(record *MiniDict) error { + var db = slf.build() + + if err := db.Create(record).Error; err != nil { + return fmt.Errorf("create err: %v, record: %+v", err, record) + } + + return nil +} + +// CreateBatch 鎵归噺鎻掑叆 +func (slf *MiniDictSearch) CreateBatch(records []*MiniDict) error { + var db = slf.build() + + if err := db.Create(&records).Error; err != nil { + return fmt.Errorf("create batch err: %v, records: %+v", err, records) + } + + return nil +} + +func (slf *MiniDictSearch) Save(record *MiniDict) error { + var db = slf.build() + + if err := db.Omit("CreatedAt").Save(record).Error; err != nil { + return fmt.Errorf("save err: %v, record: %+v", err, record) + } + + return nil +} + +func (slf *MiniDictSearch) UpdateByMap(upMap map[string]interface{}) error { + var ( + db = slf.build() + ) + + if err := db.Updates(upMap).Error; err != nil { + return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap) + } + + return nil +} + +func (slf *MiniDictSearch) UpdateByQuery(query string, args []interface{}, upMap map[string]interface{}) error { + var ( + db = slf.Orm.Table(slf.TableName()).Where(query, args...) + ) + + if err := db.Updates(upMap).Error; err != nil { + return fmt.Errorf("update by query err: %v, query: %s, args: %+v, upMap: %+v", err, query, args, upMap) + } + + return nil +} + +func (slf *MiniDictSearch) Delete() error { + var db = slf.build() + + if err := db.Unscoped().Delete(&MiniDict{}).Error; err != nil { + return err + } + + return nil +} + +func (slf *MiniDictSearch) First() (*MiniDict, error) { + var ( + record = new(MiniDict) + db = slf.build() + ) + + if err := db.First(record).Error; err != nil { + return record, err + } + + return record, nil +} + +func (slf *MiniDictSearch) Find() ([]*MiniDict, int64, error) { + var ( + records = make([]*MiniDict, 0) + total int64 + db = slf.build() + ) + + if err := db.Count(&total).Error; err != nil { + return records, total, fmt.Errorf("find count err: %v", err) + } + if slf.PageNum*slf.PageSize > 0 { + db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) + } + if err := db.Find(&records).Error; err != nil { + return records, total, fmt.Errorf("find records err: %v", err) + } + + return records, total, nil +} + +func (slf *MiniDictSearch) FindNotTotal() ([]*MiniDict, error) { + var ( + records = make([]*MiniDict, 0) + db = slf.build() + ) + + if slf.PageNum*slf.PageSize > 0 { + db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) + } + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find records err: %v", err) + } + + return records, nil +} + +// FindByQuery 鎸囧畾鏉′欢鏌ヨ. +func (slf *MiniDictSearch) FindByQuery(query string, args []interface{}) ([]*MiniDict, int64, error) { + var ( + records = make([]*MiniDict, 0) + total int64 + db = slf.Orm.Table(slf.TableName()).Where(query, args...) + ) + + if err := db.Count(&total).Error; err != nil { + return records, total, fmt.Errorf("find by query count err: %v", err) + } + if slf.PageNum*slf.PageSize > 0 { + db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) + } + if err := db.Find(&records).Error; err != nil { + return records, total, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) + } + + return records, total, nil +} + +// FindByQueryNotTotal 鎸囧畾鏉′欢鏌ヨ&涓嶆煡璇㈡�绘潯鏁�. +func (slf *MiniDictSearch) FindByQueryNotTotal(query string, args []interface{}) ([]*MiniDict, error) { + var ( + records = make([]*MiniDict, 0) + db = slf.Orm.Table(slf.TableName()).Where(query, args...) + ) + + if slf.PageNum*slf.PageSize > 0 { + db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) + } + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) + } + + return records, nil +} + +// InitDefaultData 鍒濆鍖栨暟鎹� +//func (slf *MiniDictSearch) InitDefaultData() error { +// var ( +// db = slf.Orm.Table(slf.TableName()) +// total int64 = 0 +// ) +// if err := db.Where("type = ?", constvar.EarlyWarningDay).Count(&total).Error; err != nil { +// return err +// } +// if total != 0 { +// return nil +// } +// dict := make([]*MiniDict, 0) +// dict = append(dict, &MiniDict{Type: constvar.EarlyWarningDay, Name: "3", Value: "棰勮澶╂暟"}) +// dict = append(dict, &MiniDict{Type: constvar.EarlyWarningDay, Name: "1", Value: "鐗╂枡鍖归厤鏉′欢"}) +// err := slf.CreateBatch(dict) +// return err +//} diff --git a/models/salary_plan.go b/models/salary_plan.go new file mode 100644 index 0000000..fc47b52 --- /dev/null +++ b/models/salary_plan.go @@ -0,0 +1,154 @@ +package models + +import ( + "fmt" + "gorm.io/gorm" + "silkserver/pkg/mysqlx" +) + +type ( + //SalaryPlan 钖祫鏂规 + SalaryPlan struct { + gorm.Model + Name string `json:"name" gorm:"type:varchar(255);comment:钖祫鏂规鍚嶇О"` + SalaryType string `json:"salaryType" gorm:"type:varchar(255);comment:钖祫绫诲瀷"` + SalaryFormula string `json:"salaryFormula" gorm:"type:varchar(255);comment:钖祫鍏紡"` + Cycle string `json:"cycle" gorm:"type:varchar(255);comment:鍛ㄦ湡"` + CreateTime string `json:"createTime" gorm:"type:varchar(255);comment:娣诲姞鏃堕棿"` + AddPeople string `gorm:"type:varchar(255);comment:娣诲姞浜�" json:"addPeople"` + WorkTypes []*WorkTypeManage `gorm:"many2many:silk_salaryPlan_workType" json:"workTypes"` + } + SalaryPlanSearch struct { + SalaryPlan + PageNum int + PageSize int + Preload bool + Orm *gorm.DB + } +) + +func (slf SalaryPlan) TableName() string { + return "silk_salary_plan" +} + +func NewSalaryPlanSearch() *SalaryPlanSearch { + return &SalaryPlanSearch{Orm: mysqlx.GetDB()} +} + +func (slf *SalaryPlanSearch) SetOrm(tx *gorm.DB) *SalaryPlanSearch { + slf.Orm = tx + return slf +} + +func (slf *SalaryPlanSearch) SetPage(page, size int) *SalaryPlanSearch { + slf.PageNum, slf.PageSize = page, size + return slf +} + +func (slf *SalaryPlanSearch) SetPreload(preload bool) *SalaryPlanSearch { + slf.Preload = preload + return slf +} + +func (slf *SalaryPlanSearch) SetId(id int) *SalaryPlanSearch { + slf.ID = uint(id) + return slf +} + +func (slf *SalaryPlanSearch) build() *gorm.DB { + var db = slf.Orm.Table(slf.TableName()) + + if slf.ID > 0 { + db = db.Where("id = ?", slf.ID) + } + + return db +} + +// Create 鍗曟潯鎻掑叆 +func (slf *SalaryPlanSearch) Create(record *SalaryPlan) error { + var db = slf.build() + + if err := db.Create(record).Error; err != nil { + return fmt.Errorf("create err: %v, record: %+v", err, record) + } + + return nil +} + +func (slf *SalaryPlanSearch) Save(record *SalaryPlan) error { + var db = slf.build() + + if err := db.Omit("CreatedAt").Save(record).Error; err != nil { + return fmt.Errorf("save err: %v, record: %+v", err, record) + } + + return nil +} + +func (slf *SalaryPlanSearch) UpdateByMap(upMap map[string]interface{}) error { + var ( + db = slf.build() + ) + + if err := db.Updates(upMap).Error; err != nil { + return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap) + } + + return nil +} + +func (slf *SalaryPlanSearch) Delete() error { + var db = slf.build() + + if err := db.Unscoped().Delete(&SalaryPlan{}).Error; err != nil { + return err + } + + return nil +} + +func (slf *SalaryPlanSearch) Find() ([]*SalaryPlan, int64, error) { + var ( + records = make([]*SalaryPlan, 0) + total int64 + db = slf.build() + ) + + if err := db.Count(&total).Error; err != nil { + return records, total, fmt.Errorf("find count err: %v", err) + } + if slf.PageNum*slf.PageSize > 0 { + db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) + } + if err := db.Find(&records).Error; err != nil { + return records, total, fmt.Errorf("find records err: %v", err) + } + + return records, total, nil +} + +func (slf *SalaryPlanSearch) FindNotTotal() ([]*SalaryPlan, error) { + var ( + records = make([]*SalaryPlan, 0) + db = slf.build() + ) + + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find records err: %v", err) + } + + return records, nil +} + +func (slf *SalaryPlanSearch) Count() (int64, error) { + var ( + total int64 + db = slf.build() + ) + + if err := db.Count(&total).Error; err != nil { + return total, fmt.Errorf("find count err: %v", err) + } + return total, nil +} diff --git a/models/work_type_manage.go b/models/work_type_manage.go index f3f5973..eb11aca 100644 --- a/models/work_type_manage.go +++ b/models/work_type_manage.go @@ -13,8 +13,9 @@ 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:淇濆簳宸ヨ祫"` - PayProgrammeId uint `json:"payProgrammeId" gorm:"type:int(11);comment:钖祫鏂规id"` - AddPeople string `gorm:"type:varchar(255);comment:娣诲姞浜�" json:"addPeople"` + 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 @@ -43,6 +44,11 @@ return slf } +func (slf *WorkTypeManageSearch) SetId(id int) *WorkTypeManageSearch { + slf.ID = uint(id) + return slf +} + func (slf *WorkTypeManageSearch) SetPreload(preload bool) *WorkTypeManageSearch { slf.Preload = preload return slf @@ -51,6 +57,10 @@ func (slf *WorkTypeManageSearch) build() *gorm.DB { var db = slf.Orm.Table(slf.TableName()) + if slf.ID > 0 { + db = db.Where("id = ?", slf.ID) + } + return db } diff --git a/pkg/timex/timex.go b/pkg/timex/timex.go index 58ae6b0..68f63c9 100644 --- a/pkg/timex/timex.go +++ b/pkg/timex/timex.go @@ -1,7 +1,6 @@ package timex import ( - "silkserver/constvar" "time" ) @@ -56,31 +55,4 @@ func GetCurrentTime() string { return time.Now().Format(timeLayout) -} - -func NextDateTimestamp(base time.Time, unit constvar.InspectCycleUnit, cycle int) time.Time { - var t time.Time - switch unit { - case constvar.InspectCycleUnitWeek: - t = base.AddDate(0, 0, cycle*7) - case constvar.InspectCycleUnitMonth: - t = base.AddDate(0, cycle, 0) - case constvar.InspectCycleUnitDay: - t = base.AddDate(0, 0, cycle) - } - return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) -} - -// Cycle2Seconds 鍛ㄦ湡鎹㈢畻鎴愮鏁� -func Cycle2Seconds(unit constvar.InspectCycleUnit, cycle int) int { - var s int - switch unit { - case constvar.InspectCycleUnitWeek: - s = cycle * 86400 * 7 - case constvar.InspectCycleUnitMonth: - s = cycle * 86400 * 30 - case constvar.InspectCycleUnitDay: - s = cycle * 86400 - } - return s } diff --git a/router/router.go b/router/router.go index f4117cb..e963a74 100644 --- a/router/router.go +++ b/router/router.go @@ -82,7 +82,17 @@ workerApi.POST("getWorkerList", workerController.GetWorkerList) //鑾峰彇浜哄憳淇℃伅鍒楄〃 workerApi.DELETE("deleteWorkerInfo/:id", workerController.DeleteWorkerInfo) //鍒犻櫎浜哄憳淇℃伅 - workerApi.POST("saveWorkTypeInfo", workTypeManageController.SaveWorkTypeInfo) //淇濆瓨宸ョ淇℃伅 + workerApi.POST("saveWorkTypeInfo", workTypeManageController.SaveWorkTypeInfo) //淇濆瓨宸ョ淇℃伅 + workerApi.POST("getWorkTypeList", workTypeManageController.GetWorkTypeList) //鑾峰彇宸ョ鍒楄〃 + workerApi.DELETE("deleteWorkTypeInfo/:id", workTypeManageController.DeleteWorkTypeInfo) //鍒犻櫎宸ョ淇℃伅 + } + + salaryApi := r.Group(urlPrefix + "/salary") + salaryPlanController := new(controllers.SalaryPlanController) + { + salaryApi.POST("saveSalaryPlan", salaryPlanController.SaveSalaryPlan) //淇濆瓨钖叕鏂规 + salaryApi.POST("getSalaryPlanList", salaryPlanController.GetSalaryPlanList) //鑾峰彇钖叕鏂规鍒楄〃 + salaryApi.DELETE("deleteSalaryPlanInfo/:id", salaryPlanController.DeleteSalaryPlanInfo) //鍒犻櫎钖叕鏂规 } return r -- Gitblit v1.8.0