private static void InternalDoClose() { //记录开始清算 ScheduleManager.IsStockReckoning = true; bool isSuccess = DoReckoning(); if (isSuccess) { #region update 李健华 2010-06-12 分红登记 //isSuccess = DoMelonCutting(); isSuccess = MelonCutService.RegisterMeloncutTable(); #endregion if (isSuccess) { DoHistoryDataProcess(); } } //这里分红处理后在这里就加载内存表 ////清算完毕后再重新加载内存资金表内容,为后面其他清算做预委托下单的处理同样操作内存表的数据 ////内存表管理 MemoryDataManager.Start(); ScheduleManager.IsStockReckoning = false; ScheduleManager.IsHKReckoning = true; isSuccess = DoHKReckoning(); if (isSuccess) { DoHKHistoryDataProcess(); } //这里港股完成后也重新加载一个,因为在内部清算的时候已经全过一交提交 MemoryDataManager.Start(); ScheduleManager.IsHKReckoning = false; }
/// <summary> /// 分红处理 /// </summary> public static bool DoMelonCutting() { if (StatusTableChecker.HasDoneMelonCut(DateTime.Now)) { return(true); } bool result = false; LogHelper.WriteInfo("------------开始证券收市处理-DoMelonCutting[分红处理]"); try { result = MelonCutService.Process(); if (!result) { LogHelper.WriteInfo("***证券收市处理-DoMelonCutting[分红处理]第1次失败!进行第2次处理"); result = MelonCutService.Process(); } if (!result) { LogHelper.WriteInfo("***证券收市处理-DoMelonCutting[分红处理]第2次失败!进行第3次处理"); result = MelonCutService.Process(); } if (!result) { LogHelper.WriteInfo("***证券收市处理-DoMelonCutting[分红处理]第3次失败!退出"); } else { LogHelper.WriteInfo("------------完成证券收市处理-DoMelonCutting[分红处理]"); } } catch (Exception ex) { LogHelper.WriteError(ex.ToString(), ex); LogHelper.WriteInfo("------------证券收市处理失败-DoMelonCutting[分红处理]"); } return(result); }