From 2716487d13f3521adeb25a48aa07a89f885d32c7 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 09 十月 2023 09:36:08 +0800 Subject: [PATCH] 仓库功能修改 --- models/operation_type.go | 9 +++ controllers/warehouse.go | 56 +++++++++++++++--- docs/swagger.yaml | 16 +++-- docs/docs.go | 26 ++++---- docs/swagger.json | 24 ++++---- 5 files changed, 91 insertions(+), 40 deletions(-) diff --git a/controllers/warehouse.go b/controllers/warehouse.go index 8606ee1..01c1ba3 100644 --- a/controllers/warehouse.go +++ b/controllers/warehouse.go @@ -54,7 +54,36 @@ return } params.LocationId = locationId - if err := models.NewWarehouseSearch().Create(¶ms); err != nil { + err = models.WithTransaction(func(tx *gorm.DB) error { + err := models.NewWarehouseSearch().SetOrm(tx).Create(¶ms) + if err != nil { + return err + } + //鍒涘缓涓変釜榛樿鎿嶄綔绫诲瀷 + var types []*models.OperationType + inType := &models.OperationType{ + Name: params.Name + "-鍏ュ簱", + BaseOperationType: constvar.BaseOperationTypeIncoming, + WarehouseId: params.Id, + } + types = append(types, inType) + outType := &models.OperationType{ + Name: params.Name + "-鍑哄簱", + BaseOperationType: constvar.BaseOperationTypeOutgoing, + WarehouseId: params.Id, + } + types = append(types, outType) + internalType := &models.OperationType{ + Name: params.Name + "-鍐呴儴璋冩嫧", + BaseOperationType: constvar.BaseOperationTypeInternal, + WarehouseId: params.Id, + } + types = append(types, internalType) + 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 @@ -174,22 +203,31 @@ return } - //鍒犻櫎浣嶇疆淇℃伅 first, err := models.NewWarehouseSearch().SetID(id).First() if err != nil { util.ResponseFormat(c, code.RequestParamError, "鑾峰彇浠撳簱淇℃伅澶辫触") return } - err = models.NewLocationSearch().SetID(first.LocationId).Delete() + err = models.WithTransaction(func(tx *gorm.DB) error { + //鍒犻櫎浣嶇疆淇℃伅 + err = models.NewLocationSearch().SetOrm(tx).SetJointName(first.Code).Delete() + if err != nil { + return err + } + //鍒犻櫎鎿嶄綔绫诲瀷 + err = models.NewOperationTypeSearch().SetOrm(tx).SetWarehouseId(first.Id).Delete() + if err != nil { + return err + } + //鍒犻櫎浠撳簱 + err = models.NewWarehouseSearch().SetOrm(tx).SetID(id).Delete() + return err + }) if err != nil { - util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎浣嶇疆淇℃伅澶辫触") + util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎浠撳簱澶辫触") return } - err = models.NewWarehouseSearch().SetID(id).Delete() - if err != nil { - util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎浠撳簱淇℃伅澶辫触") - return - } + util.ResponseFormat(c, code.UpdateSuccess, "鍒犻櫎鎴愬姛") } diff --git a/docs/docs.go b/docs/docs.go index cf3da7a..d00b1a0 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -3346,12 +3346,12 @@ "request.UpdateLocationProductAmount": { "type": "object", "properties": { - "Amount": { - "description": "搴撳瓨鏁伴噺", - "type": "number" - }, "adjustAmount": { "description": "LocationProductAmountId int ` + "`" + `json:\"locationProductAmountId\"` + "`" + ` //搴撳瓨鐩樼偣id", + "type": "number" + }, + "amount": { + "description": "搴撳瓨鏁伴噺", "type": "number" }, "differenceAmount": { @@ -3570,14 +3570,6 @@ "description": "鏁伴噺", "type": "number" }, - "baseOperationType": { - "description": "鍩虹浣滀笟绫诲瀷", - "allOf": [ - { - "$ref": "#/definitions/constvar.BaseOperationType" - } - ] - }, "contactedName": { "description": "瀹屾垚鑰�", "type": "string" @@ -3592,6 +3584,14 @@ }, "number": { "description": "鍗曞彿", + "type": "string" + }, + "productName": { + "description": "浜у搧鍚嶇О", + "type": "string" + }, + "status": { + "description": "鐘舵��", "type": "string" }, "toLocation": { @@ -3702,6 +3702,8 @@ Description: "", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, + LeftDelim: "{{", + RightDelim: "}}", } func init() { diff --git a/docs/swagger.json b/docs/swagger.json index ae21a86..21bebce 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -3334,12 +3334,12 @@ "request.UpdateLocationProductAmount": { "type": "object", "properties": { - "Amount": { - "description": "搴撳瓨鏁伴噺", - "type": "number" - }, "adjustAmount": { "description": "LocationProductAmountId int `json:\"locationProductAmountId\"` //搴撳瓨鐩樼偣id", + "type": "number" + }, + "amount": { + "description": "搴撳瓨鏁伴噺", "type": "number" }, "differenceAmount": { @@ -3558,14 +3558,6 @@ "description": "鏁伴噺", "type": "number" }, - "baseOperationType": { - "description": "鍩虹浣滀笟绫诲瀷", - "allOf": [ - { - "$ref": "#/definitions/constvar.BaseOperationType" - } - ] - }, "contactedName": { "description": "瀹屾垚鑰�", "type": "string" @@ -3582,6 +3574,14 @@ "description": "鍗曞彿", "type": "string" }, + "productName": { + "description": "浜у搧鍚嶇О", + "type": "string" + }, + "status": { + "description": "鐘舵��", + "type": "string" + }, "toLocation": { "description": "鐩爣浣嶇疆", "type": "string" diff --git a/docs/swagger.yaml b/docs/swagger.yaml index cdfc43c..9d205d5 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1018,12 +1018,12 @@ type: object request.UpdateLocationProductAmount: properties: - Amount: - description: 搴撳瓨鏁伴噺 - type: number adjustAmount: description: LocationProductAmountId int `json:"locationProductAmountId"` //搴撳瓨鐩樼偣id + type: number + amount: + description: 搴撳瓨鏁伴噺 type: number differenceAmount: description: 璁℃暟鏁伴噺 @@ -1173,10 +1173,6 @@ amount: description: 鏁伴噺 type: number - baseOperationType: - allOf: - - $ref: '#/definitions/constvar.BaseOperationType' - description: 鍩虹浣滀笟绫诲瀷 contactedName: description: 瀹屾垚鑰� type: string @@ -1189,6 +1185,12 @@ number: description: 鍗曞彿 type: string + productName: + description: 浜у搧鍚嶇О + type: string + status: + description: 鐘舵�� + type: string toLocation: description: 鐩爣浣嶇疆 type: string diff --git a/models/operation_type.go b/models/operation_type.go index 26842f7..4c5f86a 100644 --- a/models/operation_type.go +++ b/models/operation_type.go @@ -103,6 +103,11 @@ return slf } +func (slf *OperationTypeSearch) SetWarehouseId(warehouseId int) *OperationTypeSearch { + slf.WarehouseId = warehouseId + return slf +} + func (slf *OperationTypeSearch) build() *gorm.DB { var db = slf.Orm.Model(&OperationType{}) @@ -126,6 +131,10 @@ db = db.Preload("Company").Preload("Warehouse").Preload("DefaultLocationSrc").Preload("DefaultLocationDest") } + if slf.WarehouseId > 0 { + db = db.Where("warehouse_id = ?", slf.WarehouseId) + } + return db } -- Gitblit v1.8.0