Commit b8745147 by 谢春璐

fix

parent bc08f3ed
......@@ -7,11 +7,14 @@ import java.time.LocalDateTime;
import java.time.Month;
import java.time.YearMonth;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.poi.ss.usermodel.DateUtil;
......@@ -116,7 +119,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
}
public static String[] WEEK_DAYS_ZJ = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
public static String[] WEEK_DAYS_ZJ = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
/**
* 根据日期获取星期几
......@@ -330,5 +333,25 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
return dates;
}
/**
* 获取指定两个日期之间的所有日期
*/
public static List<String> getAllDatesOfTwoDate(String start, String end) {
List<String> list = new ArrayList<>();
LocalDate startDate = LocalDate.parse(start);
LocalDate endDate = LocalDate.parse(end);
long distance = ChronoUnit.DAYS.between(startDate, endDate);
Stream.iterate(startDate, d -> {
return d.plusDays(1);
}).limit(distance + 1).forEach(f -> {
list.add(f.toString());
});
return list;
}
}
......@@ -122,10 +122,27 @@ public class FileServiceImpl implements FileService {
ArrayList<String> titleList = new ArrayList<>();
titleList.add("姓名");
titleList.addAll(staffList.stream().max(Comparator.comparing(staff -> staff.getWorkCheckList().size())).get()
.getWorkCheckList().stream().map(workCheck ->
DateUtils.format(DateUtils.parseDate(workCheck.getDate()), DateUtils.yyyyMMdd1).concat("(")
.concat(DateUtils.getWeekday(DateUtils.parseDate(workCheck.getDate())))
// 取打卡记录中最早日期和最晚日期为标题的开始日期和结束日期
String start = staffList.stream().min(Comparator.comparing(staff -> staff.getWorkCheckList().get(0).getDate()))
.get()
.getWorkCheckList().get(0).getDate();
List<WorkCheck> workCheckList = staffList.stream()
.max(Comparator
.comparing(staff -> staff.getWorkCheckList().get(staff.getWorkCheckList().size() - 1).getDate()))
.get()
.getWorkCheckList();
String end = workCheckList.get(workCheckList.size() - 1).getDate();
List<String> dateStrs = DateUtils
.getAllDatesOfTwoDate(DateUtils.format(DateUtils.parseDate(start), DateUtils.yyyyMMdd),
DateUtils.format(DateUtils.parseDate(end), DateUtils.yyyyMMdd));
titleList.addAll(dateStrs.stream().map(d ->
d.concat("(")
.concat(DateUtils.getWeekday(DateUtils.parseDate(d)))
.concat(")")
).collect(Collectors.toList()));
......@@ -149,7 +166,8 @@ public class FileServiceImpl implements FileService {
.equalsIgnoreCase(Integer.toString(7));
for (WorkCheck check : staff.getWorkCheckList()) {
if (title.substring(0, title.indexOf("(")).equalsIgnoreCase(check.getDate())) {
if (title.substring(0, title.indexOf("(")).equalsIgnoreCase(
DateUtils.format(DateUtils.parseDate(check.getDate()), DateUtils.yyyyMMdd))) {
String detail = "";
if (!isWeekend) {
......
......@@ -3,6 +3,7 @@ package com.zanchina.check;
import com.zanchina.check.common.DateUtils;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
......@@ -18,7 +19,9 @@ public class CheckApplicationTests {
Date d1 = DateUtils.parseDate("9:00", DateUtils.HHmm);
Date d2 = DateUtils.parseDate("2018/06/19 9:00", DateUtils.yyyyMMddHHmm1);
System.out.print(d1.before(d2));
List<String> allDatesOfTwoDate = DateUtils.getAllDatesOfTwoDate("2018-06-30", "2018-07-15");
System.out.print(allDatesOfTwoDate);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment