liujiandao
2023-12-22 dd97f2626579ca8be69b9b6d68ce9d592b62eb6a
api/v1/product.go
@@ -9,7 +9,6 @@
   "aps_crm/pkg/ecode"
   "aps_crm/pkg/logx"
   "aps_crm/proto/product"
   "aps_crm/utils"
   "github.com/gin-gonic/gin"
   "github.com/shopspring/decimal"
   "github.com/spf13/cast"
@@ -56,6 +55,19 @@
      return
   }
   if params.QuotationNumber != "" {
      find, err := model.NewQuotationSearch(nil).SetNumber(params.QuotationNumber).Find()
      if err != nil {
         ctx.FailWithMsg(ecode.UnknownErr, "报价单信息查询失败")
         return
      }
      products := find.Products
      ctx.OkWithDetailed(response.ListResponse{
         Data:  products,
         Count: int64(len(products)),
      })
      return
   }
   cli := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn)
   getProductListResponse, err := cli.GetProductList(ctx.GetCtx(), &product.GetProductListRequest{
      Page:          cast.ToInt32(params.Page),
@@ -63,6 +75,16 @@
      ProductNumber: params.ProductNumber,
      ProductName:   params.ProductName,
   })
   if err != nil {
      logx.Errorf("grpc GetProductList err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
   if getProductListResponse.Code != 0 {
      logx.Errorf("grpc GetProductList err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
   rawProductList := getProductListResponse.List
   productList := make([]model.Product, len(rawProductList))
@@ -75,16 +97,6 @@
      productList[k].Unit = v.Unit
   }
   if err != nil {
      logx.Errorf("GetProductList err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
   if getProductListResponse.Code != 0 {
      logx.Errorf("GetProductList err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
   ctx.OkWithDetailed(response.ListResponse{
      Data:  productList,
      Count: getProductListResponse.Total,
@@ -110,12 +122,12 @@
   getProductInfoResponse, err := cli.GetProductInfo(ctx.GetCtx(), &product.GetProductInfoRequest{ProductId: productId})
   if err != nil {
      logx.Errorf("GetProductInfo err: %v", err.Error())
      logx.Errorf(" grpc GetProductInfo err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
   if getProductInfoResponse.Code != 0 {
      logx.Errorf("GetProductInfo err: %v", err.Error())
      logx.Errorf("grpc GetProductInfo err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
@@ -128,7 +140,7 @@
// @Summary   获取产品订单信息
// @Produce   application/json
// @Param      number   path      string   true   "明细编码"
// @Success   200   {object}   contextx.Response{data=[]product.WorkOrderInfo}   "成功"
// @Success   200   {object}   contextx.Response{data=response.Info}   "成功"
//
//   @Router      /api/product/getProductOrderInfo/{number} [get]
func (ci *ProductApi) GetProductOrderInfo(c *gin.Context) {
@@ -141,26 +153,14 @@
      ctx.Ok()
      return
   }
   first, err := model.NewSalesDetailsSearch().SetNumber(number).SetPreload(true).First()
   if err != nil {
      ctx.FailWithMsg(ecode.UnknownErr, "明细详情查找失败")
      return
   }
   params := make([]*product.Info, 0)
   for _, p := range first.Products {
      var pa product.Info
      pa.ProductId = p.Number
      pa.StartTime = utils.TimeToString(first.UpdatedAt)
      pa.EndTime = first.DeliveryDate
      params = append(params, &pa)
   }
   client := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn)
   info, err := client.GetProductOrder(ctx.GetCtx(), &product.GetProductOrderRequest{Params: params})
   info, err := client.GetProductOrder(ctx.GetCtx(), &product.GetProductOrderRequest{SalesDetailsNumber: number})
   if err != nil {
      logx.Errorf("GetProductOrder err: %v", err.Error())
      logx.Errorf("grpc GetProductOrder err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "内部错误")
      return
   }
   var result response.Info
   var list []response.WorkOrderInfo
   for _, orderInfo := range info.List {
      var wo response.WorkOrderInfo
@@ -173,5 +173,17 @@
      wo.EndTime = orderInfo.EndTime
      list = append(list, wo)
   }
   ctx.OkWithDetailed(list)
   result.MakeInfo = list
   var purchaseInfo []response.Purchase
   for _, pl := range info.PurchaseList {
      var p response.Purchase
      p.Amount = pl.Amount
      p.Status = pl.Status
      p.PurchaseName = pl.PurchaseName
      p.PurchaseNumber = pl.PurchaseNumber
      p.SupplierName = pl.SupplierName
      purchaseInfo = append(purchaseInfo, p)
   }
   result.PurchaseInfo = purchaseInfo
   ctx.OkWithDetailed(result)
}