From 3e988d2b353efc784f07b2c8a470b3cd7d59d264 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期二, 09 四月 2024 09:56:12 +0800
Subject: [PATCH] 产量登记表

---
 controllers/request/yield_register_request.go |   53 +++++++
 models/yield_register.go                      |  145 ++++++++++++++++++++
 models/workshop_manage.go                     |   12 +
 controllers/yield_register_controller.go      |   28 ++++
 models/yield_register_circle.go               |   88 ++++++++++++
 models/yield_register_item.go                 |   86 ++++++++++++
 controllers/workshop_manage_controller.go     |    2 
 7 files changed, 410 insertions(+), 4 deletions(-)

diff --git a/controllers/request/yield_register_request.go b/controllers/request/yield_register_request.go
new file mode 100644
index 0000000..31dd4f0
--- /dev/null
+++ b/controllers/request/yield_register_request.go
@@ -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"`       //浜ч噺鐧昏琛╥d
+	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"` //浜ч噺鐧昏琛╥d
+	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"` //缂姌
+}
diff --git a/controllers/workshop_manage_controller.go b/controllers/workshop_manage_controller.go
index c1c85c2..b06c4d9 100644
--- a/controllers/workshop_manage_controller.go
+++ b/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, "鍒犻櫎鎴愬姛")
 }
diff --git a/controllers/yield_register_controller.go b/controllers/yield_register_controller.go
new file mode 100644
index 0000000..2c8ff8e
--- /dev/null
+++ b/controllers/yield_register_controller.go
@@ -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, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+}
diff --git a/models/workshop_manage.go b/models/workshop_manage.go
index dc5166b..f1bdc07 100644
--- a/models/workshop_manage.go
+++ b/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)
 	}
 
diff --git a/models/yield_register.go b/models/yield_register.go
new file mode 100644
index 0000000..421d2a8
--- /dev/null
+++ b/models/yield_register.go
@@ -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
+}
diff --git a/models/yield_register_circle.go b/models/yield_register_circle.go
new file mode 100644
index 0000000..cdd036e
--- /dev/null
+++ b/models/yield_register_circle.go
@@ -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:浜ч噺鐧昏琛╥d"`
+		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
+}
diff --git a/models/yield_register_item.go b/models/yield_register_item.go
new file mode 100644
index 0000000..c948733
--- /dev/null
+++ b/models/yield_register_item.go
@@ -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:浜ч噺鐧昏琛╥d"`
+		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
+}

--
Gitblit v1.8.0