From 34e1e9dbc7a750048c0825b8f91b07ed526ae577 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期五, 22 九月 2023 15:41:48 +0800
Subject: [PATCH] 1.根据产品获取出入库历史记录

---
 controllers/product_controller.go |   30 +++
 request/product_request.go        |    5 
 docs/swagger.yaml                 |  118 +++++++++++++
 docs/docs.go                      |  186 ++++++++++++++++++++
 docs/swagger.json                 |  184 ++++++++++++++++++++
 router/router.go                  |    2 
 6 files changed, 523 insertions(+), 2 deletions(-)

diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 0f57587..ab40488 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -274,3 +274,33 @@
 	}
 	util.ResponseFormat(c, code.Success, "鍒犻櫎鎴愬姛")
 }
+
+// ListOperation
+// @Tags      浜у搧
+// @Summary   浜у搧鍘嗗彶鍑哄叆搴撲俊鎭�
+// @Produce   application/json
+// @Param		 object  body  request.QueryOperationList true  "鏌ヨ鍙傛暟"
+// @Success   200 {object} util.ResponseList{data=[]models.Operation}	"鎴愬姛"
+// @Router    /api-wms/v1/product/listOperaton [post]
+func (slf ProductController) ListOperation(c *gin.Context) {
+	var params request.QueryOperationList
+	if err := c.BindJSON(&params); err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�:"+err.Error())
+		return
+	}
+	if !params.PageInfo.Check() {
+		util.ResponseFormat(c, code.RequestParamError, "椤电爜淇℃伅閿欒")
+		return
+	}
+
+	search := models.NewOperationSearch().SetPage(params.Page, params.PageSize).SetPreload(true).SetOrder("created_at desc")
+	search.SetOrm(search.Orm.InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").Where("wms_operation_details.product_id=?", params.ProductId))
+
+	list, total, err := search.Find()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestError, "鏌ユ壘澶辫触:"+err.Error())
+		return
+	}
+
+	util.ResponseFormatListWithPage(c, code.Success, list, int(total), params.Page, params.PageSize)
+}
diff --git a/docs/docs.go b/docs/docs.go
index 81492dd..3bd0a03 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1052,6 +1052,51 @@
                 }
             }
         },
+        "/api-wms/v1/product/listOperaton": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "浜у搧"
+                ],
+                "summary": "浜у搧鍘嗗彶鍑哄叆搴撲俊鎭�",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.QueryOperationList"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/util.ResponseList"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "type": "array",
+                                            "items": {
+                                                "$ref": "#/definitions/models.Operation"
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "/api-wms/v1/product/updateProduct": {
             "post": {
                 "produces": [
@@ -1609,6 +1654,10 @@
                     "description": "鏄惁鎶ュ簾浣嶇疆",
                     "type": "boolean"
                 },
+                "jointName": {
+                    "description": "鎷兼帴鍚嶇О",
+                    "type": "string"
+                },
                 "name": {
                     "description": "浣嶇疆鍚嶇О",
                     "type": "string"
@@ -1835,6 +1884,125 @@
                 "weight": {
                     "description": "閲嶉噺",
                     "type": "number"
+                }
+            }
+        },
+        "models.Operation": {
+            "type": "object",
+            "properties": {
+                "comment": {
+                    "type": "string"
+                },
+                "companyID": {
+                    "type": "integer"
+                },
+                "companyName": {
+                    "type": "string"
+                },
+                "contacterID": {
+                    "type": "integer"
+                },
+                "contacterName": {
+                    "type": "string"
+                },
+                "createTime": {
+                    "type": "string"
+                },
+                "details": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.OperationDetails"
+                    }
+                },
+                "fromLocation": {
+                    "description": "婧愪綅缃�",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/models.Location"
+                        }
+                    ]
+                },
+                "fromLocationId": {
+                    "description": "婧愪綅缃甶d",
+                    "type": "integer"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "number": {
+                    "description": "鍗曞彿",
+                    "type": "string"
+                },
+                "operationDate": {
+                    "type": "string"
+                },
+                "operationTypeId": {
+                    "description": "浣滀笟绫诲瀷id",
+                    "type": "integer"
+                },
+                "operationTypeName": {
+                    "description": "浣滀笟绫诲瀷鍚嶇О",
+                    "type": "string"
+                },
+                "sourceNumber": {
+                    "description": "婧愬崟鍙�",
+                    "type": "string"
+                },
+                "status": {
+                    "description": "鐘舵��",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/constvar.OperationStatus"
+                        }
+                    ]
+                },
+                "toLocation": {
+                    "description": "鐩爣浣嶇疆",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/models.Location"
+                        }
+                    ]
+                },
+                "toLocationId": {
+                    "description": "鐩爣浣嶇疆id",
+                    "type": "integer"
+                },
+                "updateTime": {
+                    "type": "string"
+                }
+            }
+        },
+        "models.OperationDetails": {
+            "type": "object",
+            "properties": {
+                "amount": {
+                    "description": "鏁伴噺",
+                    "type": "number"
+                },
+                "createTime": {
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "operationId": {
+                    "description": "鎿嶄綔id",
+                    "type": "integer"
+                },
+                "productId": {
+                    "description": "浜у搧id",
+                    "type": "string"
+                },
+                "productName": {
+                    "description": "浜у搧鍚嶇О",
+                    "type": "string"
+                },
+                "unit": {
+                    "type": "string"
+                },
+                "updateTime": {
+                    "type": "string"
                 }
             }
         },
@@ -2352,6 +2520,22 @@
                 }
             }
         },
+        "request.QueryOperationList": {
+            "type": "object",
+            "properties": {
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                },
+                "productId": {
+                    "type": "string"
+                }
+            }
+        },
         "request.UpdateCompany": {
             "type": "object",
             "properties": {
@@ -2576,8 +2760,6 @@
 	Description:      "",
 	InfoInstanceName: "swagger",
 	SwaggerTemplate:  docTemplate,
-	LeftDelim:        "{{",
-	RightDelim:       "}}",
 }
 
 func init() {
diff --git a/docs/swagger.json b/docs/swagger.json
index 54bcd5b..053866d 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1040,6 +1040,51 @@
                 }
             }
         },
+        "/api-wms/v1/product/listOperaton": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "浜у搧"
+                ],
+                "summary": "浜у搧鍘嗗彶鍑哄叆搴撲俊鎭�",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.QueryOperationList"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/util.ResponseList"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "type": "array",
+                                            "items": {
+                                                "$ref": "#/definitions/models.Operation"
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "/api-wms/v1/product/updateProduct": {
             "post": {
                 "produces": [
@@ -1597,6 +1642,10 @@
                     "description": "鏄惁鎶ュ簾浣嶇疆",
                     "type": "boolean"
                 },
+                "jointName": {
+                    "description": "鎷兼帴鍚嶇О",
+                    "type": "string"
+                },
                 "name": {
                     "description": "浣嶇疆鍚嶇О",
                     "type": "string"
@@ -1823,6 +1872,125 @@
                 "weight": {
                     "description": "閲嶉噺",
                     "type": "number"
+                }
+            }
+        },
+        "models.Operation": {
+            "type": "object",
+            "properties": {
+                "comment": {
+                    "type": "string"
+                },
+                "companyID": {
+                    "type": "integer"
+                },
+                "companyName": {
+                    "type": "string"
+                },
+                "contacterID": {
+                    "type": "integer"
+                },
+                "contacterName": {
+                    "type": "string"
+                },
+                "createTime": {
+                    "type": "string"
+                },
+                "details": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.OperationDetails"
+                    }
+                },
+                "fromLocation": {
+                    "description": "婧愪綅缃�",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/models.Location"
+                        }
+                    ]
+                },
+                "fromLocationId": {
+                    "description": "婧愪綅缃甶d",
+                    "type": "integer"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "number": {
+                    "description": "鍗曞彿",
+                    "type": "string"
+                },
+                "operationDate": {
+                    "type": "string"
+                },
+                "operationTypeId": {
+                    "description": "浣滀笟绫诲瀷id",
+                    "type": "integer"
+                },
+                "operationTypeName": {
+                    "description": "浣滀笟绫诲瀷鍚嶇О",
+                    "type": "string"
+                },
+                "sourceNumber": {
+                    "description": "婧愬崟鍙�",
+                    "type": "string"
+                },
+                "status": {
+                    "description": "鐘舵��",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/constvar.OperationStatus"
+                        }
+                    ]
+                },
+                "toLocation": {
+                    "description": "鐩爣浣嶇疆",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/models.Location"
+                        }
+                    ]
+                },
+                "toLocationId": {
+                    "description": "鐩爣浣嶇疆id",
+                    "type": "integer"
+                },
+                "updateTime": {
+                    "type": "string"
+                }
+            }
+        },
+        "models.OperationDetails": {
+            "type": "object",
+            "properties": {
+                "amount": {
+                    "description": "鏁伴噺",
+                    "type": "number"
+                },
+                "createTime": {
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "operationId": {
+                    "description": "鎿嶄綔id",
+                    "type": "integer"
+                },
+                "productId": {
+                    "description": "浜у搧id",
+                    "type": "string"
+                },
+                "productName": {
+                    "description": "浜у搧鍚嶇О",
+                    "type": "string"
+                },
+                "unit": {
+                    "type": "string"
+                },
+                "updateTime": {
+                    "type": "string"
                 }
             }
         },
@@ -2340,6 +2508,22 @@
                 }
             }
         },
+        "request.QueryOperationList": {
+            "type": "object",
+            "properties": {
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                },
+                "productId": {
+                    "type": "string"
+                }
+            }
+        },
         "request.UpdateCompany": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index ef9f62c..42553ef 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -241,6 +241,9 @@
       isScrapLocation:
         description: 鏄惁鎶ュ簾浣嶇疆
         type: boolean
+      jointName:
+        description: 鎷兼帴鍚嶇О
+        type: string
       name:
         description: 浣嶇疆鍚嶇О
         type: string
@@ -414,6 +417,84 @@
       weight:
         description: 閲嶉噺
         type: number
+    type: object
+  models.Operation:
+    properties:
+      comment:
+        type: string
+      companyID:
+        type: integer
+      companyName:
+        type: string
+      contacterID:
+        type: integer
+      contacterName:
+        type: string
+      createTime:
+        type: string
+      details:
+        items:
+          $ref: '#/definitions/models.OperationDetails'
+        type: array
+      fromLocation:
+        allOf:
+        - $ref: '#/definitions/models.Location'
+        description: 婧愪綅缃�
+      fromLocationId:
+        description: 婧愪綅缃甶d
+        type: integer
+      id:
+        type: integer
+      number:
+        description: 鍗曞彿
+        type: string
+      operationDate:
+        type: string
+      operationTypeId:
+        description: 浣滀笟绫诲瀷id
+        type: integer
+      operationTypeName:
+        description: 浣滀笟绫诲瀷鍚嶇О
+        type: string
+      sourceNumber:
+        description: 婧愬崟鍙�
+        type: string
+      status:
+        allOf:
+        - $ref: '#/definitions/constvar.OperationStatus'
+        description: 鐘舵��
+      toLocation:
+        allOf:
+        - $ref: '#/definitions/models.Location'
+        description: 鐩爣浣嶇疆
+      toLocationId:
+        description: 鐩爣浣嶇疆id
+        type: integer
+      updateTime:
+        type: string
+    type: object
+  models.OperationDetails:
+    properties:
+      amount:
+        description: 鏁伴噺
+        type: number
+      createTime:
+        type: string
+      id:
+        type: integer
+      operationId:
+        description: 鎿嶄綔id
+        type: integer
+      productId:
+        description: 浜у搧id
+        type: string
+      productName:
+        description: 浜у搧鍚嶇О
+        type: string
+      unit:
+        type: string
+      updateTime:
+        type: string
     type: object
   models.OperationType:
     properties:
@@ -759,6 +840,17 @@
         description: 浜у搧鍚嶇О
         type: string
       unit:
+        type: string
+    type: object
+  request.QueryOperationList:
+    properties:
+      page:
+        description: 椤电爜
+        type: integer
+      pageSize:
+        description: 姣忛〉澶у皬
+        type: integer
+      productId:
         type: string
     type: object
   request.UpdateCompany:
@@ -1546,6 +1638,32 @@
       summary: 鑾峰彇浜у搧鍒楄〃
       tags:
       - 浜у搧
+  /api-wms/v1/product/listOperaton:
+    post:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.QueryOperationList'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: 鎴愬姛
+          schema:
+            allOf:
+            - $ref: '#/definitions/util.ResponseList'
+            - properties:
+                data:
+                  items:
+                    $ref: '#/definitions/models.Operation'
+                  type: array
+              type: object
+      summary: 浜у搧鍘嗗彶鍑哄叆搴撲俊鎭�
+      tags:
+      - 浜у搧
   /api-wms/v1/product/updateProduct:
     post:
       parameters:
diff --git a/request/product_request.go b/request/product_request.go
index 8af1cd0..c4b8cae 100644
--- a/request/product_request.go
+++ b/request/product_request.go
@@ -4,3 +4,8 @@
 	PageInfo
 	KeyWord string `json:"keyWord"`
 }
+
+type QueryOperationList struct {
+	PageInfo
+	ProductId string `json:"productId"`
+}
diff --git a/router/router.go b/router/router.go
index ac257be..c8905ca 100644
--- a/router/router.go
+++ b/router/router.go
@@ -99,6 +99,8 @@
 		productAPI.GET("getProductCategoryDetails/:id", productController.GetProductCategoryDetails) //鑾峰彇浜у搧绫诲瀷璇︽儏
 		productAPI.POST("updateProductCategory", productController.UpdateProductCategory)            //淇敼浜у搧绫诲瀷
 		productAPI.DELETE("deleteProductCategory/:id", productController.DeleteProductCategory)      //鍒犻櫎浜у搧绫诲瀷
+
+		productAPI.POST("listOperaton", productController.ListOperation) //鏌ョ湅浜у搧鐨勫巻鍙插嚭鍏ュ簱淇℃伅
 	}
 
 	return r

--
Gitblit v1.8.0