liujiandao
2024-03-07 63558d60419edd772f8f8c8b413326d4550783f0
api/v1/purchase/purchase.go
@@ -51,7 +51,6 @@
   purchaseRecord.Status = purchase.OrderStatusConfirmed
   purchaseRecord.HandledBy = "admin"
   purchaseRecord.Creator = "admin"
   purchaseRecord.Principal = "admin"
   purchaseRecord.OrderType = "采购订单"
   if !purchaseRecord.WholeDiscountType.IsValid(purchaseRecord.TotalPrice, purchaseRecord.WholeDiscount) {
@@ -332,3 +331,88 @@
   }
   response.OkWithDetailed(list, "获取成功", c)
}
// GetWarehouseInfo
// @Tags      Purchase
// @Summary   获取仓库列表
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param      id   path      int   true   "采购单ID"                                           true  "采购单ID"
// @Success   200   {object}  response.Response{data=[]purchase_wms.SrmGetWarehouseInfoResponse}  "获取采购类型列表"
// @Router    /purchase/getWarehouseInfo [get]
func (e *PurchaseApi) GetWarehouseInfo(c *gin.Context) {
   client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
   info, err := client.SrmGetWarehouseInfo(context.Background(), &purchase_wms.SrmGetWarehouseInfoRequest{})
   if err != nil {
      global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
      response.FailWithMessage("grpc调用失败", c)
      return
   }
   response.OkWithData(info, c)
}
// GetOperationInfo
// @Tags      Purchase
// @Summary   获取操作信息
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Success   200   {object}  response.Response{data=[]purchase_wms.SrmGetWarehouseInfoResponse}  "获取采购类型列表"
// @Router    /purchase/getOperationInfo/{id} [get]
func (e *PurchaseApi) GetOperationInfo(c *gin.Context) {
   id, _ := strconv.Atoi(c.Param("id"))
   if id == 0 {
      response.FailWithMessage("参数缺失", c)
      return
   }
   data, err := service.NewPurchaseService().GetPurchase(uint(id))
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(id))
   if err != nil {
      global.GVA_LOG.Error("获取失败!", zap.Error(err))
      response.FailWithMessage("获取失败", c)
      return
   }
   client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
   info, err := client.SrmGetOperationInfo(context.Background(), &purchase_wms.SrmGetOperationInfoRequest{Number: data.Number})
   if err != nil {
      global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
      response.FailWithMessage("grpc调用失败", c)
      return
   }
   operationInfos := make([]purchaseRes.OperationInfo, 0)
   for _, operation := range info.Operations {
      var oi purchaseRes.OperationInfo
      oi.ProductId = operation.ProductId
      oi.ProductName = operation.ProductName
      oi.Number = 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.Price = products.Price
            oi.Total = products.Total
            oi.Unit = products.Product.Unit
            oi.Specifications = products.Product.Specifications
            oi.ModelNumber = products.Product.ModelNumber
            break
         }
      }
      operationInfos = append(operationInfos, oi)
   }
   response.OkWithData(operationInfos, c)
}