From a2cfbd59045d7426088e9ec9e93794dc895849a9 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 03 七月 2024 23:13:40 +0800
Subject: [PATCH] 获取位置列表增加仓库ID传参,默认位置去掉仓库code拼接, 修复若干bug

---
 models/location.go        |    9 +
 controllers/warehouse.go  |   42 ++++---
 docs/swagger.yaml         |   70 +++++++----
 service/location_forms.go |    3 
 controllers/location.go   |   10 +
 docs/docs.go              |  105 ++++++++++-------
 conf/config.yaml          |    1 
 docs/swagger.json         |  105 ++++++++++-------
 request/location.go       |    1 
 service/operation.go      |    1 
 10 files changed, 215 insertions(+), 132 deletions(-)

diff --git a/conf/config.yaml b/conf/config.yaml
index d608c0d..3098340 100644
--- a/conf/config.yaml
+++ b/conf/config.yaml
@@ -9,6 +9,7 @@
   serverId: wms
   # 閫氳繃鍏徃鍚嶇О鍖哄垎鍑哄叆搴撴槑缁嗘墦鍗版ā鐗�,鐩墠鏀寔:geruimi,jialian
   companyName: jialian
+  env: dev
 db:
   #  dsn: root:c++java123@tcp(192.168.20.119:3306)/wms?charset=utf8&parseTime=True&loc=Local
   dsn: root:c++java123@tcp(127.0.0.1:3306)/aps_server2?charset=utf8&parseTime=True&loc=Local
diff --git a/controllers/location.go b/controllers/location.go
index 5a4a3f9..90e6749 100644
--- a/controllers/location.go
+++ b/controllers/location.go
@@ -31,6 +31,12 @@
 		util.ResponseFormat(c, code.RequestParamError, err)
 		return
 	}
+
+	if params.WarehouseId == 0 {
+		util.ResponseFormat(c, code.RequestParamError, "浠撳簱ID鍙傛暟缂哄け")
+		return
+	}
+
 	if params.ParentId != 0 {
 		//鏌ヨ涓婄骇鍚嶇О
 		first, err := models.NewLocationSearch().SetID(params.ParentId).First()
@@ -82,7 +88,9 @@
 		search.SetPage(params.Page, params.PageSize)
 	}
 	list, total, err := search.SetKeyword(params.KeyWord).SetType(params.Type).SetJointName(params.JointName).
-		SetIsScrapLocation(params.IsScrapLocation).SetOrder("created_at desc").Find()
+		SetIsScrapLocation(params.IsScrapLocation).SetOrder("created_at desc").
+		SetWarehouseId(params.WarehouseId).
+		Find()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
 		return
diff --git a/controllers/warehouse.go b/controllers/warehouse.go
index 14d63c3..fda7851 100644
--- a/controllers/warehouse.go
+++ b/controllers/warehouse.go
@@ -12,7 +12,6 @@
 	"wms/extend/code"
 	"wms/extend/util"
 	"wms/models"
-	"wms/pkg/logx"
 	"wms/pkg/structx"
 	"wms/request"
 )
@@ -53,25 +52,33 @@
 		util.ResponseFormat(c, code.SaveFail, "瑙嗗浘鍒涘缓澶辫触")
 		return
 	}
-	//鍒涘缓榛樿浣嶇疆
-	location := &models.Location{
-		Name:              params.Name,
-		JointName:         params.Name,
-		Type:              constvar.LocationTypeInternal,
-		ReplenishLocation: true,
-		ParentId:          id,
-	}
-	locationId, err := models.NewLocationSearch().CreateReturnId(location)
-	if err != nil {
-		util.ResponseFormat(c, code.SaveFail, "浣嶇疆鍒涘缓澶辫触")
-		return
-	}
-	params.LocationId = locationId
 	err = models.WithTransaction(func(tx *gorm.DB) error {
 		err := models.NewWarehouseSearch().SetOrm(tx).Create(&params)
 		if err != nil {
 			return err
 		}
+
+		//鍒涘缓榛樿浣嶇疆
+		location := &models.Location{
+			Name:              params.Name,
+			JointName:         params.Name,
+			Type:              constvar.LocationTypeInternal,
+			ReplenishLocation: true,
+			ParentId:          id,
+			WarehouseId:       params.Id,
+		}
+		locationId, err := models.NewLocationSearch().SetOrm(tx).CreateReturnId(location)
+		if err != nil {
+			return err
+		}
+
+		//鏇存敼浠撳簱璁板綍閲岀殑浣嶇疆id
+		params.LocationId = locationId
+		err = models.NewWarehouseSearch().SetOrm(tx).SetID(params.Id).UpdateByMap(map[string]interface{}{"location_id": locationId})
+		if err != nil {
+			return err
+		}
+
 		//鍒涘缓涓変釜榛樿鎿嶄綔绫诲瀷
 		var types []*models.OperationType
 		inType := &models.OperationType{
@@ -95,9 +102,8 @@
 		err = models.NewOperationTypeSearch().SetOrm(tx).CreateBatch(types)
 		return err
 	})
+
 	if err != nil {
-		_ = models.NewLocationSearch().SetID(locationId).Delete()
-		logx.Errorf("warehouse create err: %v", err)
 		util.ResponseFormat(c, code.SaveFail, "鎻掑叆澶辫触")
 		return
 	}
@@ -238,7 +244,7 @@
 	for _, warehouse := range list {
 		for _, location := range locations {
 			if warehouse.LocationId == location.Id {
-				warehouse.WarehouseLocation = warehouse.Code + "/" + location.Name
+				warehouse.WarehouseLocation = location.Name
 				break
 			}
 		}
diff --git a/docs/docs.go b/docs/docs.go
index 709fcde..597d1c7 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -2023,37 +2023,11 @@
                     "鍏ュ簱/鍑哄簱"
                 ],
                 "summary": "鑾峰彇浜哄憳鍒楄〃",
-                "parameters": [
-                    {
-                        "description": "鍙傛暟",
-                        "name": "object",
-                        "in": "body",
-                        "required": true,
-                        "schema": {
-                            "$ref": "#/definitions/request.OperationCondition"
-                        }
-                    }
-                ],
                 "responses": {
                     "200": {
                         "description": "鎴愬姛",
                         "schema": {
-                            "allOf": [
-                                {
-                                    "$ref": "#/definitions/util.ResponseList"
-                                },
-                                {
-                                    "type": "object",
-                                    "properties": {
-                                        "data": {
-                                            "type": "array",
-                                            "items": {
-                                                "$ref": "#/definitions/inventory_order.WorkerInfo"
-                                            }
-                                        }
-                                    }
-                                }
-                            ]
+                            "$ref": "#/definitions/util.Response"
                         }
                     }
                 }
@@ -2797,6 +2771,31 @@
                 }
             }
         },
+        "/api-wms/v1/product/downloadInputFormat": {
+            "get": {
+                "tags": [
+                    "浜у搧"
+                ],
+                "summary": "涓嬭浇瀵煎叆鐗╂枡/浜у搧妯℃澘",
+                "parameters": [
+                    {
+                        "type": "string",
+                        "description": "token",
+                        "name": "Authorization",
+                        "in": "header",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/util.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api-wms/v1/product/finishDisuse/{id}": {
             "put": {
                 "produces": [
@@ -3124,9 +3123,9 @@
                     "application/xlsx"
                 ],
                 "tags": [
-                    "鐗╂枡绠$悊"
+                    "浜у搧"
                 ],
-                "summary": "瀵煎叆鐗╂枡",
+                "summary": "瀵煎叆鐗╂枡/浜у搧",
                 "parameters": [
                     {
                         "type": "file",
@@ -4152,19 +4151,22 @@
                 1,
                 2,
                 3,
-                4
+                4,
+                5
             ],
             "x-enum-comments": {
+                "DisuseType": "鎶ュ簾绫诲瀷",
                 "StockoutType": "鍑哄簱绫诲瀷",
                 "StorageType": "鍏ュ簱绫诲瀷",
-                "TakeStock": "鐩樼偣绫诲瀷",
+                "TakeStockType": "鐩樼偣绫诲瀷",
                 "TransferType": "璋冩嫧绫诲瀷"
             },
             "x-enum-varnames": [
                 "StorageType",
                 "StockoutType",
                 "TransferType",
-                "TakeStock"
+                "TakeStockType",
+                "DisuseType"
             ]
         },
         "constvar.OperationSource": {
@@ -4347,17 +4349,6 @@
                 "valid": {
                     "description": "Valid is true if Time is not NULL",
                     "type": "boolean"
-                }
-            }
-        },
-        "inventory_order.WorkerInfo": {
-            "type": "object",
-            "properties": {
-                "id": {
-                    "type": "string"
-                },
-                "name": {
-                    "type": "string"
                 }
             }
         },
@@ -5038,6 +5029,21 @@
                     "type": "number"
                 }
             }
+        },
+        "models.MonthStatsItemsType": {
+            "type": "integer",
+            "enum": [
+                1,
+                2
+            ],
+            "x-enum-comments": {
+                "MonthStatsItemsTypeInput": "鍏ュ簱",
+                "MonthStatsItemsTypeOutput": "鍑哄簱"
+            },
+            "x-enum-varnames": [
+                "MonthStatsItemsTypeInput",
+                "MonthStatsItemsTypeOutput"
+            ]
         },
         "models.MoveHistory": {
             "type": "object",
@@ -5740,6 +5746,9 @@
                     "description": "鍏ュ簱鏉ユ簮锛屽嚭搴撳幓澶�",
                     "type": "string"
                 },
+                "type": {
+                    "$ref": "#/definitions/models.MonthStatsItemsType"
+                },
                 "warehouseMonthStatsId": {
                     "type": "integer"
                 }
@@ -6333,6 +6342,12 @@
                 "locationId": {
                     "type": "integer"
                 },
+                "locationIds": {
+                    "type": "array",
+                    "items": {
+                        "type": "integer"
+                    }
+                },
                 "page": {
                     "description": "椤电爜",
                     "type": "integer"
@@ -6373,6 +6388,10 @@
                 },
                 "type": {
                     "type": "integer"
+                },
+                "warehouseId": {
+                    "description": "浠撳簱ID",
+                    "type": "integer"
                 }
             }
         },
diff --git a/docs/swagger.json b/docs/swagger.json
index 0f87c8f..340d84d 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -2012,37 +2012,11 @@
                     "鍏ュ簱/鍑哄簱"
                 ],
                 "summary": "鑾峰彇浜哄憳鍒楄〃",
-                "parameters": [
-                    {
-                        "description": "鍙傛暟",
-                        "name": "object",
-                        "in": "body",
-                        "required": true,
-                        "schema": {
-                            "$ref": "#/definitions/request.OperationCondition"
-                        }
-                    }
-                ],
                 "responses": {
                     "200": {
                         "description": "鎴愬姛",
                         "schema": {
-                            "allOf": [
-                                {
-                                    "$ref": "#/definitions/util.ResponseList"
-                                },
-                                {
-                                    "type": "object",
-                                    "properties": {
-                                        "data": {
-                                            "type": "array",
-                                            "items": {
-                                                "$ref": "#/definitions/inventory_order.WorkerInfo"
-                                            }
-                                        }
-                                    }
-                                }
-                            ]
+                            "$ref": "#/definitions/util.Response"
                         }
                     }
                 }
@@ -2786,6 +2760,31 @@
                 }
             }
         },
+        "/api-wms/v1/product/downloadInputFormat": {
+            "get": {
+                "tags": [
+                    "浜у搧"
+                ],
+                "summary": "涓嬭浇瀵煎叆鐗╂枡/浜у搧妯℃澘",
+                "parameters": [
+                    {
+                        "type": "string",
+                        "description": "token",
+                        "name": "Authorization",
+                        "in": "header",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/util.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api-wms/v1/product/finishDisuse/{id}": {
             "put": {
                 "produces": [
@@ -3113,9 +3112,9 @@
                     "application/xlsx"
                 ],
                 "tags": [
-                    "鐗╂枡绠$悊"
+                    "浜у搧"
                 ],
-                "summary": "瀵煎叆鐗╂枡",
+                "summary": "瀵煎叆鐗╂枡/浜у搧",
                 "parameters": [
                     {
                         "type": "file",
@@ -4141,19 +4140,22 @@
                 1,
                 2,
                 3,
-                4
+                4,
+                5
             ],
             "x-enum-comments": {
+                "DisuseType": "鎶ュ簾绫诲瀷",
                 "StockoutType": "鍑哄簱绫诲瀷",
                 "StorageType": "鍏ュ簱绫诲瀷",
-                "TakeStock": "鐩樼偣绫诲瀷",
+                "TakeStockType": "鐩樼偣绫诲瀷",
                 "TransferType": "璋冩嫧绫诲瀷"
             },
             "x-enum-varnames": [
                 "StorageType",
                 "StockoutType",
                 "TransferType",
-                "TakeStock"
+                "TakeStockType",
+                "DisuseType"
             ]
         },
         "constvar.OperationSource": {
@@ -4336,17 +4338,6 @@
                 "valid": {
                     "description": "Valid is true if Time is not NULL",
                     "type": "boolean"
-                }
-            }
-        },
-        "inventory_order.WorkerInfo": {
-            "type": "object",
-            "properties": {
-                "id": {
-                    "type": "string"
-                },
-                "name": {
-                    "type": "string"
                 }
             }
         },
@@ -5027,6 +5018,21 @@
                     "type": "number"
                 }
             }
+        },
+        "models.MonthStatsItemsType": {
+            "type": "integer",
+            "enum": [
+                1,
+                2
+            ],
+            "x-enum-comments": {
+                "MonthStatsItemsTypeInput": "鍏ュ簱",
+                "MonthStatsItemsTypeOutput": "鍑哄簱"
+            },
+            "x-enum-varnames": [
+                "MonthStatsItemsTypeInput",
+                "MonthStatsItemsTypeOutput"
+            ]
         },
         "models.MoveHistory": {
             "type": "object",
@@ -5729,6 +5735,9 @@
                     "description": "鍏ュ簱鏉ユ簮锛屽嚭搴撳幓澶�",
                     "type": "string"
                 },
+                "type": {
+                    "$ref": "#/definitions/models.MonthStatsItemsType"
+                },
                 "warehouseMonthStatsId": {
                     "type": "integer"
                 }
@@ -6322,6 +6331,12 @@
                 "locationId": {
                     "type": "integer"
                 },
+                "locationIds": {
+                    "type": "array",
+                    "items": {
+                        "type": "integer"
+                    }
+                },
                 "page": {
                     "description": "椤电爜",
                     "type": "integer"
@@ -6362,6 +6377,10 @@
                 },
                 "type": {
                     "type": "integer"
+                },
+                "warehouseId": {
+                    "description": "浠撳簱ID",
+                    "type": "integer"
                 }
             }
         },
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 8285221..6dd0214 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -212,17 +212,20 @@
     - 2
     - 3
     - 4
+    - 5
     type: integer
     x-enum-comments:
+      DisuseType: 鎶ュ簾绫诲瀷
       StockoutType: 鍑哄簱绫诲瀷
       StorageType: 鍏ュ簱绫诲瀷
-      TakeStock: 鐩樼偣绫诲瀷
+      TakeStockType: 鐩樼偣绫诲瀷
       TransferType: 璋冩嫧绫诲瀷
     x-enum-varnames:
     - StorageType
     - StockoutType
     - TransferType
-    - TakeStock
+    - TakeStockType
+    - DisuseType
   constvar.OperationSource:
     enum:
     - 1
@@ -365,13 +368,6 @@
       valid:
         description: Valid is true if Time is not NULL
         type: boolean
-    type: object
-  inventory_order.WorkerInfo:
-    properties:
-      id:
-        type: string
-      name:
-        type: string
     type: object
   models.Attachment:
     properties:
@@ -854,6 +850,17 @@
         description: 閲嶉噺
         type: number
     type: object
+  models.MonthStatsItemsType:
+    enum:
+    - 1
+    - 2
+    type: integer
+    x-enum-comments:
+      MonthStatsItemsTypeInput: 鍏ュ簱
+      MonthStatsItemsTypeOutput: 鍑哄簱
+    x-enum-varnames:
+    - MonthStatsItemsTypeInput
+    - MonthStatsItemsTypeOutput
   models.MoveHistory:
     properties:
       amount:
@@ -1329,6 +1336,8 @@
       name:
         description: 鍏ュ簱鏉ユ簮锛屽嚭搴撳幓澶�
         type: string
+      type:
+        $ref: '#/definitions/models.MonthStatsItemsType'
       warehouseMonthStatsId:
         type: integer
     type: object
@@ -1734,6 +1743,10 @@
         type: string
       locationId:
         type: integer
+      locationIds:
+        items:
+          type: integer
+        type: array
       page:
         description: 椤电爜
         type: integer
@@ -1762,6 +1775,9 @@
         description: 姣忛〉澶у皬
         type: integer
       type:
+        type: integer
+      warehouseId:
+        description: 浠撳簱ID
         type: integer
     type: object
   request.GetMiniDictList:
@@ -3627,27 +3643,13 @@
       - 鍏ュ簱/鍑哄簱
   /api-wms/v1/operation/getPersonnelList:
     get:
-      parameters:
-      - description: 鍙傛暟
-        in: body
-        name: object
-        required: true
-        schema:
-          $ref: '#/definitions/request.OperationCondition'
       produces:
       - application/json
       responses:
         "200":
           description: 鎴愬姛
           schema:
-            allOf:
-            - $ref: '#/definitions/util.ResponseList'
-            - properties:
-                data:
-                  items:
-                    $ref: '#/definitions/inventory_order.WorkerInfo'
-                  type: array
-              type: object
+            $ref: '#/definitions/util.Response'
       summary: 鑾峰彇浜哄憳鍒楄〃
       tags:
       - 鍏ュ簱/鍑哄簱
@@ -4117,6 +4119,22 @@
       summary: 鍒犻櫎浜у搧绫诲瀷
       tags:
       - 浜у搧绫诲瀷
+  /api-wms/v1/product/downloadInputFormat:
+    get:
+      parameters:
+      - description: token
+        in: header
+        name: Authorization
+        required: true
+        type: string
+      responses:
+        "200":
+          description: 鎴愬姛
+          schema:
+            $ref: '#/definitions/util.Response'
+      summary: 涓嬭浇瀵煎叆鐗╂枡/浜у搧妯℃澘
+      tags:
+      - 浜у搧
   /api-wms/v1/product/finishDisuse/{id}:
     put:
       parameters:
@@ -4325,9 +4343,9 @@
           description: 鎴愬姛
           schema:
             $ref: '#/definitions/util.Response'
-      summary: 瀵煎叆鐗╂枡
+      summary: 瀵煎叆鐗╂枡/浜у搧
       tags:
-      - 鐗╂枡绠$悊
+      - 浜у搧
   /api-wms/v1/product/listDisuse:
     post:
       parameters:
diff --git a/models/location.go b/models/location.go
index 6bb50a0..fde650b 100644
--- a/models/location.go
+++ b/models/location.go
@@ -122,6 +122,11 @@
 	return slf
 }
 
+func (slf *LocationSearch) SetWarehouseId(warehouseId int) *LocationSearch {
+	slf.WarehouseId = warehouseId
+	return slf
+}
+
 func (slf *LocationSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
 
@@ -171,6 +176,10 @@
 		db = db.Preload("Warehouse")
 	}
 
+	if slf.WarehouseId != 0 {
+		db = db.Where("warehouse_id = ?", slf.WarehouseId)
+	}
+
 	return db
 }
 
diff --git a/request/location.go b/request/location.go
index 8f6546d..4f49f33 100644
--- a/request/location.go
+++ b/request/location.go
@@ -13,4 +13,5 @@
 	KeyWord         string `json:"keyWord"`
 	JointName       string `json:"jointName"`       //鎷兼帴鍚嶇О
 	IsScrapLocation bool   `json:"isScrapLocation"` //鏄惁鎶ュ簾
+	WarehouseId     int    `json:"warehouseId"`     //浠撳簱ID
 }
diff --git a/service/location_forms.go b/service/location_forms.go
index 15275ce..27932a2 100644
--- a/service/location_forms.go
+++ b/service/location_forms.go
@@ -49,7 +49,8 @@
 	ids := params.LocationIds
 	if params.LocationId != 0 {
 		ids = append(ids, params.LocationId)
-	} else {
+	}
+	if len(ids) == 0 {
 		//鏌ヨ浣嶇疆
 		locations, err := models.NewLocationSearch().SetJointName(params.WareHouseCode).SetType(3).FindAll()
 		if err != nil {
diff --git a/service/operation.go b/service/operation.go
index 3b9c43b..47902e3 100644
--- a/service/operation.go
+++ b/service/operation.go
@@ -182,6 +182,7 @@
 			} else {
 				if locAmount, aok := mapLocAmount[strconv.Itoa(operation.LocationID)+v.ProductId]; aok {
 					locAmount.Amount = locAmount.Amount.Add(v.Amount)
+					locAmount.ID = uint(locAmount.Id)
 					if err := models.NewLocationProductAmountSearch().SetOrm(tx).SetID(int(locAmount.ID)).Save(locAmount); err != nil {
 						return err
 					}

--
Gitblit v1.8.0