fix: 国联民生-簿记中增强收益结构可以识别并且对应到交易确认书中

This commit is contained in:
马冰冰
2026-07-28 18:25:03 +08:00
parent d89827f9ad
commit de84a90bad
@@ -241,21 +241,15 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
dic["参考标的期初全价%"] = ((double)swapPosition.PosiGrossPrice * 100).ToString("N4");
dic["参考标的期初净价%"] = ((double)(swapPosition.PosiNetNoFeePrice ?? 0m) * 100).ToString("N4");
// 固定收益率(年化)- ETF默认取"增强收益"腿的计息利率
// 固定收益率(年化)仅对应增强收益腿;互换利率腿在模板中应留空。
bool isEtf = IsBondEtf(underlying?.UnderlyingCode ?? string.Empty);
if (isEtf)
{
var enhancePosition = swapPositions
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "增强收益")
.FirstOrDefault();
dic["固定收益率"] = enhancePosition != null
? ((double)enhancePosition.InterestRateDefault * 100).ToString("N4")
: "0.0000";
}
else
{
dic["固定收益率"] = "0.0000";
}
var enhancePosition = swapPositions
.FirstOrDefault(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "增强收益");
var swapRatePosition = swapPositions
.FirstOrDefault(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "互换利率");
dic["固定收益率"] = enhancePosition != null
? ((double)enhancePosition.InterestRateDefault * 100).ToString("N4")
: swapRatePosition != null ? "" : "0.0000";
// 获取客户适用的保证金率
var clientMarginRate = UnderlyingHelper.GetApplicableMarginRate(
@@ -416,13 +410,10 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
// 利率类型判断(固定/浮动)
swap_position interestMargin = null;
// ETF: 优先取"互换利率"
if (isEtf)
{
interestMargin = swapPositions
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "互换利率")
.FirstOrDefault();
}
// 优先取互换利率腿,避免同时存在增强收益腿时受集合顺序影响。
interestMargin = swapPositions
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.category_tag == "互换利率")
.FirstOrDefault();
if (interestMargin == null)
interestMargin = swapPositions
.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode) && x.interest_rest_days != null)
@@ -442,11 +433,14 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
dic["期末观察日"] = trade.ExerciseDate?.ToString("【yyyy】年【M】月【d】日") ?? "";
if (interestMargin != null)
{
if (string.IsNullOrEmpty(interestMargin.FloatRateUnderlyingCode))
// 增强收益腿在确认书中固定展示为固定利率,不展示其浮动利率标的或利差。
if (interestMargin.category_tag == "增强收益" || string.IsNullOrEmpty(interestMargin.FloatRateUnderlyingCode))
{
dic["利率类型"] = "固定利率";
dic["IsFixed"] = "☑"; //☑
dic["固定利率"] = ((double)interestMargin.InterestRateDefault * 100).ToString("N4");
dic["固定利率"] = interestMargin.category_tag == "增强收益"
? "0.0000"
: ((double)interestMargin.InterestRateDefault * 100).ToString("N4");
dic["利差"] = "";
}
else