liujiandao
2023-10-09 2716487d13f3521adeb25a48aa07a89f885d32c7
controllers/warehouse.go
@@ -54,7 +54,36 @@
      return
   }
   params.LocationId = locationId
   if err := models.NewWarehouseSearch().Create(&params); err != nil {
   err = models.WithTransaction(func(tx *gorm.DB) error {
      err := models.NewWarehouseSearch().SetOrm(tx).Create(&params)
      if err != nil {
         return err
      }
      //创建三个默认操作类型
      var types []*models.OperationType
      inType := &models.OperationType{
         Name:              params.Name + "-入库",
         BaseOperationType: constvar.BaseOperationTypeIncoming,
         WarehouseId:       params.Id,
      }
      types = append(types, inType)
      outType := &models.OperationType{
         Name:              params.Name + "-出库",
         BaseOperationType: constvar.BaseOperationTypeOutgoing,
         WarehouseId:       params.Id,
      }
      types = append(types, outType)
      internalType := &models.OperationType{
         Name:              params.Name + "-内部调拨",
         BaseOperationType: constvar.BaseOperationTypeInternal,
         WarehouseId:       params.Id,
      }
      types = append(types, internalType)
      err = models.NewOperationTypeSearch().SetOrm(tx).CreateBatch(types)
      return err
   })
   if err != nil {
      _ = models.NewLocationSearch().SetID(locationId).Delete()
      logx.Errorf("warehouse create err: %v", err)
      util.ResponseFormat(c, code.SaveFail, "插入失败")
      return
@@ -174,22 +203,31 @@
      return
   }
   //删除位置信息
   first, err := models.NewWarehouseSearch().SetID(id).First()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "获取仓库信息失败")
      return
   }
   err = models.NewLocationSearch().SetID(first.LocationId).Delete()
   err = models.WithTransaction(func(tx *gorm.DB) error {
      //删除位置信息
      err = models.NewLocationSearch().SetOrm(tx).SetJointName(first.Code).Delete()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "删除位置信息失败")
         return err
      }
      //删除操作类型
      err = models.NewOperationTypeSearch().SetOrm(tx).SetWarehouseId(first.Id).Delete()
      if err != nil {
         return err
      }
      //删除仓库
      err = models.NewWarehouseSearch().SetOrm(tx).SetID(id).Delete()
      return err
   })
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "删除仓库失败")
      return
   }
   err = models.NewWarehouseSearch().SetID(id).Delete()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "删除仓库信息失败")
      return
   }
   util.ResponseFormat(c, code.UpdateSuccess, "删除成功")
}