|
@@ -5294,8 +5294,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.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))).collect(Collectors.toList());
|
|
|
+ &&(ls.getStartDate().isBefore(ChronoLocalDate.from(sDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(sDate)))
|
|
|
+ &&(ls.getEndDate().isAfter(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))).collect(Collectors.toList());
|
|
|
TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
|
|
|
timelinessRateVO.setUserName(user.getName());
|
|
|
timelinessRateVO.setJobNumber(user.getJobNumber());
|
|
@@ -5315,15 +5315,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
days-=leaveSheet.getTimeDays();
|
|
|
}
|
|
|
for (LocalDateTime localDateTime : leaveDateList) {
|
|
|
+ if(localDateTime.isBefore(sDate)||localDateTime.isAfter(eDate)){
|
|
|
+ days++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
if(mapList!=null&&mapList.stream().anyMatch(ml->{
|
|
|
Object date = ml.get("createDate");
|
|
|
LocalDate createDate = LocalDate.parse(String.valueOf(date));
|
|
|
return createDate.isEqual(localDateTime.toLocalDate());
|
|
|
})){
|
|
|
+ days++;
|
|
|
+ }else{
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
map.put(localDateTime.toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),"请假");
|
|
|
dataList.add(map);
|
|
|
- days++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -5379,7 +5384,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
dataList.add(objectMap);
|
|
|
}
|
|
|
- timelinessRateVO.setDataList(dataList);
|
|
|
BigDecimal bigDecimal=new BigDecimal(num);
|
|
|
BigDecimal divide;
|
|
|
if(days!=0){
|
|
@@ -5398,7 +5402,30 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
String number = dft.format(divide);
|
|
|
timelinessRateVO.setTimelinessRate(String.valueOf(number));
|
|
|
+ }else {
|
|
|
+ int num=0;
|
|
|
+ BigDecimal bigDecimal=new BigDecimal(num);
|
|
|
+ BigDecimal divide;
|
|
|
+ if(days!=0){
|
|
|
+ divide = bigDecimal.divide(BigDecimal.valueOf(days), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }else if(days==0&&num!=0){
|
|
|
+ divide=new BigDecimal(1);
|
|
|
+ //查看当天有请假直接算100%
|
|
|
+ }else if (days==0&&num!=0&&leaveSheetList.size()>0){
|
|
|
+ divide=new BigDecimal(1);
|
|
|
+ }else if(leaveSheets.size()>0){
|
|
|
+ divide=new BigDecimal(1);
|
|
|
+ }else{
|
|
|
+ divide=new BigDecimal(0);
|
|
|
+ }
|
|
|
+ if(divide.compareTo(new BigDecimal(1))==1){
|
|
|
+ divide=new BigDecimal(1);
|
|
|
+ log.error("填报及时率数据异常:==="+user.getName());
|
|
|
+ }
|
|
|
+ String number = dft.format(divide);
|
|
|
+ timelinessRateVO.setTimelinessRate(String.valueOf(number));
|
|
|
}
|
|
|
+ timelinessRateVO.setDataList(dataList);
|
|
|
resultList.add(timelinessRateVO);
|
|
|
}
|
|
|
HashMap map=new HashMap();
|
|
@@ -6524,9 +6551,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
for (TaskGroup taskGroup : taskGroupList) {
|
|
|
taskGroup.setProjectId(project.getId());
|
|
|
- Optional<TaskGroup> first = groupList.stream().filter(gl -> gl.getTaskGroupCode() != null && gl.getTaskGroupCode().equals(taskGroup.getTaskGroupCode())).findFirst();
|
|
|
- if(first.isPresent()){
|
|
|
- taskGroup.setId(first.get().getId());
|
|
|
+ if(groupList!=null){
|
|
|
+ Optional<TaskGroup> first = groupList.stream().filter(gl -> gl.getTaskGroupCode() != null && gl.getTaskGroupCode().equals(taskGroup.getTaskGroupCode())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ taskGroup.setId(first.get().getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
taskGroupService.saveOrUpdateBatch(taskGroupList);
|