From 52d6ec2b86005444441a7c7033d7d2ffd35631d2 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期二, 30 四月 2024 09:58:55 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/silk/silkServer --- controllers/fineness.go | 108 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 88 insertions(+), 20 deletions(-) diff --git a/controllers/fineness.go b/controllers/fineness.go index 61370ed..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{} @@ -39,7 +41,15 @@ return } - silkStandard, err := service.GetSilkRankStandard() + if err := slf.ParamsCheck(params); err != nil { + util.ResponseFormat(c, code.RequestParamError, err.Error()) + 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 @@ -47,12 +57,7 @@ endCarMap, err := service.GetWorkshopEndCarMap(params.WorkshopNumber, params.WorkshopGroup) if len(endCarMap) == 0 { - util.ResponseFormat(c, code.RequestParamError, "璇峰璇ヨ溅闂村拰杞︾粍杩涜杞﹀彿璁剧疆") - return - } - - if err := slf.ParamsCheck(params); err != nil { - util.ResponseFormat(c, code.RequestParamError, err.Error()) + util.ResponseFormat(c, code.RequestParamError, "璇ヨ溅闂存湭閰嶇疆杞﹀彿锛岃鍦ㄨ溅闂寸鐞嗕腑閰嶇疆!") return } @@ -72,6 +77,7 @@ }) if err != nil { util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") + return } err = service.FinenessCheck(¶ms, silkStandard, endCarMap, isNew) @@ -85,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 { @@ -285,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(¶ms); 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(¶ms) + 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(¶ms) - if err != nil { - util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触") - return - } util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛") } -- Gitblit v1.8.0