/// <summary> /// 基本代换班 /// </summary> public void SwapingForTerm(Pair <Guid> agentPair, Pair <long?> assignmentPair, bool isLaborRule) { ReSet(); _attendanceRepository.Clear(); GetSwapingDate(assignmentPair); Initialize(agentPair, isLaborRule); Applier.InitializeSwapingForTerm(assignmentPair.Applier); Replier.InitializeSwapingForTerm(assignmentPair.Replier); if (Applier.Term != null) { Replier.TimeOff = Replier.TimeBox.SpecificTerm <TimeOff>().CollideTerms(Applier.Term).FirstOrDefault(); } if (Replier.Term != null) { Applier.TimeOff = Applier.TimeBox.SpecificTerm <TimeOff>().CollideTerms(Replier.Term).FirstOrDefault(); } //删除班 DeleteTerm(); //设置TimeOff SetTimeOff(); //交换班表 SwapSpecificTerm(); SwapSpecificSubEvents(); //验证交换信息 VaildateSwapMessage(); }
/// <summary> /// 基本代换班验证 /// </summary> public Dictionary <Guid, Dictionary <string, bool> > SwapingForTermValidate(Pair <Guid> agentPair, Pair <long?> assignmentPair, Pair <DateRange> dateRange) { _attendanceRepository.Clear(); //初始化并做单一验证 Applier.InitializeTimeBox(agentPair.Applier, dateRange.Applier); Replier.InitializeTimeBox(agentPair.Replier, dateRange.Replier); Applier.InitializeSwapingForTerm(assignmentPair.Applier); Replier.InitializeSwapingForTerm(assignmentPair.Replier); //验证是否重叠 if (assignmentPair.Applier.HasValue) { Applier.HasExchanged = Replier.TimeBox.CollideTerms(dateRange.Applier).Where(o => o.Level == 0).Where(o => assignmentPair.Replier.HasValue ? o.Id != assignmentPair.Replier:true).Any(); } if (assignmentPair.Replier.HasValue) { Replier.HasExchanged = Applier.TimeBox.CollideTerms(dateRange.Replier).Where(o => o.Level == 0).Where(o => assignmentPair.Applier.HasValue ? o.Id != assignmentPair.Applier : true).Any(); } //验证换完之后TimeOff移至后一天,验证后一天是否重复 return(SetValidates()); }