From 7dd6097d42d6d6f254a84ab0111bac70f0358660 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 30 四月 2024 10:20:40 +0800
Subject: [PATCH] 加一些注释

---
 controllers/fineness.go |  114 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 97 insertions(+), 17 deletions(-)

diff --git a/controllers/fineness.go b/controllers/fineness.go
index 5203bba..9cc41d3 100644
--- a/controllers/fineness.go
+++ b/controllers/fineness.go
@@ -3,6 +3,7 @@
 import (
 	"errors"
 	"github.com/gin-gonic/gin"
+	"github.com/shopspring/decimal"
 	"gorm.io/gorm"
 	"silkserver/controllers/request"
 	"silkserver/controllers/response"
@@ -13,6 +14,7 @@
 	"silkserver/pkg/logx"
 	"silkserver/pkg/structx"
 	"silkserver/service"
+	"strings"
 )
 
 type FinenessController struct{}
@@ -44,9 +46,24 @@
 		return
 	}
 
+	specArr := strings.Split(params.Spec, "/")
+	start, _ := decimal.NewFromString(specArr[0])
+	end, _ := decimal.NewFromString(specArr[1])
+	silkStandard, err := service.GetSilkRankStandard(start, end)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, err.Error())
+		return
+	}
+
+	endCarMap, err := service.GetWorkshopEndCarMap(params.WorkshopNumber, params.WorkshopGroup)
+	if len(endCarMap) == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "璇ヨ溅闂存湭閰嶇疆杞﹀彿锛岃鍦ㄨ溅闂寸鐞嗕腑閰嶇疆!")
+		return
+	}
+
 	isNew := params.ID == 0
 
-	err := models.WithTransaction(func(db *gorm.DB) error {
+	err = models.WithTransaction(func(db *gorm.DB) error {
 		search := models.NewFinenessRegisterSearch().SetOrm(db)
 
 		if !isNew {
@@ -60,9 +77,10 @@
 	})
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
+		return
 	}
 
-	err = service.FinenessCheck(&params, isNew)
+	err = service.FinenessCheck(&params, silkStandard, endCarMap, isNew)
 	if err != nil {
 		logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params)
 		util.ResponseFormat(c, code.RequestParamError, "鐢熸垚妫�楠岃〃澶辫触")
@@ -73,6 +91,29 @@
 }
 
 func (slf FinenessController) ParamsCheck(params models.FinenessRegister) (err error) {
+	if params.Spec == "" || !strings.Contains(params.Spec, "/") {
+		return errors.New("瑙勬牸鏍煎紡涓嶆纭�")
+	}
+
+	specArr := strings.Split(params.Spec, "/")
+
+	_, err = decimal.NewFromString(specArr[0])
+	if err != nil {
+		return errors.New("瑙勬牸鏍煎紡涓嶆纭�")
+	}
+	_, err = decimal.NewFromString(specArr[1])
+	if err != nil {
+		return errors.New("瑙勬牸鏍煎紡涓嶆纭�")
+	}
+
+	if params.WorkshopNumber == "" || params.WorkshopGroup == 0 {
+		return errors.New("杞﹂棿杞︾粍鍙傛暟缂哄け")
+	}
+
+	if len(params.FinenessList) == 0 {
+		return errors.New("绾ゅ害鍒楄〃缂哄け")
+	}
+
 	if params.ID == 0 {
 		_, err = models.NewFinenessRegisterSearch().SetNumber(params.Number).First()
 		if err != gorm.ErrRecordNotFound {
@@ -104,7 +145,7 @@
 		return
 	}
 
-	list, total, err := models.NewFinenessRegisterSearch().SetKeyword(params.Keyword).SetPage(params.Page, params.PageSize).Find()
+	list, total, err := models.NewFinenessRegisterSearch().SetKeyword(params.Keyword).SetPage(params.Page, params.PageSize).SetOrder("id desc").Find()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
 		return
@@ -183,7 +224,7 @@
 		return
 	}
 
-	list, total, err := models.NewFinenessCheckSearch().SetPage(params.Page, params.PageSize).Find()
+	list, total, err := models.NewFinenessCheckSearch().SetPage(params.Page, params.PageSize).SetPreload().SetOrder("id desc").Find()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
 		return
@@ -273,33 +314,72 @@
 // @Tags      绾ゅ害妫�楠�
 // @Summary   绾ゅ害妫�楠屼慨鏀�
 // @Produce   application/json
-// @Param     object  body   models.FinenessCheck true  "瀛楀吀淇℃伅"
+// @Param     object  body   response.FinenessCheckInfo true  "鍙傛暟"
+// @Param     Authorization	header string true "token"
 // @Success   200 {object} util.Response "鎴愬姛"
-// @Router    /api-jl/v1/fineness/check [post]
+// @Router    /api-jl/v1/fineness/check [PUT]
 func (slf FinenessController) CheckEdit(c *gin.Context) {
-	var params models.FinenessCheck
+	var params response.FinenessCheckInfo
 	if err := c.BindJSON(&params); err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+	if params.Info == nil || params.Info.FinenessRegisterID == 0 || len(params.Items) == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け")
+		return
+	}
 
-	_, err := models.NewFinenessCheckSearch().SetID(params.ID).First()
+	_, err := models.NewFinenessCheckSearch().SetID(params.Info.ID).First()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "妫�楠岃褰曚笉瀛樺湪")
 		return
 	}
-
-	err = service.FinenessReCheck(&params)
+	check := params.Info
+	finenessRegister, err := models.NewFinenessRegisterSearch().SetID(check.FinenessRegisterID).First()
 	if err != nil {
-		logx.Errorf("service.FinenessReCheck err:%v, finenessCheck:%+v", err, params)
-		util.ResponseFormat(c, code.RequestParamError, "妫�楠屽け璐�")
+		util.ResponseFormat(c, code.RequestParamError, "绾ゅ害鐧昏涓嶅瓨鍦�")
+		return
+	}
+	specArr := strings.Split(finenessRegister.Spec, "/")
+	start, _ := decimal.NewFromString(specArr[0])
+	end, _ := decimal.NewFromString(specArr[1])
+	standardMap, err := service.GetSilkRankStandard(start, end)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, err.Error())
+		return
+	}
+	check.FinenessGrade = service.CalcFinenessGrade(check.Deviation, check.TotalDeviation, check.Cleanliness, check.Purity, check.TwiceChange, standardMap)
+
+	items := params.Items
+
+	for _, item := range items {
+		if item.FinenessGrade != "" {
+			item.FinenessGrade = service.CalcFinenessGrade(item.Deviation, item.TotalDeviation, item.Cleanliness, item.Purity, item.TwiceChange, standardMap)
+		}
+	}
+
+	err = models.WithTransaction(func(db *gorm.DB) error {
+		err = models.NewFinenessCheckSearch().SetOrm(db).Save(params.Info)
+		if err != nil {
+			return err
+		}
+
+		for _, item := range items {
+			if item.FinenessGrade == "" {
+				continue
+			}
+			err = models.NewFinenessCheckItemSearch().SetOrm(db).SetID(item.ID).UpdateByMap(map[string]interface{}{"fineness_grade": item.FinenessGrade})
+			if err != nil {
+				return err
+			}
+		}
+		return nil
+	})
+
+	if err != nil {
+		util.ResponseFormat(c, code.SaveFail, "淇濆瓨澶辫触")
 		return
 	}
 
-	err = models.NewFinenessCheckSearch().Save(&params)
-	if err != nil {
-		util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
-		return
-	}
 	util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
 }

--
Gitblit v1.8.0