From c950586b718ae6fc198bedf424609a4ac94cb5d1 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期四, 04 七月 2024 18:16:07 +0800 Subject: [PATCH] 增加根据位置或仓库查询产品及库存列表 --- service/material.go | 100 +++++++++++++++++++++++++++++++------------------- 1 files changed, 62 insertions(+), 38 deletions(-) diff --git a/service/material.go b/service/material.go index f4f302c..0841f43 100644 --- a/service/material.go +++ b/service/material.go @@ -64,7 +64,7 @@ for index, insert := range inserts { errMsg := "" - if len(insert) < 5 || insert[0] == "" || insert[1] == "" || insert[2] == "" || insert[3] == "" || insert[4] == "" { + if len(insert) < 6 || insert[0] == "" || insert[1] == "" || insert[2] == "" || insert[3] == "" || insert[4] == "" || insert[5] == "" { errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝娌℃湁濉啓蹇呭~椤归」" return 0, errors.New(errMsg) } @@ -98,47 +98,40 @@ return 0, errors.New(errMsg) } material.CategoryId = mapProductCategory[strings.Trim(insert[3], " ")] - if len(insert) > 5 && insert[4] != "" { - //errMsg = "绗�" + strconv.Itoa(index+1) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛屾湭濉啓鍗曚綅" - //return 0, errors.New(errMsg) - material.Unit = insert[4] + purchaseTypeList := make([]int, 0) + purchaseTypes := strings.Split(strings.Trim(insert[4], " "), "/") + for _, v := range purchaseTypes { + switch strings.Trim(v, " ") { + case "閲囪喘": + purchaseTypeList = append(purchaseTypeList, int(constvar.PurchaseTypeOutSource)) + case "鑷埗": + purchaseTypeList = append(purchaseTypeList, int(constvar.PurchaseTypeSelf)) + case "濮斿": + purchaseTypeList = append(purchaseTypeList, int(constvar.PurchaseTypeEntrust)) + default: + errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛屾棤娉曡瘑鍒噰璐被鍨�" + return 0, errors.New(errMsg) + } + } + material.PurchaseTypeList = purchaseTypeList + material.Unit = insert[5] var moreUnit = true - if len(insert) > 6 && insert[5] != "" { - material.MoreUnit = &moreUnit - var ut models.UnitItems - ut.Unit = insert[4] - if len(insert) < 13 || insert[12] == "" { - errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅1鐩稿叧鐨勫崟浣嶆崲绠楁瘮渚�1" - return 0, errors.New(errMsg) - } - ut.Amount = decimal.RequireFromString(insert[12]) - if len(insert) < 14 || insert[13] == "" { - errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅1鐩稿叧鐨勬槸鍚︽诞鍔ㄦ崲绠�1" - return 0, errors.New(errMsg) - } - if strings.Trim(insert[13], " ") == "鏄�" { - ut.Floating = true - } else { - ut.Floating = false - } - material.MoreUnitList = append(material.MoreUnitList, ut) - } if len(insert) > 7 && insert[6] != "" { material.MoreUnit = &moreUnit var ut models.UnitItems - ut.Unit = insert[5] + ut.Unit = insert[6] + if len(insert) < 14 || insert[13] == "" { + errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅1鐩稿叧鐨勫崟浣嶆崲绠楁瘮渚�1" + return 0, errors.New(errMsg) + } + ut.Amount = decimal.RequireFromString(insert[13]) if len(insert) < 15 || insert[14] == "" { - errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅2鐩稿叧鐨勫崟浣嶆崲绠楁瘮渚�2" + errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅1鐩稿叧鐨勬槸鍚︽诞鍔ㄦ崲绠�1" return 0, errors.New(errMsg) } - ut.Amount = decimal.RequireFromString(insert[14]) - if len(insert) < 16 || insert[15] == "" { - errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅2鐩稿叧鐨勬槸鍚︽诞鍔ㄦ崲绠�2" - return 0, errors.New(errMsg) - } - if strings.Trim(insert[15], " ") == "鏄�" { + if strings.Trim(insert[14], " ") == "鏄�" { ut.Floating = true } else { ut.Floating = false @@ -146,10 +139,30 @@ material.MoreUnitList = append(material.MoreUnitList, ut) } if len(insert) > 8 && insert[7] != "" { - material.Specs = insert[7] //瑙勬牸 + material.MoreUnit = &moreUnit + var ut models.UnitItems + ut.Unit = insert[7] + if len(insert) < 16 || insert[15] == "" { + errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅2鐩稿叧鐨勫崟浣嶆崲绠楁瘮渚�2" + return 0, errors.New(errMsg) + } + ut.Amount = decimal.RequireFromString(insert[15]) + if len(insert) < 17 || insert[16] == "" { + errMsg = "绗�" + strconv.Itoa(index+2) + "琛岋紝浜у搧缂栫爜锛�" + insert[0] + "锛岃濉啓涓庤緟璁¢噺鍗曚綅2鐩稿叧鐨勬槸鍚︽诞鍔ㄦ崲绠�2" + return 0, errors.New(errMsg) + } + if strings.Trim(insert[16], " ") == "鏄�" { + ut.Floating = true + } else { + ut.Floating = false + } + material.MoreUnitList = append(material.MoreUnitList, ut) } if len(insert) > 9 && insert[8] != "" { - material.Type = insert[8] //鍨嬪彿 + material.Specs = insert[8] //瑙勬牸 + } + if len(insert) > 10 && insert[9] != "" { + material.Type = insert[9] //鍨嬪彿 } materialList = append(materialList, material) @@ -175,15 +188,26 @@ return err } if len(attributeValueList) != 0 { - if err := models.NewAttributeValueSearch().SetOrm(db).CreateBatch(attributeValueList); err != nil { - return err + err = models.NewAttributeValueSearch().SetOrm(db).CreateBatch(attributeValueList) + if err != nil { //鎵归噺鎻掑叆澶辫触锛堝彲鑳藉凡缁忓瓨鍦ㄥ�硷級锛屽垎寮�涓�鏉′竴鏉℃彃鍏ラ噸澶嶇殑涓嶆彃鍏� + for _, avl := range attributeValueList { + first, err2 := models.NewAttributeValueSearch().SetAttributeID(avl.AttributeID).SetEntityID(avl.EntityID).First() + if err2 == nil && first != nil { //琛ㄧず宸茬粡瀛樺湪鍔ㄦ�佸睘鎬� + continue + } + err2 = models.NewAttributeValueSearch().SetOrm(db).Create(avl) + if err2 != nil { + return err + } + } } } + return nil }) if err != nil { - return 0, errors.New("瀵煎叆澶辫触") + return 0, errors.New("瀵煎叆澶辫触:" + err.Error()) } return len(inserts), err } -- Gitblit v1.8.0