From 1d5cb2f03c706c4b1cc36f50fd431f98fdbe7101 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期三, 13 十二月 2023 15:23:33 +0800
Subject: [PATCH] 对number的验证及不重复

---
 controllers/product_controller.go |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index 96f9306..616b889 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -14,6 +14,7 @@
 	"wms/extend/util"
 	"wms/models"
 	"wms/pkg/logx"
+	"wms/pkg/mysqlx"
 	"wms/request"
 )
 
@@ -212,6 +213,22 @@
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "浜у搧淇℃伅鏇存柊澶辫触")
 		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{}
@@ -431,12 +448,28 @@
 		util.ResponseFormat(c, code.RequestParamError, "璇疯緭鍏ユ簮鍗曟嵁")
 		return
 	}
+	if params.Number == "" {
+		util.ResponseFormat(c, code.RequestParamError, "璇疯緭鍏ュ崟鍙�")
+		return
+	}
+
+	var numberNum int64
+	if err := mysqlx.GetDB().Model(&models.Operation{}).Where("number=?", params.Number).Count(&numberNum).Error; err != nil {
+		util.ResponseFormat(c, code.RequestParamError, err.Error())
+		return
+	}
+	if numberNum > 0 {
+		util.ResponseFormat(c, code.RequestParamError, "鍗曞彿宸插瓨鍦�")
+		return
+	}
+
 	detail := &models.OperationDetails{
 		ProductId: params.ProductId,
 		Amount:    params.Amount,
 	}
 	operation := models.Operation{
-		Number:            strconv.FormatInt(time.Now().Unix(), 10),
+		//Number:            strconv.FormatInt(time.Now().Unix(), 10),
+		Number:            params.Number,
 		SourceNumber:      params.SourceNumber,
 		OperationTypeId:   0,
 		Status:            constvar.OperationStatus_Ready,
@@ -528,7 +561,7 @@
 		return
 	}
 	if err := models.WithTransaction(func(tx *gorm.DB) error {
-		if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{Status: constvar.OperationStatus_Finish}); err != nil {
+		if err := models.NewOperationSearch().SetOrm(tx).SetID(id).Update(&models.Operation{Status: constvar.OperationStatus_Finish, AuditDate: time.Now().Format("2006-01-02 15:04:05")}); err != nil {
 			return err
 		}
 		var listProdtId []string
@@ -729,6 +762,7 @@
 		return
 	}
 	operation.Status = constvar.OperationStatus_Cancel
+	operation.AuditDate = time.Now().Format("2006-01-02 15:04:05")
 	if err := models.NewOperationSearch().SetID(operation.Id).Save(operation); err != nil {
 		util.ResponseFormat(c, code.SaveFail, err.Error())
 		return

--
Gitblit v1.8.0