从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
namespace YLErp.Modules.EodModule.SettlementModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 日终结算检查
|
||||
/// </summary>
|
||||
class EodCheckVolService : EodSettleServiceBase
|
||||
{
|
||||
public const string Step = "日终结算检查";
|
||||
|
||||
public EodCheckVolService(EodSettlementContextBase context) : base(context)
|
||||
{
|
||||
ResetDbContext();
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
var clienIds = _context.Request.ClientIds;
|
||||
//光大光子需要检查场内期权是否设置了波动率
|
||||
if (PS.Config.Company == Configuration.CompanyEnum.光大光子)
|
||||
{
|
||||
var preDate = _context.PreSettleDate;
|
||||
|
||||
var query1 = from a in DbContext.ExchangeTrade
|
||||
where a.TradeDate == _context.SettleDate && a.IsValid && a.TradeType == "场内期权"
|
||||
group a by a.OptionCode into aa
|
||||
select new { OptionCode = aa.Key };
|
||||
|
||||
var eodPosition = DbContext.eod_trade_position.AsEnumerable();
|
||||
#region 新增客户筛选 tw
|
||||
if (clienIds != null)
|
||||
{
|
||||
eodPosition = eodPosition.Where(l => clienIds.Contains(l.ClientId));
|
||||
}
|
||||
#endregion
|
||||
var query2 = from b in eodPosition
|
||||
where b.ValueDate == preDate && b.TradeType == "场内期权"
|
||||
group b by b.ExchangeOptionCode into bb
|
||||
select new { OptionCode = bb.Key };
|
||||
|
||||
var query = from a in query1.ToList().Union(query2.ToList())
|
||||
where !DbContext.exchange_option_vol.Any(n => n.OptionCode == a.OptionCode && n.UseFlag == DBModels.ExchangeOptionVolUseFlag.FixedValue)
|
||||
select a.OptionCode;
|
||||
|
||||
var codes = query.ToHashSet();
|
||||
|
||||
if (codes.Any())
|
||||
{
|
||||
var str = string.Join("、", codes);
|
||||
|
||||
_context.RaiseError(Step, $"请设置场内期权{str}的对冲波动率!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user