liujiandao
2024-03-18 a2302df7ce372249b617e483d83a75f3312fbac2
api/v1/purchase/purchase.go
@@ -2,7 +2,6 @@
import (
   "context"
   "fmt"
   "github.com/gin-gonic/gin"
   "go.uber.org/zap"
   "gorm.io/gorm"
@@ -13,8 +12,6 @@
   "srm/proto/purchase_wms"
   "strconv"
   "strings"
   "time"
   //"srm/model/purchase"
   //"srm/model/purchase"
@@ -54,8 +51,6 @@
   purchaseRecord.Status = purchase.OrderStatusConfirmed
   purchaseRecord.HandledBy = "admin"
   purchaseRecord.Creator = "admin"
   purchaseRecord.Number = fmt.Sprintf("CG%v", time.Now().Unix())
   purchaseRecord.Principal = "admin"
   purchaseRecord.OrderType = "采购订单"
   if !purchaseRecord.WholeDiscountType.IsValid(purchaseRecord.TotalPrice, purchaseRecord.WholeDiscount) {
@@ -336,3 +331,87 @@
   }
   response.OkWithDetailed(list, "获取成功", c)
}
// GetWarehouseInfo
// @Tags      Purchase
// @Summary   获取仓库列表
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @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=[]purchaseRes.OperationInfo}  "获取操作信息"
// @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.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
         }
      }
      operationInfos = append(operationInfos, oi)
   }
   response.OkWithData(operationInfos, c)
}