zhangqian
2024-07-23 303fadd07629048d091862e09f4e67c2b98e4ecd
service/material.go
@@ -184,20 +184,38 @@
      return 0, errors.New("物料数据为空")
   }
   err = models.WithTransaction(func(db *gorm.DB) error {
      if err := models.NewMaterialSearch().SetOrm(db).CreateBatch(materialList); err != nil {
         return err
      for i := 0; i < len(materialList); i += 500 {
         end := i + 500
         if end > len(materialList) {
            end = len(materialList)
         }
         arr := materialList[i:end]
         if len(arr) != 0 {
            if err := models.NewMaterialSearch().SetOrm(db).CreateBatch(arr); err != nil {
               return err
            }
         }
      }
      if len(attributeValueList) != 0 {
         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
      for i := 0; i < len(attributeValueList); i += 500 {
         end := i + 500
         if end > len(attributeValueList) {
            end = len(attributeValueList)
         }
         arr := attributeValueList[i:end]
         if len(arr) != 0 {
            if err := models.NewAttributeValueSearch().SetOrm(db).CreateBatch(arr); err != nil {
               return err
            }
            if err != nil { //批量插入失败(可能已经存在值),分开一条一条插入重复的不插入
               for _, avl := range arr {
                  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
                  }
               }
            }
         }