|
@@ -11,6 +11,7 @@ import com.management.platform.entity.*;
|
|
|
import com.management.platform.entity.dto.TaskDto;
|
|
|
import com.management.platform.entity.vo.DailyTaskVO;
|
|
|
import com.management.platform.entity.vo.TasKVo;
|
|
|
+import com.management.platform.entity.vo.TimeTaskVO;
|
|
|
import com.management.platform.mapper.*;
|
|
|
import com.management.platform.service.*;
|
|
|
import com.management.platform.util.ExcelUtil;
|
|
@@ -1479,6 +1480,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
|
DateTimeFormatter formatterDate = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ DateTimeFormatter formatterTime = DateTimeFormatter.ofPattern("HH:mm");
|
|
|
LocalDateTime parseStartDate = LocalDateTime.parse(startDate + " 00:00", formatter);
|
|
|
LocalDateTime parseEndDate = LocalDateTime.parse(endDate + " 00:00", formatter).plusDays(1L);
|
|
|
|
|
@@ -1496,59 +1498,116 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
}
|
|
|
List<TaskDto> taskDtoList= taskMapper.getTaskListByStartAndEnd(parseStartDate,parseEndDate,departmentId,executor,companyId);
|
|
|
|
|
|
- // 使用LinkedHashMap保持日期顺序
|
|
|
- Map<LocalDate, List<TaskDto>> dailyTasks = new LinkedHashMap<>();
|
|
|
+ if (type==1||type==2) {
|
|
|
+ // 使用LinkedHashMap保持日期顺序
|
|
|
+ Map<LocalDate, List<TaskDto>> dailyTasks = new LinkedHashMap<>();
|
|
|
+
|
|
|
+ // 生成从startDate到endDate的所有日期,并初始化空列表
|
|
|
+ LocalDate parseStart = LocalDate.parse(startDate, formatterDate);
|
|
|
+ LocalDate parseEnd = LocalDate.parse(endDate, formatterDate);
|
|
|
+ LocalDate currentDate = parseStart;
|
|
|
+ while (!currentDate.isAfter(parseEnd)) {
|
|
|
+ dailyTasks.put(currentDate, new ArrayList<>());
|
|
|
+ currentDate = currentDate.plusDays(1);
|
|
|
+ }
|
|
|
|
|
|
- // 生成从startDate到endDate的所有日期,并初始化空列表
|
|
|
- LocalDate parseStart = LocalDate.parse(startDate, formatterDate);
|
|
|
- LocalDate parseEnd = LocalDate.parse(endDate, formatterDate);
|
|
|
- LocalDate currentDate = parseStart;
|
|
|
- while (!currentDate.isAfter(parseEnd)) {
|
|
|
- dailyTasks.put(currentDate, new ArrayList<>());
|
|
|
- currentDate = currentDate.plusDays(1);
|
|
|
- }
|
|
|
+ // 遍历任务,填充到对应的日期
|
|
|
+ for (TaskDto task : taskDtoList) {
|
|
|
+ // 根据实际字段获取任务日期,例如getExecuteDate()
|
|
|
+ LocalDateTime taskStartDate = task.getStartDate();
|
|
|
+ LocalDateTime taskEndDate = task.getEndDate();
|
|
|
+ if (taskStartDate != null && taskEndDate != null) {
|
|
|
+ LocalDate task_start = LocalDate.from(taskStartDate);
|
|
|
+ LocalDate task_end = LocalDate.from(taskEndDate);
|
|
|
+ for (Map.Entry<LocalDate, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
+ LocalDate date = entry.getKey(); // 获取日期
|
|
|
+ List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
+ if (date.isAfter(task_start) && date.isBefore(task_end) || date.isEqual(task_start)) {
|
|
|
+ tasks.add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (taskStartDate == null && taskEndDate != null) {
|
|
|
+ LocalDate task_end = LocalDate.from(taskEndDate);
|
|
|
+ for (Map.Entry<LocalDate, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
+ LocalDate date = entry.getKey(); // 获取日期
|
|
|
+ List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
+ if (date.isEqual(task_end)) {
|
|
|
+ tasks.add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (taskStartDate != null) {
|
|
|
+ LocalDate task_start = LocalDate.from(taskStartDate);
|
|
|
+ for (Map.Entry<LocalDate, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
+ LocalDate date = entry.getKey(); // 获取日期
|
|
|
+ List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
+ if (date.isEqual(task_start)) {
|
|
|
+ tasks.add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-// 遍历任务,填充到对应的日期
|
|
|
- for (TaskDto task : taskDtoList) {
|
|
|
- // 根据实际字段获取任务日期,例如getExecuteDate()
|
|
|
- LocalDateTime taskStartDate = task.getStartDate();
|
|
|
- LocalDateTime taskEndDate = task.getEndDate();
|
|
|
- if (taskStartDate!=null && taskEndDate!=null){
|
|
|
- LocalDate task_start = LocalDate.from(taskStartDate);
|
|
|
- LocalDate task_end = LocalDate.from(taskEndDate);
|
|
|
- for (Map.Entry<LocalDate, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
- LocalDate date = entry.getKey(); // 获取日期
|
|
|
- List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
- if (date.isAfter(task_start)&&date.isBefore(task_end)||date.isEqual(task_start)){
|
|
|
- tasks.add(task);
|
|
|
+ }
|
|
|
+ //自定义DTO类
|
|
|
+ List<DailyTaskVO> result = dailyTasks.entrySet().stream()
|
|
|
+ .map(entry -> new DailyTaskVO(entry.getKey(), entry.getValue()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ msg.setData(result);
|
|
|
+ } else {
|
|
|
+ // 使用LinkedHashMap保持日期顺序
|
|
|
+ Map<LocalTime, List<TaskDto>> dailyTasks = new LinkedHashMap<>();
|
|
|
+
|
|
|
+ // 生成从startDate到endDate的所有日期,并初始化空列表
|
|
|
+ LocalTime startTime = LocalTime.of(6, 0);
|
|
|
+ LocalTime endTime = LocalTime.of(23, 0);
|
|
|
+
|
|
|
+ LocalTime currentTime = startTime;
|
|
|
+ while (!currentTime.isAfter(endTime)) {
|
|
|
+ dailyTasks.put(currentTime, new ArrayList<>());
|
|
|
+ currentTime = currentTime.plusMinutes(30);
|
|
|
+ }
|
|
|
+ // 遍历任务,填充到对应的日期
|
|
|
+ for (TaskDto task : taskDtoList) {
|
|
|
+ // 根据实际字段获取任务日期,例如getExecuteDate()
|
|
|
+ LocalDateTime taskStartDate = task.getStartDate();
|
|
|
+ LocalDateTime taskEndDate = task.getEndDate();
|
|
|
+ if (taskStartDate != null && taskEndDate != null) {
|
|
|
+ LocalTime task_start = LocalTime.from(taskStartDate);
|
|
|
+ LocalTime task_end = LocalTime.from(taskEndDate);
|
|
|
+ for (Map.Entry<LocalTime, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
+ LocalTime date = entry.getKey(); // 获取日期
|
|
|
+ List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
+ if (date.isAfter(task_start) && date.isBefore(task_end) || date.equals(task_start)) {
|
|
|
+ tasks.add(task);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- } else if (taskStartDate == null && taskEndDate != null ) {
|
|
|
- LocalDate task_end = LocalDate.from(taskEndDate);
|
|
|
- for (Map.Entry<LocalDate, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
- LocalDate date = entry.getKey(); // 获取日期
|
|
|
- List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
- if (date.isEqual(task_end)){
|
|
|
- tasks.add(task);
|
|
|
+ else if (taskStartDate == null && taskEndDate != null) {
|
|
|
+ LocalTime task_end = LocalTime.from(taskEndDate);
|
|
|
+ for (Map.Entry<LocalTime, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
+ LocalTime date = entry.getKey(); // 获取日期
|
|
|
+ List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
+ if (date.equals(task_end)) {
|
|
|
+ tasks.add(task);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }else if (taskStartDate != null) {
|
|
|
- LocalDate task_start = LocalDate.from(taskStartDate);
|
|
|
- for (Map.Entry<LocalDate, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
- LocalDate date = entry.getKey(); // 获取日期
|
|
|
- List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
- if (date.isEqual(task_start)){
|
|
|
- tasks.add(task);
|
|
|
+ else if (taskStartDate != null) {
|
|
|
+ LocalTime task_start = LocalTime.from(taskStartDate);
|
|
|
+ for (Map.Entry<LocalTime, List<TaskDto>> entry : dailyTasks.entrySet()) {
|
|
|
+ LocalTime date = entry.getKey(); // 获取日期
|
|
|
+ List<TaskDto> tasks = entry.getValue(); // 获取任务列表
|
|
|
+ if (date.equals(task_start)) {
|
|
|
+ tasks.add(task);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ //自定义DTO类
|
|
|
+ List<TimeTaskVO> result = dailyTasks.entrySet().stream()
|
|
|
+ .map(entry -> new TimeTaskVO(entry.getKey(), entry.getValue()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ msg.setData(result);
|
|
|
}
|
|
|
- //自定义DTO类
|
|
|
- List<DailyTaskVO> result = dailyTasks.entrySet().stream()
|
|
|
- .map(entry -> new DailyTaskVO(entry.getKey(), entry.getValue()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- msg.setData(result);
|
|
|
return msg;
|
|
|
|
|
|
}
|