liujiandao
2024-03-23 21c3a18da3d6cc53c7695d795a41dd6bee59f243
api/v1/purchase/purchase.go
@@ -526,7 +526,7 @@
      response.FailWithMessage("保存失败", c)
      return
   }
   err = server.SavePurchaseQualityInspection(list)
   _, err = server.SavePurchaseQualityInspection(list)
   if err != nil {
      global.GVA_LOG.Error("保存失败!", zap.Error(err))
      response.FailWithMessage("保存失败", c)
@@ -570,7 +570,7 @@
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param     data  body     purchaserequest.GetQualityInspectionInfo   true  "参数"
// @Param     data  body     purchaserequest.SaveQualityInspectionInfo   true  "参数"
// @Success   200   {object}  response.Response{data=[]purchase.PurchaseProductConfirm}  "获取确认信息"
// @Router    /purchase/savePurchaseQualityInspectionInfo [post]
func (e *PurchaseApi) SavePurchaseQualityInspectionInfo(c *gin.Context) {
@@ -585,6 +585,12 @@
      return
   }
   server := service.PurchaseService{}
   purchaseData, err := server.GetPurchase(params.PurchaseId)
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   if params.Status == purchase.Unqualified {
      err := server.UpdatePurchaseQualityInspection(params.Ids, params.Status)
      if err != nil {
@@ -593,12 +599,6 @@
         return
      }
   } else if params.Status == purchase.InWarehouse {
      purchaseData, err := server.GetPurchase(params.PurchaseId)
      if err != nil {
         global.GVA_LOG.Error("获取失败!", zap.Error(err))
         response.FailWithMessage("获取失败", c)
         return
      }
      inspectionList, err := server.GetPurchaseQualityInspectionList(params.Ids)
      if err != nil {
         global.GVA_LOG.Error("获取失败!", zap.Error(err))
@@ -633,6 +633,86 @@
         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)
}
// AllProductInWarehouse
// @Tags      Purchase
// @Summary   全部合格入库
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param     data  body     purchaserequest.SaveQualityInspectionInfo   true  "参数"
// @Success   200   {object}  response.Response{data=[]purchase.PurchaseProductConfirm}  "获取确认信息"
// @Router    /purchase/allProductInWarehouse [post]
func (e *PurchaseApi) AllProductInWarehouse(c *gin.Context) {
   var params []*purchaserequest.PurchaseProductConfirmInfo
   err := c.ShouldBindJSON(&params)
   if err != nil {
      response.FailWithMessage(err.Error(), c)
      return
   }
   list := make([]*purchase.PurchaseProductConfirm, 0, len(params))
   if err := utils.AssignTo(params, &list); err != nil {
      response.FailWithMessage(err.Error(), c)
      return
   }
   server := service.NewPurchaseService()
   err = server.SavePurchaseProductConfirm(list)
   if err != nil {
      global.GVA_LOG.Error("保存失败!", zap.Error(err))
      response.FailWithMessage("保存失败", c)
      return
   }
   inspectionList, err := server.SavePurchaseQualityInspection(list)
   if err != nil {
      global.GVA_LOG.Error("保存失败!", zap.Error(err))
      response.FailWithMessage("保存失败", c)
      return
   }
   purchaseData, err := server.GetPurchaseByNumber(list[0].PurchaseNumber)
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   product := make([]*purchase_wms.PurchaseProduct, 0)
   ids := make([]int, 0)
   for _, inspection := range inspectionList {
      var p purchase_wms.PurchaseProduct
      p.Id = inspection.ProductId
      p.Amount = inspection.Amount.IntPart()
      product = append(product, &p)
      ids = append(ids, int(inspection.ID))
   }
   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,
   })
   if err != nil {
      global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
      response.FailWithMessage("grpc调用失败", c)
      return
   }
   err = server.UpdatePurchaseQualityInspection(ids, purchase.InWarehouse)
   if err != nil {
      global.GVA_LOG.Error("质检失败!", zap.Error(err))
      response.FailWithMessage("质检失败", c)
      return
   }
   response.OkWithMessage("质检成功", c)
}