LiGuang 3 năm trước cách đây
mục cha
commit
9c8626b10d

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

@@ -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 {

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -306,9 +306,11 @@ public class SysUserController {
 			user.setPassword(passwordEncode);
 			user.setStatus(1);
 			user.setDelFlag(CommonConstant.DEL_FLAG_0);
+
             String[] arr = selectedDeparts.split(",");
             boolean f=true;
             if(oConvertUtils.isNotEmpty(selectedDeparts)) {
+                user.setDepartIds(selectedDeparts);
                 for(String str:arr){
                     String pid = sysUserDepartService.getPid(str);
                     if (pid!=null&&!str.equals("34")&&!pid.equals("34")){
@@ -804,9 +806,11 @@ public class SysUserController {
                     sysUserExcel.setStatus(1);
                     sysUserExcel.setInfoSy(3);
                     boolean f=true;
+                    String depids="";
                     if(oConvertUtils.isNotEmpty(sysUserExcel.getOrgCodeTxt())) {
                         for(String str:sysUserExcel.getOrgCodeTxt().split(",")){
                             String departLis = departMapper.getDepartLis(str);
+                            depids+=departLis+",";
                             String pid = sysUserDepartService.getPid(departLis);
                             if (pid!=null&&!departLis.equals("34")&&!pid.equals("34")){
                                 f=false;
@@ -815,6 +819,7 @@ public class SysUserController {
                     }if (f){
                         sysUserExcel.setIsSalary("1");
                     }
+                    sysUserExcel.setDepartIds(depids);
                     try {
                         if (!"".equals(sysUserExcel.getRealname())&&sysUserExcel.getRealname()!=null){
                             if (!"".equals(sysUserExcel.getEmail())&&sysUserExcel.getEmail()!=null){