LG88888888 3 years ago
parent
commit
bab952285d

+ 16 - 204
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/attendance/service/impl/AttendanceServiceImpl.java

@@ -47,177 +47,35 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             Calendar calendar = Calendar.getInstance();
-            String str="2021-10-01";
             calendar.setTime(sdf.parse(date));
             int year = calendar.get(calendar.YEAR);//年份
             int month = calendar.get(calendar.MONTH) + 1;//月份
             int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
             String cont = "2";
-            Boolean b=false;
-         calendar.add(Calendar.DAY_OF_MONTH,-1);
-        List<Map<String,Object>> todayUserShift = userShiftMapper.getOneUserShift(userid,sdf.format(calendar.getTime()),"");
-        calendar.add(Calendar.DAY_OF_MONTH,2);
-        List<Attendance> ae = attendanceMapper.queryList(userid, sdf.format(calendar.getTime()));//查询当前用户的打卡时间
-        List<Map<String,Object>> hou = userShiftMapper.getOneUserShift(userid,sdf.format(calendar.getTime()),"");
-        if (oneUserShift!=null&&oneUserShift.size()>0) {
-            if (todayUserShift.size()>0&&sd.parse(str + " " + todayUserShift.get(todayUserShift.size()-1).get("endDate").toString()).getTime()<sd.parse(str + " " + todayUserShift.get(todayUserShift.size()-1).get("startDate").toString()).getTime()){
-                if (attendances.size()>0&&attendances.get(0).getUsDate().getTime()<sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(0).get("startDate").toString()).getTime()){
-                    attendances.remove(0);
-                }
-            } if (attendances.size()>0) {//判断用户当前时间的打卡记录是否正常
-                if (oneUserShift.size()>0&&sd.parse(str+ " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()<sd.parse(str + " " + oneUserShift.get(oneUserShift.size()-1).get("startDate").toString()).getTime()) {
-                    if (!attendances.get(0).getExceptionType().equals("未打卡")){
-                        attendances.get(0).setCheckinType("上班打卡");
-
-                    if (attendances.get(0).getUsDate().getTime() > sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("startDate").toString()).getTime()) {
-                        attendances.get(0).setExceptionType("迟到");
-                        cont = "1";
-                    }
-                    if (ae.size() > 0) {
-                        ae.get(0).setCheckinType("次日下班打卡");
-                        if (ae.get(0).getUsDate().getTime() < sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime()) {
-                            ae.get(0).setExceptionType("早退");
-                            cont = "1";
-                            b = true;
-                        }
-                        if (hou.size() > 0) {
-                            if (ae.get(0).getUsDate().getTime() >= sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime() && ae.get(0).getUsDate().getTime() < sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + hou.get(hou.size() - 1).get("startDate").toString()).getTime()) {
-                                ae.get(0).setExceptionType("");
-                                b = true;
-                            } else {
-                                cont = "1";
-                            }
-                        }
-                        if (hou.size() < 1) {
-                            if (ae.get(0).getUsDate().getTime() > sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime()) {
-                                ae.get(0).setExceptionType("");
-                                b = true;
-                            }
-                        }
-                    } else {
-                        cont = "1";
-                        if (attendances.size() > 1) {
-                            attendances.get(attendances.size() - 1).setCheckinType("下班打卡");
-                            attendances.get(attendances.size() - 1).setExceptionType("早退");
-                        }
-                    }
-                }else {
-                        cont="1";
-                    }
+            if (oneUserShift!=null&&oneUserShift.size()>0){
+                if (attendances!=null&&attendances.size()>1){
+                    cont=exitprio(attendances);
                 }else {
-                    attendances.get(0).setCheckinType("上班打卡");
-
-                    if (attendances.size()<2){
-                        if (attendances.get(0).getUsDate().getTime()>sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("startDate").toString()).getTime()&&attendances.get(0).getUsDate().getTime()<sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()){
-                            attendances.get(0).setExceptionType("迟到");
-                            cont="1";
-                        }else if (attendances.get(0).getUsDate().getTime()>sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()){
-                            attendances.get(0).setCheckinType("下班打卡");
-                        }
-                    }else{
-                        attendances.get(attendances.size()-1).setCheckinType("下班打卡");
-
-                        if (attendances.get(0).getUsDate().getTime()>sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("startDate").toString()).getTime()&&attendances.get(0).getUsDate().getTime()<sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()){
-                            attendances.get(0).setExceptionType("迟到");
-                            cont="1";
-                        }if (attendances.get(0).getUsDate().getTime()>sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()){
-                            attendances.get(0).setCheckinType("下班打卡");
-                        }if (attendances.get(attendances.size()-1).getUsDate().getTime()<sd.parse(sdf.format(attendances.get(attendances.size()-1).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()){
-                            attendances.get(attendances.size()-1).setExceptionType("早退");
-                            cont="1";
-                        }
-                    }
+                    cont="1";
                 }
-                }else {
-                cont="1";
-                if (oneUserShift.size()>0&&sd.parse(str+ " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()<sd.parse(str + " " + oneUserShift.get(oneUserShift.size()-1).get("startDate").toString()).getTime()) {
-                     if (ae.size()>0){
-                        ae.get(0).setCheckinType("上班打卡");
-
-                        if (ae.get(0).getUsDate().getTime()<sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()) {
-                            ae.get(0).setExceptionType("迟到");
-                            b=true;
-                        }
-                        if (hou.size()>0){
-                            if (ae.get(0).getUsDate().getTime()>sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()&&ae.get(0).getUsDate().getTime()<sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + hou.get(hou.size()-1).get("startDate").toString()).getTime()) {
-                                ae.get(0).setCheckinType("次日下班打卡");
-
-                                b=true;
-                            }
-                        }if (hou.size()<1){
-                            if (ae.get(0).getUsDate().getTime()>sd.parse(sdf.format(ae.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size()-1).get("endDate").toString()).getTime()) {
-                                ae.get(0).setCheckinType("次日下班打卡");
-                                b=true;
-                            }
-                        }
-                    }else {
-                        cont="1";
-                    }
-
-                }
-
             }
 
-        }if (b){
-            attendances.add(ae.get(0));
-        }
-
         //----------------------------------------------------------------下面是获取当前月份所有天数的考勤-------------------------------------------------
             for (int i = 1; i <= actualMaximum; i++) {//循环获取时间月份的总天数
                 Attendance at = new Attendance();
                 at.setIss(i + "");//获取所有天数,前端js需要绑定的数据
                 String aDate = String.valueOf(year) + "-" + month + "-" + i;//循环拼接所有天数进行查询是否正常
-                calendar.setTime(sdf.parse(aDate));
                 List<Map<String,Object>> oneUserShifts = userShiftMapper.getOneUserShift(userid, aDate,"");
                 List<Attendance> acs = attendanceMapper.queryList(userid, aDate);
                 at.setIs("2");
-                calendar.add(Calendar.DAY_OF_MONTH,-1);
-                List<Map<String,Object>> todayUserShifts = userShiftMapper.getOneUserShift(userid,sdf.format(calendar.getTime()),"");
-                calendar.add(Calendar.DAY_OF_MONTH,2);
-                List<Attendance> aes = attendanceMapper.queryList(userid, sdf.format(calendar.getTime()));//查询当前用户的打卡时间
-                List<Map<String,Object>> hous = userShiftMapper.getOneUserShift(userid,sdf.format(calendar.getTime()),"");
-                if (oneUserShifts!=null&&oneUserShifts.size()>0) {
-                    if (todayUserShifts.size()>0&&sd.parse(str + " " + todayUserShifts.get(todayUserShifts.size()-1).get("endDate").toString()).getTime()<sd.parse(str + " " + todayUserShifts.get(todayUserShifts.size()-1).get("startDate").toString()).getTime()){
-                        if (acs.size()>0&&acs.get(0).getUsDate().getTime()<sd.parse(sdf.format(acs.get(0).getUsDate()) + " " + oneUserShifts.get(0).get("startDate").toString()).getTime()){
-                            acs.remove(0);
-                        }
-                    } if (acs.size()>0) {//判断用户当前时间的打卡记录是否正常
-                        if (oneUserShifts.size() > 0 && sd.parse(str + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("endDate").toString()).getTime() < sd.parse(str + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("startDate").toString()).getTime()) {
-                            if (acs.get(0).getUsDate().getTime() > sd.parse(sdf.format(acs.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("startDate").toString()).getTime()) {
-                                at.setIs("1");
-                            }
-                            if (aes.size() > 0) {
-                                if (aes.get(0).getUsDate().getTime() < sd.parse(sdf.format(aes.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("endDate").toString()).getTime()) {
-                                    at.setIs("1");
-                                }
-                                if (hous.size() > 0) {
-                                    if (aes.get(0).getUsDate().getTime() >=sd.parse(sdf.format(aes.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("endDate").toString()).getTime() && aes.get(0).getUsDate().getTime() < sd.parse(sdf.format(aes.get(0).getUsDate()) + " " + hous.get(hous.size() - 1).get("startDate").toString()).getTime()) {
-                                    } else {
-                                        at.setIs("1");
-                                    }
-                                }
-                            } else {
-                                at.setIs("1");
-                            }
-
-                        } else {
-                            if (acs.size() < 2) {
-                                if (acs.get(0).getUsDate().getTime() > sd.parse(sdf.format(acs.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("startDate").toString()).getTime() && acs.get(0).getUsDate().getTime() < sd.parse(sdf.format(acs.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("endDate").toString()).getTime()) {
-                                    at.setIs("1");
-                                }
-                            } else {
-                                if (acs.get(0).getUsDate().getTime() > sd.parse(sdf.format(acs.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("startDate").toString()).getTime() && acs.get(0).getUsDate().getTime() < sd.parse(sdf.format(acs.get(0).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("endDate").toString()).getTime()) {
-                                    at.setIs("1");
-                                }
-                                if (acs.get(acs.size() - 1).getUsDate().getTime() < sd.parse(sdf.format(acs.get(acs.size() - 1).getUsDate()) + " " + oneUserShifts.get(oneUserShifts.size() - 1).get("endDate").toString()).getTime()) {
-                                    at.setIs("1");
-                                }
-                            }
-                        }
+                if (oneUserShifts!=null&&oneUserShifts.size()>0){
+                    if (acs!=null&&acs.size()>1){
+                        at.setIs(exitprio(acs));
                     }else {
                         at.setIs("1");
                     }
-                    }
+                }
+
                     lit.add(at);
             }
             Vacation vacation = vacationMapper.vacation(userid, date);//获取当前用户的假期数据
@@ -244,62 +102,15 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
         int year = calendar.get(calendar.YEAR);//年份
         int month = calendar.get(calendar.MONTH) + 1;//月份
         int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
-        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String str="2021-10-01";
                 for (int i = 1; i <= actualMaximum; i++){
                     String aDate = String.valueOf(year)+"-"+month+"-"+i;
-                    calendar.setTime(sdf.parse(aDate));
                     List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, aDate,"");
                     List<Attendance> attendances = attendanceMapper.queryList(userid, aDate);
-                    calendar.add(Calendar.DAY_OF_MONTH,-1);
-                    List<Map<String,Object>> todayUserShifts = userShiftMapper.getOneUserShift(userid,sdf.format(calendar.getTime()),"");
-                    calendar.add(Calendar.DAY_OF_MONTH,2);
-                    List<Attendance> aes = attendanceMapper.queryList(userid, sdf.format(calendar.getTime()));//查询当前用户的打卡时间
-                    List<Map<String,Object>> hous = userShiftMapper.getOneUserShift(userid,sdf.format(calendar.getTime()),"");
-                    if (oneUserShift!=null&&oneUserShift.size()>0) {
-                        if (todayUserShifts.size()>0&&sd.parse(str + " " + todayUserShifts.get(todayUserShifts.size()-1).get("endDate").toString()).getTime()<sd.parse(str + " " + todayUserShifts.get(todayUserShifts.size()-1).get("startDate").toString()).getTime()){
-                            if (attendances.size()>0&&attendances.get(0).getUsDate().getTime()<sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(0).get("startDate").toString()).getTime()){
-                                attendances.remove(0);
-                            }
-                        } if (attendances.size()>0) {//判断用户当前时间的打卡记录是否正常
-                            if (oneUserShift.size() > 0 && sd.parse(str + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime() < sd.parse(str + " " + oneUserShift.get(oneUserShift.size() - 1).get("startDate").toString()).getTime()) {
-                                if (attendances.get(0).getUsDate().getTime() > sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("startDate").toString()).getTime()) {
-                                    sum="1";
-                                    break;
-                                }
-                                if (aes.size() > 0) {
-                                    if (aes.get(0).getUsDate().getTime() < sd.parse(sdf.format(aes.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime()) {
-                                        sum="1";
-                                        break;
-                                    }
-                                    if (hous.size() > 0) {
-                                        if (aes.get(0).getUsDate().getTime() >=sd.parse(sdf.format(aes.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime() && aes.get(0).getUsDate().getTime() < sd.parse(sdf.format(aes.get(0).getUsDate()) + " " + hous.get(hous.size() - 1).get("startDate").toString()).getTime()) {
-                                        } else {
-                                            sum="1";
-                                            break;
-                                        }
-                                    }
-                                } else {
-                                    sum="1";
-                                    break;
-                                }
-
-                            } else {
-                                if (attendances.size() < 2) {
-                                    if (attendances.get(0).getUsDate().getTime() > sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("startDate").toString()).getTime() && attendances.get(0).getUsDate().getTime() < sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime()) {
-                                        sum="1";
-                                        break;
-                                    }
-                                } else {
-                                    if (attendances.get(0).getUsDate().getTime() > sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("startDate").toString()).getTime() && attendances.get(0).getUsDate().getTime() < sd.parse(sdf.format(attendances.get(0).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime()) {
-                                        sum="1";
-                                        break;
-                                    }
-                                    if (attendances.get(attendances.size() - 1).getUsDate().getTime() < sd.parse(sdf.format(attendances.get(attendances.size() - 1).getUsDate()) + " " + oneUserShift.get(oneUserShift.size() - 1).get("endDate").toString()).getTime()) {
-                                        sum="1";
-                                        break;
-                                    }
-                                }
+                    if (oneUserShift!=null&&oneUserShift.size()>0){
+                        if (attendances!=null&&attendances.size()>1){
+                            String exitprio = exitprio(attendances);
+                            if (exitprio.equals("1")){
+                                break;
                             }
                         }else {
                             sum="1";
@@ -307,6 +118,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                         }
                     }
 
+
                 }
 
         return sum;
@@ -348,7 +160,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
     public String exitprio(List<Attendance>ls){
         Attendance attendance = ls.get(0);
         Attendance attendance1 = ls.get(ls.size() - 1);
-        if (attendance.getExceptionType()!=null &&attendance1.getExceptionType()!=null){
+        if (!attendance.getExceptionType().equals("正常") &&!attendance1.getExceptionType().equals("正常")){
             return "1";
         }else {
             return "2";