| | |
| | | } |
| | | 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) |
| | | } |
| | |
| | | |
| | | 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"` //编号 |
| | |
| | | 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 { |
| | |
| | | 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"` //缫折 |
| | |
| | | |
| | | 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 { |
| | |
| | | // @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(¶ms) |
| | | 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(¶ms) |
| | | 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(¶ms) |
| | | 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) |
| | | } |
| | |
| | | RawSilkPriceStandard{}, |
| | | RawSilkRankStandard{}, |
| | | WorkshopManage{}, |
| | | YieldRegister{}, |
| | | YieldRegisterItem{}, |
| | | YieldRegisterCircle{}, |
| | | ) |
| | | return err |
| | | } |
| | |
| | | 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 |
| | |
| | | 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) |
| | | } |
| | | |
| | |
| | | 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) |
| | | } |
| | | |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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) |
| | |
| | | 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) |
| | | } |
| | | |
| | |
| | | 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) |
| | | } |
| | | |
| | |
| | | //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:片数"` |
| | |
| | | //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:个人产量"` |
| | |
| | | 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) //保存车间管理 |
| | |
| | | |
| | | // 生产管理 |
| | | FinenessController := new(controllers.FinenessController) |
| | | yieldController := new(controllers.YieldRegisterController) |
| | | finenessApi := r.Group(urlPrefix + "/fineness") |
| | | { |
| | | finenessApi.GET("register", FinenessController.RegisterList) // 获取纤度登记列表 |
| | |
| | | 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 |