From 25069c528088dfb4e85b49437a8f11045aa4f606 Mon Sep 17 00:00:00 2001 From: kanade Date: Mon, 19 Oct 2026 11:25:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(erp):=20=E6=96=B0=E5=A2=9E=E8=B4=A7?= =?UTF-8?q?=E5=B8=81=E6=B1=87=E7=8E=87=E6=9C=8D=E5=8A=A1=E5=8F=8A=E6=94=B6?= =?UTF-8?q?=E6=B1=87=E6=B0=B4=E5=8D=95=E6=89=B9=E9=87=8F=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 currencyRate 模块,支持按货币和日期查询汇率信息 - 定义汇率响应结构,包含中间价、现钞卖出价、买入价等字段 - 在 ERP 服务结构体中注册 CurrencyRate 客户端 - 新增收汇水单批量生成接口 Gen,支持按交易明细ID批量生成 - 定义 ArgsReceiptGen 参数结构,包含员工ID和交易明细ID列表 --- erp/currencyRate.go | 34 ++++++++++++++++++++++++++++++++++ erp/erp.go | 1 + erp/receipt.go | 15 +++++++++++++++ erp/transfer/statement.go | 1 + 4 files changed, 51 insertions(+) create mode 100644 erp/currencyRate.go diff --git a/erp/currencyRate.go b/erp/currencyRate.go new file mode 100644 index 0000000..11d63ff --- /dev/null +++ b/erp/currencyRate.go @@ -0,0 +1,34 @@ +package erp + +import ( + "context" + "time" + + client2 "git.kumo.work/shama/service/client" + "github.com/shopspring/decimal" +) + +type currencyRate struct { +} +type ArgsCurrencyRateDay struct { + Currency string `binding:"required" label:"货币"` + Day time.Time `binding:"required" label:"日期"` +} + +type ReplyCurrencyRateItem struct { + MiddleRate decimal.Decimal `json:"middleRate"` + CashSellingRate decimal.Decimal `json:"cashSellingRate"` + BuyingRate decimal.Decimal `json:"buyingRate"` + CashBuyingRate decimal.Decimal `json:"cashBuyingRate"` + SellingRate decimal.Decimal `json:"sellingRate"` +} + +// Day @TITLE 获取货币汇率 +func (c *currencyRate) Day(ctx context.Context, args ArgsCurrencyRateDay) (reply ReplyCurrencyRateItem, err error) { + xClient, err := client2.GetClient(c) + if err != nil { + return + } + err = xClient.Call(ctx, "Day", args, &reply) + return +} diff --git a/erp/erp.go b/erp/erp.go index 08a7bc4..89d41bd 100644 --- a/erp/erp.go +++ b/erp/erp.go @@ -22,4 +22,5 @@ type Erp struct { Dict dict Ik3cloud ik3cloud Transfer transfer + CurrencyRate currencyRate } diff --git a/erp/receipt.go b/erp/receipt.go index 73dedb4..1b1a0a9 100644 --- a/erp/receipt.go +++ b/erp/receipt.go @@ -198,3 +198,18 @@ func (r *receipt) Cancel(ctx context.Context, receiptId int64) (err error) { reply := 0 return xClient.Call(ctx, "Cancel", receiptId, &reply) } + +type ArgsReceiptGen struct { + StaffId int64 + BankStatementIds []int64 // 交易明细id +} + +// Gen @TITLE 批量生成收汇水单 +func (r *receipt) Gen(ctx context.Context, args ArgsReceiptGen) (receiptIds []int64, err error) { + xClient, err := client.GetClient(r) + if err != nil { + return + } + err = xClient.Call(ctx, "Gen", args, &receiptIds) + return +} diff --git a/erp/transfer/statement.go b/erp/transfer/statement.go index 247b7f3..90f488e 100644 --- a/erp/transfer/statement.go +++ b/erp/transfer/statement.go @@ -58,6 +58,7 @@ type StatementItem struct { FeeInfo string `json:"feeInfo"` CreatedAt *time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` + ReceiptId int64 `json:"receiptId"` // 生成的收汇水单id 0=未生成 } // List @TITLE 列表