liujiandao
2024-04-16 9c14e884db911a2094d26c2a509f752a729f8e8d
人员管理
5个文件已添加
19个文件已修改
732 ■■■■■ 已修改文件
conf/config.yaml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
constvar/const.go 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/request/system_set.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/request/worker_request.go 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/work_type_manage_controller.go 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/worker_controller.go 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/workshop_manage_controller.go 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/yield_register_controller.go 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
middleware/jwt_request.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/db.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/dict.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness_check.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness_check_item.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/fineness_item.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/raw_silk_price_standard.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/raw_silk_rank_standard.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/work_type_manage.go 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/worker.go 328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/workshop_manage.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register.go 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_circle.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_item.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
conf/config.yaml
@@ -2,7 +2,7 @@
  port: 8008
  host: 192.168.20.119
db:
  dsn: root:c++java123@tcp(192.168.20.119:3306)/silk?charset=utf8&parseTime=True&loc=Local
  dsn: root:c++java123@tcp(192.168.20.119:3306)/aps_server2?charset=utf8&parseTime=True&loc=Local
  logMode: true
  maxIdleCon: 20
  maxOpenCon: 100
constvar/const.go
@@ -46,3 +46,13 @@
const (
    EveryPersonCarCheckNumber = 2 //每人每车抽检份数
)
// WorkerStatus 人员状态
type WorkerStatus int
const (
    WorkerStatusWorking  WorkerStatus = iota + 1 // 在班
    WorkerStatusRest                             // 休息
    WorkerStatusHoliday                          // 请假
    WorkerStatusOvertime                         // 加班
)
controllers/request/system_set.go
@@ -59,5 +59,5 @@
type GetWorkshopManageCar struct {
    WorkshopName string `json:"workshopName"` //车间名称
    GroupNumber  int    `json:"groupNumber"`  //组别
    MarketName   string `json:"marketName"`   ///庄口名
    MarketName   string `json:"marketName"`   //庄口名
}
controllers/request/worker_request.go
New file
@@ -0,0 +1,6 @@
package request
type GetWorkerList struct {
    PageInfo
    KeyWord string `json:"keyWord"`
}
controllers/work_type_manage_controller.go
New file
@@ -0,0 +1,49 @@
package controllers
import (
    "github.com/gin-gonic/gin"
    "silkserver/extend/code"
    "silkserver/extend/util"
    "silkserver/middleware"
    "silkserver/models"
)
type WorkTypeManageController struct {
}
// SaveWorkTypeInfo
//
//    @Tags        员工管理/员工信息
//    @Summary    保存工种信息
//    @Produce    application/json
//    @Param        object    body        models.WorkTypeManage    true    "参数"
//    @Param         Authorization    header string true "token"
//    @Success    200        {object}    util.Response        "成功"
//    @Router        /api-jl/v1/worker/saveWorkTypeInfo [post]
func (slf WorkTypeManageController) SaveWorkTypeInfo(c *gin.Context) {
    var params models.WorkTypeManage
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    if params.ID > 0 {
        //更新
        err = models.NewWorkTypeManageSearch().Save(&params)
        if err != nil {
            util.ResponseFormat(c, code.RequestParamError, "保存失败")
            return
        }
    } else {
        //新建
        info := middleware.GetUserInfo(c)
        params.AddPeople = info.NickName
        err = models.NewWorkTypeManageSearch().Create(&params)
        if err != nil {
            util.ResponseFormat(c, code.RequestParamError, "保存失败")
            return
        }
    }
    util.ResponseFormat(c, code.Success, "保存成功")
}
controllers/worker_controller.go
New file
@@ -0,0 +1,133 @@
package controllers
import (
    "github.com/gin-gonic/gin"
    "gorm.io/gorm"
    "silkserver/controllers/request"
    "silkserver/extend/code"
    "silkserver/extend/util"
    "silkserver/middleware"
    "silkserver/models"
)
type WorkerController struct {
}
// CreateWorkerInfo
//
//    @Tags        员工管理/员工信息
//    @Summary    创建人员信息
//    @Produce    application/json
//    @Param        object    body        models.Worker    true    "参数"
//    @Param         Authorization    header string true "token"
//    @Success    200        {object}    util.Response        "成功"
//    @Router        /api-jl/v1/worker/createWorkerInfo [post]
func (slf WorkerController) CreateWorkerInfo(c *gin.Context) {
    var params models.Worker
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    if params.ID == "" {
        util.ResponseFormat(c, code.RequestParamError, "ID为空")
        return
    }
    if params.Name == "" {
        util.ResponseFormat(c, code.RequestParamError, "名称为空")
        return
    }
    _, err = models.NewWorkerSearch().SetID(params.ID).First()
    if err != gorm.ErrRecordNotFound {
        util.ResponseFormat(c, code.RequestParamError, "编码已存在")
        return
    }
    info := middleware.GetUserInfo(c)
    params.AddPeople = info.NickName
    err = models.NewWorkerSearch().Create(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "创建失败")
        return
    }
    util.ResponseFormat(c, code.Success, "创建成功")
}
// UpdateWorkerInfo
//
//    @Tags        员工管理/员工信息
//    @Summary    更新人员信息
//    @Produce    application/json
//    @Param        object    body        models.Worker    true    "参数"
//    @Param         Authorization    header string true "token"
//    @Success    200        {object}    util.Response        "成功"
//    @Router        /api-jl/v1/worker/updateWorkerInfo [post]
func (slf WorkerController) UpdateWorkerInfo(c *gin.Context) {
    var params models.Worker
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    if params.ID == "" {
        util.ResponseFormat(c, code.RequestParamError, "ID为空")
        return
    }
    if params.Name == "" {
        util.ResponseFormat(c, code.RequestParamError, "名称为空")
        return
    }
    err = models.NewWorkerSearch().Create(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "更新失败")
        return
    }
    util.ResponseFormat(c, code.Success, "更新成功")
}
// GetWorkerList
//
//    @Tags        员工管理/员工信息
//    @Summary    获取人员信息列表
//    @Produce    application/json
//    @Param        object    body        request.GetWorkerList    true    "参数"
//    @Param         Authorization    header string true "token"
//    @Success    200        {object}    util.ResponseList{data=[]models.Worker}        "成功"
//    @Router        /api-jl/v1/worker/getWorkerList [post]
func (slf WorkerController) GetWorkerList(c *gin.Context) {
    var params request.GetWorkerList
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    workers, total, err := models.NewWorkerSearch().SetPage(params.Page, params.PageSize).Find()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "查询失败")
        return
    }
    util.ResponseFormatList(c, code.Success, workers, total)
}
// DeleteWorkerInfo
//
//    @Tags        员工管理/员工信息
//    @Summary    删除人员信息
//    @Produce    application/json
//    @Param        object    body        request.GetWorkerList    true    "参数"
//    @Param         Authorization    header string true "token"
//    @Success    200        {object}    util.ResponseList{data=[]models.Worker}        "成功"
//    @Router        /api-jl/v1/worker/deleteWorkerInfo/{id} [delete]
func (slf WorkerController) DeleteWorkerInfo(c *gin.Context) {
    id := c.Param("id")
    if id == "" {
        util.ResponseFormat(c, code.RequestParamError, "无效的id")
        return
    }
    err := models.NewWorkerSearch().SetID(id).Delete()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "删除失败")
        return
    }
    util.ResponseFormat(c, code.Success, "删除成功")
}
controllers/workshop_manage_controller.go
@@ -2,6 +2,7 @@
import (
    "github.com/gin-gonic/gin"
    "gorm.io/gorm"
    "silkserver/controllers/request"
    "silkserver/controllers/response"
    "silkserver/extend/code"
@@ -174,6 +175,10 @@
    fineness, err := models.NewFinenessRegisterSearch().SetWorkshop(params.WorkshopName).SetWorkshopGroup(params.GroupNumber).
        SetMarket(params.MarketName).First()
    if err != nil {
        if err == gorm.ErrRecordNotFound {
            util.ResponseFormat(c, code.RequestParamError, "当前庄口,车间,组别下,没有纤度登记信息")
            return
        }
        util.ResponseFormat(c, code.RequestParamError, "查找失败")
        return
    }
controllers/yield_register_controller.go
@@ -70,6 +70,11 @@
        }
    } else {
        //保存
        count, _ := models.NewYieldRegisterSearch().SetNumber(yield.Number).Count()
        if count > 0 {
            util.ResponseFormat(c, code.RequestParamError, "编码已存在")
            return
        }
        err = models.NewYieldRegisterSearch().Create(&yield)
        if err != nil {
            util.ResponseFormat(c, code.RequestParamError, "保存失败")
middleware/jwt_request.go
@@ -15,6 +15,7 @@
type BaseClaims struct {
    UserId      string
    Username    string
    NickName    string
    ParentId    string
    UserType    constvar.UserType
    ModifiedPwd *bool
models/db.go
@@ -84,6 +84,8 @@
        YieldRegister{},
        YieldRegisterItem{},
        YieldRegisterCircle{},
        Worker{},
        WorkTypeManage{},
    )
    return err
}
models/dict.go
@@ -29,7 +29,7 @@
)
func (slf *Dict) TableName() string {
    return "dict"
    return "silk_dict"
}
func NewDictSearch() *DictSearch {
models/fineness.go
@@ -37,7 +37,7 @@
)
func (slf *FinenessRegister) TableName() string {
    return "fineness_register"
    return "silk_fineness_register"
}
func NewFinenessRegisterSearch() *FinenessRegisterSearch {
models/fineness_check.go
@@ -36,7 +36,7 @@
)
func (slf *FinenessCheck) TableName() string {
    return "fineness_check"
    return "silk_fineness_check"
}
func NewFinenessCheckSearch() *FinenessCheckSearch {
models/fineness_check_item.go
@@ -41,7 +41,7 @@
)
func (slf *FinenessCheckItem) TableName() string {
    return "fineness_check_item"
    return "silk_fineness_check_item"
}
func (slf *FinenessCheckItem) AfterFind(tx *gorm.DB) error {
models/fineness_item.go
@@ -28,7 +28,7 @@
)
func (slf *FinenessItem) TableName() string {
    return "fineness_register_item"
    return "silk_fineness_register_item"
}
func NewFinenessItemSearch() *FinenessItemSearch {
models/raw_silk_price_standard.go
@@ -28,7 +28,7 @@
)
func (slf RawSilkPriceStandard) TableName() string {
    return "raw_silk_price_standard"
    return "silk_raw_silk_price_standard"
}
func NewRawSilkPriceStandardSearch() *RawSilkPriceStandardSearch {
models/raw_silk_rank_standard.go
@@ -32,7 +32,7 @@
)
func (slf RawSilkRankStandard) TableName() string {
    return "raw_silk_rank_standard"
    return "silk_raw_silk_rank_standard"
}
func NewRawSilkRankStandardSearch() *RawSilkRankStandardSearch {
models/work_type_manage.go
New file
@@ -0,0 +1,143 @@
package models
import (
    "fmt"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
    "silkserver/pkg/mysqlx"
)
type (
    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:保底工资"`
        PayProgrammeId  uint            `json:"payProgrammeId" gorm:"type:int(11);comment:薪资方案id"`
        AddPeople       string          `gorm:"type:varchar(255);comment:添加人" json:"addPeople"`
    }
    WorkTypeManageSearch struct {
        WorkTypeManage
        PageNum  int
        PageSize int
        Preload  bool
        Orm      *gorm.DB
    }
)
func (slf WorkTypeManage) TableName() string {
    return "silk_work_type_manage"
}
func NewWorkTypeManageSearch() *WorkTypeManageSearch {
    return &WorkTypeManageSearch{Orm: mysqlx.GetDB()}
}
func (slf *WorkTypeManageSearch) SetOrm(tx *gorm.DB) *WorkTypeManageSearch {
    slf.Orm = tx
    return slf
}
func (slf *WorkTypeManageSearch) SetPage(page, size int) *WorkTypeManageSearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
}
func (slf *WorkTypeManageSearch) SetPreload(preload bool) *WorkTypeManageSearch {
    slf.Preload = preload
    return slf
}
func (slf *WorkTypeManageSearch) build() *gorm.DB {
    var db = slf.Orm.Table(slf.TableName())
    return db
}
// Create 单条插入
func (slf *WorkTypeManageSearch) Create(record *WorkTypeManage) 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 *WorkTypeManageSearch) Save(record *WorkTypeManage) 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 *WorkTypeManageSearch) 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 *WorkTypeManageSearch) Delete() error {
    var db = slf.build()
    if err := db.Unscoped().Delete(&WorkTypeManage{}).Error; err != nil {
        return err
    }
    return nil
}
func (slf *WorkTypeManageSearch) Find() ([]*WorkTypeManage, int64, error) {
    var (
        records = make([]*WorkTypeManage, 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 *WorkTypeManageSearch) FindNotTotal() ([]*WorkTypeManage, error) {
    var (
        records = make([]*WorkTypeManage, 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 *WorkTypeManageSearch) 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
}
models/worker.go
New file
@@ -0,0 +1,328 @@
package models
import (
    "fmt"
    "gorm.io/gorm"
    "silkserver/constvar"
    "silkserver/pkg/mysqlx"
)
type (
    // Worker 人力资源
    Worker struct {
        BaseModelString
        Name           string                `gorm:"index;type:varchar(191);not null;comment:人员姓名" json:"name"`
        PhoneNum       string                `gorm:"type:varchar(191);comment:手机号" json:"phoneNum"`
        ShopID         string                `gorm:"type:varchar(191);comment:所属车间ID" json:"shopId"`
        ShopName       string                `gorm:"type:varchar(191);comment:车间名称,仅查询用" json:"shopName"`
        Status         constvar.WorkerStatus `gorm:"index;type:int(11);comment:人员状态" json:"status"`
        WorkTypeId     uint                  `gorm:"type:int(11);comment:工种id" json:"workTypeId"`
        WorkType       string                `gorm:"type:varchar(255);comment:工种" json:"workType"`
        GroupNumber    int                   `gorm:"type:int(11);comment:组别" json:"groupNumber"`
        EmploymentTime string                `gorm:"type:varchar(255);comment:入职时间" json:"employmentTime"`
        AddPeople      string                `gorm:"type:varchar(255);comment:添加人" json:"addPeople"`
    }
    WorkerSearch struct {
        Worker
        Keyword  string
        Preload  bool
        Order    string
        PageNum  int
        PageSize int
        Orm      *gorm.DB
        Fields   string
    }
)
func (slf Worker) TableName() string {
    return "worker"
}
func NewWorkerSearch() *WorkerSearch {
    return &WorkerSearch{Orm: mysqlx.GetDB()}
}
func (slf *WorkerSearch) SetOrm(tx *gorm.DB) *WorkerSearch {
    slf.Orm = tx
    return slf
}
func (slf *WorkerSearch) SetPage(page, size int) *WorkerSearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
}
func (slf *WorkerSearch) SetOrder(order string) *WorkerSearch {
    slf.Order = order
    return slf
}
func (slf *WorkerSearch) SetID(id string) *WorkerSearch {
    slf.ID = id
    return slf
}
func (slf *WorkerSearch) SetName(name string) *WorkerSearch {
    slf.Name = name
    return slf
}
func (slf *WorkerSearch) SetKeyword(keyword string) *WorkerSearch {
    slf.Keyword = keyword
    return slf
}
func (slf *WorkerSearch) SetShopID(shopID string) *WorkerSearch {
    slf.ShopID = shopID
    return slf
}
func (slf *WorkerSearch) SetPreload(preload bool) *WorkerSearch {
    slf.Preload = preload
    return slf
}
func (slf *WorkerSearch) SetStatus(status constvar.WorkerStatus) *WorkerSearch {
    slf.Status = status
    return slf
}
func (slf *WorkerSearch) SetFields(fields string) *WorkerSearch {
    slf.Fields = fields
    return slf
}
func (slf *WorkerSearch) build() *gorm.DB {
    var db = slf.Orm.Table(slf.TableName())
    if slf.ID != "" {
        db = db.Where("id = ?", slf.ID)
    }
    if slf.Name != "" {
        db = db.Where("name = ?", slf.Name)
    }
    if slf.ShopID != "" {
        db = db.Where("shop_id = ?", slf.ShopID)
    }
    if slf.Keyword != "" {
        db.Joins("WorkerSkill")
        db = db.Where("worker.name LIKE ? or worker.phone_num LIKE ? or WorkerSkill.name like ?", "%"+slf.Keyword+"%", "%"+slf.Keyword+"%", "%"+slf.Keyword+"%")
    }
    if slf.Status > 0 {
        db = db.Where("status = ?", slf.Status)
    }
    if slf.Order != "" {
        db = db.Order(slf.Order)
    }
    if slf.Preload {
        db = db.Model(&Worker{}).Preload("WorkerSkill")
    }
    if slf.Fields != "" {
        db = db.Select(slf.Fields)
    }
    return db
}
// Create 单条插入
func (slf *WorkerSearch) Create(record *Worker) 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 *WorkerSearch) CreateBatch(records []*Worker) 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 *WorkerSearch) Save(record *Worker) 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 *WorkerSearch) 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 *WorkerSearch) 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 *WorkerSearch) Delete() error {
    var db = slf.build()
    if err := db.Unscoped().Delete(&Worker{}).Error; err != nil {
        return err
    }
    return nil
}
func (slf *WorkerSearch) First() (*Worker, error) {
    var (
        record = new(Worker)
        db     = slf.build()
    )
    if err := db.First(record).Error; err != nil {
        return record, err
    }
    return record, nil
}
func (slf *WorkerSearch) Find() ([]*Worker, int64, error) {
    var (
        records = make([]*Worker, 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 slf.Keyword != "" {
        db = db.Distinct("worker.*")
    }
    if err := db.Find(&records).Error; err != nil {
        return records, total, fmt.Errorf("find records err: %v", err)
    }
    return records, total, nil
}
func (slf *WorkerSearch) FindNotTotal() ([]*Worker, error) {
    var (
        records = make([]*Worker, 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 *WorkerSearch) FindByQuery(query string, args []interface{}) ([]*Worker, int64, error) {
    var (
        records = make([]*Worker, 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 *WorkerSearch) FindByQueryNotTotal(query string, args []interface{}) ([]*Worker, error) {
    var (
        records = make([]*Worker, 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
}
func (slf *WorkerSearch) 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
}
func (slf *WorkerSearch) MaxAutoIncr() (int64, error) {
    type Result struct {
        Max int64
    }
    var (
        result Result
        db     = slf.build()
    )
    err := db.Select("MAX(auto_incr) as max").Scan(&result).Error
    if err != nil {
        return result.Max, fmt.Errorf("max err: %v", err)
    }
    return result.Max, nil
}
func (slf *WorkerSearch) FirstOrCreate(record *Worker) error {
    var db = slf.build()
    if err := db.FirstOrCreate(record).Error; err != nil {
        return fmt.Errorf("first or create err: %v, record: %+v", err, record)
    }
    return nil
}
models/workshop_manage.go
@@ -29,7 +29,7 @@
)
func (slf WorkshopManage) TableName() string {
    return "workshop_manage"
    return "silk_workshop_manage"
}
func NewWorkshopManageSearch() *WorkshopManageSearch {
models/yield_register.go
@@ -56,7 +56,7 @@
)
func (slf YieldRegister) TableName() string {
    return "yield_register"
    return "silk_yield_register"
}
func NewYieldRegisterSearch() *YieldRegisterSearch {
@@ -216,3 +216,15 @@
    return nil
}
func (slf *YieldRegisterSearch) 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
}
models/yield_register_circle.go
@@ -27,7 +27,7 @@
)
func (slf YieldRegisterCircle) TableName() string {
    return "yield_register_circle"
    return "silk_yield_register_circle"
}
func NewYieldRegisterCircleSearch() *YieldRegisterCircleSearch {
models/yield_register_item.go
@@ -25,7 +25,7 @@
)
func (slf YieldRegisterItem) TableName() string {
    return "yield_register_item"
    return "silk_yield_register_item"
}
func NewYieldRegisterItemSearch() *YieldRegisterItemSearch {
router/router.go
@@ -73,5 +73,17 @@
        finenessApi.POST("changeYieldRegister", yieldController.ChangeYieldRegister)           // 切换产量登记表
    }
    workerApi := r.Group(urlPrefix + "/worker")
    workerController := new(controllers.WorkerController)
    workTypeManageController := new(controllers.WorkTypeManageController)
    {
        workerApi.POST("createWorkerInfo", workerController.CreateWorkerInfo)       //创建人员信息
        workerApi.POST("updateWorkerInfo", workerController.UpdateWorkerInfo)       //更新人员信息
        workerApi.POST("getWorkerList", workerController.GetWorkerList)             //获取人员信息列表
        workerApi.DELETE("deleteWorkerInfo/:id", workerController.DeleteWorkerInfo) //删除人员信息
        workerApi.POST("saveWorkTypeInfo", workTypeManageController.SaveWorkTypeInfo) //保存工种信息
    }
    return r
}