liujiandao
2024-03-29 c7b298c3d2bd922df7514f8a5ca37a0c7f6e5686
api/v1/purchase/purchase.go
@@ -226,7 +226,7 @@
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param      id   path      int   true   "采购单ID"
// @Param     data  body     purchaserequest.SubmitPurchase   true  "参数"
// @Success   200   {object}  response.Response{msg=string}  "提交采购单"
// @Router    /purchase/submit [post]
func (e *PurchaseApi) Submit(c *gin.Context) {
@@ -260,10 +260,11 @@
      }
      client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
      resp, err := client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{
         Number:       data.Number,
         SupplierName: data.Supplier.Name,
         Product:      product,
         Source:       "SRM_PURCHASE",
         Number:          data.Number,
         SupplierName:    data.Supplier.Name,
         Product:         product,
         Source:          "SRM_PURCHASE",
         OperationSource: purchase_wms.OperationSource_OperationSourcePurchase,
      })
      if err != nil {
         global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
@@ -366,13 +367,20 @@
      response.FailWithMessage("参数缺失", c)
      return
   }
   data, err := service.NewPurchaseService().GetPurchase(uint(id))
   server := service.NewPurchaseService()
   data, err := server.GetPurchase(uint(id))
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(id))
   productList, err := server.GetPurchaseProductList(uint(id))
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   confirmInfo, err := server.GetPurchaseProductConfirmInfo(data.Number)
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
@@ -387,33 +395,59 @@
   }
   operationInfos := make([]purchaseRes.OperationInfo, 0)
   for _, operation := range info.Operations {
      var oi purchaseRes.OperationInfo
      oi.Number = operation.ProductId
      oi.Name = operation.ProductName
      oi.OperationNumber = operation.Number
      oi.Status = operation.Status
      oi.Principal = data.Principal
      oi.WarehouseName = data.Warehouse
      if operation.OverTime != "" {
         oi.OverTime = operation.OverTime
         oi.OverAmount = operation.Amount
      } else {
         oi.SendAmount = operation.Amount
      }
      for _, products := range productList {
         if products.Product.Number == operation.ProductId {
            oi.Amount = products.Amount
            oi.PurchasePrice = products.Price
            oi.Total = products.Total
            oi.Unit = products.Product.Unit
            oi.Specifications = products.Product.Specifications
            oi.ModelNumber = products.Product.ModelNumber
            break
   if len(info.Operations) > 0 {
      for _, operation := range info.Operations {
         var oi purchaseRes.OperationInfo
         oi.Number = operation.ProductId
         oi.Name = operation.ProductName
         oi.OperationNumber = operation.Number
         oi.Status = operation.Status
         oi.Principal = data.Principal
         oi.WarehouseName = data.Warehouse
         if operation.OverTime != "" {
            oi.OverTime = operation.OverTime
            oi.OverAmount = operation.Amount
         }
         for _, products := range productList {
            if products.Product.Number == operation.ProductId {
               oi.Amount = products.Amount
               oi.PurchasePrice = products.Price
               oi.Total = products.Total
               oi.Unit = products.Product.Unit
               oi.Specifications = products.Product.Specifications
               oi.ModelNumber = products.Product.ModelNumber
               break
            }
         }
         for _, confirm := range confirmInfo {
            if operation.ProductId == confirm.ProductId {
               oi.SendAmount = confirm.OverReceiveAmount.IntPart()
               break
            }
         }
         operationInfos = append(operationInfos, oi)
      }
      operationInfos = append(operationInfos, oi)
   } else {
      for _, products := range productList {
         var oi purchaseRes.OperationInfo
         oi.Number = products.Product.Number
         oi.Name = products.Product.Name
         oi.Amount = products.Amount
         oi.PurchasePrice = products.Price
         oi.Total = products.Total
         oi.Unit = products.Product.Unit
         oi.Specifications = products.Product.Specifications
         oi.ModelNumber = products.Product.ModelNumber
         for _, confirm := range confirmInfo {
            if products.Product.Number == confirm.ProductId {
               oi.SendAmount = confirm.OverReceiveAmount.IntPart()
               break
            }
         }
         operationInfos = append(operationInfos, oi)
      }
   }
   response.OkWithData(operationInfos, c)
}
@@ -423,22 +457,39 @@
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param      id   path      int   true   "采购单ID"                                           true  "采购单ID"
// @Param     data  body     purchaserequest.SubmitPurchase   true  "参数"
// @Success   200   {object}  response.Response{msg=string}  "新版提交"
// @Router    /purchase/newSubmit/{id} [get]
// @Router    /purchase/newSubmit [post]
func (e *PurchaseApi) NewSubmit(c *gin.Context) {
   id, _ := strconv.Atoi(c.Param("id"))
   var params purchaserequest.SubmitPurchase
   err := c.ShouldBindJSON(&params)
   if err != nil {
      global.GVA_LOG.Error("Submit failed", zap.Error(err))
      response.FailWithMessage(err.Error(), c)
      return
   }
   id := uint(params.Id)
   if id == 0 {
      response.FailWithMessage("参数缺失", c)
      return
   }
   data, err := service.NewPurchaseService().GetPurchase(uint(id))
   if params.Status == purchase.OrderStatusCanceled {
      err = service.NewPurchaseService().Submit(params.Id, params.Status, "")
      if err != nil {
         global.GVA_LOG.Error("提交失败!", zap.Error(err))
         response.FailWithMessage("提交失败", c)
         return
      }
      response.OkWithMessage("提交成功", c)
      return
   }
   data, err := service.NewPurchaseService().GetPurchase(id)
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(id))
   productList, err := service.NewPurchaseService().GetPurchaseProductList(id)
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
@@ -461,7 +512,7 @@
      ppc.SurplusReceiveAmount = products.Amount
      list = append(list, &ppc)
   }
   err = service.NewPurchaseService().SavePurchaseProductConfirm(list)
   err = service.NewPurchaseService().SavePurchaseProductConfirm(list, true)
   if err != nil {
      global.GVA_LOG.Error("提交失败!", zap.Error(err))
@@ -519,7 +570,7 @@
   }
   server := service.NewPurchaseService()
   err = server.SavePurchaseProductConfirm(list)
   err = server.SavePurchaseProductConfirm(list, false)
   if err != nil {
      global.GVA_LOG.Error("保存失败!", zap.Error(err))
@@ -614,12 +665,13 @@
      }
      client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
      _, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{
         Number:        purchaseData.Number,
         SupplierName:  purchaseData.Supplier.Name,
         SupplierId:    int64(purchaseData.SupplierId),
         Product:       product,
         Source:        "SRM_PURCHASE",
         WarehouseName: purchaseData.Warehouse,
         Number:          purchaseData.Number,
         SupplierName:    purchaseData.Supplier.Name,
         SupplierId:      int64(purchaseData.SupplierId),
         Product:         product,
         Source:          "SRM_PURCHASE",
         WarehouseName:   purchaseData.Warehouse,
         OperationSource: purchase_wms.OperationSource_OperationSourcePurchase,
      })
      if err != nil {
         global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
@@ -648,8 +700,8 @@
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param     data  body     purchaserequest.SaveQualityInspectionInfo   true  "参数"
// @Success   200   {object}  response.Response{data=[]purchase.PurchaseProductConfirm}  "获取确认信息"
// @Param     data  body     purchaserequest.PurchaseProductConfirmInfo   true  "参数"
// @Success   200   {object}  response.Response{}  "获取确认信息"
// @Router    /purchase/allProductInWarehouse [post]
func (e *PurchaseApi) AllProductInWarehouse(c *gin.Context) {
   var params []*purchaserequest.PurchaseProductConfirmInfo
@@ -666,7 +718,7 @@
   }
   server := service.NewPurchaseService()
   err = server.SavePurchaseProductConfirm(list)
   err = server.SavePurchaseProductConfirm(list, false)
   if err != nil {
      global.GVA_LOG.Error("保存失败!", zap.Error(err))
@@ -696,12 +748,13 @@
   }
   client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
   _, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{
      Number:        purchaseData.Number,
      SupplierName:  purchaseData.Supplier.Name,
      SupplierId:    int64(purchaseData.SupplierId),
      Product:       product,
      Source:        "SRM_PURCHASE",
      WarehouseName: purchaseData.Warehouse,
      Number:          purchaseData.Number,
      SupplierName:    purchaseData.Supplier.Name,
      SupplierId:      int64(purchaseData.SupplierId),
      Product:         product,
      Source:          "SRM_PURCHASE",
      WarehouseName:   purchaseData.Warehouse,
      OperationSource: purchase_wms.OperationSource_OperationSourcePurchase,
   })
   if err != nil {
      global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
@@ -714,5 +767,11 @@
      response.FailWithMessage("质检失败", c)
      return
   }
   err = server.UpdatePurchaseStatus(purchaseData.Number, purchase.WaitInspection)
   if err != nil {
      global.GVA_LOG.Error("质检失败!", zap.Error(err))
      response.FailWithMessage("质检失败", c)
      return
   }
   response.OkWithMessage("质检成功", c)
}