using Newtonsoft.Json.Linq; using YLErp.Office.Converters; namespace YLErp.PluginTests { [TestClass] public class TestBanXing { [TestMethod("测试-交易确认书模板")] public void Test1() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书.docx"); var varDic = new JsonVarDic(); varDic.SetVar("ClientName", "我是客户AAA"); varDic.SetVar("MyTest", new JObject { {"YearMonth", DateTime.Now } }); var table1 = new JArray(); var random = new Random((int)DateTime.Now.Ticks); var optionTypes = new[] { "香草", "亚式", "障碍", "雪球", "凤凰" }; var startDate = new DateTime(2022, 3, 22); var endDate = new DateTime(2022, 5, 22); var spotPrice = 3655.5d; for (var i = 1; i < 10; i++) { var notional = random.Next(100, 10000) / 100d; var spot = spotPrice * (1 + (i / 100d)); var singlePrice = random.Next(50, 1000) / 10d; var jobj = new JObject { {"交易序号", "AA" + i }, {"标的", "SR220" + i }, {"期权类型", optionTypes[random.Next()%5] }, {"成交日", startDate.AddDays(i) }, {"到期日", endDate.AddDays(i) }, {"标的期初价格", spot}, {"执行价", "100%" }, {"标的数量", notional }, {"单位", "吨" }, {"名义本金额", spot*notional }, {"权利金支付方", "客户AA" + i }, {"期权单价", singlePrice }, {"期权总价", singlePrice * notional }, }; table1.Add(jobj); } varDic.SetVar("table1", table1); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-结算确认书模板")] public void Test2() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\结算确认书模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_结算确认书.docx"); var varDic = new JsonVarDic(); varDic.SetVar("ClientName", "我是客户AAA"); varDic.SetVar("TotalPnl", 3000.8866); varDic.SetVar("TotalPnlCn", "叄仟园八角八分"); // {{.剩余数量}} {{.乙方结算盈亏}} var table1 = new JArray(); var random = new Random((int)DateTime.Now.Ticks); var closeTypes = new[] { "部分平仓", "全部平仓", "到期执行", "敲出平仓" }; var optionTypes = new[] { "香草", "亚式", "障碍", "雪球", "凤凰" }; var startDate = new DateTime(2022, 3, 22); var endDate = new DateTime(2022, 5, 22); var spotPrice = 3655.5d; for (var i = 1; i < 10; i++) { var notional = random.Next(100, 10000) / 100d; var spot = spotPrice * (1 + (i / 100d)); var singlePrice = random.Next(50, 1000) / 10d; var jobj = new JObject { {"交易确认书编号", "TradeNO-" + i }, {"结算序号", "AA" + i }, {"结算类型", closeTypes[random.Next()%4] }, {"标的资产", "SR220" + i }, {"期权类型", optionTypes[random.Next()%5] }, {"结算日期", startDate.AddDays(i) }, {"到期日", endDate.AddDays(i) }, {"标的期初价格", spot}, {"执行价", spot*0.95 }, {"结算数量", notional }, {"计价单位", "吨" }, {"标的结算价", spot*0.9 }, {"权利金支付方", "客户AA" + i }, {"期权成交单价", singlePrice }, {"期权结算单价", singlePrice*1.1 }, {"期权结算总价", singlePrice * notional }, }; table1.Add(jobj); } varDic.SetVar("table1", table1); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-大连公司模板")] public void TestDaLianTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-大连公司部模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-大连公司部.docx"); var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-00-01"); varDic.SetVar("名义本金", 32424.56); varDic.SetVar("存续天数", 20); varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日")); varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日")); varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日")); varDic.SetVar("行权价0,3", 8.256); varDic.SetVar("行权价0", 8.25); varDic.SetVar("期初费率", 6.78); varDic.SetVar("期末费率", 7.78); varDic.SetVar("总期权费率", 14.56); varDic.SetVar("二级收益率", 6.56); varDic.SetVar("预付金", 78234); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-大连零售部模板")] public void TestDaLianSellTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-大连零售部模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-大连零售部.docx"); var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-00-02"); varDic.SetVar("名义本金", 32424.56); varDic.SetVar("存续天数", 20); varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日")); varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日")); varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日")); varDic.SetVar("行权价0,3", 8.256); varDic.SetVar("行权价0", 8.25); varDic.SetVar("期初费率", 6.78); varDic.SetVar("期末费率", 7.78); varDic.SetVar("总期权费率", 14.56); varDic.SetVar("二级收益率", 6.56); varDic.SetVar("预付金", 78234); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-海峡银行公司模板")] public void TestHaiXiaTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-海峡银行公司部模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-海峡银行公司部.docx"); var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-00-03"); varDic.SetVar("名义本金", 32424.56); varDic.SetVar("存续天数", 20); varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日")); varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日")); varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日")); varDic.SetVar("行权价0,3", 8.256); varDic.SetVar("行权价0", 8.25); varDic.SetVar("期初费率", 6.78); varDic.SetVar("期末费率", 7.78); varDic.SetVar("总期权费率", 14.56); varDic.SetVar("二级收益率", 6.56); varDic.SetVar("预付金", 78234); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-海峡银行零售部模板")] public void TestHaiXiaSellTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-海峡银行零售部模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-海峡银行零售部.docx"); var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-00-04"); varDic.SetVar("名义本金", 32424.56); varDic.SetVar("存续天数", 20); varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日")); varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日")); varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日")); varDic.SetVar("行权价0,3", 8.256); varDic.SetVar("行权价0", 8.25); varDic.SetVar("期初费率", 6.78); varDic.SetVar("期末费率", 7.78); varDic.SetVar("总期权费率", 14.56); varDic.SetVar("二级收益率", 6.56); varDic.SetVar("预付金", 78234); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-结算确认书-银行到期结算单模板")] public void TestHaiXiaSellCloseConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\结算确认书\\银行到期结算单模板.docx"); var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_银行到期结算单模板.docx"); var varDic = new JsonVarDic(); varDic.SetVar("ClientName", "大连分公司"); varDic.SetVar("平仓损益", 32424.56); varDic.SetVar("权利金", 300); varDic.SetVar("了结金额", 32030); varDic.SetVar("了结日期", DateTime.Now.ToString("yyyy年MM月dd日")); var random = new Random((int)DateTime.Now.Ticks); var table1 = new JArray(); var spotPrice = 3655.5d; var closeTypes = new[] { "部分平仓", "全部平仓", "到期执行", "敲出平仓" }; for (var i = 1; i < 10; i++) { var notional = random.Next(100, 10000) / 100d; var spot = spotPrice * (1 + (i / 100d)); var singlePrice = random.Next(50, 1000) / 10d; var jobj = new JObject { {"交易确认书编号", "TradeNO-" + i }, {"交易日期", DateTime.Now.AddDays(-i*2).ToString("yyyy年MM月dd日") }, {"了结日期", DateTime.Now.AddDays(-i*2).ToString("yyyy年MM月dd日") }, {"标的代码", "Y" + i }, {"行权价", 3* random.Next()}, {"名义本金", 3*random.Next() }, {"平仓类型", closeTypes[random.Next()%4] }, {"期初价格", spot}, {"期末价格", spot*0.95 }, {"平仓损益", notional } }; table1.Add(jobj); } varDic.SetVar("table1", table1); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } } }