liujiandao
2024-04-09 3e988d2b353efc784f07b2c8a470b3cd7d59d264
产量登记表
5个文件已添加
2个文件已修改
414 ■■■■■ 已修改文件
controllers/request/yield_register_request.go 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/workshop_manage_controller.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/yield_register_controller.go 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/workshop_manage.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register.go 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_circle.go 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_item.go 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/request/yield_register_request.go
New file
@@ -0,0 +1,53 @@
package request
import "github.com/shopspring/decimal"
type YieldRegisterInfo struct {
    Id                      uint                      `json:"id"`
    Number                  string                    `json:"number"`                  //编号
    CreateTime              string                    `json:"createTime"`              //创建时间
    MarketId                uint                      `json:"marketId"`                //庄口id
    WorkshopId              uint                      `json:"workshopId"`              //车间id
    GroupNumber             int                       `json:"groupNumber"`             //组别
    Spec                    string                    `json:"spec"`                    //规格
    JieZhuang               string                    `json:"jieZhuang"`               //是否结庄
    Level                   string                    `json:"level"`                   //等级
    Record                  decimal.Decimal           `json:"record"`                  //生产用时
    Circle                  int                       `json:"circle"`                  //回数
    FallingSilkCocoonNumber decimal.Decimal           `json:"fallingSilkCocoonNumber"` //落丝茧数
    BucketCocoonNumber      decimal.Decimal           `json:"bucketCocoonNumber"`      //每桶茧数
    VehicleSpeed            decimal.Decimal           `json:"vehicleSpeed"`            //实时车速
    TimeYi                  string                    `json:"timeYi"`                  //乙班时间
    TimeJia                 string                    `json:"timeJia"`                 //甲班时间
    GroupReelingdiscount    string                    `json:"groupReelingdiscount"`    //车组缫折
    FallingSilkBucketOne    decimal.Decimal           `json:"fallingSilkBucketOne"`    //落丝桶数1
    FallingSilkBucketTwo    decimal.Decimal           `json:"fallingSilkBucketTwo"`    //落丝桶数2
    FallingSilkBucketThree  decimal.Decimal           `json:"fallingSilkBucketThree"`  //落丝桶数3
    TheorySilkAmount        decimal.Decimal           `json:"theorySilkAmount"`        //理论丝量
    HourYield               decimal.Decimal           `json:"hourYield"`               //台时产量
    OneBack                 string                    `json:"oneBack"`                 //第一回
    TwoBack                 string                    `json:"twoBack"`                 //第二回
    ThreeBack               string                    `json:"threeBack"`               //第三回
    Total                   decimal.Decimal           `json:"total"`                   //总产量
    ItemInfo                []YieldRegisterItemInfo   `json:"itemInfo"`
    CircleInfo              []YieldRegisterCircleInfo `json:"circleInfo"`
}
type YieldRegisterItemInfo struct {
    YieldRegisterId       uint            `json:"yieldRegisterId"`       //产量登记表id
    CarNumber             int             `json:"carNumber"`             //车号
    OneYield              decimal.Decimal `json:"oneYield"`              //台产量
    PeopleYield           decimal.Decimal `json:"peopleYield"`           //个人产量
    HourYield             decimal.Decimal `json:"hourYield"`             //台时产量
    PersonReelingdiscount string          `json:"personReelingdiscount"` //个人缫折
}
type YieldRegisterCircleInfo struct {
    YieldRegisterId uint            `json:"yieldRegisterId"` //产量登记表id
    CarNumber       int             `json:"carNumber"`       //车号
    Circle          int             `json:"circle"`          //回数
    PieceNumber     int             `json:"pieceNumber"`     //片数
    AllYield        decimal.Decimal `json:"allYield"`        //产量
    OneYield        decimal.Decimal `json:"oneYield"`        //台产
    Reelingdiscount string          `json:"reelingdiscount"` //缫折
}
controllers/workshop_manage_controller.go
@@ -86,5 +86,5 @@
        util.ResponseFormat(c, code.RequestParamError, "删除失败")
        return
    }
    util.ResponseFormat(c, code.RequestParamError, "删除成功")
    util.ResponseFormat(c, code.Success, "删除成功")
}
controllers/yield_register_controller.go
New file
@@ -0,0 +1,28 @@
package controllers
import (
    "github.com/gin-gonic/gin"
    "silkserver/controllers/request"
    "silkserver/extend/code"
    "silkserver/extend/util"
)
type YieldRegisterController struct {
}
// SaveYieldRegister
//
//    @Tags        生产管理/产量登记表
//    @Summary    保存产量登记表
//    @Produce    application/json
//    @Param        object    body        models.WorkshopManage    true    "参数"
//    @Success    200        {object}    util.Response        "成功"
//    @Router        /api-jl/v1/system/saveYieldRegister [post]
func (slf WorkshopManageController) SaveYieldRegister(c *gin.Context) {
    var params request.YieldRegisterInfo
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
}
models/workshop_manage.go
@@ -13,8 +13,8 @@
        gorm.Model
        WorkshopNumber string           `json:"workshopNumber" gorm:"type:varchar(255);comment:车间编号"`
        GroupNumber    int              `json:"groupNumber" gorm:"type:int(11);comment:组别"`
        StartCarNumber int              `json:"startCarNumber"  gorm:"type:int(11);comment:组别"`
        EndCarNumber   int              `json:"endCarNumber"  gorm:"type:int(11);comment:组别"`
        StartCarNumber int              `json:"startCarNumber"  gorm:"type:int(11);comment:开始车号"`
        EndCarNumber   int              `json:"endCarNumber"  gorm:"type:int(11);comment:结束车号"`
        CarFlag        constvar.CarFlag `json:"carFlag" gorm:"type:int(1);comment:半车标志"`
        Notes          string           `json:"notes" gorm:"type:varchar(255);comment:备注"`
    }
@@ -22,6 +22,7 @@
        WorkshopManage
        PageNum  int
        PageSize int
        Order    string
        Orm      *gorm.DB
    }
)
@@ -56,6 +57,11 @@
func (slf *WorkshopManageSearch) SetGroupNumber(groupNumber int) *WorkshopManageSearch {
    slf.GroupNumber = groupNumber
    return slf
}
func (slf *WorkshopManageSearch) SetOrder(order string) *WorkshopManageSearch {
    slf.Order = order
    return slf
}
@@ -100,7 +106,7 @@
    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 {
    if err := db.Order("updated_at desc").Find(&records).Error; err != nil {
        return records, total, fmt.Errorf("find records err: %v", err)
    }
models/yield_register.go
New file
@@ -0,0 +1,145 @@
package models
import (
    "fmt"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
    "silkserver/pkg/mysqlx"
)
type (
    // YieldRegister 产量登记表
    YieldRegister struct {
        gorm.Model
        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"`
        WorkshopId              uint                   `json:"workshopId" gorm:"type:int(11);comment:车间id"`
        GroupNumber             int                    `json:"groupNumber" gorm:"type:int(11);comment:组别"`
        Spec                    string                 `json:"spec" gorm:"type:varchar(255);comment:规格"`
        JieZhuang               string                 `json:"jieZhuang" gorm:"type:varchar(255);comment:是否结庄"`
        Level                   string                 `json:"level" gorm:"type:varchar(255);comment:等级"`
        Record                  decimal.Decimal        `json:"record" gorm:"type:decimal(12,2);comment:生产用时"`
        Circle                  int                    `json:"circle" gorm:"type:int(11);comment:回数"`
        FallingSilkCocoonNumber decimal.Decimal        `json:"fallingSilkCocoonNumber" gorm:"type:decimal(12,2);comment:落丝茧数"`
        BucketCocoonNumber      decimal.Decimal        `json:"bucketCocoonNumber" gorm:"type:decimal(12,2);comment:每桶茧数"`
        VehicleSpeed            decimal.Decimal        `json:"vehicleSpeed" gorm:"type:decimal(12,2);comment:实时车速"`
        TimeYi                  string                 `json:"timeYi" gorm:"type:varchar(255);comment:乙班时间"`
        TimeJia                 string                 `json:"timeJia" gorm:"type:varchar(255);comment:甲班时间"`
        GroupReelingdiscount    string                 `json:"groupReelingdiscount" gorm:"type:varchar(255);comment:车组缫折"`
        FallingSilkBucketOne    decimal.Decimal        `json:"fallingSilkBucketOne" gorm:"type:decimal(12,2);comment:落丝桶数1"`
        FallingSilkBucketTwo    decimal.Decimal        `json:"fallingSilkBucketTwo" gorm:"type:decimal(12,2);comment:落丝桶数2"`
        FallingSilkBucketThree  decimal.Decimal        `json:"fallingSilkBucketThree" gorm:"type:decimal(12,2);comment:落丝桶数3"`
        TheorySilkAmount        decimal.Decimal        `json:"theorySilkAmount" gorm:"type:decimal(12,2);comment:理论丝量"`
        HourYield               decimal.Decimal        `json:"hourYield" gorm:"type:decimal(12,2);comment:台时产量"`
        OneBack                 string                 `json:"oneBack" gorm:"type:varchar(255);comment:第一回"`
        TwoBack                 string                 `json:"twoBack" gorm:"type:varchar(255);comment:第二回"`
        ThreeBack               string                 `json:"threeBack" gorm:"type:varchar(255);comment:第三回"`
        Total                   decimal.Decimal        `json:"total" gorm:"type:decimal(12,2);comment:总产量"`
        Items                   []*YieldRegisterItem   `json:"items" gorm:"foreignKey:YieldRegisterId;references:Id"`
        Circles                 []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId;references:Id"`
    }
    YieldRegisterSearch struct {
        YieldRegister
        Orm      *gorm.DB
        PageNum  int
        PageSize int
        Preload  bool
    }
)
func (slf YieldRegister) TableName() string {
    return "yield_register"
}
func NewYieldRegisterSearch() *YieldRegisterSearch {
    return &YieldRegisterSearch{Orm: mysqlx.GetDB()}
}
func (slf *YieldRegisterSearch) SetOrm(tx *gorm.DB) *YieldRegisterSearch {
    slf.Orm = tx
    return slf
}
func (slf *YieldRegisterSearch) SetPage(page, size int) *YieldRegisterSearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
}
func (slf *YieldRegisterSearch) SetPreload(preload bool) *YieldRegisterSearch {
    slf.Preload = preload
    return slf
}
func (slf *YieldRegisterSearch) build() *gorm.DB {
    db := slf.Orm.Table(slf.TableName())
    if slf.Preload {
        db = db.Model(YieldRegister{}).Preload("Items").Preload("Circles")
    }
    return db
}
// Create 单条插入
func (slf *YieldRegisterSearch) Create(record *YieldRegister) error {
    db := slf.build()
    err := db.Create(record).Error
    if err != nil {
        return fmt.Errorf("create err: %v, record: %+v", err, record)
    }
    return nil
}
func (slf *YieldRegisterSearch) Find() ([]*YieldRegister, int64, error) {
    var (
        records = make([]*YieldRegister, 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 *YieldRegisterSearch) FindNotTotal() ([]*YieldRegister, error) {
    var (
        records = make([]*YieldRegister, 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 *YieldRegisterSearch) Save(record *YieldRegister) error {
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
        return fmt.Errorf("save err: %v, record: %+v", err, record)
    }
    return nil
}
func (slf *YieldRegisterSearch) Delete() error {
    var db = slf.build()
    if err := db.Unscoped().Delete(&YieldRegister{}).Error; err != nil {
        return err
    }
    return nil
}
models/yield_register_circle.go
New file
@@ -0,0 +1,88 @@
package models
import (
    "fmt"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
    "silkserver/pkg/mysqlx"
)
type (
    //YieldRegisterCircle 产量登记回数关系表
    YieldRegisterCircle struct {
        gorm.Model
        YieldRegisterId uint            `json:"yieldRegisterId" gorm:"type:int(11);comment:产量登记表id"`
        CarNumber       int             `json:"carNumber" gorm:"type:int(11);comment:车号"`
        Circle          int             `json:"circle" gorm:"type:int(11);comment:回数"`
        PieceNumber     int             `json:"pieceNumber" gorm:"type:int(11);comment:片数"`
        Value           decimal.Decimal `json:"value" gorm:"type:decimal(12,2);comment:值"`
        AllYield        decimal.Decimal `json:"allYield" gorm:"type:decimal(12,2);comment:产量"`
        OneYield        decimal.Decimal `json:"oneYield" gorm:"type:decimal(12,2);comment:台产"`
        Reelingdiscount string          `json:"reelingdiscount" gorm:"type:varchar(255);comment:缫折"`
    }
    YieldRegisterCircleSearch struct {
        YieldRegisterCircle
        Orm *gorm.DB
    }
)
func (slf YieldRegisterCircle) TableName() string {
    return "yield_register_circle"
}
func NewYieldRegisterCircleSearch() *YieldRegisterCircleSearch {
    return &YieldRegisterCircleSearch{Orm: mysqlx.GetDB()}
}
func (slf *YieldRegisterCircleSearch) SetOrm(tx *gorm.DB) *YieldRegisterCircleSearch {
    slf.Orm = tx
    return slf
}
func (slf *YieldRegisterCircleSearch) SetYieldRegisterId(id uint) *YieldRegisterCircleSearch {
    slf.YieldRegisterId = id
    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)
    }
    return db
}
// Create 批量插入
func (slf *YieldRegisterCircleSearch) Create(record []*YieldRegisterCircle) error {
    db := slf.build()
    err := db.Create(&record).Error
    if err != nil {
        return fmt.Errorf("create err: %v, record: %+v", err, record)
    }
    return nil
}
func (slf *YieldRegisterCircleSearch) FindNotTotal() ([]*YieldRegisterCircle, error) {
    var (
        records = make([]*YieldRegisterCircle, 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 *YieldRegisterCircleSearch) Delete() error {
    var db = slf.build()
    if err := db.Unscoped().Delete(&YieldRegisterCircle{}).Error; err != nil {
        return err
    }
    return nil
}
models/yield_register_item.go
New file
@@ -0,0 +1,86 @@
package models
import (
    "fmt"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
    "silkserver/pkg/mysqlx"
)
type (
    //YieldRegisterItem 产量登记详情表
    YieldRegisterItem struct {
        gorm.Model
        YieldRegisterId       uint            `json:"yieldRegisterId" gorm:"type:int(11);comment:产量登记表id"`
        CarNumber             int             `json:"carNumber"  gorm:"type:int(11);comment:车号"`
        OneYield              decimal.Decimal `json:"oneYield" gorm:"type:decimal(12,2);comment:台产量"`
        PeopleYield           decimal.Decimal `json:"peopleYield"  gorm:"type:decimal(12,2);comment:个人产量"`
        HourYield             decimal.Decimal `json:"hourYield" gorm:"type:decimal(12,2);comment:台时产量"`
        PersonReelingdiscount string          `json:"personReelingdiscount" gorm:"type:varchar(255);comment:个人缫折"`
    }
    YieldRegisterItemSearch struct {
        YieldRegisterItem
        Orm *gorm.DB
    }
)
func (slf YieldRegisterItem) TableName() string {
    return "yield_register_item"
}
func NewYieldRegisterItemSearch() *YieldRegisterItemSearch {
    return &YieldRegisterItemSearch{Orm: mysqlx.GetDB()}
}
func (slf *YieldRegisterItemSearch) SetOrm(tx *gorm.DB) *YieldRegisterItemSearch {
    slf.Orm = tx
    return slf
}
func (slf *YieldRegisterItemSearch) SetYieldRegisterId(id uint) *YieldRegisterItemSearch {
    slf.YieldRegisterId = id
    return slf
}
func (slf *YieldRegisterItemSearch) build() *gorm.DB {
    db := slf.Orm.Table(slf.TableName())
    if slf.YieldRegisterId > 0 {
        db = db.Where("yield_register_id = ?", slf.YieldRegisterId)
    }
    return db
}
// Create 批量插入
func (slf *YieldRegisterItemSearch) Create(record []*YieldRegisterItem) error {
    db := slf.build()
    err := db.Create(&record).Error
    if err != nil {
        return fmt.Errorf("create err: %v, record: %+v", err, record)
    }
    return nil
}
func (slf *YieldRegisterItemSearch) FindNotTotal() ([]*YieldRegisterItem, error) {
    var (
        records = make([]*YieldRegisterItem, 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 *YieldRegisterItemSearch) Delete() error {
    var db = slf.build()
    if err := db.Unscoped().Delete(&YieldRegisterItem{}).Error; err != nil {
        return err
    }
    return nil
}