From 73b6baf6af3d88cdcb0e2df7932a9bd96b0b85c5 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期一, 01 七月 2024 22:32:34 +0800 Subject: [PATCH] 月度统计出入库按类型汇总报表定时任务和手动跑任务接口 --- proto/inventory_order/server.go | 35 ++++++++++++++++++++++++++++++++++- 1 files changed, 34 insertions(+), 1 deletions(-) diff --git a/proto/inventory_order/server.go b/proto/inventory_order/server.go index c38a32e..d5fed6b 100644 --- a/proto/inventory_order/server.go +++ b/proto/inventory_order/server.go @@ -2,6 +2,7 @@ import ( "context" + "errors" "github.com/shopspring/decimal" "strconv" "time" @@ -16,7 +17,11 @@ func (s *Server) CreateOperationList(ctx context.Context, req *CreateOperationListRequest) (*CreateOperationListResponse, error) { var operations []*models.Operation - warehouse, err := models.NewWarehouseSearch().First() + id := 0 + if req.WarehouseId != "" { + id, _ = strconv.Atoi(req.WarehouseId) + } + warehouse, err := models.NewWarehouseSearch().SetID(id).First() if err != nil { return nil, err } @@ -50,6 +55,7 @@ var details []*models.OperationDetails var or OperationResponse operation.SourceNumber = list.SourceNumber + operation.SalesDetailsNumber = list.SalesDetailsNumber operation.OperationDate = timex.TimeToString2(time.Now()) operation.Number = strconv.FormatInt(time.Now().Unix(), 10) operation.Status = constvar.OperationStatus_Ready @@ -57,6 +63,7 @@ operation.OperationTypeId = operationType.Id operation.BaseOperationType = constvar.BaseOperationTypeOutgoing operation.Source = req.Source + operation.OperationSource = constvar.OperationSource(req.OperationSource) operation.LocationID = fromLocation.Id if req.OperationType == 1 { operation.LocationID = toLocation.Id @@ -100,3 +107,29 @@ resp.List = list return resp, nil } + +func (s *Server) GetOperationInfo(ctx context.Context, req *GetOperationInfoRequest) (*GetOperationInfoResponse, error) { + if len(req.SourceNumber) == 0 && len(req.SalesDetailsNumber) == 0 { + return nil, errors.New("鏉ユ簮缂栫爜鍜岄攢鍞槑缁嗙紪鐮佷笉鑳藉悓鏃朵负绌�") + } + operations, err := models.NewOperationSearch().SetSourceNumbers(req.SourceNumber).SetSalesDetailsNumbers(req.SalesDetailsNumber). + SetStatus(constvar.OperationStatus(req.Status)).SetPreload(true).FindNotTotal() + if err != nil { + return nil, err + } + resp := new(GetOperationInfoResponse) + list := make([]*OperationInfo, 0) + for _, operation := range operations { + var ol OperationInfo + ol.SourceNumber = operation.SourceNumber + ol.SalesDetailsNumber = operation.SalesDetailsNumber + for _, detail := range operation.Details { + o := ol + o.ProductId = detail.ProductId + o.Amount = detail.Amount.IntPart() + list = append(list, &o) + } + } + resp.List = list + return resp, nil +} -- Gitblit v1.8.0