Forráskód Böngészése

针对凡己科技的考勤限制做出调整:全天请假不可填报,其他情况不限制考勤

seyason 1 éve
szülő
commit
0b46cc0192

+ 54 - 22
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -1556,26 +1556,74 @@ public class ReportController {
                 }
             }
         }
+        //针对填写日报
+        if (!createDate[0].contains("@")) {
+            if (company.getId() == 3918) {
+                List<UserCorpwxTime> cardTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("corpwx_userid", user.getCorpwxUserid()).eq("create_date", createDate[0]));
+                //凡己科技,提交时仅针对请假的时候做限制
+                for (Report r : reportList) {
+                    Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
+                    if (first.isPresent()) {
+                        if (first.get().getAskLeaveTime() >= comTimeType.getAllday()) {
+                            HttpRespMsg msg = new HttpRespMsg();
+                            msg.setError(dtf.format(r.getCreateDate())+"全天请假,不可填报");
+                            return msg;
+                        }
+                    }
+                }
+            }
+        }
+
 
         if (createDate[0].contains("@") && targetUserList == null) {
             //个人批量填报,判断是否需要考勤校验
             if (comTimeType.getSyncCorpwxTime() == 1) {
                 String[] dateArr = createDate[0].split("@");
                 List<UserCorpwxTime> cardTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("corpwx_userid", user.getCorpwxUserid()).between("create_date", dateArr[0], dateArr[1]));
-                //提交日报时,考勤记录不能为空或时长为0
-                if (comTimeType.getNotAllowedNoAttendance() == 1 && draft == 0) {
+                if (company.getId() == 3918) {
+                    //凡己科技,提交时仅针对请假的时候做限制
+                    for (Report r : reportList) {
+                        Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
+                        if (first.isPresent()) {
+                            if (first.get().getAskLeaveTime() >= comTimeType.getAllday()) {
+                                HttpRespMsg msg = new HttpRespMsg();
+                                msg.setError(dtf.format(r.getCreateDate())+"全天请假,不可填报");
+                                return msg;
+                            }
+                        }
+                    }
+                } else {
+                    //提交日报时,考勤记录不能为空或时长为0
+                    if (comTimeType.getNotAllowedNoAttendance() == 1 && draft == 0) {
+                        String str = "";
+                        for (Report r : reportList) {
+                            Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
+                            if (first.isPresent()) {
+                                if (first.get().getWorkHours() == 0) {
+                                    str += dtf.format(r.getCreateDate()) + ",";
+                                }
+                            } else {
+                                str += dtf.format(r.getCreateDate()) + ",";
+                            }
+                        }
+                        //有无考勤的日期
+                        if (str.length() > 0) {
+                            str = str.substring(0, str.length()-1);
+                            HttpRespMsg msg = new HttpRespMsg();
+                            msg.setError(MessageUtils.message("report.lackCardTime", str));
+                            return msg;
+                        }
+                    }
                     String str = "";
                     for (Report r : reportList) {
                         Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
                         if (first.isPresent()) {
-                            if (first.get().getWorkHours() == 0) {
+                            double cardTime = first.get().getWorkHours();
+                            if (r.getWorkingTime() > cardTime) {
                                 str += dtf.format(r.getCreateDate()) + ",";
                             }
-                        } else {
-                            str += dtf.format(r.getCreateDate()) + ",";
                         }
                     }
-                    //有无考勤的日期
                     if (str.length() > 0) {
                         str = str.substring(0, str.length()-1);
                         HttpRespMsg msg = new HttpRespMsg();
@@ -1583,22 +1631,6 @@ public class ReportController {
                         return msg;
                     }
                 }
-                String str = "";
-                for (Report r : reportList) {
-                    Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCreateDate().isEqual(r.getCreateDate())).findFirst();
-                    if (first.isPresent()) {
-                        double cardTime = first.get().getWorkHours();
-                        if (r.getWorkingTime() > cardTime) {
-                            str += dtf.format(r.getCreateDate()) + ",";
-                        }
-                    }
-                }
-                if (str.length() > 0) {
-                    str = str.substring(0, str.length()-1);
-                    HttpRespMsg msg = new HttpRespMsg();
-                    msg.setError(MessageUtils.message("report.lackCardTime", str));
-                    return msg;
-                }
             }
         }
         //更新填报时间