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

---
 controllers/yield_register_controller.go |   89 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 86 insertions(+), 3 deletions(-)

diff --git a/controllers/yield_register_controller.go b/controllers/yield_register_controller.go
index 2c8ff8e..fbade43 100644
--- a/controllers/yield_register_controller.go
+++ b/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, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		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, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		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, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		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)
 }

--
Gitblit v1.8.0