From 0fd3231799d9185af352dcbc4f8e14df5e0f0233 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期五, 22 三月 2024 10:53:38 +0800
Subject: [PATCH] 采购单到货与质检信息操作
---
model/purchase/purchase.go | 13
model/purchase/request/purchase.go | 27
docs/swagger.yaml | 201 ++++++
proto/purchase_wms.proto | 6
docs/docs.go | 334 +++++++++++
docs/swagger.json | 334 +++++++++++
api/v1/purchase/purchase.go | 221 +++++++
router/purchase/purchase.go | 25
utils/timex.go | 91 +++
proto/purchase_wms/purchase_wms.pb.go | 375 ++++++-----
model/purchase/purchase_quality_inspection.go | 31 +
service/purchase/purchase.go | 110 +++
initialize/gorm.go | 2
model/purchase/purchase_product_confirm.go | 27
14 files changed, 1,597 insertions(+), 200 deletions(-)
diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go
index c847f43..316a704 100644
--- a/api/v1/purchase/purchase.go
+++ b/api/v1/purchase/purchase.go
@@ -3,6 +3,7 @@
import (
"context"
"github.com/gin-gonic/gin"
+ "github.com/shopspring/decimal"
"go.uber.org/zap"
"gorm.io/gorm"
"srm/global"
@@ -415,3 +416,223 @@
}
response.OkWithData(operationInfos, c)
}
+
+// NewSubmit
+// @Tags Purchase
+// @Summary 鏂扮増鎻愪氦
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param id path int true "閲囪喘鍗旾D" true "閲囪喘鍗旾D"
+// @Success 200 {object} response.Response{msg=string} "鏂扮増鎻愪氦"
+// @Router /purchase/newSubmit/{id} [get]
+func (e *PurchaseApi) NewSubmit(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
+ }
+ list := make([]*purchase.PurchaseProductConfirm, 0)
+ for _, products := range productList {
+ var ppc purchase.PurchaseProductConfirm
+ ppc.PurchaseNumber = data.Number
+ ppc.Principal = data.Principal
+ ppc.ProductId = products.Product.Number
+ ppc.ProductName = products.Product.Name
+ ppc.Unit = products.Product.Unit
+ ppc.Specs = products.Product.Specifications
+ ppc.Type = products.Product.ModelNumber
+ ppc.Amount = products.Amount
+ ppc.OverReceiveAmount = decimal.NewFromInt(0)
+ ppc.NotReceiveAmount = products.Amount
+ ppc.NowReceiveAmount = decimal.NewFromInt(0)
+ ppc.SurplusReceiveAmount = products.Amount
+ list = append(list, &ppc)
+ }
+ err = service.NewPurchaseService().SavePurchaseProductConfirm(list)
+
+ if err != nil {
+ global.GVA_LOG.Error("鎻愪氦澶辫触!", zap.Error(err))
+ response.FailWithMessage("鎻愪氦澶辫触", c)
+ return
+ }
+ response.OkWithMessage("鎻愪氦鎴愬姛", c)
+}
+
+// GetPurchaseProductConfirmInfo
+// @Tags Purchase
+// @Summary 鑾峰彇纭淇℃伅
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param number path string true "閲囪喘鍗曠紪鐮�"
+// @Success 200 {object} response.Response{data=[]purchase.PurchaseProductConfirm} "鑾峰彇纭淇℃伅"
+// @Router /purchase/getPurchaseProductConfirmInfo/{number} [get]
+func (e *PurchaseApi) GetPurchaseProductConfirmInfo(c *gin.Context) {
+ number := c.Param("number")
+ if number == "" {
+ response.FailWithMessage("鍙傛暟缂哄け", c)
+ return
+ }
+ info, err := service.NewPurchaseService().GetPurchaseProductConfirmInfo(number)
+ if err != nil {
+ global.GVA_LOG.Error("鑾峰彇纭淇℃伅澶辫触!", zap.Error(err))
+ response.FailWithMessage("鑾峰彇纭淇℃伅澶辫触", c)
+ return
+ }
+ response.OkWithData(info, c)
+}
+
+// SavePurchaseProductConfirm
+// @Tags Purchase
+// @Summary 纭鏀惰揣
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body []purchaserequest.PurchaseProductConfirmInfo true "list"
+// @Success 200 {object} response.Response{msg=string} "纭鏀惰揣"
+// @Router /purchase/savePurchaseProductConfirm [post]
+func (e *PurchaseApi) SavePurchaseProductConfirm(c *gin.Context) {
+ var params []*purchaserequest.PurchaseProductConfirmInfo
+ err := c.ShouldBindJSON(¶ms)
+ 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
+ }
+ err = server.SavePurchaseQualityInspection(list)
+ if err != nil {
+ global.GVA_LOG.Error("淇濆瓨澶辫触!", zap.Error(err))
+ response.FailWithMessage("淇濆瓨澶辫触", c)
+ return
+ }
+ response.OkWithMessage("淇濆瓨鎴愬姛", c)
+}
+
+// GetPurchaseQualityInspectionInfo
+// @Tags Purchase
+// @Summary 鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body purchaserequest.GetQualityInspectionInfo true "鍙傛暟"
+// @Success 200 {object} response.Response{data=[]purchase.PurchaseProductConfirm} "鑾峰彇纭淇℃伅"
+// @Router /purchase/getPurchaseQualityInspectionInfo [post]
+func (e *PurchaseApi) GetPurchaseQualityInspectionInfo(c *gin.Context) {
+ var params purchaserequest.GetQualityInspectionInfo
+ err := c.ShouldBindJSON(¶ms)
+ if err != nil {
+ response.FailWithMessage(err.Error(), c)
+ return
+ }
+ if params.PurchaseNumber == "" {
+ response.FailWithMessage("閲囪喘鍗曠紪鐮佷笉鑳戒负绌�", c)
+ return
+ }
+ infos, err := service.NewPurchaseService().GetPurchaseQualityInspection(params)
+ if err != nil {
+ global.GVA_LOG.Error("鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅!", zap.Error(err))
+ response.FailWithMessage("鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅", c)
+ return
+ }
+ response.OkWithData(infos, c)
+}
+
+// SavePurchaseQualityInspectionInfo
+// @Tags Purchase
+// @Summary 淇濆瓨閲囪喘璐ㄦ淇℃伅淇℃伅
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body purchaserequest.GetQualityInspectionInfo true "鍙傛暟"
+// @Success 200 {object} response.Response{data=[]purchase.PurchaseProductConfirm} "鑾峰彇纭淇℃伅"
+// @Router /purchase/savePurchaseQualityInspectionInfo [post]
+func (e *PurchaseApi) SavePurchaseQualityInspectionInfo(c *gin.Context) {
+ var params purchaserequest.SaveQualityInspectionInfo
+ err := c.ShouldBindJSON(¶ms)
+ if err != nil {
+ response.FailWithMessage(err.Error(), c)
+ return
+ }
+ if params.PurchaseId == 0 || len(params.Ids) == 0 {
+ response.FailWithMessage("閲囪喘鍗曠紪鐮佸拰id涓嶈兘涓虹┖", c)
+ return
+ }
+ server := service.PurchaseService{}
+ if params.Status == purchase.Unqualified {
+ err := server.UpdatePurchaseQualityInspection(params.Ids, params.Status)
+ if err != nil {
+ global.GVA_LOG.Error("璐ㄦ澶辫触!", zap.Error(err))
+ response.FailWithMessage("璐ㄦ澶辫触", c)
+ 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))
+ response.FailWithMessage("鑾峰彇澶辫触", c)
+ return
+ }
+ product := make([]*purchase_wms.PurchaseProduct, 0)
+ for _, inspection := range inspectionList {
+ var p purchase_wms.PurchaseProduct
+ p.Id = inspection.ProductId
+ p.Amount = inspection.Amount.IntPart()
+ product = append(product, &p)
+ }
+ 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(params.Ids, params.Status)
+ if err != nil {
+ global.GVA_LOG.Error("璐ㄦ澶辫触!", zap.Error(err))
+ response.FailWithMessage("璐ㄦ澶辫触", c)
+ return
+ }
+ }
+
+ response.OkWithMessage("璐ㄦ鎴愬姛", c)
+}
diff --git a/docs/docs.go b/docs/docs.go
index a683fef..5dc2a02 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1648,6 +1648,110 @@
}
}
},
+ "/purchase/getPurchaseProductConfirmInfo/{number}": {
+ "get": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "鑾峰彇纭淇℃伅",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "閲囪喘鍗曠紪鐮�",
+ "name": "number",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鑾峰彇纭淇℃伅",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/purchase.PurchaseProductConfirm"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/purchase/getPurchaseQualityInspectionInfo": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅",
+ "parameters": [
+ {
+ "description": "鍙傛暟",
+ "name": "data",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/purchaserequest.GetQualityInspectionInfo"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鑾峰彇纭淇℃伅",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/purchase.PurchaseProductConfirm"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
"/purchase/getWarehouseInfo": {
"get": {
"security": [
@@ -1681,6 +1785,54 @@
"items": {
"$ref": "#/definitions/purchase_wms.SrmGetWarehouseInfoResponse"
}
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/purchase/newSubmit/{id}": {
+ "get": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "鏂扮増鎻愪氦",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "閲囪喘鍗旾D",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鏂扮増鎻愪氦",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "msg": {
+ "type": "string"
}
}
}
@@ -2108,6 +2260,59 @@
"data": {
"$ref": "#/definitions/response.PageResult"
},
+ "msg": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/purchase/savePurchaseProductConfirm": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "纭鏀惰揣",
+ "parameters": [
+ {
+ "description": "list",
+ "name": "data",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/purchaserequest.PurchaseProductConfirmInfo"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "纭鏀惰揣",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
"msg": {
"type": "string"
}
@@ -3677,21 +3882,30 @@
2,
3,
4,
- 5
+ 5,
+ 6,
+ 7,
+ 8
],
"x-enum-comments": {
"OrderStatusCanceled": "宸插彇娑�",
"OrderStatusCompleted": "宸插畬鎴�",
"OrderStatusConfirmed": "寰呯‘璁�",
+ "OrderStatusPartReceive": "閮ㄥ垎鏀惰揣",
"OrderStatusReceived": "寰呭叆搴�",
- "OrderStatusStored": "宸插叆搴�"
+ "OrderStatusStored": "宸插叆搴�",
+ "OrderStatusWaitQuality": "寰呰川妫�",
+ "OrderStatusWaitReceive": "寰呮敹璐�"
},
"x-enum-varnames": [
"OrderStatusConfirmed",
"OrderStatusReceived",
"OrderStatusStored",
"OrderStatusCompleted",
- "OrderStatusCanceled"
+ "OrderStatusCanceled",
+ "OrderStatusWaitReceive",
+ "OrderStatusPartReceive",
+ "OrderStatusWaitQuality"
]
},
"purchase.PriceAdjustmentType": {
@@ -3861,6 +4075,59 @@
}
}
},
+ "purchase.PurchaseProductConfirm": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "id": {
+ "description": "涓婚敭ID",
+ "type": "string",
+ "example": "0"
+ },
+ "notReceiveAmount": {
+ "type": "number"
+ },
+ "nowReceiveAmount": {
+ "description": "鏈鏀惰揣鏁伴噺",
+ "type": "number"
+ },
+ "overReceiveAmount": {
+ "type": "number"
+ },
+ "principal": {
+ "type": "string"
+ },
+ "productId": {
+ "type": "string"
+ },
+ "productName": {
+ "type": "string"
+ },
+ "purchaseNumber": {
+ "type": "string"
+ },
+ "specs": {
+ "type": "string"
+ },
+ "surplusReceiveAmount": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ },
"purchase.PurchaseProducts": {
"type": "object",
"properties": {
@@ -3985,6 +4252,26 @@
}
}
},
+ "purchaserequest.GetQualityInspectionInfo": {
+ "type": "object",
+ "properties": {
+ "purchaseNumber": {
+ "type": "string"
+ },
+ "status": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "times": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
"purchaserequest.Purchase": {
"type": "object",
"properties": {
@@ -4097,6 +4384,47 @@
}
}
},
+ "purchaserequest.PurchaseProductConfirmInfo": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "notReceiveAmount": {
+ "type": "number"
+ },
+ "nowReceiveAmount": {
+ "type": "number"
+ },
+ "overReceiveAmount": {
+ "type": "number"
+ },
+ "principal": {
+ "type": "string"
+ },
+ "productId": {
+ "type": "string"
+ },
+ "productName": {
+ "type": "string"
+ },
+ "purchaseNumber": {
+ "type": "string"
+ },
+ "specs": {
+ "type": "string"
+ },
+ "surplusReceiveAmount": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ }
+ }
+ },
"purchaserequest.PurchaseType": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 4c8c5ad..2cc58b6 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1639,6 +1639,110 @@
}
}
},
+ "/purchase/getPurchaseProductConfirmInfo/{number}": {
+ "get": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "鑾峰彇纭淇℃伅",
+ "parameters": [
+ {
+ "type": "string",
+ "description": "閲囪喘鍗曠紪鐮�",
+ "name": "number",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鑾峰彇纭淇℃伅",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/purchase.PurchaseProductConfirm"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/purchase/getPurchaseQualityInspectionInfo": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅",
+ "parameters": [
+ {
+ "description": "鍙傛暟",
+ "name": "data",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/purchaserequest.GetQualityInspectionInfo"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鑾峰彇纭淇℃伅",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/purchase.PurchaseProductConfirm"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
"/purchase/getWarehouseInfo": {
"get": {
"security": [
@@ -1672,6 +1776,54 @@
"items": {
"$ref": "#/definitions/purchase_wms.SrmGetWarehouseInfoResponse"
}
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/purchase/newSubmit/{id}": {
+ "get": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "鏂扮増鎻愪氦",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "閲囪喘鍗旾D",
+ "name": "id",
+ "in": "path",
+ "required": true
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "鏂扮増鎻愪氦",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "msg": {
+ "type": "string"
}
}
}
@@ -2099,6 +2251,59 @@
"data": {
"$ref": "#/definitions/response.PageResult"
},
+ "msg": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "/purchase/savePurchaseProductConfirm": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Purchase"
+ ],
+ "summary": "纭鏀惰揣",
+ "parameters": [
+ {
+ "description": "list",
+ "name": "data",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/purchaserequest.PurchaseProductConfirmInfo"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "纭鏀惰揣",
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/response.Response"
+ },
+ {
+ "type": "object",
+ "properties": {
"msg": {
"type": "string"
}
@@ -3668,21 +3873,30 @@
2,
3,
4,
- 5
+ 5,
+ 6,
+ 7,
+ 8
],
"x-enum-comments": {
"OrderStatusCanceled": "宸插彇娑�",
"OrderStatusCompleted": "宸插畬鎴�",
"OrderStatusConfirmed": "寰呯‘璁�",
+ "OrderStatusPartReceive": "閮ㄥ垎鏀惰揣",
"OrderStatusReceived": "寰呭叆搴�",
- "OrderStatusStored": "宸插叆搴�"
+ "OrderStatusStored": "宸插叆搴�",
+ "OrderStatusWaitQuality": "寰呰川妫�",
+ "OrderStatusWaitReceive": "寰呮敹璐�"
},
"x-enum-varnames": [
"OrderStatusConfirmed",
"OrderStatusReceived",
"OrderStatusStored",
"OrderStatusCompleted",
- "OrderStatusCanceled"
+ "OrderStatusCanceled",
+ "OrderStatusWaitReceive",
+ "OrderStatusPartReceive",
+ "OrderStatusWaitQuality"
]
},
"purchase.PriceAdjustmentType": {
@@ -3852,6 +4066,59 @@
}
}
},
+ "purchase.PurchaseProductConfirm": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "id": {
+ "description": "涓婚敭ID",
+ "type": "string",
+ "example": "0"
+ },
+ "notReceiveAmount": {
+ "type": "number"
+ },
+ "nowReceiveAmount": {
+ "description": "鏈鏀惰揣鏁伴噺",
+ "type": "number"
+ },
+ "overReceiveAmount": {
+ "type": "number"
+ },
+ "principal": {
+ "type": "string"
+ },
+ "productId": {
+ "type": "string"
+ },
+ "productName": {
+ "type": "string"
+ },
+ "purchaseNumber": {
+ "type": "string"
+ },
+ "specs": {
+ "type": "string"
+ },
+ "surplusReceiveAmount": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ },
"purchase.PurchaseProducts": {
"type": "object",
"properties": {
@@ -3976,6 +4243,26 @@
}
}
},
+ "purchaserequest.GetQualityInspectionInfo": {
+ "type": "object",
+ "properties": {
+ "purchaseNumber": {
+ "type": "string"
+ },
+ "status": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "times": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
"purchaserequest.Purchase": {
"type": "object",
"properties": {
@@ -4088,6 +4375,47 @@
}
}
},
+ "purchaserequest.PurchaseProductConfirmInfo": {
+ "type": "object",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "notReceiveAmount": {
+ "type": "number"
+ },
+ "nowReceiveAmount": {
+ "type": "number"
+ },
+ "overReceiveAmount": {
+ "type": "number"
+ },
+ "principal": {
+ "type": "string"
+ },
+ "productId": {
+ "type": "string"
+ },
+ "productName": {
+ "type": "string"
+ },
+ "purchaseNumber": {
+ "type": "string"
+ },
+ "specs": {
+ "type": "string"
+ },
+ "surplusReceiveAmount": {
+ "type": "number"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ }
+ }
+ },
"purchaserequest.PurchaseType": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index bdcf9a0..b8e9d72 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -400,19 +400,28 @@
- 3
- 4
- 5
+ - 6
+ - 7
+ - 8
type: integer
x-enum-comments:
OrderStatusCanceled: 宸插彇娑�
OrderStatusCompleted: 宸插畬鎴�
OrderStatusConfirmed: 寰呯‘璁�
+ OrderStatusPartReceive: 閮ㄥ垎鏀惰揣
OrderStatusReceived: 寰呭叆搴�
OrderStatusStored: 宸插叆搴�
+ OrderStatusWaitQuality: 寰呰川妫�
+ OrderStatusWaitReceive: 寰呮敹璐�
x-enum-varnames:
- OrderStatusConfirmed
- OrderStatusReceived
- OrderStatusStored
- OrderStatusCompleted
- OrderStatusCanceled
+ - OrderStatusWaitReceive
+ - OrderStatusPartReceive
+ - OrderStatusWaitQuality
purchase.PriceAdjustmentType:
enum:
- 1
@@ -531,6 +540,42 @@
- $ref: '#/definitions/purchase.WholeDiscountType'
description: 鏁村崟鎶樻墸绫诲瀷
type: object
+ purchase.PurchaseProductConfirm:
+ properties:
+ amount:
+ type: number
+ created_at:
+ type: string
+ id:
+ description: 涓婚敭ID
+ example: "0"
+ type: string
+ notReceiveAmount:
+ type: number
+ nowReceiveAmount:
+ description: 鏈鏀惰揣鏁伴噺
+ type: number
+ overReceiveAmount:
+ type: number
+ principal:
+ type: string
+ productId:
+ type: string
+ productName:
+ type: string
+ purchaseNumber:
+ type: string
+ specs:
+ type: string
+ surplusReceiveAmount:
+ type: number
+ type:
+ type: string
+ unit:
+ type: string
+ updated_at:
+ type: string
+ type: object
purchase.PurchaseProducts:
properties:
amount:
@@ -618,6 +663,19 @@
purchase:
$ref: '#/definitions/purchaserequest.Purchase'
type: object
+ purchaserequest.GetQualityInspectionInfo:
+ properties:
+ purchaseNumber:
+ type: string
+ status:
+ items:
+ type: integer
+ type: array
+ times:
+ items:
+ type: string
+ type: array
+ type: object
purchaserequest.Purchase:
properties:
contact:
@@ -695,6 +753,33 @@
allOf:
- $ref: '#/definitions/purchase.WholeDiscountType'
description: 鏁村崟鎶樻墸绫诲瀷
+ type: object
+ purchaserequest.PurchaseProductConfirmInfo:
+ properties:
+ amount:
+ type: number
+ notReceiveAmount:
+ type: number
+ nowReceiveAmount:
+ type: number
+ overReceiveAmount:
+ type: number
+ principal:
+ type: string
+ productId:
+ type: string
+ productName:
+ type: string
+ purchaseNumber:
+ type: string
+ specs:
+ type: string
+ surplusReceiveAmount:
+ type: number
+ type:
+ type: string
+ unit:
+ type: string
type: object
purchaserequest.PurchaseType:
properties:
@@ -2037,6 +2122,65 @@
summary: 鑾峰彇鎿嶄綔淇℃伅
tags:
- Purchase
+ /purchase/getPurchaseProductConfirmInfo/{number}:
+ get:
+ consumes:
+ - application/json
+ parameters:
+ - description: 閲囪喘鍗曠紪鐮�
+ in: path
+ name: number
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 鑾峰彇纭淇℃伅
+ schema:
+ allOf:
+ - $ref: '#/definitions/response.Response'
+ - properties:
+ data:
+ items:
+ $ref: '#/definitions/purchase.PurchaseProductConfirm'
+ type: array
+ type: object
+ security:
+ - ApiKeyAuth: []
+ summary: 鑾峰彇纭淇℃伅
+ tags:
+ - Purchase
+ /purchase/getPurchaseQualityInspectionInfo:
+ post:
+ consumes:
+ - application/json
+ parameters:
+ - description: 鍙傛暟
+ in: body
+ name: data
+ required: true
+ schema:
+ $ref: '#/definitions/purchaserequest.GetQualityInspectionInfo'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 鑾峰彇纭淇℃伅
+ schema:
+ allOf:
+ - $ref: '#/definitions/response.Response'
+ - properties:
+ data:
+ items:
+ $ref: '#/definitions/purchase.PurchaseProductConfirm'
+ type: array
+ type: object
+ security:
+ - ApiKeyAuth: []
+ summary: 鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅
+ tags:
+ - Purchase
/purchase/getWarehouseInfo:
get:
consumes:
@@ -2058,6 +2202,33 @@
security:
- ApiKeyAuth: []
summary: 鑾峰彇浠撳簱鍒楄〃
+ tags:
+ - Purchase
+ /purchase/newSubmit/{id}:
+ get:
+ consumes:
+ - application/json
+ parameters:
+ - description: 閲囪喘鍗旾D
+ in: path
+ name: id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 鏂扮増鎻愪氦
+ schema:
+ allOf:
+ - $ref: '#/definitions/response.Response'
+ - properties:
+ msg:
+ type: string
+ type: object
+ security:
+ - ApiKeyAuth: []
+ summary: 鏂扮増鎻愪氦
tags:
- Purchase
/purchase/purchase:
@@ -2305,6 +2476,36 @@
summary: 鍒嗛〉鑾峰彇璐ㄦ鍗曞垪琛�
tags:
- QualityInspect
+ /purchase/savePurchaseProductConfirm:
+ post:
+ consumes:
+ - application/json
+ parameters:
+ - description: list
+ in: body
+ name: data
+ required: true
+ schema:
+ items:
+ $ref: '#/definitions/purchaserequest.PurchaseProductConfirmInfo'
+ type: array
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 纭鏀惰揣
+ schema:
+ allOf:
+ - $ref: '#/definitions/response.Response'
+ - properties:
+ msg:
+ type: string
+ type: object
+ security:
+ - ApiKeyAuth: []
+ summary: 纭鏀惰揣
+ tags:
+ - Purchase
/purchase/submit:
post:
consumes:
diff --git a/initialize/gorm.go b/initialize/gorm.go
index 42ae347..d0ef90c 100644
--- a/initialize/gorm.go
+++ b/initialize/gorm.go
@@ -37,6 +37,8 @@
test.SupplierMaterial{},
purchase.Purchase{},
purchase.PurchaseProducts{},
+ purchase.PurchaseProductConfirm{},
+ purchase.PurchaseQualityInspection{},
)
if err != nil {
global.GVA_LOG.Error("register table failed", zap.Error(err))
diff --git a/model/purchase/purchase.go b/model/purchase/purchase.go
index 79d8203..634202a 100644
--- a/model/purchase/purchase.go
+++ b/model/purchase/purchase.go
@@ -48,11 +48,14 @@
type OrderStatus int
const (
- OrderStatusConfirmed OrderStatus = 1 //寰呯‘璁�
- OrderStatusReceived OrderStatus = 2 //寰呭叆搴�
- OrderStatusStored OrderStatus = 3 //宸插叆搴�
- OrderStatusCompleted OrderStatus = 4 //宸插畬鎴�
- OrderStatusCanceled OrderStatus = 5 //宸插彇娑�
+ OrderStatusConfirmed OrderStatus = 1 //寰呯‘璁�
+ OrderStatusReceived OrderStatus = 2 //寰呭叆搴�
+ OrderStatusStored OrderStatus = 3 //宸插叆搴�
+ OrderStatusCompleted OrderStatus = 4 //宸插畬鎴�
+ OrderStatusCanceled OrderStatus = 5 //宸插彇娑�
+ OrderStatusWaitReceive OrderStatus = 6 //寰呮敹璐�
+ OrderStatusPartReceive OrderStatus = 7 //閮ㄥ垎鏀惰揣
+ OrderStatusWaitQuality OrderStatus = 8 //寰呰川妫�
)
type WholeDiscountType int
diff --git a/model/purchase/purchase_product_confirm.go b/model/purchase/purchase_product_confirm.go
new file mode 100644
index 0000000..6c07f45
--- /dev/null
+++ b/model/purchase/purchase_product_confirm.go
@@ -0,0 +1,27 @@
+package purchase
+
+import (
+ "github.com/shopspring/decimal"
+ "srm/global"
+)
+
+// PurchaseProductConfirm 閲囪喘鍗曚骇鍝佺‘璁よ〃
+type PurchaseProductConfirm struct {
+ global.GVA_MODEL_INT
+ PurchaseNumber string `json:"purchaseNumber" gorm:"type:varchar(255);comment:閲囪喘鍗曠紪鍙�"`
+ ProductId string `json:"productId" gorm:"type:varchar(255);comment:浜у搧缂栫爜"`
+ ProductName string `json:"productName" gorm:"type:varchar(255);comment:浜у搧鍚�"`
+ Principal string `json:"principal" gorm:"type:varchar(255);comment:鏀惰揣浜�"`
+ Unit string `json:"unit" gorm:"type:varchar(255);comment:璁¢噺鍗曚綅"`
+ Specs string `json:"specs" gorm:"type:varchar(255);comment:瑙勬牸"`
+ Type string `json:"type" gorm:"type:varchar(255);comment:鍨嬪彿"`
+ Amount decimal.Decimal `json:"amount" gorm:"type:decimal(12,4);not null;comment:閲囪喘鏁伴噺"`
+ OverReceiveAmount decimal.Decimal `json:"overReceiveAmount" gorm:"type:decimal(12,4);comment:宸叉敹璐ф暟閲�"`
+ NotReceiveAmount decimal.Decimal `json:"notReceiveAmount" gorm:"type:decimal(12,4);comment:鏈敹璐ф暟閲�"`
+ NowReceiveAmount decimal.Decimal `json:"nowReceiveAmount" gorm:"-"` //鏈鏀惰揣鏁伴噺
+ SurplusReceiveAmount decimal.Decimal `json:"surplusReceiveAmount" gorm:"type:decimal(12,4);comment:鍓╀綑鏀惰揣鏁伴噺"`
+}
+
+func (PurchaseProductConfirm) TableName() string {
+ return "srm_purchase_product_confirm"
+}
diff --git a/model/purchase/purchase_quality_inspection.go b/model/purchase/purchase_quality_inspection.go
new file mode 100644
index 0000000..78e9ab6
--- /dev/null
+++ b/model/purchase/purchase_quality_inspection.go
@@ -0,0 +1,31 @@
+package purchase
+
+import (
+ "github.com/shopspring/decimal"
+ "srm/global"
+)
+
+// PurchaseQualityInspection 閲囪喘浜у搧璐ㄦ琛�
+type PurchaseQualityInspection struct {
+ global.GVA_MODEL_INT
+ PurchaseNumber string `json:"purchaseNumber" gorm:"type:varchar(255);comment:閲囪喘鍗曠紪鍙�"`
+ ProductId string `json:"productId" gorm:"type:varchar(255);comment:浜у搧缂栫爜"`
+ ProductName string `json:"productName" gorm:"type:varchar(255);comment:浜у搧鍚�"`
+ Principal string `json:"principal" gorm:"type:varchar(255);comment:鏀惰揣浜�"`
+ Unit string `json:"unit" gorm:"type:varchar(255);comment:璁¢噺鍗曚綅"`
+ Specs string `json:"specs" gorm:"type:varchar(255);comment:瑙勬牸"`
+ Type string `json:"type" gorm:"type:varchar(255);comment:鍨嬪彿"`
+ Amount decimal.Decimal `json:"amount" gorm:"type:decimal(12,4);not null;comment:閲囪喘鏁伴噺"`
+ Status int `json:"status" gorm:"type:int;comment:鐘舵��,1寰呰川妫�,2宸插叆搴�,3涓嶅悎鏍�"`
+ CreateTime string `json:"createTime" gorm:"type:varchar(255);comment:鍒涘缓鏃堕棿"`
+}
+
+func (PurchaseQualityInspection) TableName() string {
+ return "srm_purchase_quality_inspection"
+}
+
+const (
+ WaitInspection = iota + 1 //寰呰川妫�
+ InWarehouse //宸插叆搴�
+ Unqualified //涓嶅悎鏍�
+)
diff --git a/model/purchase/request/purchase.go b/model/purchase/request/purchase.go
index 3315919..1612ce1 100644
--- a/model/purchase/request/purchase.go
+++ b/model/purchase/request/purchase.go
@@ -51,3 +51,30 @@
Principal string `json:"principal" form:"principal" gorm:"type:varchar(255);not null;default '';comment:浠撳簱璐熻矗浜�"` //浠撳簱璐熻矗浜�
SourceOrder string `json:"sourceOrder" gorm:"type:varchar(255);comment:鏉ユ簮鍗曟嵁"` //鏉ユ簮鍗曟嵁
}
+
+type PurchaseProductConfirmInfo struct {
+ PurchaseNumber string `json:"purchaseNumber" gorm:"type:varchar(255);comment:閲囪喘鍗曠紪鍙�"`
+ ProductId string `json:"productId" gorm:"type:varchar(255);comment:浜у搧缂栫爜"`
+ ProductName string `json:"productName" gorm:"type:varchar(255);comment:浜у搧鍚�"`
+ Principal string `json:"principal" gorm:"type:varchar(255);comment:鏀惰揣浜�"`
+ Unit string `json:"unit" gorm:"type:varchar(255);comment:璁¢噺鍗曚綅"`
+ Specs string `json:"specs" gorm:"type:varchar(255);comment:瑙勬牸"`
+ Type string `json:"type" gorm:"type:varchar(255);comment:鍨嬪彿"`
+ Amount decimal.Decimal `json:"amount" gorm:"type:decimal(12,4);not null;comment:閲囪喘鏁伴噺"`
+ OverReceiveAmount decimal.Decimal `json:"overReceiveAmount" gorm:"type:decimal(12,4);comment:宸叉敹璐ф暟閲�"`
+ NotReceiveAmount decimal.Decimal `json:"notReceiveAmount" gorm:"type:decimal(12,4);comment:鏈敹璐ф暟閲�"`
+ NowReceiveAmount decimal.Decimal `json:"nowReceiveAmount" gorm:"type:decimal(12,4);comment:鏈鏀惰揣鏁伴噺"`
+ SurplusReceiveAmount decimal.Decimal `json:"surplusReceiveAmount" gorm:"type:decimal(12,4);comment:鍓╀綑鏀惰揣鏁伴噺"`
+}
+
+type GetQualityInspectionInfo struct {
+ PurchaseNumber string `json:"purchaseNumber"`
+ Status []int `json:"status"`
+ Times []string `json:"times"`
+}
+
+type SaveQualityInspectionInfo struct {
+ PurchaseId uint `json:"purchaseId"`
+ Ids []int `json:"ids"`
+ Status int `json:"status"`
+}
diff --git a/proto/purchase_wms.proto b/proto/purchase_wms.proto
index 5c9c5cf..0ac4a1b 100644
--- a/proto/purchase_wms.proto
+++ b/proto/purchase_wms.proto
@@ -23,9 +23,11 @@
message PurchaseToWmsRequest {
string Number = 1; //閲囪喘缂栧彿
- string SupplierName = 2; //渚涘簲鍟�
+ string SupplierName = 2; //渚涘簲鍟嗗悕绉�
string Source = 3;//鏉ユ簮
- repeated PurchaseProduct Product = 4;
+ int64 SupplierId = 4;//渚涘簲鍟唅d
+ string WarehouseName = 5;//浠撳簱鍚嶇О
+ repeated PurchaseProduct Product = 6;
}
message PurchaseToWmsResponse {
diff --git a/proto/purchase_wms/purchase_wms.pb.go b/proto/purchase_wms/purchase_wms.pb.go
index 0c09b8c..1c15413 100644
--- a/proto/purchase_wms/purchase_wms.pb.go
+++ b/proto/purchase_wms/purchase_wms.pb.go
@@ -80,10 +80,12 @@
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Number string `protobuf:"bytes,1,opt,name=Number,proto3" json:"Number,omitempty"` //閲囪喘缂栧彿
- SupplierName string `protobuf:"bytes,2,opt,name=SupplierName,proto3" json:"SupplierName,omitempty"` //渚涘簲鍟�
- Source string `protobuf:"bytes,3,opt,name=Source,proto3" json:"Source,omitempty"` //鏉ユ簮
- Product []*PurchaseProduct `protobuf:"bytes,4,rep,name=Product,proto3" json:"Product,omitempty"`
+ Number string `protobuf:"bytes,1,opt,name=Number,proto3" json:"Number,omitempty"` //閲囪喘缂栧彿
+ SupplierName string `protobuf:"bytes,2,opt,name=SupplierName,proto3" json:"SupplierName,omitempty"` //渚涘簲鍟嗗悕绉�
+ Source string `protobuf:"bytes,3,opt,name=Source,proto3" json:"Source,omitempty"` //鏉ユ簮
+ SupplierId int64 `protobuf:"varint,4,opt,name=SupplierId,proto3" json:"SupplierId,omitempty"` //渚涘簲鍟唅d
+ WarehouseName string `protobuf:"bytes,5,opt,name=WarehouseName,proto3" json:"WarehouseName,omitempty"` //浠撳簱鍚嶇О
+ Product []*PurchaseProduct `protobuf:"bytes,6,rep,name=Product,proto3" json:"Product,omitempty"`
}
func (x *PurchaseToWmsRequest) Reset() {
@@ -135,6 +137,20 @@
func (x *PurchaseToWmsRequest) GetSource() string {
if x != nil {
return x.Source
+ }
+ return ""
+}
+
+func (x *PurchaseToWmsRequest) GetSupplierId() int64 {
+ if x != nil {
+ return x.SupplierId
+ }
+ return 0
+}
+
+func (x *PurchaseToWmsRequest) GetWarehouseName() string {
+ if x != nil {
+ return x.WarehouseName
}
return ""
}
@@ -1335,190 +1351,195 @@
0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22,
- 0x96, 0x01, 0x0a, 0x14, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d,
+ 0xdc, 0x01, 0x0a, 0x14, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x07,
- 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e,
- 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52,
- 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x63, 0x0a, 0x15, 0x50, 0x75, 0x72, 0x63,
- 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
- 0x1c, 0x0a, 0x09, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x22, 0x35, 0x0a,
- 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
- 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4e, 0x75,
- 0x6d, 0x62, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75,
- 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x41, 0x0a, 0x21, 0x47, 0x65,
- 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50,
- 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x78, 0x0a,
- 0x0c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a,
- 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a,
- 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69,
- 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61,
- 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x75,
- 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x64,
- 0x75, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a,
- 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64,
- 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
- 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65,
- 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x53, 0x75, 0x70, 0x70, 0x6c,
- 0x69, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
- 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
- 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72,
- 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
- 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x75, 0x72, 0x63,
- 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
- 0x22, 0x42, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49,
- 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x75,
- 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d,
- 0x62, 0x65, 0x72, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
- 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
- 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70,
- 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a,
- 0x0c, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d,
- 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65,
- 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a,
- 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
- 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64,
- 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75,
- 0x63, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64,
- 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x08,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75,
- 0x6e, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12,
- 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x41, 0x6d, 0x6f,
- 0x75, 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61,
- 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23,
- 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
- 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e,
- 0x66, 0x6f, 0x73, 0x22, 0x34, 0x0a, 0x14, 0x45, 0x78, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70,
- 0x6c, 0x69, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50,
- 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
- 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22, 0x2d, 0x0a, 0x15, 0x45, 0x78, 0x69,
- 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x72, 0x6d, 0x47,
- 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x10, 0x53, 0x72, 0x6d, 0x57, 0x61, 0x72,
- 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18,
- 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e,
- 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x69,
- 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x44, 0x0a, 0x1b, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74,
- 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x72, 0x6d, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75,
- 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x34, 0x0a, 0x1a,
- 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
- 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
- 0x65, 0x72, 0x22, 0xf6, 0x01, 0x0a, 0x0c, 0x53, 0x72, 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77,
- 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49,
- 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65,
- 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x76, 0x65,
- 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x67, 0x6e,
- 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x67,
- 0x6e, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4c, 0x0a, 0x1b, 0x53,
- 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
- 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x6f, 0x70,
- 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
- 0x2e, 0x53, 0x72, 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f,
- 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6d, 0x0a, 0x1a, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x41, 0x70, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x03, 0x72, 0x65, 0x71,
- 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
- 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x52, 0x03, 0x72, 0x65, 0x71, 0x32, 0xeb, 0x05, 0x0a, 0x0f, 0x50, 0x75, 0x72,
- 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0d,
- 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d, 0x73, 0x12, 0x15, 0x2e,
- 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54,
- 0x6f, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x14,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d,
+ 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x06, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x63,
+ 0x0a, 0x15, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75,
+ 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f,
+ 0x75, 0x73, 0x65, 0x22, 0x35, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72,
0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68,
- 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69,
- 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49,
- 0x64, 0x12, 0x22, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c,
+ 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1c, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f,
+ 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
+ 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
+ 0x22, 0x41, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c,
0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c,
- 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
- 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x13,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79,
- 0x57, 0x6d, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63,
- 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
- 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49,
- 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
- 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x47,
- 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x45, 0x78, 0x69, 0x73,
- 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x45, 0x78, 0x69, 0x73,
- 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x16, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x13, 0x53, 0x72,
- 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66,
- 0x6f, 0x12, 0x1b, 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f,
- 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
- 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65,
- 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52,
- 0x0a, 0x13, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70,
- 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63,
+ 0x74, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x0c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c,
+ 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65,
+ 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4e,
+ 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c,
+ 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68,
+ 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d,
+ 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x6d, 0x0a,
+ 0x22, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
+ 0x42, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x04, 0x4c, 0x69, 0x73,
+ 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69,
+ 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a,
+ 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42,
+ 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53,
+ 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e,
+ 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x1b, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
+ 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x26,
+ 0x0a, 0x0e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65,
+ 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72,
+ 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62,
+ 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x75, 0x72, 0x63, 0x68,
+ 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xbc, 0x02, 0x0a, 0x0c, 0x50,
+ 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x70,
+ 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e, 0x75, 0x6d,
+ 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x75, 0x72, 0x63, 0x68,
+ 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6c,
+ 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73,
+ 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61,
+ 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a,
+ 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73,
+ 0x70, 0x65, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x65, 0x63,
+ 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x41,
+ 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6e,
+ 0x69, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x17, 0x47, 0x65, 0x74,
+ 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x34, 0x0a, 0x14, 0x45, 0x78, 0x69,
+ 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x22,
+ 0x2d, 0x0a, 0x15, 0x45, 0x78, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x69, 0x73,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x45, 0x78, 0x69, 0x73, 0x74, 0x22, 0x1c,
+ 0x0a, 0x1a, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73,
+ 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x10,
+ 0x53, 0x72, 0x6d, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c,
+ 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x44, 0x0a, 0x1b,
+ 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49,
+ 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x69,
+ 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x72, 0x6d, 0x57,
+ 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e,
+ 0x66, 0x6f, 0x22, 0x34, 0x0a, 0x1a, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf6, 0x01, 0x0a, 0x0c, 0x53, 0x72, 0x6d,
+ 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d,
+ 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,
+ 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x4e, 0x61,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f,
+ 0x75, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+ 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63,
+ 0x6f, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x22, 0x4c, 0x0a, 0x1b, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x2d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x72, 0x6d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
+ 0x6d, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
+ 0x65, 0x42, 0x79, 0x41, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
+ 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12,
+ 0x2d, 0x0a, 0x03, 0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57,
+ 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, 0x72, 0x65, 0x71, 0x32, 0xeb,
+ 0x05, 0x0a, 0x0f, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f,
+ 0x57, 0x6d, 0x73, 0x12, 0x15, 0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f,
+ 0x57, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x50, 0x75, 0x72,
+ 0x63, 0x68, 0x61, 0x73, 0x65, 0x54, 0x6f, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x55, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63,
+ 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x1a, 0x47, 0x65, 0x74,
+ 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70,
+ 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x47, 0x65,
+ 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x00, 0x12, 0x52, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63,
- 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x41, 0x70, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x41, 0x70, 0x73, 0x52,
+ 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x10, 0x5a, 0x0e, 0x2e, 0x2f, 0x70, 0x75, 0x72, 0x63,
- 0x68, 0x61, 0x73, 0x65, 0x5f, 0x77, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72,
+ 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x50,
+ 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40,
+ 0x0a, 0x0d, 0x45, 0x78, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12,
+ 0x15, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x53, 0x75,
+ 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x52, 0x0a, 0x13, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f,
+ 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74,
+ 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72,
+ 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x13, 0x53, 0x72, 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70,
+ 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x53, 0x72,
+ 0x6d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
+ 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x53, 0x72, 0x6d, 0x47, 0x65,
+ 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x41, 0x70, 0x73, 0x12,
+ 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65,
+ 0x42, 0x79, 0x41, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x42, 0x79, 0x57,
+ 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x10, 0x5a, 0x0e,
+ 0x2e, 0x2f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x77, 0x6d, 0x73, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/router/purchase/purchase.go b/router/purchase/purchase.go
index 3273abd..740c698 100644
--- a/router/purchase/purchase.go
+++ b/router/purchase/purchase.go
@@ -9,16 +9,21 @@
purchaseRouter := Router.Group("purchase")
PurchaseApi := purchase.PurchaseApi{}
{
- purchaseRouter.POST("purchase", PurchaseApi.CreatePurchase) // 鍒涘缓閲囪喘鍗�
- purchaseRouter.PUT("purchase", PurchaseApi.UpdatePurchase) // 鏇存柊閲囪喘鍗�
- purchaseRouter.DELETE("purchase/:id", PurchaseApi.DeletePurchase) // 鍒犻櫎閲囪喘鍗�
- purchaseRouter.GET("purchase/:id", PurchaseApi.GetPurchase) // 鑾峰彇鍗曚竴閲囪喘鍗曚俊鎭�
- purchaseRouter.GET("purchaseList", PurchaseApi.GetPurchaseList) // 鑾峰彇閲囪喘鍗曞垪琛�
- purchaseRouter.POST("submit", PurchaseApi.Submit) // 鎻愪氦閲囪喘鍗�
- purchaseRouter.POST("purchaseType", PurchaseApi.SavePurchaseType) // 淇濆瓨閲囪喘绫诲瀷
- purchaseRouter.GET("purchaseTypeList", PurchaseApi.GetPurchaseTypeList) // 鏌ヨ閲囪喘绫诲瀷
- purchaseRouter.GET("getWarehouseInfo", PurchaseApi.GetWarehouseInfo) // 鑾峰彇浠撳簱鍒楄〃
- purchaseRouter.GET("getOperationInfo/:id", PurchaseApi.GetOperationInfo) // 鑾峰彇鎿嶄綔淇℃伅
+ purchaseRouter.POST("purchase", PurchaseApi.CreatePurchase) // 鍒涘缓閲囪喘鍗�
+ purchaseRouter.PUT("purchase", PurchaseApi.UpdatePurchase) // 鏇存柊閲囪喘鍗�
+ purchaseRouter.DELETE("purchase/:id", PurchaseApi.DeletePurchase) // 鍒犻櫎閲囪喘鍗�
+ purchaseRouter.GET("purchase/:id", PurchaseApi.GetPurchase) // 鑾峰彇鍗曚竴閲囪喘鍗曚俊鎭�
+ purchaseRouter.GET("purchaseList", PurchaseApi.GetPurchaseList) // 鑾峰彇閲囪喘鍗曞垪琛�
+ purchaseRouter.POST("submit", PurchaseApi.Submit) // 鎻愪氦閲囪喘鍗�
+ purchaseRouter.POST("purchaseType", PurchaseApi.SavePurchaseType) // 淇濆瓨閲囪喘绫诲瀷
+ purchaseRouter.GET("purchaseTypeList", PurchaseApi.GetPurchaseTypeList) // 鏌ヨ閲囪喘绫诲瀷
+ purchaseRouter.GET("getWarehouseInfo", PurchaseApi.GetWarehouseInfo) // 鑾峰彇浠撳簱鍒楄〃
+ purchaseRouter.GET("getOperationInfo/:id", PurchaseApi.GetOperationInfo) // 鑾峰彇鎿嶄綔淇℃伅
+ purchaseRouter.GET("newSubmit/:id", PurchaseApi.NewSubmit) // 鏂扮増鎻愪氦
+ purchaseRouter.GET("getPurchaseProductConfirmInfo/:number", PurchaseApi.GetPurchaseProductConfirmInfo) // 鑾峰彇纭淇℃伅
+ purchaseRouter.POST("savePurchaseProductConfirm", PurchaseApi.SavePurchaseProductConfirm) // 纭鏀惰揣
+ purchaseRouter.POST("getPurchaseQualityInspectionInfo", PurchaseApi.GetPurchaseQualityInspectionInfo) // 鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅
+ purchaseRouter.POST("savePurchaseQualityInspectionInfo", PurchaseApi.SavePurchaseQualityInspectionInfo) // 淇濆瓨閲囪喘璐ㄦ淇℃伅淇℃伅
}
qualityInspectRouter := Router.Group("purchase")
diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go
index de89020..cafe909 100644
--- a/service/purchase/purchase.go
+++ b/service/purchase/purchase.go
@@ -11,6 +11,8 @@
purchaserequest "srm/model/purchase/request"
"srm/proto/qualityinspect"
"srm/service/test"
+ "srm/utils"
+ "time"
)
type PurchaseService struct{}
@@ -291,3 +293,111 @@
err := global.GVA_DB.Model(&purchase.Purchase{}).Count(&total).Error
return int(total), err
}
+
+func (slf *PurchaseService) SavePurchaseProductConfirm(list []*purchase.PurchaseProductConfirm) (err error) {
+ if len(list) == 0 {
+ return errors.New("浜у搧鍒楄〃涓嶈兘涓虹┖")
+ }
+ purchaseNumber := list[0].PurchaseNumber
+ var pur purchase.Purchase
+ err = global.GVA_DB.Where("number = ?", purchaseNumber).First(&pur).Error
+ if err != nil {
+ return err
+ }
+
+ m := make(map[string]interface{})
+ now := int64(0)
+ yu := int64(0)
+ for _, confirm := range list {
+ if !confirm.NowReceiveAmount.IsZero() {
+ now = confirm.NowReceiveAmount.IntPart()
+ }
+ if !confirm.SurplusReceiveAmount.IsZero() {
+ yu = confirm.SurplusReceiveAmount.IntPart()
+ }
+ confirm.OverReceiveAmount = confirm.OverReceiveAmount.Add(confirm.NowReceiveAmount)
+ confirm.NotReceiveAmount = confirm.Amount.Sub(confirm.OverReceiveAmount)
+ }
+ if now == 0 && yu > 0 {
+ m["status"] = purchase.OrderStatusWaitReceive
+ }
+ if now > 0 && yu > 0 {
+ m["status"] = purchase.OrderStatusPartReceive
+ }
+ if now > 0 && yu == 0 {
+ m["status"] = purchase.OrderStatusWaitQuality
+ }
+
+ err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+ err = tx.Where("purchase_number = ?", purchaseNumber).Delete(&purchase.PurchaseProductConfirm{}).Error
+ if err != nil {
+ return err
+ }
+
+ err = tx.Create(list).Error
+ if err != nil {
+ return err
+ }
+ err = tx.Where("number = ?", purchaseNumber).Model(&purchase.Purchase{}).Updates(m).Error
+ if err != nil {
+ return err
+ }
+
+ return nil
+ })
+ return err
+}
+
+func (slf *PurchaseService) GetPurchaseProductConfirmInfo(number string) ([]*purchase.PurchaseProductConfirm, error) {
+ var list []*purchase.PurchaseProductConfirm
+ err := global.GVA_DB.Model(&purchase.PurchaseProductConfirm{}).Where("purchase_number = ?", number).Find(&list).Error
+ return list, err
+}
+
+func (slf *PurchaseService) SavePurchaseQualityInspection(list []*purchase.PurchaseProductConfirm) (err error) {
+ if len(list) == 0 {
+ return errors.New("浜у搧鍒楄〃涓嶈兘涓虹┖")
+ }
+ purchaseNumber := list[0].PurchaseNumber
+ qualityList := make([]*purchase.PurchaseQualityInspection, 0)
+ for _, confirm := range list {
+ var pqi purchase.PurchaseQualityInspection
+ pqi.PurchaseNumber = purchaseNumber
+ pqi.Principal = confirm.Principal
+ pqi.ProductId = confirm.ProductId
+ pqi.ProductName = confirm.ProductName
+ pqi.Amount = confirm.NowReceiveAmount
+ pqi.Status = purchase.WaitInspection
+ pqi.CreateTime = utils.TimeToString(time.Now())
+ pqi.Unit = confirm.Unit
+ pqi.Specs = confirm.Specs
+ pqi.Type = confirm.Type
+ qualityList = append(qualityList, &pqi)
+ }
+ err = global.GVA_DB.Model(purchase.PurchaseQualityInspection{}).Create(qualityList).Error
+ return err
+}
+
+func (slf *PurchaseService) GetPurchaseQualityInspection(params purchaserequest.GetQualityInspectionInfo) ([]*purchase.PurchaseQualityInspection, error) {
+ var list []*purchase.PurchaseQualityInspection
+ db := global.GVA_DB.Model(&purchase.PurchaseQualityInspection{}).Where("purchase_number = ?", params.PurchaseNumber)
+ if len(params.Status) > 0 {
+ db = db.Where("status in (?)", params.Status)
+ }
+ if len(params.Times) > 0 {
+ db = db.Where("create_time in (?)", params.Times)
+ }
+ err := db.Find(&list).Error
+ return list, err
+}
+
+func (slf *PurchaseService) UpdatePurchaseQualityInspection(ids []int, status int) error {
+ err := global.GVA_DB.Model(&purchase.PurchaseQualityInspection{}).Where("id in (?)", ids).Updates(map[string]interface{}{"status": status}).Error
+ return err
+}
+
+func (slf *PurchaseService) GetPurchaseQualityInspectionList(ids []int) ([]*purchase.PurchaseQualityInspection, error) {
+ var list []*purchase.PurchaseQualityInspection
+ err := global.GVA_DB.Model(&purchase.PurchaseQualityInspection{}).Where("id in (?)", ids).Find(&list).Error
+ return list, err
+}
diff --git a/utils/timex.go b/utils/timex.go
new file mode 100644
index 0000000..5e32afd
--- /dev/null
+++ b/utils/timex.go
@@ -0,0 +1,91 @@
+package utils
+
+import (
+ "time"
+)
+
+func StringToTime(timeStr string) (time.Time, error) {
+ return time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
+}
+
+func StringToTime2(timeStr string) (time.Time, error) {
+ return time.ParseInLocation("2006-01-02", timeStr, time.Local)
+}
+
+func StringToTime3(timeStr string) (time.Time, error) {
+ return time.ParseInLocation("2006-01-02 15:04", timeStr, time.Local)
+}
+
+func StringToClock(timeStr string) (time.Time, error) {
+ return time.ParseInLocation("15:04", timeStr, time.Local)
+}
+
+func TimeToString(time time.Time) string {
+ return time.Format("2006-01-02 15:04:05")
+}
+
+func TimeToString2(time time.Time) string {
+ return time.Format("2006-01-02")
+}
+
+func TimeToString3(time time.Time) string {
+ return time.Format("15:04")
+}
+
+func TimeToMonthDay(time time.Time) string {
+ return time.Format("01-02")
+}
+
+func UnixTimeToString(_t int64) string {
+ return time.Unix(_t, 0).In(time.Local).Format("2006-01-02 15:04:05")
+}
+func UnixTimeToDate(_t int64) string {
+ return time.Unix(_t, 0).In(time.Local).Format("2006-01-02")
+}
+
+func DayStartTime(_t int64) int64 {
+ l := time.Unix(_t, 0).In(time.Local)
+ k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local).Unix()
+ return k
+}
+
+func DayStart(_t time.Time) time.Time {
+ l := _t.In(time.Local)
+ k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
+ return k
+}
+
+func DayStartTimeDateStr(_t int64) string {
+ l := time.Unix(_t, 0).In(time.Local)
+ k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
+ return TimeToString2(k)
+}
+
+const timeLayout = "2006-01-02 15:04:05"
+
+func GetCurrentTime() string {
+ return time.Now().Format(timeLayout)
+}
+
+// WeekdayCount 鏍规嵁寮�濮嬫椂闂存埑锛岀粨鏉熸椂闂存埑(涓嶅惈)杩斿洖宸ヤ綔鏃ュぉ鏁�
+func WeekdayCount(startTs, endTs int64) (workDays int64) {
+ for startTs < endTs {
+ startDate := time.Unix(startTs, 0).In(time.Local)
+ weekday := startDate.Weekday()
+ if weekday >= time.Monday && weekday <= time.Friday {
+ workDays++
+ }
+ startTs += 86400
+ }
+ return workDays
+}
+
+func TodayStartTime() time.Time {
+ l := time.Now().In(time.Local)
+ k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
+ return k
+}
+
+func TodayStartTs() int64 {
+ return TodayStartTime().Unix()
+}
--
Gitblit v1.8.0