| | |
| | | "github.com/shopspring/decimal" |
| | | "github.com/xuri/excelize/v2" |
| | | "gorm.io/gorm" |
| | | "sort" |
| | | "strconv" |
| | | "strings" |
| | | "time" |
| | |
| | | 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 |
| | | } |
| | |
| | | // } |
| | | //} |
| | | userInfo := middleware.GetUserInfo(c) |
| | | if userInfo == nil { |
| | | util.ResponseFormat(c, code.SetStatusError, "登录用户信息为空,请登录后重试!") |
| | | return |
| | | } |
| | | for _, v := range list { |
| | | v.CreatedBy = userInfo.NickName |
| | | //if err == nil { |