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-{序号}-{标的代码(去点)}