zhangqian
2024-06-21 9c7551a7a752c07db11b0fd23bfba8da1ad062e0
controllers/product_controller.go
@@ -18,6 +18,8 @@
   "wms/pkg/mysqlx"
   "wms/pkg/structx"
   "wms/request"
   "wms/response"
   "wms/service"
)
type ProductController struct {
@@ -179,6 +181,37 @@
         product.MaxInventoryRule = reorderRules[0].MaxInventory
      }
      product.ReorderRuleNum = rulesTotal
      attributeValues, err := models.NewAttributeValueSearch().SetEntityID(product.ID).FindNotTotal()
      aids := make([]uint, 0)
      for _, v := range attributeValues {
         aids = append(aids, v.AttributeID)
      }
      attributes, err := models.NewAttributeSearch().SetIDs(aids).FindNotTotal()
      attributesMap := make(map[uint]*models.Attribute, len(attributes))
      for _, v := range attributes {
         attributesMap[v.ID] = v
      }
      if err != nil {
         util.ResponseFormat(c, code.RequestParamError, "未知动态属性")
      }
      for _, v1 := range attributeValues {
         attribute := attributesMap[v1.AttributeID]
         if attribute == nil {
            continue
         }
         //product.Attributes = append(product.Attributes,v1)
         product.Attributes = append(product.Attributes, models.Attribute{
            Model:        gorm.Model{ID: v1.ID, CreatedAt: v1.CreatedAt, UpdatedAt: v1.UpdatedAt, DeletedAt: v1.DeletedAt},
            Name:         attribute.Name,
            DataType:     attribute.DataType,
            EntityType:   attribute.EntityType,
            SelectValues: attribute.SelectValues,
            SelectValue:  attribute.SelectValue,
            //Value:        v1.Value,
            Value: v1.Value,
         })
      }
   }
   util.ResponseFormatList(c, code.Success, products, int(total))
}
@@ -266,25 +299,25 @@
         }
      }
      attributeValueSearch := models.NewAttributeValueSearch()
      /*attributeValueSearch := models.NewAttributeValueSearch()
      //删除从新插入
      if err := attributeValueSearch.SetOrm(tx).SetEntityID(params.ID).Delete(); err != nil {
         return err
      }
      avs := make([]*models.AttributeValue, 0)
      }*/
      //avs := make([]*models.AttributeValue, 0)
      for _, v := range params.Attributes {
         av := models.AttributeValue{
            Model:       gorm.Model{},
            Model:       gorm.Model{ID: v.ID},
            EntityID:    params.ID,
            AttributeID: v.ID,
            Value:       v.Value,
         }
         avs = append(avs, &av)
         //avs = append(avs, &av)
         if err := models.NewAttributeValueSearch().SetOrm(tx).Save(&av); err != nil {
            return err
         }
      }
      }
      if err := models.NewAttributeValueSearch().SetOrm(tx).CreateBatch(avs); err != nil {
         return err
      }
      return nil
   })
   if err != nil {
@@ -874,3 +907,28 @@
   util.ResponseFormat(c, code.Success, "添加成功")
}
// InputProduct
//
//   @Tags      物料管理
//   @Summary   导入物料
//   @Produce   application/xlsx
//   @Success   200      {object}   util.Response    "成功"
//   @Router      /api-wms/v1/product/inputProduct [post]
func (slf ProductController) InputProduct(c *gin.Context) {
   file, _, err := c.Request.FormFile("file")
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, err.Error())
      return
   }
   defer file.Close()
   resp := response.MaterialInputRes{InputCount: 0, ErrCount: 0, FileAddress: ""}
   userInfo := middleware.GetUserInfo(c)
   insertCount, err := service.InputMaterial(file, userInfo.Username)
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, err.Error())
      return
   }
   resp.InputCount = insertCount
   util.ResponseFormat(c, code.Success, resp)
}