From 440392a932fb2dc8118caf1f4996e7d8b72574a1 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 29 四月 2024 19:18:21 +0800
Subject: [PATCH] 编辑纤度检验支持编辑明细并重新生成个人生丝等级
---
service/fineness.go | 17 --------
controllers/fineness.go | 69 +++++++++++++++++++++++++---------
docs/swagger.yaml | 2
docs/docs.go | 2
docs/swagger.json | 2
5 files changed, 54 insertions(+), 38 deletions(-)
diff --git a/controllers/fineness.go b/controllers/fineness.go
index cc1090d..c2c9b1a 100644
--- a/controllers/fineness.go
+++ b/controllers/fineness.go
@@ -314,38 +314,71 @@
// @Tags 绾ゅ害妫�楠�
// @Summary 绾ゅ害妫�楠屼慨鏀�
// @Produce application/json
-// @Param object body models.FinenessCheck true "瀛楀吀淇℃伅"
+// @Param object body response.FinenessCheckInfo true "瀛楀吀淇℃伅"
// @Success 200 {object} util.Response "鎴愬姛"
// @Router /api-jl/v1/fineness/check [post]
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
}
-
- _, err := models.NewFinenessCheckSearch().SetID(params.ID).First()
- if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "妫�楠岃褰曚笉瀛樺湪")
- return
- }
-
- if params.FinenessRegisterID == 0 {
+ if params.Info == nil || params.Info.FinenessRegisterID == 0 || len(params.Items) == 0 {
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟缂哄け")
return
}
- err = service.FinenessReCheck(¶ms)
+ _, err := models.NewFinenessCheckSearch().SetID(params.Info.ID).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
+ }
+ check := params.Info
+ finenessRegister, err := models.NewFinenessRegisterSearch().SetID(check.FinenessRegisterID).First()
+ if err != nil {
+ 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, "淇濆瓨鎴愬姛")
}
diff --git a/docs/docs.go b/docs/docs.go
index f56fb3f..513714a 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -414,7 +414,7 @@
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/models.FinenessCheck"
+ "$ref": "#/definitions/response.FinenessCheckInfo"
}
}
],
diff --git a/docs/swagger.json b/docs/swagger.json
index 63085e3..f6e3aed 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -402,7 +402,7 @@
"in": "body",
"required": true,
"schema": {
- "$ref": "#/definitions/models.FinenessCheck"
+ "$ref": "#/definitions/response.FinenessCheckInfo"
}
}
],
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index e685d01..66d18f7 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -1713,7 +1713,7 @@
name: object
required: true
schema:
- $ref: '#/definitions/models.FinenessCheck'
+ $ref: '#/definitions/response.FinenessCheckInfo'
produces:
- application/json
responses:
diff --git a/service/fineness.go b/service/fineness.go
index 8de5e5b..21fe070 100644
--- a/service/fineness.go
+++ b/service/fineness.go
@@ -8,7 +8,6 @@
"silkserver/models"
"silkserver/utils"
"sort"
- "strings"
)
func FinenessCheck(finenessRegister *models.FinenessRegister, standardMap map[string]*Standard, endCarMap map[int]bool, isNew bool) (err error) {
@@ -225,22 +224,6 @@
// 淇濈暀涓�浣嶅皬鏁帮紝骞跺湪鏁存暟鎯呭喌涓嬪湪灏忔暟鐐瑰悗鍔犱竴涓浂
result = float32(math.Round(float64(result)*10) / 10)
return result
-}
-
-func FinenessReCheck(finenessCheck *models.FinenessCheck) (err error) {
- finenessRegister, err := models.NewFinenessRegisterSearch().SetID(finenessCheck.FinenessRegisterID).First()
- if err != nil {
- return err
- }
- specArr := strings.Split(finenessRegister.Spec, "/")
- start, _ := decimal.NewFromString(specArr[0])
- end, _ := decimal.NewFromString(specArr[1])
- standardMap, err := GetSilkRankStandard(start, end)
- if err != nil {
- return err
- }
- finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap)
- return
}
func TotalDeviation(numbers []decimal.Decimal, average decimal.Decimal) decimal.Decimal {
--
Gitblit v1.8.0