|
@@ -388,9 +388,18 @@ public class UserFvTimeController {
|
|
}
|
|
}
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
|
|
TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
|
|
- List<UserFvTime> timeList = userFvTimeService.list(new QueryWrapper<UserFvTime>().between("work_date", startDate, endDate).eq("company_id", user.getCompanyId()).eq("user_id", user.getId()));
|
|
|
|
- double sum = timeList.stream().mapToDouble(UserFvTime::getWorkHours).sum();
|
|
|
|
- int workDayCount = WorkDayCalculateUtils.getWorkDaysCountInRange(startDate, endDate, timeType.getIncludeWeekends());
|
|
|
|
|
|
+ //根据配置决定是否过滤掉周末
|
|
|
|
+ List<LocalDate> workDaysListInRange = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, timeType.getIncludeWeekends());
|
|
|
|
+ List<UserFvTime> timeList = userFvTimeService.list(new QueryWrapper<UserFvTime>().in("work_date", workDaysListInRange).eq("company_id", user.getCompanyId()).eq("user_id", user.getId()));
|
|
|
|
+ double sum = 0;
|
|
|
|
+ for (LocalDate workDay : workDaysListInRange) {
|
|
|
|
+ if (timeList.stream().filter(tl -> tl.getWorkDate().equals(workDay)).count() == 0) {
|
|
|
|
+ sum += 8.0;
|
|
|
|
+ } else {
|
|
|
|
+ sum += timeList.stream().filter(tl -> tl.getWorkDate().equals(workDay)).findFirst().get().getWorkHours();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ int workDayCount = workDaysListInRange.size();
|
|
HashMap map = new HashMap();
|
|
HashMap map = new HashMap();
|
|
map.put("workHours", df.format(sum));
|
|
map.put("workHours", df.format(sum));
|
|
map.put("workDayCount", workDayCount);
|
|
map.put("workDayCount", workDayCount);
|
|
@@ -409,10 +418,19 @@ public class UserFvTimeController {
|
|
DecimalFormat df = new DecimalFormat("#0.0");
|
|
DecimalFormat df = new DecimalFormat("#0.0");
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
|
|
TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
|
|
- List<UserFvTime> userFvTimeList = userFvTimeService.list(new QueryWrapper<UserFvTime>().between("work_date", startDate, endDate).eq("company_id", user.getCompanyId()).eq("user_id", user.getId()));
|
|
|
|
- double sum=0;
|
|
|
|
- sum = userFvTimeList.stream().mapToDouble(UserFvTime::getWorkHours).sum();
|
|
|
|
- int workDayCount = WorkDayCalculateUtils.getWorkDaysCountInRange(startDate, endDate, timeType.getIncludeWeekends());
|
|
|
|
|
|
+ //根据配置决定是否过滤掉周末
|
|
|
|
+ List<LocalDate> workDaysListInRange = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, timeType.getIncludeWeekends());
|
|
|
|
+ List<UserFvTime> userFvTimeList = userFvTimeService.list(new QueryWrapper<UserFvTime>().in("work_date", workDaysListInRange).eq("company_id", user.getCompanyId()).eq("user_id", user.getId()));
|
|
|
|
+
|
|
|
|
+ double sum = 0;
|
|
|
|
+ for (LocalDate workDay : workDaysListInRange) {
|
|
|
|
+ if (userFvTimeList.stream().filter(tl -> tl.getWorkDate().equals(workDay)).count() == 0) {
|
|
|
|
+ sum += 8.0;
|
|
|
|
+ } else {
|
|
|
|
+ sum += userFvTimeList.stream().filter(tl -> tl.getWorkDate().equals(workDay)).findFirst().get().getWorkHours();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ int workDayCount = workDaysListInRange.size();
|
|
HashMap map = new HashMap();
|
|
HashMap map = new HashMap();
|
|
map.put("workHours", df.format(sum));
|
|
map.put("workHours", df.format(sum));
|
|
map.put("workDayCount", workDayCount);
|
|
map.put("workDayCount", workDayCount);
|