|
@@ -49,6 +49,10 @@ namespace OASystem.API.OAMethodLib
|
|
userNames = nameData.Data;
|
|
userNames = nameData.Data;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ int work_days = GetWorkDays(startDt, endDt);
|
|
|
|
+
|
|
|
|
|
|
CheckInView checkIn = await _qiYeWeChatApiService.GetCheckin_MonthDataAsync(startDt, endDt);
|
|
CheckInView checkIn = await _qiYeWeChatApiService.GetCheckin_MonthDataAsync(startDt, endDt);
|
|
if (checkIn.errcode != 0)
|
|
if (checkIn.errcode != 0)
|
|
@@ -112,8 +116,8 @@ namespace OASystem.API.OAMethodLib
|
|
Summary_Info? summary_Info = checkInData.summary_info;
|
|
Summary_Info? summary_Info = checkInData.summary_info;
|
|
if (summary_Info == null) { continue; }
|
|
if (summary_Info == null) { continue; }
|
|
|
|
|
|
- int work_days = summary_Info.work_days -1;
|
|
+
|
|
- int regular_days = summary_Info.regular_days - 1;
|
|
+
|
|
|
|
|
|
meal_subsidy = work_days * 10;
|
|
meal_subsidy = work_days * 10;
|
|
|
|
|
|
@@ -638,7 +642,7 @@ namespace OASystem.API.OAMethodLib
|
|
pm_wsInfo.StartDate = startDt.ToString("yyyy-MM-dd");
|
|
pm_wsInfo.StartDate = startDt.ToString("yyyy-MM-dd");
|
|
pm_wsInfo.EndDate = endDt.AddDays(-1).ToString("yyyy-MM-dd");
|
|
pm_wsInfo.EndDate = endDt.AddDays(-1).ToString("yyyy-MM-dd");
|
|
pm_wsInfo.WorkDays = work_days;
|
|
pm_wsInfo.WorkDays = work_days;
|
|
- pm_wsInfo.RegularDays = regular_days;
|
|
+
|
|
|
|
|
|
pm_wsInfo.SickLeave = sickLeaveTotal;
|
|
pm_wsInfo.SickLeave = sickLeaveTotal;
|
|
pm_wsInfo.SomethingFalse = personalLeaveTotal;
|
|
pm_wsInfo.SomethingFalse = personalLeaveTotal;
|
|
@@ -1031,58 +1035,89 @@ namespace OASystem.API.OAMethodLib
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- public static async Task<Result> GetHoilDays(DateTime startDt,DateTime endDt)
|
|
+ public static int GetWorkDays(DateTime startDt,DateTime endDt)
|
|
{
|
|
{
|
|
- Result result = new Result();
|
|
+
|
|
-
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ string startYear = startDt.ToString("yyyy");
|
|
|
|
+ string endYear = endDt.ToString("yyyy");
|
|
|
|
+
|
|
|
|
+ var holidays = AppSettingsHelper.Get<HoliDaysDataSourceView>("HoliDayDataSource");
|
|
|
|
+ List<HoliDaysDataSourceView> holiDatas = new List<HoliDaysDataSourceView>();
|
|
|
|
+ if (startYear.Equals(endYear))
|
|
|
|
+ {
|
|
|
|
+ holiDatas.Add(holidays.Where(it => it.Year == startYear).FirstOrDefault());
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ holiDatas.Add(holidays.Where(it => it.Year == startYear).FirstOrDefault());
|
|
|
|
+ holiDatas.Add(holidays.Where(it => it.Year == endYear).FirstOrDefault());
|
|
|
|
+ }
|
|
|
|
|
|
- HttpClient _httpClient = new HttpClient();
|
|
+ int _totalDays = (int)(endDt - startDt).TotalDays;
|
|
- var res = await _httpClient.GetAsync("https://timor.tech/api/holiday/year/"+ startDt.ToString("yyyy"));
|
|
+ List<HolidaysInfo> _holidays = new List<HolidaysInfo>();
|
|
|
|
+ List<HolidaysInfo> _weekdys = new List<HolidaysInfo>();
|
|
|
|
+ List<HolidaysInfo> _workdays = new List<HolidaysInfo>();
|
|
|
|
+ string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
|
|
|
|
|
|
- if (res.IsSuccessStatusCode)
|
|
+ for (int i = 0; i < _totalDays; i++)
|
|
{
|
|
{
|
|
- var stringResponse = await res.Content.ReadAsStringAsync();
|
|
+ string thisYear = startDt.ToString("yyyy");
|
|
-
|
|
+ string thisDt = startDt.ToString("MM-dd");
|
|
- HoiDaysRes obj = JsonConvert.DeserializeObject<HoiDaysRes>(stringResponse);
|
|
+ string thisYMD = startDt.ToString("yyyy-MM-dd");
|
|
|
|
+ string thisWeek = Day[Convert.ToInt32(startDt.DayOfWeek.ToString("d"))].ToString();
|
|
|
|
|
|
|
|
|
|
-
|
|
+ HoliDaysDataSourceView holiDaysData = new HoliDaysDataSourceView();
|
|
- if (obj.code == 0)
|
|
+ holiDaysData = holiDatas.Where(it => it.Year == thisYear).FirstOrDefault();
|
|
|
|
+
|
|
|
|
+ if (thisWeek.Equals("星期六") || thisWeek.Equals("星期日"))
|
|
{
|
|
{
|
|
- int hoilDays = 0;
|
|
+ HolidaysInfo holidaysInfo = new HolidaysInfo();
|
|
- while (true)
|
|
+ holidaysInfo = holiDaysData.Holidays.Where(it => it.HoliDate == thisDt).FirstOrDefault();
|
|
|
|
+ if (holidaysInfo != null)
|
|
{
|
|
{
|
|
- string dt = startDt.ToString("MM-dd");
|
|
+ if (holidaysInfo.HoliName.Equals("工作日"))
|
|
-
|
|
|
|
- if (startDt == endDt)
|
|
|
|
{
|
|
{
|
|
|
|
+ _workdays.Add(new HolidaysInfo { HoliDate = thisYMD, HoliName = Day[Convert.ToInt32(startDt.DayOfWeek.ToString("d"))].ToString() });
|
|
|
|
+ startDt = startDt.AddDays(1);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- startDt.AddDays(1);
|
|
|
|
}
|
|
}
|
|
-
|
|
+ _weekdys.Add(new HolidaysInfo { HoliDate = thisYMD, HoliName = thisWeek });
|
|
- result.Code = 0;
|
|
+ startDt = startDt.AddDays(1);
|
|
- result.Data = hoilDays;
|
|
+ continue;
|
|
}
|
|
}
|
|
- int code = obj.code;
|
|
|
|
|
|
|
|
- }
|
|
+
|
|
-
|
|
+ if (holiDaysData != null)
|
|
- return result;
|
|
+ {
|
|
-
|
|
+ HolidaysInfo holidaysInfo = new HolidaysInfo();
|
|
-
|
|
+ holidaysInfo = holiDaysData.Holidays.Where(it => it.HoliDate == thisDt).FirstOrDefault();
|
|
- }
|
|
+ if (holidaysInfo != null)
|
|
|
|
+ {
|
|
|
|
+ _holidays.Add(new HolidaysInfo { HoliDate = thisYMD, HoliName = holidaysInfo.HoliName });
|
|
|
|
+ startDt = startDt.AddDays(1);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ _workdays.Add(new HolidaysInfo { HoliDate = thisYMD, HoliName = Day[Convert.ToInt32(startDt.DayOfWeek.ToString("d"))].ToString() });
|
|
|
|
|
|
- public class HoiDaysRes
|
|
+ startDt = startDt.AddDays(1);
|
|
- {
|
|
+ }
|
|
- public int code { get; set; }
|
|
|
|
|
|
|
|
- public object holiday { get; set; }
|
|
+ return _workdays.Count();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|