From 20e4b82ae38e2d810ea87e31b4ab6c6522777636 Mon Sep 17 00:00:00 2001 From: tengyufan <1532636164@qq.com> Date: Thu, 30 Jul 2026 17:46:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=BD=E8=81=94?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=E4=BA=92=E6=8D=A2=E4=BA=A4=E6=98=93=E7=BC=96?= =?UTF-8?q?=E5=8F=B7=E9=A6=96=E6=AC=A1=E7=94=9F=E6=88=90=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 首次入库后按 UpperTradeNumber 配置统一交易编号大小写 - 避免自动生成小写编号在后续编辑保存时被转为大写 - 补充交易编号大小写配置的单元测试 --- .../GuolianContractNoGeneratorTest.cs | 13 +++++++++++++ .../DocGenerateModule/GuolianContractNoGenerator.cs | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/UnitTestProject/Modules/TradeModule/DocGenerateModule/GuolianContractNoGeneratorTest.cs b/UnitTestProject/Modules/TradeModule/DocGenerateModule/GuolianContractNoGeneratorTest.cs index 14580fd3..28e41c9d 100644 --- a/UnitTestProject/Modules/TradeModule/DocGenerateModule/GuolianContractNoGeneratorTest.cs +++ b/UnitTestProject/Modules/TradeModule/DocGenerateModule/GuolianContractNoGeneratorTest.cs @@ -33,6 +33,19 @@ namespace YLErp.UnitTestProject.Modules.TradeModule.DocGenerateModule blankTrade, CompanyEnum.国泰君安)); } + [DataTestMethod] + [DataRow("GLMS-st0728-20260729-FICC-Q-210210IB", true, "GLMS-ST0728-20260729-FICC-Q-210210IB")] + [DataRow("GLMS-st0728-20260729-FICC-Q-210210IB", false, "GLMS-st0728-20260729-FICC-Q-210210IB")] + public void NormalizeTradeNumberCase_AppliesUpperTradeNumberConfiguration( + string tradeNumber, + bool upperTradeNumber, + string expected) + { + var actual = GuolianContractNoGenerator.NormalizeTradeNumberCase(tradeNumber, upperTradeNumber); + + Assert.AreEqual(expected, actual); + } + [TestMethod] public void BuildTradeNumber_ClientTrade_UsesNumericSequenceAndSanitizesUnderlyingCode() { diff --git a/YLErpDAL/Modules/TradeModule/DocGenerateModule/GuolianContractNoGenerator.cs b/YLErpDAL/Modules/TradeModule/DocGenerateModule/GuolianContractNoGenerator.cs index b1d666a0..6a26328a 100644 --- a/YLErpDAL/Modules/TradeModule/DocGenerateModule/GuolianContractNoGenerator.cs +++ b/YLErpDAL/Modules/TradeModule/DocGenerateModule/GuolianContractNoGenerator.cs @@ -62,10 +62,19 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule throw new ServiceException("对手方代码缩写缺失,请联系运营组同事维护"); } - trade.TradeNumber = Generate(dbContext, trade, clientCode); + trade.TradeNumber = NormalizeTradeNumberCase( + Generate(dbContext, trade, clientCode), + PS.Config.ErpElement.UpperTradeNumber); return true; } + public static string NormalizeTradeNumberCase(string tradeNumber, bool upperTradeNumber) + { + return upperTradeNumber && !string.IsNullOrEmpty(tradeNumber) + ? tradeNumber.ToUpperInvariant() + : tradeNumber; + } + /// /// 按国联确认书编号规则拼装编号(纯函数,不依赖数据库,便于单测)。 /// 格式:GLMS-{clientCode}-{成交日期(yyyyMMdd)}-FICC-{序号}-{标的代码(去点)}