|
@@ -35,6 +35,7 @@ import java.lang.reflect.Field;
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.regex.Matcher;
|
|
@@ -143,13 +144,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
BeanUtils.copyProperties(taskDto,task);
|
|
|
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);
|
|
|
//20250116 未开始状态废弃,默认进行中
|
|
|
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);
|
|
|
- } 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.setCreaterName(user.getName());
|
|
@@ -300,13 +301,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
msg.setError("请保证时间段的顺序性");
|
|
|
return msg;
|
|
|
}
|
|
|
- if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isAfter(LocalDate.now())){
|
|
|
+ if (taskDto.getStartDate()!=null&&taskDto.getStartDate().isAfter(LocalDateTime.now())){
|
|
|
// task.setStatus(0);
|
|
|
//20250116 未开始状态废弃,默认进行中
|
|
|
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);
|
|
|
- } 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);
|
|
|
}
|
|
@@ -609,15 +610,30 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
if(cell != null && cell.getCellTypeEnum() != CellType.BLANK){
|
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
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 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) {
|
|
|
- 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;
|
|
|
}
|
|
|
}
|
|
@@ -627,15 +643,29 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
if(cell != null && cell.getCellTypeEnum() != CellType.BLANK){
|
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
try {
|
|
|
- int count = Integer.parseInt(cell.getStringCellValue());
|
|
|
+ /*int count = Integer.parseInt(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.setEndDate(dateTime);*/
|
|
|
+ // 将字符串转换为 double
|
|
|
+ double excelDate = Double.parseDouble(cell.getStringCellValue());
|
|
|
+
|
|
|
+ // 计算日期部分
|
|
|
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) {
|
|
|
- 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;
|
|
|
}
|
|
|
}
|
|
@@ -833,13 +863,13 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
msg.setError("任务:"+task.getTaskName()+"中客户/"+str+"/销售订单不应一同存在");
|
|
|
return msg;
|
|
|
}
|
|
|
- if (task.getStartDate()!=null&&task.getStartDate().isAfter(LocalDate.now())){
|
|
|
+ if (task.getStartDate()!=null&&task.getStartDate().isAfter(LocalDateTime.now())){
|
|
|
// task.setStatus(0);
|
|
|
//20250116 未开始状态废弃,默认进行中
|
|
|
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);
|
|
|
- } 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);
|
|
|
}
|
|
@@ -1036,18 +1066,18 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
}
|
|
|
else if(model.equals("startDate")){
|
|
|
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);
|
|
|
}
|
|
|
}
|
|
|
else if(model.equals("endDate")){
|
|
|
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);
|
|
|
}
|
|
@@ -1101,7 +1131,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
if(0 == taskDto.getStatus()){
|
|
|
//重启相关判断
|
|
|
//重启的任务必须要修改开始时间为当前日期之后
|
|
|
- LocalDate nowDate = LocalDate.now();
|
|
|
+ LocalDateTime nowDate = LocalDateTime.now();
|
|
|
if(taskDto.getStartDate().isBefore(nowDate)){
|
|
|
msg.setError("开始日期不能早于当前日期");
|
|
|
return msg;
|
|
@@ -1217,18 +1247,18 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
|
}
|
|
|
else if(model.equals("startDate")){
|
|
|
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);
|
|
|
}
|
|
|
}
|
|
|
else if(model.equals("endDate")){
|
|
|
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);
|
|
|
}
|