|
@@ -80,13 +80,19 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
if (attendanceRule.getType().equals("1")){//判断规则类型1,固定时间上下班
|
|
|
if (jq.equals("1")){//优先判断是否存在法定节假日
|
|
|
if (attendances != null && attendances.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(attendances).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
- cont = "1";
|
|
|
+ Date startDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getStartDate()), sd);
|
|
|
+ Date endDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getEndDate()), sd);
|
|
|
+ Date usStartDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(0).getUsDate()), sd);
|
|
|
+ Date usEndDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
|
|
|
+ if (exitprio(attendances).get("type").equals("1")){//判断打卡记录是否异常,1,异常
|
|
|
+ cont="1";
|
|
|
+ Map<String, Object> exitprio = exitprio(attendances);
|
|
|
+ if (exitprio.get("at")!=null&&exitprio.get("at").equals("2")){
|
|
|
+ attendances.get(0).setHolidayType(sdt.format(attendanceRule.getStartDate()));
|
|
|
+ }if (exitprio.get("at2")!=null&&exitprio.get("at2").equals("2")){
|
|
|
+ attendances.get(attendances.size() - 1).setHolidayType(sdt.format(attendanceRule.getEndDate()));
|
|
|
+ }
|
|
|
} else {
|
|
|
- Date startDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getStartDate()), sd);
|
|
|
- Date endDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getEndDate()), sd);
|
|
|
- Date usStartDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(0).getUsDate()), sd);
|
|
|
- Date usEndDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
|
|
|
if (usStartDate.getTime() > startDate.getTime()) {
|
|
|
cont = "1";
|
|
|
attendances.get(0).setExceptionType("时间异常");
|
|
@@ -112,13 +118,20 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
}
|
|
|
if (state.equals("2") || jq.equals("1")) {//在工作日内
|
|
|
if (attendances != null && attendances.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(attendances).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
- cont = "1";
|
|
|
- } else {
|
|
|
- Date startDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getStartDate()), sd);
|
|
|
- Date endDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getEndDate()), sd);
|
|
|
- Date usStartDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(0).getUsDate()), sd);
|
|
|
- Date usEndDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
|
|
|
+ Date startDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getStartDate()), sd);
|
|
|
+ Date endDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getEndDate()), sd);
|
|
|
+ Date usStartDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(0).getUsDate()), sd);
|
|
|
+ Date usEndDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
|
|
|
+ if (exitprio(attendances).get("type").equals("1")){//判断打卡记录是否异常,1,异常
|
|
|
+ cont="1";
|
|
|
+ Map<String, Object> exitprio = exitprio(attendances);
|
|
|
+ if (exitprio.get("at")!=null&&exitprio.get("at").equals("2")){
|
|
|
+ attendances.get(0).setHolidayType(sdt.format(attendanceRule.getStartDate()));
|
|
|
+ }if (exitprio.get("at2")!=null&&exitprio.get("at2").equals("2")){
|
|
|
+ attendances.get(attendances.size() - 1).setHolidayType(sdt.format(attendanceRule.getEndDate()));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+
|
|
|
if (usStartDate.getTime() > startDate.getTime()) {
|
|
|
cont = "1";
|
|
|
attendances.get(0).setExceptionType("时间异常");
|
|
@@ -138,13 +151,19 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, date,"");
|
|
|
if (oneUserShift!=null&&oneUserShift.size()>0&&!oneUserShift.get(0).get("id").equals("0")){
|
|
|
if (attendances!=null&&attendances.size()>1){//判断打卡记录是否有上下班
|
|
|
- if (exitprio(attendances).equals("1")){//判断打卡记录是否异常,1,异常
|
|
|
+ Date startDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("startDate"), sd);
|
|
|
+ Date endDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("endDate"), sd);
|
|
|
+ Date usStartDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(0).getUsDate()), sd);
|
|
|
+ Date usEndDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
|
|
|
+ if (exitprio(attendances).get("type").equals("1")){//判断打卡记录是否异常,1,异常
|
|
|
cont="1";
|
|
|
+ Map<String, Object> exitprio = exitprio(attendances);
|
|
|
+ if (exitprio.get("at")!=null&&exitprio.get("at").equals("2")){
|
|
|
+ attendances.get(0).setHolidayType(oneUserShift.get(0).get("startDate").toString());
|
|
|
+ }if (exitprio.get("at2")!=null&&exitprio.get("at2").equals("2")){
|
|
|
+ attendances.get(attendances.size() - 1).setHolidayType(oneUserShift.get(0).get("endDate").toString());
|
|
|
+ }
|
|
|
}else {
|
|
|
- Date startDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("startDate"), sd);
|
|
|
- Date endDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("endDate"), sd);
|
|
|
- Date usStartDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(0).getUsDate()), sd);
|
|
|
- Date usEndDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
|
|
|
if (usStartDate.getTime()>startDate.getTime()){
|
|
|
cont="1";
|
|
|
attendances.get(0).setExceptionType("时间异常");
|
|
@@ -210,7 +229,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
if (jqw.equals("1")){//优先判断是否存在法定节假日
|
|
|
at.setNotes("班");
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
at.setIs("1");
|
|
|
} else {
|
|
|
Date startDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getStartDate()), sd);
|
|
@@ -237,7 +256,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
if (state.equals("2")) {//在工作日内
|
|
|
at.setNotes("班");
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
at.setIs("1");
|
|
|
} else {
|
|
|
Date startDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getStartDate()), sd);
|
|
@@ -263,7 +282,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
}else {
|
|
|
at.setNotes("班");
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
at.setIs("1");
|
|
|
} else {
|
|
|
Date startDate = DateUtils.str2Date("2021-10-21 " + oneUserShift.get(0).get("startDate"), sd);
|
|
@@ -303,7 +322,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
if (states.equals("2")) {
|
|
|
at.setNotes("班");
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
at.setIs("1");
|
|
|
}
|
|
|
} else {
|
|
@@ -356,7 +375,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
if (attendanceRule.getType().equals("1")) {//判断规则类型1,固定时间上下班
|
|
|
if (jqw.equals("1")) {//优先判断是否存在法定节假日
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
sum = "1";
|
|
|
break;
|
|
|
} else {
|
|
@@ -385,7 +404,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
}
|
|
|
if (state.equals("2")) {//在工作日内
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
sum = "1";
|
|
|
break;
|
|
|
} else {
|
|
@@ -411,7 +430,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
|
|
|
} else {
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
sum = "1";
|
|
|
break;
|
|
|
} else {
|
|
@@ -433,7 +452,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
} else if (attendanceRule.getType().equals("3")) {//规则类型 3,自由上下班
|
|
|
if (jqw.equals("1")) {//优先判断是否存在法定节假日
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
sum = "1";
|
|
|
break;
|
|
|
}
|
|
@@ -454,7 +473,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
|
|
|
if (states.equals("2")) {
|
|
|
if (acs != null && acs.size() > 1) {//判断打卡记录是否有上下班
|
|
|
- if (exitprio(acs).equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
+ if (exitprio(acs).get("type").equals("1")) {//判断打卡记录是否异常,1,异常
|
|
|
sum = "1";
|
|
|
break;
|
|
|
}
|
|
@@ -503,14 +522,22 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public String exitprio(List<Attendance>ls){
|
|
|
+ public Map<String,Object> exitprio(List<Attendance>ls){
|
|
|
Attendance attendance = ls.get(0);
|
|
|
Attendance attendance1 = ls.get(ls.size() - 1);
|
|
|
- if (!attendance.getExceptionType().equals("正常") &&!attendance1.getExceptionType().equals("正常")){
|
|
|
- return "1";
|
|
|
+ Map<String,Object>map=new HashMap<>();
|
|
|
+ if (attendance.getExceptionType().equals("正常") &&attendance1.getExceptionType().equals("正常")){
|
|
|
+ map.put("type","2");
|
|
|
}else {
|
|
|
- return "2";
|
|
|
+ map.put("type","1");
|
|
|
+ if (attendance.getExceptionType().equals("时间异常")){
|
|
|
+ map.put("at","2");
|
|
|
+ }if (attendance1.getExceptionType().equals("时间异常")){
|
|
|
+ map.put("at2","2");
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
public Boolean exitTime(String startDate,String endDate) throws ParseException {
|