From 0ec0aef398704cd0219ed452f3aa96c8cdacd647 Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期六, 06 七月 2024 15:27:51 +0800
Subject: [PATCH] 出库、入库、盘点涉及产品重复性检查调整(从【产品编号】变更为以【产品编号、出库库房编号、入库库房编号】作为唯一标识)

---
 controllers/operation.go |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/controllers/operation.go b/controllers/operation.go
index 41e3932..a7b5788 100644
--- a/controllers/operation.go
+++ b/controllers/operation.go
@@ -9,7 +9,6 @@
 	"github.com/shopspring/decimal"
 	"github.com/xuri/excelize/v2"
 	"gorm.io/gorm"
-	"sort"
 	"strconv"
 	"strings"
 	"time"
@@ -180,19 +179,19 @@
 	params.DealerType = miniDict.Name
 }
 
+// CheckDetailsRepeat 鍑哄簱銆佸叆搴撱�佺洏鐐规秹鍙婁骇鍝侀噸澶嶆�ф鏌ワ紙浠ヤ骇鍝佺紪鍙枫�佸嚭搴撳簱鎴跨紪鍙枫�佸叆搴撳簱鎴跨紪鍙凤級
+// 瀛樺湪閲嶅鍊� true锛� 涓嶅瓨鍦ㄨ繑鍥� false
 func CheckDetailsRepeat(details []*models.OperationDetails) bool {
-	var detailIDs []string
-	var tempID string
-	for _, v := range details {
-		detailIDs = append(detailIDs, v.ProductId)
+	if len(details) == 0 {
+		return false
 	}
-	sort.Strings(detailIDs)
-	for _, v := range detailIDs {
-		if v != tempID {
-			tempID = v
-		} else {
-			return true
-		}
+	var detailKeyMap = make(map[string]bool)
+	for _, v := range details {
+		key := fmt.Sprintf("%v%v%v", v.ProductId, v.FromLocationID, v.ToLocationID)
+		detailKeyMap[key] = true
+	}
+	if len(detailKeyMap) != len(details) { // 闀垮害鐩稿悓锛屼笉瀛樺湪閲嶅鍊硷紱闀垮害涓嶅悓瀛樺湪瀛樺湪涓嶅悓
+		return true
 	}
 	return false
 }
@@ -379,6 +378,10 @@
 	//	}
 	//}
 	userInfo := middleware.GetUserInfo(c)
+	if userInfo == nil {
+		util.ResponseFormat(c, code.SetStatusError, "鐧诲綍鐢ㄦ埛淇℃伅涓虹┖锛岃鐧诲綍鍚庨噸璇曪紒")
+		return
+	}
 	for _, v := range list {
 		v.CreatedBy = userInfo.NickName
 		//if err == nil {

--
Gitblit v1.8.0