Ejemplo n.º 1
0
 /// <summary>
 /// 获取当前清算步骤
 /// </summary>
 /// <returns></returns>
 private static ClearStepInfo GetRuningStep()
 {
     if (ClearDate.HasValue)
     {
         Console.WriteLine("GetRuningStep");
         _clearconfig = ClearConfigDataAccessMock.Current.GetConfigInfo(ClearDate.Value);
         if (_clearconfig == null)
         {
             step1.ClearState = EnumClearState.NotBegin;
             return(step1);
         }
         else
         {
             if (dicstep.ContainsKey(_clearconfig.ClearStep))
             {
                 ClearStepInfo step = dicstep[_clearconfig.ClearStep];
                 step.ClearState = _clearconfig.ClearState;
                 step.Start      = _clearconfig.BeginTime;
                 step.Finish     = _clearconfig.FinishTime;
                 return(step);
             }
             else
             {
                 throw new Exception("步骤异常");
             }
         }
     }
     return(null);
 }
        public DateTime Validate(DateTime cleardate)
        {
            ClearConfigInfo configinfo = ClearConfigManagerMock.GetLatestConfigInfo();

            if (configinfo == null || configinfo.ClearDate > cleardate)
            {
            }
            else if (cleardate == configinfo.NextClearDate)
            {
                if (!(configinfo.ClearStep == "Step5" || (configinfo.ClearStep == "Step4" && configinfo.ClearState == EnumClearState.Finished)))
                {
                    return(configinfo.ClearDate);
                }
            }
            else if (cleardate > configinfo.NextClearDate)
            {
                if (configinfo.ClearStep == "Step5" || (configinfo.ClearStep == "Step4" && configinfo.ClearState == EnumClearState.Finished))
                {
                    return(configinfo.NextClearDate);
                }
                else
                {
                    return(configinfo.ClearDate);
                }
            }

            return(cleardate.Date);
        }
        public DateTime GetDate( )
        {
            ClearConfigInfo configinfo = ClearConfigManagerMock.GetLatestConfigInfo();

            if (configinfo != null)
            {
                if (configinfo.ClearStep == "Step5" ||
                    (configinfo.ClearStep == "Step4" && configinfo.ClearState == EnumClearState.Finished))
                {
                    if (configinfo.NextClearDate.Date > this._maxDate)
                    {
                        return(this._maxDate);
                    }
                    else
                    {
                        return(configinfo.NextClearDate);
                    }
                }
                else
                {
                    return(configinfo.ClearDate);
                }
            }
            else
            {
                return(_maxDate);
            }
        }
Ejemplo n.º 4
0
        private static ClearConfigInfo ClearConfigBuinder()
        {
            ClearConfigInfo info = new ClearConfigInfo();

            if (ClearDate != null)
            {
                info.NextClearDate = ClearDate.Value.AddDays(1);
                info.ClearDate     = ClearDate.Value;
            }
            return(info);
        }
Ejemplo n.º 5
0
        public static void ErrorStep(ClearStepInfo step)
        {
            if (!ClearDate.HasValue)
            {
                throw new Exception("未设置当前清算时间");
            }
            _clearconfig = ClearConfigDataAccessMock.Current.GetConfigInfo(ClearDate.Value);
            if (_clearconfig == null)
            {
                throw new Exception("出错了");
            }

            _clearconfig.ClearState = EnumClearState.Error;
            _clearconfig.FinishTime = DateTime.Now;
            SaveToOracle();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 新增或更新任务
        /// </summary>
        /// <param name="configinfo"></param>
        /// <returns></returns>
        public bool InsertOrUpdateConfigInfo(ClearConfigInfo configinfo)
        {
            var infos = this.GetConfigInfo();
            var info  = infos.FirstOrDefault(x => x.Equals(configinfo));

            if (info == null)
            {
                infos.Add(configinfo);
            }
            else
            {
                infos[infos.IndexOf(info)] = configinfo;
            }
            File.WriteAllText(this.GetFile(), JsonConvert.SerializeObject(infos));
            return(true);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 清算是否进行中
        /// </summary>
        /// <returns></returns>
        public static bool IsRuningFinished()
        {
            if (ClearDate.HasValue)
            {
                _clearconfig = ClearConfigDataAccessMock.Current.GetConfigInfo(ClearDate.Value);
                if (_clearconfig == null)
                {
                    _clearconfig = ClearConfigBuinder();
                    return(false);
                }
            }

            if (_clearconfig.ClearState == EnumClearState.Finished && _clearconfig.ClearStep == "9999")
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 开始清算步骤
        /// </summary>
        public static void RunStep(ClearStepInfo step)
        {
            if (!ClearDate.HasValue)
            {
                throw new Exception("未设置当前清算时间");
            }

            _clearconfig = ClearConfigDataAccessMock.Current.GetConfigInfo(ClearDate.Value);
            if (_clearconfig == null)
            {
                _clearconfig           = ClearConfigBuinder();
                _clearconfig.BeginTime = DateTime.Now;
            }
            _clearconfig.ClearState = EnumClearState.Clearing;
            if (step != null && !string.IsNullOrEmpty(step.ClearStep))
            {
                _clearconfig.ClearStep     = step.ClearStep;
                _clearconfig.ClearStepName = step.ClearStepName;
                SaveToOracle();
            }
        }
Ejemplo n.º 9
0
 public static void FinishStep(ClearStepInfo step)
 {
     if (!ClearDate.HasValue)
     {
         throw new Exception("未设置当前清算时间");
     }
     _clearconfig = ClearConfigDataAccessMock.Current.GetConfigInfo(ClearDate.Value);
     if (_clearconfig == null)
     {
         throw new Exception("出错了");
     }
     if (step.NextStep == null)
     {
         _clearconfig.ClearState = EnumClearState.AllComplete;
     }
     else
     {
         _clearconfig.ClearState = EnumClearState.Finished;
     }
     _clearconfig.FinishTime = DateTime.Now;
     SaveToOracle();
 }