liujiandao
2024-04-09 e99cc5acf40323379cf538bc5f08228a42aa2bee
产量登记表2
10个文件已修改
184 ■■■■ 已修改文件
controllers/raw_silk_standard.go 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/request/yield_register_request.go 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/yield_register_controller.go 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/db.go 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/raw_silk_price_standard.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/workshop_manage.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register.go 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_circle.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/yield_register_item.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/raw_silk_standard.go
@@ -188,3 +188,26 @@
    }
    util.ResponseFormat(c, code.Success, "保存成功")
}
// GetRankStandardGrade
//
//    @Tags        系统设置/生丝定级标准
//    @Summary    获取生丝等级
//    @Produce    application/json
//    @Success    200    {object}    util.Response{data=map[string]string}    "成功"
//    @Router        /api-jl/v1/system/getRankStandardGrade [get]
func (slf RawSilkStandardController) GetRankStandardGrade(c *gin.Context) {
    standards, err := models.NewRawSilkRankStandardSearch().FindNotTotal()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "获取生丝等级失败")
        return
    }
    m := make(map[string]string)
    m["野纤"] = "野纤"
    m["大野"] = "大野"
    m["特野"] = "特野"
    for _, standard := range standards {
        m[standard.RankName] = standard.RankName
    }
    util.ResponseFormat(c, code.Success, m)
}
controllers/request/yield_register_request.go
@@ -2,6 +2,12 @@
import "github.com/shopspring/decimal"
type GetYieldRegisterList struct {
    PageInfo
    KeyWord string `json:"keyWord"`
    Number  string `json:"number"` //产量登记表编号
}
type YieldRegisterInfo struct {
    Id                      uint                      `json:"id"`
    Number                  string                    `json:"number"`                  //编号
@@ -29,8 +35,8 @@
    TwoBack                 string                    `json:"twoBack"`                 //第二回
    ThreeBack               string                    `json:"threeBack"`               //第三回
    Total                   decimal.Decimal           `json:"total"`                   //总产量
    ItemInfo                []YieldRegisterItemInfo   `json:"itemInfo"`
    CircleInfo              []YieldRegisterCircleInfo `json:"circleInfo"`
    Items                   []YieldRegisterItemInfo   `json:"items"`
    Circles                 []YieldRegisterCircleInfo `json:"circles"`
}
type YieldRegisterItemInfo struct {
@@ -47,6 +53,7 @@
    CarNumber       int             `json:"carNumber"`       //车号
    Circle          int             `json:"circle"`          //回数
    PieceNumber     int             `json:"pieceNumber"`     //片数
    Value           decimal.Decimal `json:"value"`           //值
    AllYield        decimal.Decimal `json:"allYield"`        //产量
    OneYield        decimal.Decimal `json:"oneYield"`        //台产
    Reelingdiscount string          `json:"reelingdiscount"` //缫折
controllers/yield_register_controller.go
@@ -2,9 +2,12 @@
import (
    "github.com/gin-gonic/gin"
    "gorm.io/gorm"
    "silkserver/controllers/request"
    "silkserver/extend/code"
    "silkserver/extend/util"
    "silkserver/models"
    "silkserver/pkg/structx"
)
type YieldRegisterController struct {
@@ -15,14 +18,94 @@
//    @Tags        生产管理/产量登记表
//    @Summary    保存产量登记表
//    @Produce    application/json
//    @Param        object    body        models.WorkshopManage    true    "参数"
//    @Param        object    body        request.YieldRegisterInfo    true    "参数"
//    @Success    200        {object}    util.Response        "成功"
//    @Router        /api-jl/v1/system/saveYieldRegister [post]
func (slf WorkshopManageController) SaveYieldRegister(c *gin.Context) {
//    @Router        /api-jl/v1/fineness/saveYieldRegister [post]
func (slf YieldRegisterController) SaveYieldRegister(c *gin.Context) {
    var params request.YieldRegisterInfo
    var yield models.YieldRegister
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    err = structx.AssignTo(params, &yield)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "数据转换失败")
        return
    }
    if yield.ID > 0 {
        //更新
        err = models.WithTransaction(func(db *gorm.DB) error {
            err = models.NewYieldRegisterItemSearch().SetOrm(db).SetYieldRegisterId(yield.ID).Delete()
            if err != nil {
                return err
            }
            err = models.NewYieldRegisterCircleSearch().SetOrm(db).SetYieldRegisterId(yield.ID).Delete()
            if err != nil {
                return err
            }
            err = models.NewYieldRegisterSearch().SetOrm(db).Save(&yield)
            return err
        })
        if err != nil {
            util.ResponseFormat(c, code.RequestParamError, "保存失败")
            return
        }
    } else {
        //保存
        err = models.NewYieldRegisterSearch().Create(&yield)
        if err != nil {
            util.ResponseFormat(c, code.RequestParamError, "保存失败")
            return
        }
    }
    util.ResponseFormat(c, code.Success, "保存成功")
}
// GetYieldRegisterList
//
//    @Tags        生产管理/产量登记表
//    @Summary    获取产量登记表
//    @Produce    application/json
//    @Param        object    body        request.GetYieldRegisterList    true    "参数"
//    @Success    200        {object}    util.ResponseList{data=[]models.YieldRegister}        "成功"
//    @Router        /api-jl/v1/fineness/getYieldRegisterList [post]
func (slf YieldRegisterController) GetYieldRegisterList(c *gin.Context) {
    var params request.GetYieldRegisterList
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    list, total, err := models.NewYieldRegisterSearch().SetPage(params.Page, params.PageSize).Find()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "查询失败")
        return
    }
    util.ResponseFormatList(c, code.Success, list, total)
}
// GetYieldRegisterInfo
//
//    @Tags        生产管理/产量登记表
//    @Summary    获取产量登记表详情
//    @Produce    application/json
//    @Param        object    body        request.GetYieldRegisterList    true    "参数"
//    @Success    200        {object}    util.Response{data=models.YieldRegister}        "成功"
//    @Router        /api-jl/v1/fineness/getYieldRegisterInfo [post]
func (slf YieldRegisterController) GetYieldRegisterInfo(c *gin.Context) {
    var params request.GetYieldRegisterList
    err := c.BindJSON(&params)
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
    }
    register, err := models.NewYieldRegisterSearch().SetPreload(true).SetNumber(params.Number).First()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, "查询失败")
        return
    }
    util.ResponseFormat(c, code.Success, register)
}
models/db.go
@@ -81,6 +81,9 @@
        RawSilkPriceStandard{},
        RawSilkRankStandard{},
        WorkshopManage{},
        YieldRegister{},
        YieldRegisterItem{},
        YieldRegisterCircle{},
    )
    return err
}
models/raw_silk_price_standard.go
@@ -11,11 +11,11 @@
type (
    RawSilkPriceStandard struct {
        gorm.Model
        MarketNumber       string          `json:"marketNumber" gorm:"type:varchar(255);comment:庄口编号"`
        RawSilkGradeNumber string          `json:"rawSilkGradeNumber" gorm:"type:varchar(255);comment:生丝等级编号"`
        PayStandard        decimal.Decimal `json:"payStandard" gorm:"type:decimal(20,3);comment:薪酬标准"`
        Unit               string          `json:"unit" gorm:"type:varchar(100);comment:单位"`
        Notes              string          `json:"notes" gorm:"type:varchar(255);comment:备注"`
        MarketNumber string          `json:"marketNumber" gorm:"type:varchar(255);comment:庄口编号"`
        RawSilkGrade string          `json:"rawSilkGrade" gorm:"type:varchar(255);comment:生丝等级"`
        PayStandard  decimal.Decimal `json:"payStandard" gorm:"type:decimal(20,3);comment:薪酬标准"`
        Unit         string          `json:"unit" gorm:"type:varchar(100);comment:单位"`
        Notes        string          `json:"notes" gorm:"type:varchar(255);comment:备注"`
    }
    RawSilkPriceStandardSearch struct {
        RawSilkPriceStandard
@@ -97,7 +97,7 @@
func (slf *RawSilkPriceStandardSearch) Save(record *RawSilkPriceStandard) error {
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
    if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
        return fmt.Errorf("save err: %v, record: %+v", err, record)
    }
models/workshop_manage.go
@@ -129,7 +129,7 @@
func (slf *WorkshopManageSearch) Save(record *WorkshopManage) error {
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
    if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
        return fmt.Errorf("save err: %v, record: %+v", err, record)
    }
models/yield_register.go
@@ -36,8 +36,8 @@
        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"`
        Items                   []*YieldRegisterItem   `json:"items" gorm:"foreignKey:YieldRegisterId"`
        Circles                 []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId"`
    }
    YieldRegisterSearch struct {
        YieldRegister
@@ -71,11 +71,20 @@
    return slf
}
func (slf *YieldRegisterSearch) SetNumber(number string) *YieldRegisterSearch {
    slf.Number = number
    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")
    }
    if slf.Number != "" {
        db = db.Where("number = ?", slf.Number)
    }
    return db
@@ -91,6 +100,19 @@
    return nil
}
func (slf *YieldRegisterSearch) First() (*YieldRegister, error) {
    var (
        record = new(YieldRegister)
        db     = slf.build()
    )
    if err := db.First(record).Error; err != nil {
        return record, err
    }
    return record, nil
}
func (slf *YieldRegisterSearch) Find() ([]*YieldRegister, int64, error) {
    var (
        records = make([]*YieldRegister, 0)
@@ -104,7 +126,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)
    }
@@ -127,7 +149,7 @@
func (slf *YieldRegisterSearch) Save(record *YieldRegister) error {
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
    if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
        return fmt.Errorf("save err: %v, record: %+v", err, record)
    }
models/yield_register_circle.go
@@ -11,7 +11,7 @@
    //YieldRegisterCircle 产量登记回数关系表
    YieldRegisterCircle struct {
        gorm.Model
        YieldRegisterId uint            `json:"yieldRegisterId" gorm:"type:int(11);comment:产量登记表id"`
        YieldRegisterId uint            `json:"yieldRegisterId" gorm:"type:int(11);not null;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:片数"`
models/yield_register_item.go
@@ -11,7 +11,7 @@
    //YieldRegisterItem 产量登记详情表
    YieldRegisterItem struct {
        gorm.Model
        YieldRegisterId       uint            `json:"yieldRegisterId" gorm:"type:int(11);comment:产量登记表id"`
        YieldRegisterId       uint            `json:"yieldRegisterId" gorm:"type:int(11);not null;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:个人产量"`
router/router.go
@@ -39,8 +39,9 @@
        systemApi.POST("savePriceStandard", rawSilkController.SavePriceStandard)           //保存生丝定价标准
        systemApi.DELETE("deletePriceStandard/:id", rawSilkController.DeletePriceStandard) //删除生丝定价标准
        //生丝定价
        systemApi.GET("getRankStandard", rawSilkController.GetRankStandard)    //获取生丝定级标准
        systemApi.POST("saveRankStandard", rawSilkController.SaveRankStandard) //保存生丝定级标准
        systemApi.GET("getRankStandard", rawSilkController.GetRankStandard)           //获取生丝定级标准
        systemApi.GET("getRankStandardGrade", rawSilkController.GetRankStandardGrade) //获取生丝等级
        systemApi.POST("saveRankStandard", rawSilkController.SaveRankStandard)        //保存生丝定级标准
        //车间管理
        systemApi.GET("getWorkshopManageList", workshopController.GetWorkshopManageList)      //获取车间管理列表
        systemApi.POST("saveWorkshopManage", workshopController.SaveWorkshopManage)           //保存车间管理
@@ -49,6 +50,7 @@
    // 生产管理
    FinenessController := new(controllers.FinenessController)
    yieldController := new(controllers.YieldRegisterController)
    finenessApi := r.Group(urlPrefix + "/fineness")
    {
        finenessApi.GET("register", FinenessController.RegisterList)          // 获取纤度登记列表
@@ -60,6 +62,10 @@
        finenessApi.DELETE("check/:id", FinenessController.CheckDelete) // 删除纤度检验
        finenessApi.PUT("check", FinenessController.CheckEdit)          // 修改纤度检验
        finenessApi.GET("check/:id", FinenessController.CheckInfo)      // 获取纤度检验详情
        finenessApi.POST("saveYieldRegister", yieldController.SaveYieldRegister)       // 保存产量登记表
        finenessApi.POST("getYieldRegisterList", yieldController.GetYieldRegisterList) // 获取产量登记表
        finenessApi.POST("getYieldRegisterInfo", yieldController.GetYieldRegisterInfo) // 获取产量登记表详情
    }
    return r