From 5c1dfdd9f0d51821ac47a46cba74ef94bfe0141e Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 27 九月 2023 17:28:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS

---
 controllers/operation.go |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/controllers/operation.go b/controllers/operation.go
index 9a87ab0..fa8137d 100644
--- a/controllers/operation.go
+++ b/controllers/operation.go
@@ -6,6 +6,7 @@
 	"github.com/gin-gonic/gin"
 	"github.com/shopspring/decimal"
 	"gorm.io/gorm"
+	"sort"
 	"strconv"
 	"time"
 	"wms/constvar"
@@ -46,6 +47,12 @@
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return
 	}
+
+	if CheckDetailsRepeat(params.Details) {
+		util.ResponseFormat(c, code.RequestParamError, "鏄庣粏涓笉鑳藉瓨鍦ㄩ噸澶嶇殑浜у搧")
+		return
+	}
+
 	operationType, err := models.NewOperationTypeSearch().SetID(uint(params.OperationTypeId)).First()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
@@ -61,6 +68,23 @@
 		return
 	}
 	util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛")
+}
+
+func CheckDetailsRepeat(details []*models.OperationDetails) bool {
+	detailIDs := []string{}
+	var tempID string
+	for _, v := range details {
+		detailIDs = append(detailIDs, v.ProductId)
+	}
+	sort.Strings(detailIDs)
+	for _, v := range detailIDs {
+		if v != tempID {
+			tempID = v
+		} else {
+			return true
+		}
+	}
+	return false
 }
 
 func (slf OperationController) FormatLocation(params *models.Operation) error {
@@ -202,6 +226,10 @@
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return
 	}
+	if CheckDetailsRepeat(params.Details) {
+		util.ResponseFormat(c, code.RequestParamError, "鏄庣粏涓笉鑳藉瓨鍦ㄩ噸澶嶇殑浜у搧")
+		return
+	}
 	if err := slf.FormatLocation(&params); err != nil {
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return

--
Gitblit v1.8.0