|
@@ -1,5 +1,6 @@
|
|
|
using Google.Protobuf.WellKnownTypes;
|
|
|
using NPOI.HPSF;
|
|
|
+using NPOI.OpenXmlFormats.Dml.Diagram;
|
|
|
using NPOI.OpenXmlFormats.Spreadsheet;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using NPOI.Util;
|
|
@@ -75,8 +76,21 @@ namespace OASystem.API.OAMethodLib
|
|
|
_result.Msg = "【企业微信】【打卡】【获取时间段内所有日打卡】【Msg】" + checkInDayDataView.errmsg;
|
|
|
return _result;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ CheckInDataView checkInDataView = new CheckInDataView();
|
|
|
+ checkInDataView = await _qiYeWeChatApiService.GetCheckinDataAsync(qyWhchatIdList, 2,startDt, endDt);
|
|
|
+ if (checkInDataView.errcode != 0)
|
|
|
+ {
|
|
|
+ _result.Msg = "【企业微信】【打卡】【获取时间段内所有日打卡记录】【Msg】" + checkInDataView.errmsg;
|
|
|
+ return _result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- List<Root> workday_userRoots = checkInDayDataView.datas.Where(it => it.base_info.day_type == 0 && it.base_info.record_type == 1).ToList();
|
|
|
+ List<Root> workday_userRoots = checkInDayDataView.datas.Where(it => it.base_info.day_type == 0 && it.base_info.record_type == 1).ToList();
|
|
|
+
|
|
|
+
|
|
|
workday_userRoots = workday_userRoots.OrderBy(it => it.base_info.date).ToList();
|
|
|
|
|
|
|
|
@@ -93,7 +107,7 @@ namespace OASystem.API.OAMethodLib
|
|
|
foreach (var pm_wsInfo in pm_WageSheetDattaSources)
|
|
|
{
|
|
|
string itemName = userNames.Where(it => it.Id == pm_wsInfo.UserId).FirstOrDefault().CnName;
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
decimal meal_subsidy = 0.00M;
|
|
@@ -152,7 +166,6 @@ namespace OASystem.API.OAMethodLib
|
|
|
|
|
|
userRoots = userRoots.OrderBy(it => it.base_info.date).ToList();
|
|
|
|
|
|
-
|
|
|
int dk_work_days = userRoots.Count;
|
|
|
|
|
|
if (dk_work_days > work_days)
|
|
@@ -176,9 +189,14 @@ namespace OASystem.API.OAMethodLib
|
|
|
|
|
|
int user_probationary_bk_num = 0;
|
|
|
|
|
|
-
|
|
|
decimal user_probationary_bk_decimal = pm_wsInfo.Floats;
|
|
|
|
|
|
+
|
|
|
+ List<CheckInDataInfo> checkInData1 = new List<CheckInDataInfo>();
|
|
|
+ checkInData1 = checkInDataView.checkindata;
|
|
|
+ List<CheckInDataInfo> checkInDatas = new List<CheckInDataInfo>();
|
|
|
+ checkInDatas = checkInData1.Where(it => it.userid == acctid).ToList();
|
|
|
+
|
|
|
#region 迟到 早退 旷工
|
|
|
|
|
|
int user_cd_zt_num = 0;
|
|
@@ -408,6 +426,36 @@ namespace OASystem.API.OAMethodLib
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ foreach (var checkInData in checkInDatas)
|
|
|
+ {
|
|
|
+
|
|
|
+ int timeLong = 0;
|
|
|
+ string thisTime = string.Format(@"12:00:00");
|
|
|
+ string wcdkTime = checkInData.checkin_time_dt.ToString("HH:mm:ss");
|
|
|
+ DateTime wcdkDt = Convert.ToDateTime(wcdkTime);
|
|
|
+
|
|
|
+ if (Convert.ToDateTime(thisTime) > wcdkDt)
|
|
|
+ {
|
|
|
+ DateTime amDt = Convert.ToDateTime("09:00:00");
|
|
|
+ if (wcdkDt <= amDt)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DateTime pmDt = Convert.ToDateTime("18:00:00");
|
|
|
+ if (wcdkDt >= pmDt)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 假勤/补卡次数 审批
|