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

---
 controllers/product_controller.go      |   22 +++++++++-
 models/product_category.go             |   11 +++--
 controllers/report_forms_controller.go |    2 
 models/location_product_amount.go      |   33 ++++++++++++++++
 4 files changed, 58 insertions(+), 10 deletions(-)

diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 054b4ca..3a40e59 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -214,6 +214,22 @@
 		return
 	}
 
+	//鏇存柊鍦ㄥ簱鐨勪骇鍝佺被鍨�
+	if params.CategoryId > 0 {
+		find, _ := models.NewLocationProductAmountSearch().SetProductId(params.ID).Find()
+		if len(find) > 0 {
+			var ids []int
+			for _, f := range find {
+				if f.ProductCategoryID != params.CategoryId {
+					ids = append(ids, f.Id)
+				}
+			}
+			m := make(map[string]interface{})
+			m["productCategoryId"] = params.CategoryId
+			_ = models.NewLocationProductAmountSearch().SetIds(ids).UpdateByMap(m)
+		}
+	}
+
 	materialAttachmentList := []*models.MaterialAttachment{}
 	for _, v := range params.AttachmentIDs {
 		ma := &models.MaterialAttachment{MaterialID: params.ID, AttachmentID: v}
@@ -318,7 +334,7 @@
 		return
 	}
 
-	first, err := models.NewProductCategorySearch().SetID(cast.ToUint(id)).First()
+	first, err := models.NewProductCategorySearch().SetID(cast.ToInt(id)).First()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
 		return
@@ -343,7 +359,7 @@
 		util.ResponseFormat(c, code.RequestParamError, "浜у搧绫诲瀷鍚嶇О涓嶈兘涓虹┖")
 		return
 	}
-	err := models.NewProductCategorySearch().SetID(params.ID).Save(&params)
+	err := models.NewProductCategorySearch().SetID(params.Id).Save(&params)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "浜у搧绫诲瀷淇℃伅鏇存柊澶辫触")
 		return
@@ -364,7 +380,7 @@
 		util.ResponseFormat(c, code.RequestParamError, "鏃犳晥id")
 		return
 	}
-	err := models.NewProductCategorySearch().SetID(cast.ToUint(id)).Delete()
+	err := models.NewProductCategorySearch().SetID(cast.ToInt(id)).Delete()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
 		return
diff --git a/controllers/report_forms_controller.go b/controllers/report_forms_controller.go
index a15025a..ca58506 100644
--- a/controllers/report_forms_controller.go
+++ b/controllers/report_forms_controller.go
@@ -236,7 +236,7 @@
 		ids = append(ids, params.LocationId)
 	} else {
 		//鏌ヨ浣嶇疆
-		locations, err := models.NewLocationSearch().SetJointName(params.WareHouseCode).FindAll()
+		locations, err := models.NewLocationSearch().SetJointName(params.WareHouseCode).SetType(3).FindAll()
 		if err != nil {
 			util.ResponseFormat(c, code.RequestParamError, "鏌ヨ浣嶇疆澶辫触")
 			return
diff --git a/models/location_product_amount.go b/models/location_product_amount.go
index dc1d0c3..4f1af2b 100644
--- a/models/location_product_amount.go
+++ b/models/location_product_amount.go
@@ -17,7 +17,7 @@
 		LocationId        int             `json:"locationId" gorm:"type:int;not null;comment:浣嶇疆id"` //浣嶇疆id
 		Location          Location        `json:"location" gorm:"foreignKey:LocationId;references:id"`
 		ProductCategoryID int             `json:"productCategoryId" gorm:"type:int;not null;comment:浜у搧绉嶇被id"` //浜у搧绉嶇被id
-		ProductCategory   ProductCategory `json:"productCategory" gorm:"foreignKey:ProductCategoryID;references:ID"`
+		ProductCategory   ProductCategory `json:"productCategory" gorm:"foreignKey:ProductCategoryID;references:Id"`
 		ProductId         string          `json:"productId" gorm:"type:varchar(191);not null;comment:浜у搧id"` //浜у搧id
 		Product           Material        `json:"product" gorm:"foreignKey:ProductId;references:ID"`
 		Amount            decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:搴撳瓨鏁伴噺"` //搴撳瓨鏁伴噺
@@ -35,6 +35,7 @@
 		//LocationProductIds []int
 		LocationIds []int
 		ProductIds  []string
+		Ids         []int
 	}
 
 	LocationProductAmountWithOperation struct {
@@ -80,6 +81,11 @@
 
 func (slf *LocationProductAmountSearch) SetID(id int) *LocationProductAmountSearch {
 	slf.Id = id
+	return slf
+}
+
+func (slf *LocationProductAmountSearch) SetIds(ids []int) *LocationProductAmountSearch {
+	slf.Ids = ids
 	return slf
 }
 
@@ -151,6 +157,10 @@
 
 	if slf.ProductId != "" {
 		db = db.Where("product_id=?", slf.ProductId)
+	}
+
+	if len(slf.Ids) > 0 {
+		db = db.Where("id in (?)", slf.Ids)
 	}
 
 	return db
@@ -247,3 +257,24 @@
 
 	return record, db.First(&record)
 }
+
+func (slf *LocationProductAmountSearch) Count() (int64, error) {
+	var (
+		total int64
+		db    = slf.build()
+	)
+	err := db.Count(&total).Error
+	return total, err
+}
+
+func (slf *LocationProductAmountSearch) UpdateByMap(upMap map[string]interface{}) error {
+	var (
+		db = slf.build()
+	)
+
+	if err := db.Updates(upMap).Error; err != nil {
+		return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap)
+	}
+
+	return nil
+}
diff --git a/models/product_category.go b/models/product_category.go
index 62f611d..af90da8 100644
--- a/models/product_category.go
+++ b/models/product_category.go
@@ -10,7 +10,8 @@
 type (
 	// ProductCategory 浜у搧鍒嗙被
 	ProductCategory struct {
-		BaseModelInt
+		WmsModel
+		Id                   int                           `json:"id"  gorm:"column:id;primary_key;AUTO_INCREMENT"`
 		Name                 string                        `json:"name" gorm:"index;type:varchar(255);not null;comment:鍒嗙被鍚嶇О"` //鍒嗙被鍚嶇О
 		ParentId             int                           `json:"parentId" gorm:"type:int;comment:涓婄骇鍒嗙被id"`                   //涓婄骇id
 		RouteId              int                           `json:"routeId" gorm:"type:int;comment:璺嚎id"`                      //璺嚎id
@@ -55,8 +56,8 @@
 	return slf
 }
 
-func (slf *ProductCategorySearch) SetID(id uint) *ProductCategorySearch {
-	slf.ID = id
+func (slf *ProductCategorySearch) SetID(id int) *ProductCategorySearch {
+	slf.Id = id
 	return slf
 }
 
@@ -82,8 +83,8 @@
 func (slf *ProductCategorySearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&ProductCategory{})
 
-	if slf.ID != 0 {
-		db = db.Where("id = ?", slf.ID)
+	if slf.Id != 0 {
+		db = db.Where("id = ?", slf.Id)
 	}
 
 	if slf.Order != "" {

--
Gitblit v1.8.0