瀏覽代碼

考勤api优化

黑艺新账号
liangkun 1 年之前
父節點
當前提交
a0a714ca09
共有 2 個檔案被更改,包括 34 行新增15 行删除
  1. +4
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionEntity.cs
  2. +30
    -15
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionService.cs

+ 4
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionEntity.cs 查看文件

@@ -25,11 +25,15 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
/// </summary>
[Column("WORKTIME")]
public string WorkTime { get; set; }
[NotMapped]
public string UserWorkTime { get; set; }
/// <summary>
/// 下班时间
/// </summary>
[Column("CLOSETIME")]
public string CloseTime { get; set; }
[NotMapped]
public string UserCloseTime { get; set; }
/// <summary>
/// 签到时间开始
/// </summary>


+ 30
- 15
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/PersonnelManagement/ADR_Restriction/ADR_RestrictionService.cs 查看文件

@@ -442,7 +442,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
this.BaseRepository("CollegeMIS").ExecuteBySql("insert into ADR_Record(ID, UserNo, ADType, ADTime, ClockTime, ClockStatus, ClockPlace, ADYear, ADMonth, ADDay, ADPhoto,ALon,ALat,AIsOut,ARemark) values(" +
"'" + adrRecordEntity.ID + "','" + adrRecordEntity.UserNo + "','" + adrRecordEntity.ADType + "','" + adrRecordEntity.ADTime + "'," +
"'" + adrRecordEntity.ClockTime + "','" + adrRecordEntity.ClockStatus + "','" + adrRecordEntity.ClockPlace + "','" + adrRecordEntity.ADYear + "'," +
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "',"+adrRecordEntity.ALon+","+adrRecordEntity.ALat+","+adrRecordEntity.AIsOut+",'"+adrRecordEntity.ARemark+"')");
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "',"+adrRecordEntity.ALon+","+adrRecordEntity.ALat+",'"+adrRecordEntity.AIsOut+"','"+adrRecordEntity.ARemark+"')");
return true;
}
#endregion
@@ -557,7 +557,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
this.BaseRepository("CollegeMIS").ExecuteBySql("insert into ADR_Record(ID, UserNo, ADType, ADTime, ClockTime, ClockStatus, ClockPlace, ADYear, ADMonth, ADDay, ADPhoto,ALon,ALat,AIsOut,ARemark) values(" +
"'" + adrRecordEntity.ID + "','" + adrRecordEntity.UserNo + "','" + adrRecordEntity.ADType + "','" + adrRecordEntity.ADTime + "'," +
"'" + adrRecordEntity.ClockTime + "','" + adrRecordEntity.ClockStatus + "','" + adrRecordEntity.ClockPlace + "','" + adrRecordEntity.ADYear + "'," +
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "'," + adrRecordEntity.ALon + "," + adrRecordEntity.ALat + "," + adrRecordEntity.AIsOut + ",'" + adrRecordEntity.ARemark + "')");
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "'," + adrRecordEntity.ALon + "," + adrRecordEntity.ALat + ",'" + adrRecordEntity.AIsOut + "','" + adrRecordEntity.ARemark + "')");
return true;
}
}
@@ -647,7 +647,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
this.BaseRepository("CollegeMIS").ExecuteBySql("insert into ADR_Record(ID, UserNo, ADType, ADTime, ClockTime, ClockStatus, ClockPlace, ADYear, ADMonth, ADDay, ADPhoto,ALon,ALat,AIsOut,ARemark) values(" +
"'" + adrRecordEntity.ID + "','" + adrRecordEntity.UserNo + "','" + adrRecordEntity.ADType + "','" + adrRecordEntity.ADTime + "'," +
"'" + adrRecordEntity.ClockTime + "','" + adrRecordEntity.ClockStatus + "','" + adrRecordEntity.ClockPlace + "','" + adrRecordEntity.ADYear + "'," +
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "'," + adrRecordEntity.ALon + "," + adrRecordEntity.ALat + "," + adrRecordEntity.AIsOut + ",'" + adrRecordEntity.ARemark + "')");
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "'," + adrRecordEntity.ALon + "," + adrRecordEntity.ALat + ",'" + adrRecordEntity.AIsOut + "','" + adrRecordEntity.ARemark + "')");
}
return true;
}
@@ -1036,7 +1036,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
this.BaseRepository("CollegeMIS").ExecuteBySql("insert into ADR_Record(ID, UserNo, ADType, ADTime, ClockTime, ClockStatus, ClockPlace, ADYear, ADMonth, ADDay, ADPhoto,ALon,ALat,AIsOut,ARemark) values(" +
"'" + adrRecordEntity.ID + "','" + adrRecordEntity.UserNo + "','" + adrRecordEntity.ADType + "','" + adrRecordEntity.ADTime + "'," +
"'" + adrRecordEntity.ClockTime + "','" + adrRecordEntity.ClockStatus + "','" + adrRecordEntity.ClockPlace + "','" + adrRecordEntity.ADYear + "'," +
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "'," + adrRecordEntity.ALon + "," + adrRecordEntity.ALat + "," + adrRecordEntity.AIsOut + ",'" + adrRecordEntity.ARemark + "')");
"'" + adrRecordEntity.ADMonth + "','" + adrRecordEntity.ADDay + "','" + adrRecordEntity.ADPhoto + "'," + adrRecordEntity.ALon + "," + adrRecordEntity.ALat + ",'" + adrRecordEntity.AIsOut + "','" + adrRecordEntity.ARemark + "')");
return true;
}

@@ -1074,7 +1074,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
{
var adrresult = new ADR_RestrictionEntity();
var userinfo = LoginUserInfo.Get();
var empinfo = BaseRepository("").FindEntity<EmpInfoEntity>(m=>m.EmpNo==userinfo.account);
var empinfo = BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m=>m.EmpNo==userinfo.account);
//当前服务器日期
var datenow = DateTime.Now.ToString("yyyy-MM-dd");

@@ -1083,6 +1083,12 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement

//首先获取考勤规则
ADR_RestrictionEntity attendancerulEntity =null;
if (empinfo==null)
{
adrresult.AttendanceType = 5;
adrresult.AttendanceTypeString = "不在考勤时间范围";
return adrresult;
}
//代课老师全天可以考勤
if (empinfo.IsHasLesson==true)
{
@@ -1092,11 +1098,21 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
{
attendancerulEntity = this.BaseRepository("CollegeMIS").FindEntity<ADR_RestrictionEntity>(m => m.REnable == true && m.AType == 1);
}
//获取考勤日期
var listday = this.BaseRepository("CollegeMIS").FindList<ADR_RestrictionDayEntity>(m=>m.RId== attendancerulEntity.ID);
if (listday==null||listday.Count(m => m.WorkDay.ToString("yyyy-MM-dd")== datenow)==0)
{
adrresult.AttendanceType = 5;
adrresult.AttendanceTypeString = "不在考勤时间范围";
return adrresult;
}
//考勤范围
adrresult.GPSLon = attendancerulEntity.GPSLon;
adrresult.GPSLat = attendancerulEntity.GPSLat;
adrresult.GPSRange = attendancerulEntity.GPSRange;
adrresult.GPSAddr = attendancerulEntity.GPSAddr;
adrresult.WorkTime = attendancerulEntity.WorkTime;
adrresult.CloseTime = attendancerulEntity.CloseTime;
//上班时间
DateTime workDateTime = Convert.ToDateTime(datenow + " " + attendancerulEntity.WorkTime);
//上班考勤时间段
@@ -1108,7 +1124,6 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
//下班考勤时间段
DateTime signOutStartTime = Convert.ToDateTime(datenow + " " + attendancerulEntity.SignOutStartTime);
DateTime signOutEndTime = Convert.ToDateTime(datenow + " " + attendancerulEntity.SignOutEndTime);

//小于上班考勤开始时间或大于下班考勤结束时间,(超出打卡时间范围黄色)
if (datetimenow < signInStartTime || datetimenow > signOutEndTime)
{
@@ -1149,7 +1164,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
{
adrresult.AttendanceType = 3;
adrresult.AttendanceTypeString = "早退打卡";
adrresult.WorkTime = attendancerecordList.OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserWorkTime = attendancerecordList.OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
return adrresult;
}
//超过上班最晚签到时间 小于下班最早签退时间,黄色
@@ -1165,8 +1180,8 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
//更新最晚下班时间
adrresult.AttendanceType = 1;
adrresult.AttendanceTypeString = "正常打卡";
adrresult.WorkTime = attendancerecordList.Where(m=>m.ADType=="1").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.CloseTime = attendancerecordList.Where(m => m.ADType == "2").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserWorkTime = attendancerecordList.Where(m=>m.ADType=="1").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserCloseTime = attendancerecordList.Where(m => m.ADType == "2").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
return adrresult;
}
}
@@ -1204,7 +1219,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
{
adrresult.AttendanceType = 3;
adrresult.AttendanceTypeString = "早退打卡";
adrresult.WorkTime = attendancerecordList.OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserWorkTime = attendancerecordList.OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
return adrresult;
}
//超过上班最晚签到时间 小于中午下班最早签退时间,黄色
@@ -1220,8 +1235,8 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
//更新最晚下班时间
adrresult.AttendanceType = 1;
adrresult.AttendanceTypeString = "正常打卡";
adrresult.WorkTime = attendancerecordList.Where(m => m.ADType == "1").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.CloseTime = attendancerecordList.Where(m => m.ADType == "8").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserWorkTime = attendancerecordList.Where(m => m.ADType == "1").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserCloseTime = attendancerecordList.Where(m => m.ADType == "8").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
return adrresult;
}
//超过中午下班结束时间 小于中午上班开始时间
@@ -1246,8 +1261,8 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
{
adrresult.AttendanceType = 3;
adrresult.AttendanceTypeString = "早退打卡";
adrresult.WorkTime = attendancerecordList.Where(m => m.ADType == "7").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.CloseTime = attendancerecordList.Where(m => m.ADType == "8").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserWorkTime = attendancerecordList.Where(m => m.ADType == "7").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserCloseTime = attendancerecordList.Where(m => m.ADType == "8").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
return adrresult;
}
//下班 大于下班最早签退时间,小于 下班结束时间
@@ -1255,7 +1270,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement
{
adrresult.AttendanceType = 1;
adrresult.AttendanceTypeString = "正常打卡";
adrresult.WorkTime = attendancerecordList.Where(m => m.ADType == "7").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
adrresult.UserWorkTime = attendancerecordList.Where(m => m.ADType == "7").OrderByDescending(m => m.ADTime).First().ADTime.Value.ToString();
return adrresult;
}



Loading…
取消
儲存