|
@@ -35,6 +35,7 @@ import java.lang.reflect.Field;
|
|
import java.lang.reflect.Method;
|
|
import java.lang.reflect.Method;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
+import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Matcher;
|
|
@@ -129,6 +130,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
|
|
|
String userId = String.valueOf(request.getHeader("Token"));
|
|
String userId = String.valueOf(request.getHeader("Token"));
|
|
|
|
+ if (taskDto.getStartDate()!=null && taskDto.getEndDate()!=null) {
|
|
|
|
+ if (taskDto.getStartDate().isAfter(taskDto.getEndDate())) {
|
|
|
|
+ httpRespMsg.setError("任务是结束时间不能早于开始时间!");
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
if (user==null){
|
|
if (user==null){
|
|
httpRespMsg.setError("无法获取创建人信息!");
|
|
httpRespMsg.setError("无法获取创建人信息!");
|
|
@@ -143,13 +150,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
BeanUtils.copyProperties(taskDto,task);
|
|
BeanUtils.copyProperties(taskDto,task);
|
|
task.setCreateDate(LocalDateTime.now());//任务的创建时间
|
|
task.setCreateDate(LocalDateTime.now());//任务的创建时间
|
|
//根据任务的开始时间与当下时间判断任务的状态
|
|
//根据任务的开始时间与当下时间判断任务的状态
|
|
- if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isAfter(LocalDate.now())){
|
|
|
|
|
|
+ if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isAfter(LocalDateTime.now())){
|
|
// task.setStatus(0);
|
|
// task.setStatus(0);
|
|
//20250116 未开始状态废弃,默认进行中
|
|
//20250116 未开始状态废弃,默认进行中
|
|
task.setStatus(1);
|
|
task.setStatus(1);
|
|
- }else if (taskDto.getEndDate()!=null&&taskDto.getEndDate().isBefore(LocalDate.now())){
|
|
|
|
|
|
+ }else if (taskDto.getEndDate()!=null&&taskDto.getEndDate().isBefore(LocalDateTime.now())){
|
|
task.setStatus(3);
|
|
task.setStatus(3);
|
|
- } else if (taskDto.getStartDate()!=null&&(taskDto.getStartDate().isBefore(LocalDate.now())||taskDto.getStartDate().isEqual(LocalDate.now()))&&taskDto.getEndDate()!=null&&(taskDto.getEndDate().isAfter(LocalDate.now())||taskDto.getEndDate().isEqual(LocalDate.now()))) {
|
|
|
|
|
|
+ } else if (taskDto.getStartDate()!=null&&(taskDto.getStartDate().isBefore(LocalDateTime.now())||taskDto.getStartDate().isEqual(LocalDateTime.now()))&&taskDto.getEndDate()!=null&&(taskDto.getEndDate().isAfter(LocalDateTime.now())||taskDto.getEndDate().isEqual(LocalDateTime.now()))) {
|
|
task.setStatus(1);
|
|
task.setStatus(1);
|
|
}
|
|
}
|
|
task.setCreaterName(user.getName());
|
|
task.setCreaterName(user.getName());
|
|
@@ -277,6 +284,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
public HttpRespMsg updateTask(TaskDto taskDto, HttpServletRequest request) {
|
|
public HttpRespMsg updateTask(TaskDto taskDto, HttpServletRequest request) {
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
String token = String.valueOf(request.getHeader("Token"));
|
|
String token = String.valueOf(request.getHeader("Token"));
|
|
|
|
+ if (taskDto.getStartDate()!=null && taskDto.getEndDate()!=null) {
|
|
|
|
+ if (taskDto.getStartDate().isAfter(taskDto.getEndDate())) {
|
|
|
|
+ msg.setError("任务是结束时间不能早于开始时间!");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
User user = userMapper.selectById(token);
|
|
User user = userMapper.selectById(token);
|
|
if (user==null){
|
|
if (user==null){
|
|
msg.setError("无法获取创建人信息!");
|
|
msg.setError("无法获取创建人信息!");
|
|
@@ -300,13 +313,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
msg.setError("请保证时间段的顺序性");
|
|
msg.setError("请保证时间段的顺序性");
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
- if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isAfter(LocalDate.now())){
|
|
|
|
|
|
+ if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isAfter(LocalDateTime.now())){
|
|
// task.setStatus(0);
|
|
// task.setStatus(0);
|
|
//20250116 未开始状态废弃,默认进行中
|
|
//20250116 未开始状态废弃,默认进行中
|
|
task.setStatus(1);
|
|
task.setStatus(1);
|
|
- }else if (taskDto.getEndDate()!=null&&taskDto.getEndDate().isBefore(LocalDate.now())){
|
|
|
|
|
|
+ }else if (taskDto.getEndDate()!=null&&taskDto.getEndDate().isBefore(LocalDateTime.now())){
|
|
task.setStatus(3);
|
|
task.setStatus(3);
|
|
- } else if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isBefore(LocalDate.now())&&taskDto.getEndDate()!=null&&taskDto.getEndDate().isAfter(LocalDate.now()))
|
|
|
|
|
|
+ } else if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isBefore(LocalDateTime.now())&&taskDto.getEndDate()!=null&&taskDto.getEndDate().isAfter(LocalDateTime.now()))
|
|
{
|
|
{
|
|
task.setStatus(1);
|
|
task.setStatus(1);
|
|
}
|
|
}
|
|
@@ -609,15 +622,30 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
if(cell != null && cell.getCellTypeEnum() != CellType.BLANK){
|
|
if(cell != null && cell.getCellTypeEnum() != CellType.BLANK){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
try {
|
|
try {
|
|
- int count = Integer.parseInt(cell.getStringCellValue());
|
|
|
|
- // Excel中的日期序列号的基准日期是1900年1月1日
|
|
|
|
|
|
+// double count = Double.parseDouble(cell.getStringCellValue());
|
|
|
|
+// // Excel中的日期序列号的基准日期是1900年1月1日
|
|
|
|
+// LocalDateTime baseDate = LocalDateTime.of(1900, 1, 1,0,0,0);
|
|
|
|
+// LocalDateTime dateTime = baseDate.plusDays(count-2);// Excel的基准日期是1900年1月0日,所以需要减去2天
|
|
|
|
+// task.setStartDate(dateTime);
|
|
|
|
+ // 将字符串转换为 double
|
|
|
|
+ double excelDate = Double.parseDouble(cell.getStringCellValue());
|
|
|
|
+
|
|
|
|
+ // 计算日期部分
|
|
LocalDate baseDate = LocalDate.of(1900, 1, 1);
|
|
LocalDate baseDate = LocalDate.of(1900, 1, 1);
|
|
- LocalDate date = baseDate.plusDays(count - 2); // Excel的基准日期是1900年1月0日,所以需要减去2天
|
|
|
|
- task.setStartDate(date);
|
|
|
|
|
|
+ LocalDate date = baseDate.plusDays((int) excelDate - 2); // 减去 2 天,因为 Excel 基准日期是 1900年1月1日
|
|
|
|
+
|
|
|
|
+ // 计算时间部分
|
|
|
|
+ double timeFraction = excelDate - Math.floor(excelDate); // 获取小数部分
|
|
|
|
+ LocalTime time = LocalTime.ofSecondOfDay((long) (timeFraction * 86400)); // 86400 是一天的秒数
|
|
|
|
+
|
|
|
|
+ // 合并日期和时间
|
|
|
|
+ LocalDateTime dateTime = LocalDateTime.of(date, time);
|
|
|
|
+ task.setStartDate(dateTime);
|
|
|
|
+
|
|
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- System.out.println("日期时间格式不正确,应该是yyyy/MM/dd" );
|
|
|
|
- msg.setError("日期时间格式不正确,应该是yyyy/MM/dd");
|
|
|
|
|
|
+ System.out.println("日期时间格式不正确,应该是yyyy/MM/dd HH:mm:ss" );
|
|
|
|
+ msg.setError("日期时间格式不正确,应该是yyyy/MM/dd HH:mm:ss");
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -627,15 +655,29 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
if(cell != null && cell.getCellTypeEnum() != CellType.BLANK){
|
|
if(cell != null && cell.getCellTypeEnum() != CellType.BLANK){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
try {
|
|
try {
|
|
- int count = Integer.parseInt(cell.getStringCellValue());
|
|
|
|
|
|
+ /*int count = Integer.parseInt(cell.getStringCellValue());
|
|
// Excel中的日期序列号的基准日期是1900年1月1日
|
|
// Excel中的日期序列号的基准日期是1900年1月1日
|
|
|
|
+ LocalDateTime baseDate = LocalDateTime.of(1900, 1, 1,0,0,0);
|
|
|
|
+ LocalDateTime dateTime = baseDate.plusDays(count-2);// Excel的基准日期是1900年1月0日,所以需要减去2天
|
|
|
|
+ task.setEndDate(dateTime);*/
|
|
|
|
+ // 将字符串转换为 double
|
|
|
|
+ double excelDate = Double.parseDouble(cell.getStringCellValue());
|
|
|
|
+
|
|
|
|
+ // 计算日期部分
|
|
LocalDate baseDate = LocalDate.of(1900, 1, 1);
|
|
LocalDate baseDate = LocalDate.of(1900, 1, 1);
|
|
- LocalDate date = baseDate.plusDays(count - 2); // Excel的基准日期是1900年1月0日,所以需要减去2天
|
|
|
|
- task.setEndDate(date);
|
|
|
|
|
|
+ LocalDate date = baseDate.plusDays((int) excelDate - 2); // 减去 2 天,因为 Excel 基准日期是 1900年1月1日
|
|
|
|
+
|
|
|
|
+ // 计算时间部分
|
|
|
|
+ double timeFraction = excelDate - Math.floor(excelDate); // 获取小数部分
|
|
|
|
+ LocalTime time = LocalTime.ofSecondOfDay((long) (timeFraction * 86400)); // 86400 是一天的秒数
|
|
|
|
+
|
|
|
|
+ // 合并日期和时间
|
|
|
|
+ LocalDateTime dateTime = LocalDateTime.of(date, time);
|
|
|
|
+ task.setEndDate(dateTime);
|
|
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- System.out.println("日期时间格式不正确,应该是yyyy/MM/dd" );
|
|
|
|
- msg.setError("日期时间格式不正确,应该是yyyy/MM/dd");
|
|
|
|
|
|
+ System.out.println("日期时间格式不正确,应该是yyyy/MM/dd HH:mm:ss" );
|
|
|
|
+ msg.setError("日期时间格式不正确,应该是yyyy/MM/dd HH:mm:ss");
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -833,13 +875,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
msg.setError("任务:"+task.getTaskName()+"中客户/"+str+"/销售订单不应一同存在");
|
|
msg.setError("任务:"+task.getTaskName()+"中客户/"+str+"/销售订单不应一同存在");
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
- if (task.getStartDate()!=null&&task.getStartDate().isAfter(LocalDate.now())){
|
|
|
|
|
|
+ if (task.getStartDate()!=null&&task.getStartDate().isAfter(LocalDateTime.now())){
|
|
// task.setStatus(0);
|
|
// task.setStatus(0);
|
|
//20250116 未开始状态废弃,默认进行中
|
|
//20250116 未开始状态废弃,默认进行中
|
|
task.setStatus(1);
|
|
task.setStatus(1);
|
|
- }else if (task.getEndDate()!=null&&task.getEndDate().isBefore(LocalDate.now())){
|
|
|
|
|
|
+ }else if (task.getEndDate()!=null&&task.getEndDate().isBefore(LocalDateTime.now())){
|
|
task.setStatus(3);
|
|
task.setStatus(3);
|
|
- } else if (task.getStartDate()!=null&&task.getStartDate().isBefore(LocalDate.now())&&task.getEndDate()!=null&&task.getEndDate().isAfter(LocalDate.now()))
|
|
|
|
|
|
+ } else if (task.getStartDate()!=null&&task.getStartDate().isBefore(LocalDateTime.now())&&task.getEndDate()!=null&&task.getEndDate().isAfter(LocalDateTime.now()))
|
|
{
|
|
{
|
|
task.setStatus(1);
|
|
task.setStatus(1);
|
|
}
|
|
}
|
|
@@ -1036,18 +1078,18 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
}
|
|
}
|
|
else if(model.equals("startDate")){
|
|
else if(model.equals("startDate")){
|
|
if (tasKVo.getStartDate()!=null){
|
|
if (tasKVo.getStartDate()!=null){
|
|
- LocalDate startDate = tasKVo.getStartDate();
|
|
|
|
|
|
+ LocalDateTime startDate = tasKVo.getStartDate();
|
|
// 定义日期时间格式
|
|
// 定义日期时间格式
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
// 格式化为字符串
|
|
// 格式化为字符串
|
|
value= startDate.format(formatter);
|
|
value= startDate.format(formatter);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if(model.equals("endDate")){
|
|
else if(model.equals("endDate")){
|
|
if (tasKVo.getEndDate()!=null){
|
|
if (tasKVo.getEndDate()!=null){
|
|
- LocalDate endDate = tasKVo.getEndDate();
|
|
|
|
|
|
+ LocalDateTime endDate = tasKVo.getEndDate();
|
|
// 定义日期时间格式
|
|
// 定义日期时间格式
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
// 格式化为字符串
|
|
// 格式化为字符串
|
|
value= endDate.format(formatter);
|
|
value= endDate.format(formatter);
|
|
}
|
|
}
|
|
@@ -1101,7 +1143,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
if(0 == taskDto.getStatus()){
|
|
if(0 == taskDto.getStatus()){
|
|
//重启相关判断
|
|
//重启相关判断
|
|
//重启的任务必须要修改开始时间为当前日期之后
|
|
//重启的任务必须要修改开始时间为当前日期之后
|
|
- LocalDate nowDate = LocalDate.now();
|
|
|
|
|
|
+ LocalDateTime nowDate = LocalDateTime.now();
|
|
if(taskDto.getStartDate().isBefore(nowDate)){
|
|
if(taskDto.getStartDate().isBefore(nowDate)){
|
|
msg.setError("开始日期不能早于当前日期");
|
|
msg.setError("开始日期不能早于当前日期");
|
|
return msg;
|
|
return msg;
|
|
@@ -1217,18 +1259,18 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
}
|
|
}
|
|
else if(model.equals("startDate")){
|
|
else if(model.equals("startDate")){
|
|
if (tasKVo.getStartDate()!=null){
|
|
if (tasKVo.getStartDate()!=null){
|
|
- LocalDate startDate = tasKVo.getStartDate();
|
|
|
|
|
|
+ LocalDateTime startDate = tasKVo.getStartDate();
|
|
// 定义日期时间格式
|
|
// 定义日期时间格式
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
// 格式化为字符串
|
|
// 格式化为字符串
|
|
value= startDate.format(formatter);
|
|
value= startDate.format(formatter);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if(model.equals("endDate")){
|
|
else if(model.equals("endDate")){
|
|
if (tasKVo.getEndDate()!=null){
|
|
if (tasKVo.getEndDate()!=null){
|
|
- LocalDate endDate = tasKVo.getEndDate();
|
|
|
|
|
|
+ LocalDateTime endDate = tasKVo.getEndDate();
|
|
// 定义日期时间格式
|
|
// 定义日期时间格式
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
// 格式化为字符串
|
|
// 格式化为字符串
|
|
value= endDate.format(formatter);
|
|
value= endDate.format(formatter);
|
|
}
|
|
}
|
|
@@ -1436,6 +1478,153 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
return respMsg;
|
|
return respMsg;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HttpRespMsg getTaskListByStartAndEnd( String startDate, String endDate, HttpServletRequest request) {
|
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
|
+ String token = String.valueOf(request.getHeader("Token"));
|
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
|
+ Integer companyId = user.getCompanyId();
|
|
|
|
+ boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部任务");
|
|
|
|
+ boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门任务");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 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);
|
|
|
|
+
|
|
|
|
+ Integer departmentId=null;
|
|
|
|
+ String executor=null;
|
|
|
|
+
|
|
|
|
+ if (isAll){
|
|
|
|
+ departmentId=null;
|
|
|
|
+ }
|
|
|
|
+ else if (isNotAll){
|
|
|
|
+ departmentId= user.getDepartmentId();//找出对应的部门id
|
|
|
|
+ }else {
|
|
|
|
+ executor=user.getId();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ List<TaskDto> taskDtoList= taskMapper.getTaskListByStartAndEnd(parseStartDate,parseEndDate,departmentId,executor,companyId);
|
|
|
|
+
|
|
|
|
+ /*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);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 遍历任务,填充到对应的日期
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //自定义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) {
|
|
|
|
+ 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) {
|
|
|
|
+ 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);
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
+ msg.setData(taskDtoList);
|
|
|
|
+ return msg;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
public void updateTaskRepeatConfigure(Task task){
|
|
public void updateTaskRepeatConfigure(Task task){
|
|
task.setRepeatType(null).setRepeatEndNever(null).setRepeatEndCount(null)
|
|
task.setRepeatType(null).setRepeatEndNever(null).setRepeatEndCount(null)
|
|
.setRepeatEndDate(null).setRepeatDesignDay(null).setRepeatDesignSameday(null)
|
|
.setRepeatEndDate(null).setRepeatDesignDay(null).setRepeatDesignSameday(null)
|