From 97f8c17ef33e511d515164f1b1f00dd0fb9cd01f Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期三, 18 十月 2023 09:56:19 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS

---
 models/operation_type.go               |    9 +++
 response/report_forms_response.go      |   18 +++---
 controllers/report_forms_controller.go |    5 +
 models/material.go                     |    2 
 controllers/warehouse.go               |   56 +++++++++++++++---
 docs/swagger.yaml                      |   10 ++-
 docs/docs.go                           |   18 +++--
 docs/swagger.json                      |   16 ++--
 8 files changed, 93 insertions(+), 41 deletions(-)

diff --git a/controllers/report_forms_controller.go b/controllers/report_forms_controller.go
index d9ea817..db62c73 100644
--- a/controllers/report_forms_controller.go
+++ b/controllers/report_forms_controller.go
@@ -134,7 +134,7 @@
 	for _, detail := range details {
 		operationIds = append(operationIds, detail.OperationID)
 	}
-	//鑾峰彇鎿嶄綔璁板綍
+	//鑾峰彇宸插畬鎴愮殑鎿嶄綔璁板綍
 	operations, err := models.NewOperationSearch().SetIds(operationIds).SetStatus(constvar.OperationStatus_Finish).FindNotTotal()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ鎿嶄綔璁板綍澶辫触")
@@ -145,11 +145,12 @@
 		var resp response.InventoryHistory
 		resp.Amount = detail.Amount
 		resp.Unit = params.Unit
+		resp.ProductName = params.ProductName
 		for _, operation := range operations {
 			if detail.OperationID == operation.Id {
 				resp.Number = operation.Number
 				resp.Date = operation.UpdateTime
-				resp.BaseOperationType = operation.BaseOperationType
+				resp.Status = "瀹屾垚"
 				resp.ContactedName = operation.ContacterName
 				resp.FromLocation = operation.FromLocation.Name
 				resp.ToLocation = operation.ToLocation.Name
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(&params); err != nil {
+	err = models.WithTransaction(func(tx *gorm.DB) error {
+		err := models.NewWarehouseSearch().SetOrm(tx).Create(&params)
+		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 1fdd00a..d00b1a0 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -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 95777bf..21bebce 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -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 04865e9..9d205d5 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -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/material.go b/models/material.go
index 77f3181..7fc8138 100644
--- a/models/material.go
+++ b/models/material.go
@@ -12,7 +12,7 @@
 	// Material 鐗╂枡
 	Material struct {
 		BaseModelString
-		Name string `gorm:"unique;type:varchar(191);not null;comment:鐗╂枡鍚嶇О" json:"name"` //鐗╂枡鍚嶇О
+		Name string `gorm:"type:varchar(191);not null;comment:鐗╂枡鍚嶇О" json:"name"` //鐗╂枡鍚嶇О
 		//MaterialType constvar.ProductType  `gorm:"index;type:int(11);comment:鐗╂枡绫诲瀷(鏁板瓧)" json:"materialType"`
 		Model constvar.MaterialMode `gorm:"type:varchar(191);not null;comment:鐗╂枡绫诲瀷(瀛楃涓�)" json:"model"` //鐗╂枡绫诲瀷(瀛楃涓�)
 		//Explain           string                  `gorm:"type:varchar(512);comment:缂栧彿璇存槑" json:"explain"`
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
 }
 
diff --git a/response/report_forms_response.go b/response/report_forms_response.go
index 63ee819..8bf283c 100644
--- a/response/report_forms_response.go
+++ b/response/report_forms_response.go
@@ -2,7 +2,6 @@
 
 import (
 	"github.com/shopspring/decimal"
-	"wms/constvar"
 )
 
 type InventoryForms struct {
@@ -19,14 +18,15 @@
 }
 
 type InventoryHistory struct {
-	Number            string                     `json:"number"`            //鍗曞彿
-	Date              string                     `json:"date"`              //鏃ユ湡
-	FromLocation      string                     `json:"fromLocation"`      //婧愪綅缃�
-	ToLocation        string                     `json:"toLocation"`        //鐩爣浣嶇疆
-	Amount            decimal.Decimal            `json:"amount"`            //鏁伴噺
-	Unit              string                     `json:"unit"`              //鍗曚綅
-	ContactedName     string                     `json:"contactedName"`     //瀹屾垚鑰�
-	BaseOperationType constvar.BaseOperationType `json:"baseOperationType"` //鍩虹浣滀笟绫诲瀷
+	Number        string          `json:"number"`        //鍗曞彿
+	Date          string          `json:"date"`          //鏃ユ湡
+	ProductName   string          `json:"productName"`   //浜у搧鍚嶇О
+	FromLocation  string          `json:"fromLocation"`  //婧愪綅缃�
+	ToLocation    string          `json:"toLocation"`    //鐩爣浣嶇疆
+	Amount        decimal.Decimal `json:"amount"`        //鏁伴噺
+	Unit          string          `json:"unit"`          //鍗曚綅
+	ContactedName string          `json:"contactedName"` //瀹屾垚鑰�
+	Status        string          `json:"status"`        //鐘舵��
 }
 
 type LocationForms struct {

--
Gitblit v1.8.0