From 2555d29866a25b8ea13a3003ea4833b5fd464d91 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 08 四月 2024 16:12:06 +0800
Subject: [PATCH] 纤度检验接口完善

---
 models/fineness_check_item.go |    4 
 service/fineness.go           |    9 +
 controllers/fineness.go       |   49 ++-----
 docs/swagger.yaml             |   66 ++++++++++
 docs/docs.go                  |   91 ++++++++++++++
 docs/swagger.json             |   91 ++++++++++++++
 6 files changed, 267 insertions(+), 43 deletions(-)

diff --git a/controllers/fineness.go b/controllers/fineness.go
index be6f107..b675bcf 100644
--- a/controllers/fineness.go
+++ b/controllers/fineness.go
@@ -194,7 +194,7 @@
 // @Summary   绾ゅ害妫�楠岃鎯�
 // @Produce   application/json
 // @Param     id  path string true  "瀛楀吀淇℃伅"
-// @Success   200 {object} util.ResponseList{data=models.FinenessCheck} "鎴愬姛"
+// @Success   200 {object} util.ResponseList{data=response.FinenessCheckInfo} "鎴愬姛"
 // @Router    /api-jl/v1/fineness/check/{id} [get]
 func (slf FinenessController) CheckInfo(c *gin.Context) {
 	idStr := c.Param("id")
@@ -222,7 +222,7 @@
 		return
 	}
 
-	util.ResponseFormat(c, code.Success, info)
+	util.ResponseFormat(c, code.Success, resp)
 }
 
 // CheckDelete
@@ -270,54 +270,33 @@
 // @Tags      绾ゅ害妫�楠�
 // @Summary   绾ゅ害妫�楠屼慨鏀�
 // @Produce   application/json
-// @Param     object  body  request.AddFinenessRegister true  "瀛楀吀淇℃伅"
+// @Param     object  body   models.FinenessCheck true  "瀛楀吀淇℃伅"
 // @Success   200 {object} util.Response "鎴愬姛"
 // @Router    /api-jl/v1/fineness/check [post]
 func (slf FinenessController) CheckEdit(c *gin.Context) {
-	var reqParams request.AddFinenessRegister
-	var params models.FinenessRegister
-	if err := c.BindJSON(&reqParams); err != nil {
+	var params models.FinenessCheck
+	if err := c.BindJSON(&params); err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
-	if err := structx.AssignTo(reqParams, &params); err != nil {
-		util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲閿欒")
-		return
-	}
 
-	if err := slf.ParamsCheck(params); err != nil {
-		util.ResponseFormat(c, code.RequestParamError, err.Error())
-		return
-	}
-
-	check, err := models.NewFinenessCheckSearch().SetID(params.ID).First()
+	_, err := models.NewFinenessCheckSearch().SetID(params.ID).First()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "妫�楠岃褰曚笉瀛樺湪")
 		return
 	}
 
-	err = models.WithTransaction(func(db *gorm.DB) error {
-		search := models.NewFinenessRegisterSearch().SetOrm(db)
-
-		if params.ID != 0 {
-			if err := models.NewFinenessCheckItemSearch().SetOrm(db).SetFinenessRegisterID(check.FinenessRegisterID).Delete(); err != nil {
-				return err
-			}
-			return search.Save(&params)
-		} else {
-			return search.Create(&params)
-		}
-	})
+	err = service.FinenessReCheck(&params)
 	if err != nil {
-		util.ResponseFormat(c, code.RequestParamError, "淇濆瓨澶辫触")
-	}
-
-	err = service.FinenessCheck(&params)
-	if err != nil {
-		logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params)
-		util.ResponseFormat(c, code.RequestParamError, "鐢熸垚妫�楠岃〃澶辫触")
+		logx.Errorf("service.FinenessReCheck err:%v, finenessCheck:%+v", err, params)
+		util.ResponseFormat(c, code.RequestParamError, "妫�楠屽け璐�")
 		return
 	}
 
+	err = models.NewFinenessCheckSearch().Save(&params)
+	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 8a98a74..ad2a8c8 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -83,7 +83,7 @@
                         "in": "body",
                         "required": true,
                         "schema": {
-                            "$ref": "#/definitions/request.AddFinenessRegister"
+                            "$ref": "#/definitions/models.FinenessCheck"
                         }
                     }
                 ],
@@ -127,7 +127,7 @@
                                     "type": "object",
                                     "properties": {
                                         "data": {
-                                            "$ref": "#/definitions/models.FinenessCheck"
+                                            "$ref": "#/definitions/response.FinenessCheckInfo"
                                         }
                                     }
                                 }
@@ -956,6 +956,66 @@
                 }
             }
         },
+        "models.FinenessCheckItem": {
+            "type": "object",
+            "properties": {
+                "cleanliness": {
+                    "description": "娓呮磥搴�",
+                    "type": "number"
+                },
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "$ref": "#/definitions/gorm.DeletedAt"
+                },
+                "deviation": {
+                    "description": "鍋忓樊",
+                    "type": "number"
+                },
+                "finenessGrade": {
+                    "description": "绾ゅ害绛夌骇",
+                    "type": "string"
+                },
+                "finenessRegisterID": {
+                    "description": "绾ゅ害鐧昏琛↖D",
+                    "type": "integer"
+                },
+                "finenessRoundingItems": {
+                    "description": "绾ゅ害鍒楄〃",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.FinenessRoundingItem"
+                    }
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "position": {
+                    "description": "FinenessCheckID       uint                    ` + "`" + `gorm:\"not null;comment:绾ゅ害妫�楠岃〃ID\" json:\"finenessCheckID\"` + "`" + `    //绾ゅ害妫�楠岃〃ID",
+                    "type": "integer"
+                },
+                "purity": {
+                    "description": "娲佸噣搴�",
+                    "type": "number"
+                },
+                "remark": {
+                    "description": "澶囨敞",
+                    "type": "string"
+                },
+                "totalDeviation": {
+                    "description": "鎬诲樊",
+                    "type": "number"
+                },
+                "twiceChange": {
+                    "description": "浜屽害鍙樺寲",
+                    "type": "number"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
         "models.FinenessItem": {
             "type": "object",
             "properties": {
@@ -1049,6 +1109,19 @@
                 },
                 "workshopGroup": {
                     "description": "杞︾粍",
+                    "type": "integer"
+                }
+            }
+        },
+        "models.FinenessRoundingItem": {
+            "type": "object",
+            "properties": {
+                "fineness": {
+                    "description": "绾ゅ害",
+                    "type": "number"
+                },
+                "quantity": {
+                    "description": "鏁伴噺",
                     "type": "integer"
                 }
             }
@@ -1338,6 +1411,20 @@
                 }
             }
         },
+        "response.FinenessCheckInfo": {
+            "type": "object",
+            "properties": {
+                "info": {
+                    "$ref": "#/definitions/models.FinenessCheck"
+                },
+                "items": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.FinenessCheckItem"
+                    }
+                }
+            }
+        },
         "response.RankStandard": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 768a2d3..535c5b4 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -71,7 +71,7 @@
                         "in": "body",
                         "required": true,
                         "schema": {
-                            "$ref": "#/definitions/request.AddFinenessRegister"
+                            "$ref": "#/definitions/models.FinenessCheck"
                         }
                     }
                 ],
@@ -115,7 +115,7 @@
                                     "type": "object",
                                     "properties": {
                                         "data": {
-                                            "$ref": "#/definitions/models.FinenessCheck"
+                                            "$ref": "#/definitions/response.FinenessCheckInfo"
                                         }
                                     }
                                 }
@@ -944,6 +944,66 @@
                 }
             }
         },
+        "models.FinenessCheckItem": {
+            "type": "object",
+            "properties": {
+                "cleanliness": {
+                    "description": "娓呮磥搴�",
+                    "type": "number"
+                },
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "$ref": "#/definitions/gorm.DeletedAt"
+                },
+                "deviation": {
+                    "description": "鍋忓樊",
+                    "type": "number"
+                },
+                "finenessGrade": {
+                    "description": "绾ゅ害绛夌骇",
+                    "type": "string"
+                },
+                "finenessRegisterID": {
+                    "description": "绾ゅ害鐧昏琛↖D",
+                    "type": "integer"
+                },
+                "finenessRoundingItems": {
+                    "description": "绾ゅ害鍒楄〃",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.FinenessRoundingItem"
+                    }
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "position": {
+                    "description": "FinenessCheckID       uint                    `gorm:\"not null;comment:绾ゅ害妫�楠岃〃ID\" json:\"finenessCheckID\"`    //绾ゅ害妫�楠岃〃ID",
+                    "type": "integer"
+                },
+                "purity": {
+                    "description": "娲佸噣搴�",
+                    "type": "number"
+                },
+                "remark": {
+                    "description": "澶囨敞",
+                    "type": "string"
+                },
+                "totalDeviation": {
+                    "description": "鎬诲樊",
+                    "type": "number"
+                },
+                "twiceChange": {
+                    "description": "浜屽害鍙樺寲",
+                    "type": "number"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
         "models.FinenessItem": {
             "type": "object",
             "properties": {
@@ -1037,6 +1097,19 @@
                 },
                 "workshopGroup": {
                     "description": "杞︾粍",
+                    "type": "integer"
+                }
+            }
+        },
+        "models.FinenessRoundingItem": {
+            "type": "object",
+            "properties": {
+                "fineness": {
+                    "description": "绾ゅ害",
+                    "type": "number"
+                },
+                "quantity": {
+                    "description": "鏁伴噺",
                     "type": "integer"
                 }
             }
@@ -1326,6 +1399,20 @@
                 }
             }
         },
+        "response.FinenessCheckInfo": {
+            "type": "object",
+            "properties": {
+                "info": {
+                    "$ref": "#/definitions/models.FinenessCheck"
+                },
+                "items": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.FinenessCheckItem"
+                    }
+                }
+            }
+        },
         "response.RankStandard": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index e1f5ffd..94be12b 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -130,6 +130,50 @@
       updatedAt:
         type: string
     type: object
+  models.FinenessCheckItem:
+    properties:
+      cleanliness:
+        description: 娓呮磥搴�
+        type: number
+      createdAt:
+        type: string
+      deletedAt:
+        $ref: '#/definitions/gorm.DeletedAt'
+      deviation:
+        description: 鍋忓樊
+        type: number
+      finenessGrade:
+        description: 绾ゅ害绛夌骇
+        type: string
+      finenessRegisterID:
+        description: 绾ゅ害鐧昏琛↖D
+        type: integer
+      finenessRoundingItems:
+        description: 绾ゅ害鍒楄〃
+        items:
+          $ref: '#/definitions/models.FinenessRoundingItem'
+        type: array
+      id:
+        type: integer
+      position:
+        description: FinenessCheckID       uint                    `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID"
+          json:"finenessCheckID"`    //绾ゅ害妫�楠岃〃ID
+        type: integer
+      purity:
+        description: 娲佸噣搴�
+        type: number
+      remark:
+        description: 澶囨敞
+        type: string
+      totalDeviation:
+        description: 鎬诲樊
+        type: number
+      twiceChange:
+        description: 浜屽害鍙樺寲
+        type: number
+      updatedAt:
+        type: string
+    type: object
   models.FinenessItem:
     properties:
       createdAt:
@@ -196,6 +240,15 @@
         type: string
       workshopGroup:
         description: 杞︾粍
+        type: integer
+    type: object
+  models.FinenessRoundingItem:
+    properties:
+      fineness:
+        description: 绾ゅ害
+        type: number
+      quantity:
+        description: 鏁伴噺
         type: integer
     type: object
   models.RawSilkPriceStandard:
@@ -392,6 +445,15 @@
         description: 绛夌骇鍊�
         type: number
     type: object
+  response.FinenessCheckInfo:
+    properties:
+      info:
+        $ref: '#/definitions/models.FinenessCheck'
+      items:
+        items:
+          $ref: '#/definitions/models.FinenessCheckItem'
+        type: array
+    type: object
   response.RankStandard:
     properties:
       checkItem:
@@ -483,7 +545,7 @@
         name: object
         required: true
         schema:
-          $ref: '#/definitions/request.AddFinenessRegister'
+          $ref: '#/definitions/models.FinenessCheck'
       produces:
       - application/json
       responses:
@@ -529,7 +591,7 @@
             - $ref: '#/definitions/util.ResponseList'
             - properties:
                 data:
-                  $ref: '#/definitions/models.FinenessCheck'
+                  $ref: '#/definitions/response.FinenessCheckInfo'
               type: object
       summary: 绾ゅ害妫�楠岃鎯�
       tags:
diff --git a/models/fineness_check_item.go b/models/fineness_check_item.go
index 778f74a..80e4217 100644
--- a/models/fineness_check_item.go
+++ b/models/fineness_check_item.go
@@ -14,8 +14,8 @@
 		gorm.Model
 		FinenessRegisterID uint `gorm:"not null;comment:绾ゅ害鐧昏琛↖D" json:"finenessRegisterID"` //绾ゅ害鐧昏琛↖D
 		//FinenessCheckID       uint                    `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID" json:"finenessCheckID"`    //绾ゅ害妫�楠岃〃ID
-		Position              int                     `json:"position"` //杞﹀彿
-		FinenessRoundingItems []*FinenessRoundingItem `json:"finenessRoundingItems" gorm:"-"`
+		Position              int                     `json:"position"`                       //杞﹀彿
+		FinenessRoundingItems []*FinenessRoundingItem `json:"finenessRoundingItems" gorm:"-"` //绾ゅ害鍒楄〃
 		FinenessRounding      string                  `json:"-"`
 		Deviation             decimal.Decimal         `gorm:"type:decimal(12,2);not null;comment:鍋忓樊" json:"deviation"`        //鍋忓樊
 		TotalDeviation        decimal.Decimal         `gorm:"type:decimal(12,2);not null;comment:鎬诲樊" json:"totalDeviation"`   //鎬诲樊
diff --git a/service/fineness.go b/service/fineness.go
index 95039f3..863c71f 100644
--- a/service/fineness.go
+++ b/service/fineness.go
@@ -202,3 +202,12 @@
 	result = float32(math.Round(float64(result)*10) / 10)
 	return result
 }
+
+func FinenessReCheck(finenessCheck *models.FinenessCheck) (err error) {
+	standardMap, err := GetSilkRankStandard()
+	if err != nil {
+		return err
+	}
+	finenessCheck.FinenessGrade = CalcFinenessGrade(finenessCheck.Deviation, finenessCheck.TotalDeviation, finenessCheck.Cleanliness, finenessCheck.Purity, finenessCheck.TwiceChange, standardMap)
+	return
+}

--
Gitblit v1.8.0