从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
using System.Text;
|
||||
|
||||
namespace YLErp.Modules.EodModule.SettlementModule
|
||||
{
|
||||
class EodCheckMaturityDate : EodSettleServiceBaseV2
|
||||
{
|
||||
public const string Step = "检查标的到期日";
|
||||
|
||||
public EodCheckMaturityDate(EodSettlementContextV2 context) : base(context)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查收盘价
|
||||
/// </summary>
|
||||
public void Execute()
|
||||
{
|
||||
if (!_context.OtcTrades.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var request = _context.Request;
|
||||
var settleDate = _context.SettleDate;
|
||||
var clienIds = _context.Request.ClientIds;
|
||||
|
||||
//检查是否所有待结算交易标的价格都存在
|
||||
//获取所有现存(抵押状态)抵押品信息 增加抵押品价格检查
|
||||
|
||||
if (request.IsSettleOtcTrades)
|
||||
{
|
||||
var tradePredicate = _context.PredicateBuilder.GetOtcTradePredicate().And(t => t.TradeType == "累计期权" && t.UnderlyingCode != null);
|
||||
#region 新增客户筛选 tw
|
||||
if (clienIds != null)
|
||||
{
|
||||
tradePredicate = tradePredicate.And(l => clienIds.Contains(l.ClientId));
|
||||
}
|
||||
#endregion
|
||||
var allQuery = from td in DbContext.trade.Where(tradePredicate)
|
||||
join un in DbContext.underlying_manager on td.UnderlyingCode equals un.UnderlyingCode
|
||||
where un.MaturityDate != null && td.ExerciseDate > un.MaturityDate && un.MaturityDate < settleDate
|
||||
select new { td.TradeNumber, td.UnderlyingCode, un.MaturityDate };
|
||||
var list = allQuery.ToList();
|
||||
if (list == null || !list.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
StringBuilder req = new StringBuilder();
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
req.Append("交易").Append(item.TradeNumber).Append(",标的").Append(item.UnderlyingCode).Append("已到期(标的到期日:").Append(item.MaturityDate?.ToString("yyyy-MM-dd")).Append("),请及时进行调整!");
|
||||
}
|
||||
|
||||
_context.RaiseError(Step, req.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user