| 
					
				 | 
			
			
				@@ -759,7 +759,9 @@ namespace OASystem.API.OAMethodLib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         //    continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if (Convert.ToDateTime(date_Range.new_begin_dt) < startDt || Convert.ToDateTime(date_Range.new_begin_dt) > endDt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //假期只要开始时间,结束时间在计算时间范围 即纳入计算  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if ((Convert.ToDateTime(date_Range.new_begin_dt) < startDt || Convert.ToDateTime(date_Range.new_begin_dt) > endDt) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            (Convert.ToDateTime(date_Range.new_end_dt) < startDt || Convert.ToDateTime(date_Range.new_end_dt) > endDt)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                              continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -793,11 +795,34 @@ namespace OASystem.API.OAMethodLib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         if (date_Range.type == "halfday") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             new_duration = Convert.ToDecimal(date_Range.new_duration) / 86400.00M; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            if (date_Range.new_begin_dt < startDt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                decimal new_duration_count = new_duration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                new_duration = 0.00M; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                for (int i = 0; i < new_duration_count; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    DateTime thisDt = date_Range.new_begin_dt.AddDays(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    Sys_Calendar sys_Calendar = new Sys_Calendar(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    sys_Calendar = sys_Calendars.Where(it => it.Dt == thisDt.ToString("yyyy-MM-dd")).FirstOrDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if (sys_Calendar != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        if (sys_Calendar.IsWorkDay) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                            new_duration++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             unit = "天"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             startTime = date_Range_new_begin_dt.ToString("yyyy-MM-dd") + " 09:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             endTime = date_Range_new_end_dt.ToString("yyyy-MM-dd") + " 18:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            if (new_duration >= 0.50M) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            if (new_duration > 0.50M) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 if (slice_info != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -805,7 +830,6 @@ namespace OASystem.API.OAMethodLib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                         if (slice_info.day_items.Count > 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                             date_Range_new_begin_dt = slice_info.day_items[0].daytimeDt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                             date_Range_new_end_dt = slice_info.day_items[slice_info.day_items.Count - 1].daytimeDt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1255,7 +1279,7 @@ namespace OASystem.API.OAMethodLib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         Date_range date_Range = attendance.date_range; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         //筛选 不在工作日内的假勤申请 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        if (date_Range.new_begin_dt < startDt   || date_Range.new_end_dt < endDt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (date_Range.new_begin_dt < startDt   || date_Range.new_end_dt > endDt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1278,10 +1302,10 @@ namespace OASystem.API.OAMethodLib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             new_duration = Convert.ToDecimal(date_Range.new_duration) / 86400.00M; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             unit = "天"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            startTime = date_Range.new_begin_dt.ToString("yyyy-MM-dd") + " 09:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            endTime = date_Range.new_begin_dt.ToString("yyyy-MM-dd") + " 18:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            startTime1 = "09:00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            endTime1 = "18:00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            startTime = date_Range.new_begin_dt.ToString("yyyy-MM-dd") + " 00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            endTime = date_Range.new_end_dt.ToString("yyyy-MM-dd") + " 00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            startTime1 = "00:00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            endTime1 = "00:00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         else if (date_Range.type == "hour") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1307,20 +1331,28 @@ namespace OASystem.API.OAMethodLib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             //处理开始时间 是否在当天工作时间内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             if (i == 0) //开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                string ccStartTime = thisDt.ToString("HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                if (!IsWorkTime(ccStartTime)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                if (!date_Range.type.Equals("halfday")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    string ccStartTime = thisDt.ToString("HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if (!IsWorkTime(ccStartTime)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             //处理结束时间 是否在当天工作时间内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             if (i == days - 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                string ccStartTime = date_Range.new_end_dt.ToString("HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                if (!IsWorkTime(ccStartTime)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                if (!date_Range.type.Equals("halfday")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    string ccStartTime = date_Range.new_end_dt.ToString("HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if (!IsWorkTime(ccStartTime)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |