liujiandao
2023-10-23 b9a62531fb93aba42d13e62fd1b03d8dba112fa6
controllers/warehouse.go
@@ -44,7 +44,7 @@
   //创建默认位置
   location := &models.Location{
      Name:              "默认位置",
      ParentId:          params.Code,
      JointName:         params.Code,
      Type:              constvar.LocationTypeInternal,
      ReplenishLocation: true,
   }
@@ -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
@@ -101,7 +130,7 @@
   //更新位置信息
   if oldRecord != nil && params.Code != oldRecord.Code {
      m := make(map[string]interface{})
      m["parent_id"] = params.Code
      m["joint_name"] = params.Code
      err := models.NewLocationSearch().SetID(oldRecord.LocationId).UpdateByMap(m)
      if err != nil {
         return errors.New("更新位置信息失败")
@@ -143,7 +172,7 @@
   for _, warehouse := range list {
      codes = append(codes, warehouse.Code)
   }
   locations, err := models.NewLocationSearch().SetParents(codes).FindNotTotal()
   locations, err := models.NewLocationSearch().SetJointNames(codes).FindNotTotal()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "位置信息查找失败")
      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 {
         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, "删除位置信息失败")
      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, "删除成功")
}