yurk 2 years ago
parent
commit
6316f8beac

+ 11 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -5934,8 +5934,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<Map<String,Object>> dataList=new ArrayList<>();
             long days =dateTimeList.size();
             List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(user.getId())
-                    &&((ls.getStartDate().isAfter(ChronoLocalDate.from(sDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(sDate)))&&(ls.getStartDate().isBefore(ChronoLocalDate.from(eDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(eDate))))
-                    &&((ls.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))&&(ls.getEndDate().isAfter(ChronoLocalDate.from(sDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(sDate))))).collect(Collectors.toList());
+                    &&((ls.getStartDate().isBefore(ChronoLocalDate.from(eDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(eDate))))
+                    &&((ls.getEndDate().isAfter(ChronoLocalDate.from(sDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(sDate))))).collect(Collectors.toList());
             TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
             timelinessRateVO.setUserName(user.getName());
             timelinessRateVO.setJobNumber(user.getJobNumber());
@@ -5949,6 +5949,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             //去掉填非工作日
             for (LocalDateTime localDateTime : dateTimeList) {
                 if(mapList!=null){
+                    //在非工作日下 填报了的情况下 及时填报了就算作及时率计算的基数
                     if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())&&!mapList.stream().anyMatch(ml->{
                         Object date = ml.get("createDate");
                         LocalDate createDate = LocalDate.parse(String.valueOf(date));
@@ -5964,7 +5965,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
             }
             //请假的不参与及时率统计
-            //todo: 此处对请假的 数据做处理 计请假填报
+            //todo: 此处对请假的 数据做处理 计请假填报 去除请假日期中的需要填报的日期
             long daysWithLeave =days;
             if(leaveSheets.size()>0){
                 for (LeaveSheet leaveSheet : leaveSheets) {
@@ -5974,7 +5975,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }else{
                         days-=leaveSheet.getTimeDays();
                     }
+                    System.out.println(leaveDateList.size());
                     for (LocalDateTime localDateTime : leaveDateList) {
+                        //todo: 请假区间当中有非工作日在之前被当作 不需填报 所以要加上 保证基数正确
+                        if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
+                            days+=1;
+                            continue;
+                        }
                         if(localDateTime.isBefore(sDate)||localDateTime.isAfter(eDate)){
                             days++;
                             continue;
@@ -5994,6 +6001,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
             }
             int num=0;
+            System.out.println(days);
             if(mapList!=null){
                 for (Map<String, Object> map : mapList) {
                     Map<String,Object> objectMap=new HashMap<>();