|
@@ -3390,13 +3390,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
LocalDateTime sDate = LocalDate.parse(startDate).atTime(LocalTime.MIN);
|
|
|
LocalDateTime eDate = LocalDate.parse(endDate).atTime(LocalTime.MIN);
|
|
|
List<LocalDateTime> dateTimeList = getDays(sDate, eDate);
|
|
|
- //去掉非工作日
|
|
|
- long days =dateTimeList.size();
|
|
|
- for (LocalDateTime localDateTime : dateTimeList) {
|
|
|
- if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
|
|
|
- days-=1;
|
|
|
- }
|
|
|
- }
|
|
|
User targetUser= userMapper.selectById(request.getHeader("token"));
|
|
|
TimeType timeType = timeTypeMapper.selectById(targetUser.getCompanyId());
|
|
|
Integer timeliness = timeType.getTimeliness();
|
|
@@ -3441,16 +3434,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", targetUser.getCompanyId()));
|
|
|
List<TimelinessRateVO> resultList=new ArrayList<>();
|
|
|
for (User user : userList){
|
|
|
+ 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.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))).collect(Collectors.toList());
|
|
|
- for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
- Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
|
|
|
- if(next.getDays()<1){
|
|
|
- days-=1;
|
|
|
- }else {
|
|
|
- days-=next.getDays();
|
|
|
+ if(leaveSheets.size()>0){
|
|
|
+ for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
+ Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
|
|
|
+ if(next.getDays()<1){
|
|
|
+ days-=1;
|
|
|
+ }else {
|
|
|
+ days-=next.getDays();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
|
|
@@ -3461,6 +3457,23 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
timelinessRateVO.setDepartmentName(first.get().getDepartmentName());
|
|
|
}
|
|
|
List<Map<String, Object>> mapList = listMap.get(user.getName());
|
|
|
+ //去填未填日报非工作日
|
|
|
+ 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));
|
|
|
+ return createDate.isEqual(localDateTime.toLocalDate());
|
|
|
+ })){
|
|
|
+ days-=1;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
|
|
|
+ days-=1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
if(mapList!=null){
|
|
|
int num=0;
|
|
|
for (Map<String, Object> map : mapList) {
|
|
@@ -3477,9 +3490,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
break;
|
|
|
}
|
|
|
if(createTimeDate.isBefore(createDate)||createTimeDate.isEqual(createDate)){
|
|
|
- num++;
|
|
|
+ if(!leaveSheets.stream().anyMatch(ls->(createTimeDate.isAfter(ls.getStartDate())||createTimeDate.isEqual(ls.getStartDate()))&&
|
|
|
+ (createTimeDate.isBefore(ls.getEndDate())||createTimeDate.isEqual(ls.getEndDate())))){
|
|
|
+ num++;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ System.out.println(user.getName());
|
|
|
+ System.out.println(days);
|
|
|
+ System.out.println(num);
|
|
|
BigDecimal bigDecimal=new BigDecimal(num);
|
|
|
BigDecimal divide;
|
|
|
if(days!=0){
|