liujiandao
2024-01-11 40e540f8ca398fee68f4520dbebd6db6fe2e164c
proto/crm_aps/server.go
@@ -4,6 +4,7 @@
   "aps_crm/constvar"
   "aps_crm/model"
   "aps_crm/model/grpc_init"
   "aps_crm/proto/product_inventory"
   "context"
   "github.com/shopspring/decimal"
)
@@ -70,6 +71,41 @@
         return nil, err
      }
      //推送到wms
      clientName := ""
      if detail.ClientId > 0 {
         first, err := model.NewClientSearch(nil).SetId(detail.ClientId).First()
         if err == nil {
            clientName = first.Name
         }
      }
      wmsProducts := make([]*product_inventory.InventoryProduct, 0)
      for _, product := range detail.Products {
         var p product_inventory.InventoryProduct
         p.Id = product.Number
         p.Amount = product.Amount.String()
         wmsProducts = append(wmsProducts, &p)
      }
      clientWms := product_inventory.NewProductInventoryServiceClient(grpc_init.ProductInventoryServiceConn)
      _, err = clientWms.CreateOperation(ctx, &product_inventory.CreateOperationRequest{
         Number:      detail.Number,
         Addressee:   detail.Addressee,
         Address:     detail.Address,
         Phone:       detail.Phone,
         DeliverType: int32(detail.DeliverType),
         Source:      "CRM",
         ClientId:    int64(detail.ClientId),
         ClientName:  clientName,
         ProductList: wmsProducts,
      })
      if err != nil {
         //状态还原
         m["status"] = constvar.WaitConfirmed
         _ = model.NewSalesDetailsSearch().SetNumber(detail.Number).UpdateByMap(m)
         return nil, err
      }
      //推送到aps
      products := make([]*SalesDetailsProduct, 0)
      var total decimal.Decimal
      for _, product := range detail.Products {
@@ -93,6 +129,9 @@
         Products:     products,
      })
      if err != nil {
         //状态还原
         m["status"] = constvar.WaitConfirmed
         _ = model.NewSalesDetailsSearch().SetNumber(detail.Number).UpdateByMap(m)
         return nil, err
      }
   }