|
|
@@ -1092,6 +1092,11 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement |
|
|
|
{ |
|
|
|
attendancerulEntity = this.BaseRepository("CollegeMIS").FindEntity<ADR_RestrictionEntity>(m => m.REnable == true && m.AType == 1); |
|
|
|
} |
|
|
|
//考勤范围 |
|
|
|
adrresult.GPSLon = attendancerulEntity.GPSLon; |
|
|
|
adrresult.GPSLat = attendancerulEntity.GPSLat; |
|
|
|
adrresult.GPSRange = attendancerulEntity.GPSRange; |
|
|
|
adrresult.GPSAddr = attendancerulEntity.GPSAddr; |
|
|
|
//上班时间 |
|
|
|
DateTime workDateTime = Convert.ToDateTime(datenow + " " + attendancerulEntity.WorkTime); |
|
|
|
//上班考勤时间段 |
|
|
@@ -1404,5 +1409,80 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ADR_RestrictionEntity IsAttendanceStudent() |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
var adrresult = new ADR_RestrictionEntity(); |
|
|
|
var userinfo = LoginUserInfo.Get(); |
|
|
|
var stuInfoBasic = BaseRepository("").FindEntity<StuInfoBasicEntity>(m => m.StuNo == userinfo.account); |
|
|
|
//当前服务器日期 |
|
|
|
var datenow = DateTime.Now.ToString("yyyy-MM-dd"); |
|
|
|
|
|
|
|
var datetimenow = DateTime.Now; |
|
|
|
var StuNo = LoginUserInfo.Get().account; |
|
|
|
//首先获取考勤规则 |
|
|
|
ADR_RestrictionEntity attendancerulEntity = null; |
|
|
|
if (stuInfoBasic !=null) |
|
|
|
{ |
|
|
|
attendancerulEntity = this.BaseRepository("CollegeMIS") |
|
|
|
.FindEntity<ADR_RestrictionEntity>(m => m.REnable == true && m.AType == 2); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
adrresult.AttendanceType = 5; |
|
|
|
adrresult.AttendanceTypeString = "非学生用户不能签到"; |
|
|
|
return adrresult; |
|
|
|
} |
|
|
|
//考勤范围 |
|
|
|
adrresult.GPSLon = attendancerulEntity.GPSLon; |
|
|
|
adrresult.GPSLat = attendancerulEntity.GPSLat; |
|
|
|
adrresult.GPSRange = attendancerulEntity.GPSRange; |
|
|
|
adrresult.GPSAddr = attendancerulEntity.GPSAddr; |
|
|
|
//获取课表信息 |
|
|
|
//当前学年学期信息 |
|
|
|
var say=Common.GetSemesterAndYear(); |
|
|
|
//当天课程 |
|
|
|
var lessons = BaseRepository("").FindList<ArrangeLessonTermEntity>(m => m.AcademicYearNo == say.AcademicYearShort&&m.Semester==say.Semester |
|
|
|
&&m.DeptNo==stuInfoBasic.DeptNo&&m.MajorNo==stuInfoBasic.MajorNo&&m.TeachClassNo.Contains(stuInfoBasic.ClassNo)&&m.LessonDate.Value.ToString("yyyy-MM-dd") == datenow); |
|
|
|
//当前打卡课程判断 |
|
|
|
foreach (var arrangeLessonTermEntity in lessons) |
|
|
|
{ |
|
|
|
TimeSpan start = TimeSpan.Parse(arrangeLessonTermEntity.StartTime); |
|
|
|
int StuAttendanceEarliestMinute=string.IsNullOrEmpty(Util.Config.GetValue("StuAttendanceEarliestMinute"))?Convert.ToInt32(Util.Config.GetValue("StuAttendanceEarliestMinute")) :0; |
|
|
|
//当前时间小于等于上课时间,且大于开课前指定分钟 |
|
|
|
if (datetimenow.TimeOfDay<=start && datetimenow.TimeOfDay< start.Add(-TimeSpan.FromMinutes(StuAttendanceEarliestMinute))) |
|
|
|
{ |
|
|
|
adrresult.AttendanceType = 1; |
|
|
|
adrresult.AttendanceTypeString = "正常签到"; |
|
|
|
adrresult.LessonName = arrangeLessonTermEntity.LessonName; |
|
|
|
adrresult.StartTime = arrangeLessonTermEntity.StartTime; |
|
|
|
adrresult.EndTime = arrangeLessonTermEntity.EndTime; |
|
|
|
adrresult.EmpName = arrangeLessonTermEntity.EmpName; |
|
|
|
adrresult.Classroom = BaseRepository("").FindEntity<ClassroomInfoEntity>(m => m.ClassroomNo == arrangeLessonTermEntity.ClassroomNo)?.ClassroomName; |
|
|
|
return adrresult; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
adrresult.AttendanceType = 5; |
|
|
|
adrresult.AttendanceTypeString = "不在考勤时间范围"; |
|
|
|
return adrresult; |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
if (ex is ExceptionEx) |
|
|
|
{ |
|
|
|
throw; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
throw ExceptionEx.ThrowServiceException(ex); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |