From 462071ca05c30354057a6eb3839a4dc6ac6f659a Mon Sep 17 00:00:00 2001
From: dsmzx <dsmzx@123.com>
Date: 星期一, 24 六月 2024 11:33:16 +0800
Subject: [PATCH] 出库/入库 打印
---
proto/product_inventory/server.go | 45 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/proto/product_inventory/server.go b/proto/product_inventory/server.go
index 8bd4069..41e54d1 100644
--- a/proto/product_inventory/server.go
+++ b/proto/product_inventory/server.go
@@ -5,6 +5,7 @@
"errors"
"fmt"
"github.com/shopspring/decimal"
+ "gorm.io/gorm"
"strconv"
"strings"
"time"
@@ -175,7 +176,7 @@
operation.ReceiverAddr = req.Address
operation.Source = req.Source
operation.OperationSource = constvar.OperationSource(req.OperationSource)
- operation.CompanyID = int(req.ClientId)
+ operation.CompanyID = strconv.FormatInt(req.ClientId, 10)
operation.CompanyName = req.ClientName
if req.DeliverType == 1 {
for _, product := range req.ProductList {
@@ -233,7 +234,7 @@
"wms_operation.number,wms_operation.waybill_number, logistic_company.name, wms_operation.base_operation_type, wms_operation.status, wms_operation.created_at").
Joins("left join wms_operation on wms_operation.id = wms_operation_details.operation_id").
Joins("left join logistic_company on logistic_company.id = wms_operation.logistic_company_id").
- Where("wms_operation.source_number = ?", req.Number).
+ Where("wms_operation.sales_details_number = ?", req.Number).
Where("wms_operation.base_operation_type in ?", []constvar.BaseOperationType{
constvar.BaseOperationTypeIncoming, constvar.BaseOperationTypeOutgoing}).
Where("wms_operation.status in ?", []constvar.OperationStatus{constvar.OperationStatus_Ready, constvar.OperationStatus_Finish})
@@ -350,6 +351,9 @@
inputLocationAmountMap := make(map[int64]map[string]decimal.Decimal)
outputLocationAmountMap := make(map[int64]map[string]decimal.Decimal)
for _, v := range outputList {
+ if req.WarehouseId != 0 && v.WareHouseID != req.WarehouseId {
+ continue
+ }
if outputProductMap[v.Number] == nil {
simpleInfo := &OutputSimpleInfo{
Number: v.Number,
@@ -363,6 +367,9 @@
}
}
for _, v := range inputList {
+ if req.WarehouseId != 0 && v.WareHouseID != req.WarehouseId {
+ continue
+ }
if inputProductMap[v.Number] == nil {
storeInfo := &StoreInfo{
Number: v.Number,
@@ -401,6 +408,9 @@
LocationIDWarehouseIDMap := make(map[int64]int64)
for _, output := range outputList {
+ if req.WarehouseId != 0 && output.WareHouseID != req.WarehouseId {
+ continue
+ }
if outputLocationAmountMap[output.LocationID] == nil {
outputLocationAmountMap[output.LocationID] = make(map[string]decimal.Decimal)
}
@@ -408,6 +418,9 @@
outputLocationAmountMap[output.LocationID][output.Number] = outputAmount
}
for _, input := range inputList {
+ if req.WarehouseId != 0 && input.WareHouseID != req.WarehouseId {
+ continue
+ }
LocationIDWarehouseIDMap[input.LocationID] = input.WareHouseID
if inputLocationAmountMap[input.LocationID] == nil {
@@ -466,3 +479,31 @@
resp.Msg = "success"
return resp, nil
}
+
+func (s *Server) GetOutputOperationInfo(ctx context.Context, req *GetOutputOperationInfoRequest) (*GetOutputOperationInfoResponse, error) {
+ if req.Number == "" {
+ return nil, errors.New("鍙傛暟涓嶈兘涓虹┖")
+ }
+ result := new(GetOutputOperationInfoResponse)
+ first, err := models.NewOperationSearch().SetSourceNumber(req.Number).SetBaseOperationType(constvar.BaseOperationTypeOutgoing).SetStatus(constvar.OperationStatus_Finish).First()
+ if err != nil {
+ if err == gorm.ErrRecordNotFound {
+ return result, nil
+ }
+ return nil, err
+ }
+ details, err := models.NewOperationDetailsSearch().SetOperationId(first.Id).FindNotTotal()
+ if err != nil {
+ return nil, err
+ }
+ list := make([]*OutputProduct, 0)
+ for _, detail := range details {
+ var op OutputProduct
+ op.Number = detail.ProductId
+ op.Amount = detail.Amount.String()
+ list = append(list, &op)
+ }
+ result.Products = list
+
+ return result, nil
+}
--
Gitblit v1.8.0