|
@@ -330,6 +330,100 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
informationService.saveBatch(informationArrayList);
|
|
informationService.saveBatch(informationArrayList);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ else {
|
|
|
|
+ if (task.getStartDate()!=null) {
|
|
|
|
+ if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
|
|
|
|
+ ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
|
|
|
|
+ LocalDateTime startDate = task.getStartDate();
|
|
|
|
+ Integer repeatEndCount=0;//重复几次
|
|
|
|
+ LocalDate repeatEndDate=null;//重复到某个日期
|
|
|
|
+ //repeatType 重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
|
|
|
|
+ if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
|
|
|
|
+ Integer repeatType = task.getRepeatType();
|
|
|
|
+ Integer repeatDesignSameday = task.getRepeatDesignSameday();
|
|
|
|
+ //重复结束在几次之后
|
|
|
|
+ if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
|
|
|
|
+ repeatEndCount = task.getRepeatEndCount();
|
|
|
|
+ } else if (task.getRepeatEndDate()!=null) {
|
|
|
|
+ repeatEndDate=task.getRepeatEndDate();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (repeatEndCount!=null) {
|
|
|
|
+ for (int i = 1; i <= repeatEndCount; i++) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = startDate.plusDays(i);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = startDate.plusWeeks(i);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = startDate.plusMonths(i);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (repeatEndDate!=null) {
|
|
|
|
+ LocalDateTime repeatDate=startDate;
|
|
|
|
+ while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = repeatDate.plusDays(1L);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = repeatDate.plusWeeks(1L);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = repeatDate.plusMonths(1L);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
|
|
|
|
+
|
|
|
|
+ String repeatDesignDay = task.getRepeatDesignDay();
|
|
|
|
+ if (StringUtils.isNotEmpty(repeatDesignDay)) {
|
|
|
|
+ String[] strings = repeatDesignDay.split(",");
|
|
|
|
+ List<String> list = Arrays.asList(strings);
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ repeatDate=startDate.plusDays(Integer.parseInt(s));
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ taskRemindService.saveBatch(taskRemindList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -509,6 +603,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
lwq.eq(TaskExecutor::getTaskId,taskDto.getId());
|
|
lwq.eq(TaskExecutor::getTaskId,taskDto.getId());
|
|
taskExecutorMapper.delete(lwq);
|
|
taskExecutorMapper.delete(lwq);
|
|
|
|
|
|
|
|
+ taskRemindService.remove(new QueryWrapper<TaskRemind>().eq("task_id",taskDto.getId()));
|
|
if (StringUtils.isNotEmpty(taskDto.getExecutorId())){
|
|
if (StringUtils.isNotEmpty(taskDto.getExecutorId())){
|
|
String[] executorIds = taskDto.getExecutorId().split(",");
|
|
String[] executorIds = taskDto.getExecutorId().split(",");
|
|
for (String executorId : executorIds) {
|
|
for (String executorId : executorIds) {
|
|
@@ -519,9 +614,195 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
.setExecutorName(selectedUser.getName())
|
|
.setExecutorName(selectedUser.getName())
|
|
.setCompanyId(user.getCompanyId());
|
|
.setCompanyId(user.getCompanyId());
|
|
taskExecutorMapper.insert(taskExecutor);
|
|
taskExecutorMapper.insert(taskExecutor);
|
|
|
|
+ if (task.getStartDate()!=null) {
|
|
|
|
+ if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
|
|
|
|
+ ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
|
|
|
|
+ LocalDateTime startDate = task.getStartDate();
|
|
|
|
+ Integer repeatEndCount=0;//重复几次
|
|
|
|
+ LocalDate repeatEndDate=null;//重复到某个日期
|
|
|
|
+ //repeatType 重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
|
|
|
|
+ if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
|
|
|
|
+ Integer repeatType = task.getRepeatType();
|
|
|
|
+ Integer repeatDesignSameday = task.getRepeatDesignSameday();
|
|
|
|
+ //重复结束在几次之后
|
|
|
|
+ if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
|
|
|
|
+ repeatEndCount = task.getRepeatEndCount();
|
|
|
|
+ } else if (task.getRepeatEndDate()!=null) {
|
|
|
|
+ repeatEndDate=task.getRepeatEndDate();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (repeatEndCount!=null) {
|
|
|
|
+ for (int i = 1; i <= repeatEndCount; i++) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(executorId);
|
|
|
|
+ taskRemind.setExecutorName(selectedUser.getName());
|
|
|
|
+ taskRemind.setWxOpenid(selectedUser.getWxOpenid());
|
|
|
|
+ taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = startDate.plusDays(i);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = startDate.plusWeeks(i);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = startDate.plusMonths(i);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(selectedUser.getDepartmentId());
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (repeatEndDate!=null) {
|
|
|
|
+ LocalDateTime repeatDate=startDate;
|
|
|
|
+ while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(executorId);
|
|
|
|
+ taskRemind.setExecutorName(selectedUser.getName());
|
|
|
|
+ taskRemind.setWxOpenid(selectedUser.getWxOpenid());
|
|
|
|
+ taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = repeatDate.plusDays(1L);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = repeatDate.plusWeeks(1L);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = repeatDate.plusMonths(1L);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(selectedUser.getDepartmentId());
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
|
|
|
|
+
|
|
|
|
+ String repeatDesignDay = task.getRepeatDesignDay();
|
|
|
|
+ if (StringUtils.isNotEmpty(repeatDesignDay)) {
|
|
|
|
+ String[] strings = repeatDesignDay.split(",");
|
|
|
|
+ List<String> list = Arrays.asList(strings);
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(executorId);
|
|
|
|
+ taskRemind.setExecutorName(selectedUser.getName());
|
|
|
|
+ taskRemind.setWxOpenid(selectedUser.getWxOpenid());
|
|
|
|
+ taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
|
|
|
|
+ repeatDate=startDate.plusDays(Integer.parseInt(s));
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(selectedUser.getDepartmentId());
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ taskRemindService.saveBatch(taskRemindList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ else {
|
|
|
|
+ if (task.getStartDate()!=null) {
|
|
|
|
+ if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
|
|
|
|
+ ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
|
|
|
|
+ LocalDateTime startDate = task.getStartDate();
|
|
|
|
+ Integer repeatEndCount=0;//重复几次
|
|
|
|
+ LocalDate repeatEndDate=null;//重复到某个日期
|
|
|
|
+ //repeatType 重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
|
|
|
|
+ if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
|
|
|
|
+ Integer repeatType = task.getRepeatType();
|
|
|
|
+ Integer repeatDesignSameday = task.getRepeatDesignSameday();
|
|
|
|
+ //重复结束在几次之后
|
|
|
|
+ if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
|
|
|
|
+ repeatEndCount = task.getRepeatEndCount();
|
|
|
|
+ } else if (task.getRepeatEndDate()!=null) {
|
|
|
|
+ repeatEndDate=task.getRepeatEndDate();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (repeatEndCount!=null) {
|
|
|
|
+ for (int i = 1; i <= repeatEndCount; i++) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = startDate.plusDays(i);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = startDate.plusWeeks(i);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = startDate.plusMonths(i);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (repeatEndDate!=null) {
|
|
|
|
+ LocalDateTime repeatDate=startDate;
|
|
|
|
+ while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = repeatDate.plusDays(1L);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = repeatDate.plusWeeks(1L);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = repeatDate.plusMonths(1L);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
|
|
|
|
+
|
|
|
|
+ String repeatDesignDay = task.getRepeatDesignDay();
|
|
|
|
+ if (StringUtils.isNotEmpty(repeatDesignDay)) {
|
|
|
|
+ String[] strings = repeatDesignDay.split(",");
|
|
|
|
+ List<String> list = Arrays.asList(strings);
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ repeatDate=startDate.plusDays(Integer.parseInt(s));
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ taskRemindService.saveBatch(taskRemindList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//添加任务编译记录
|
|
//添加任务编译记录
|
|
TaskLog taskLog = new TaskLog();
|
|
TaskLog taskLog = new TaskLog();
|
|
taskLog.setTaskId(task.getId());
|
|
taskLog.setTaskId(task.getId());
|
|
@@ -1629,6 +1910,215 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
|
|
}
|
|
}
|
|
//重启后 状态直接默认为 进行中
|
|
//重启后 状态直接默认为 进行中
|
|
taskDto.setStatus(1);
|
|
taskDto.setStatus(1);
|
|
|
|
+
|
|
|
|
+ taskRemindService.remove(new QueryWrapper<TaskRemind>().eq("task_id",taskDto.getId()));
|
|
|
|
+ Task task = taskMapper.selectById(taskDto.getId());
|
|
|
|
+ task.setStartDate(taskDto.getStartDate());
|
|
|
|
+ task.setEndDate(taskDto.getEndDate());
|
|
|
|
+ if (StringUtils.isNotEmpty(task.getExecutorId())){
|
|
|
|
+ String[] executorIds = task.getExecutorId().split(",");
|
|
|
|
+ for (String executorId : executorIds) {
|
|
|
|
+ TaskExecutor taskExecutor = new TaskExecutor();
|
|
|
|
+ User selectedUser = userMapper.selectById(executorId);
|
|
|
|
+ taskExecutor.setExecutorId(executorId)
|
|
|
|
+ .setTaskId(task.getId())
|
|
|
|
+ .setExecutorName(selectedUser.getName())
|
|
|
|
+ .setCompanyId(user.getCompanyId());
|
|
|
|
+ taskExecutorMapper.insert(taskExecutor);
|
|
|
|
+ if (task.getStartDate()!=null) {
|
|
|
|
+ if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
|
|
|
|
+ ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
|
|
|
|
+ LocalDateTime startDate = task.getStartDate();
|
|
|
|
+ Integer repeatEndCount=0;//重复几次
|
|
|
|
+ LocalDate repeatEndDate=null;//重复到某个日期
|
|
|
|
+ //repeatType 重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
|
|
|
|
+ if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
|
|
|
|
+ Integer repeatType = task.getRepeatType();
|
|
|
|
+ Integer repeatDesignSameday = task.getRepeatDesignSameday();
|
|
|
|
+ //重复结束在几次之后
|
|
|
|
+ if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
|
|
|
|
+ repeatEndCount = task.getRepeatEndCount();
|
|
|
|
+ } else if (task.getRepeatEndDate()!=null) {
|
|
|
|
+ repeatEndDate=task.getRepeatEndDate();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (repeatEndCount!=null) {
|
|
|
|
+ for (int i = 1; i <= repeatEndCount; i++) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(executorId);
|
|
|
|
+ taskRemind.setExecutorName(selectedUser.getName());
|
|
|
|
+ taskRemind.setWxOpenid(selectedUser.getWxOpenid());
|
|
|
|
+ taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = startDate.plusDays(i);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = startDate.plusWeeks(i);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = startDate.plusMonths(i);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(selectedUser.getDepartmentId());
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (repeatEndDate!=null) {
|
|
|
|
+ LocalDateTime repeatDate=startDate;
|
|
|
|
+ while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(executorId);
|
|
|
|
+ taskRemind.setExecutorName(selectedUser.getName());
|
|
|
|
+ taskRemind.setWxOpenid(selectedUser.getWxOpenid());
|
|
|
|
+ taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = repeatDate.plusDays(1L);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = repeatDate.plusWeeks(1L);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = repeatDate.plusMonths(1L);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(selectedUser.getDepartmentId());
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
|
|
|
|
+
|
|
|
|
+ String repeatDesignDay = task.getRepeatDesignDay();
|
|
|
|
+ if (StringUtils.isNotEmpty(repeatDesignDay)) {
|
|
|
|
+ String[] strings = repeatDesignDay.split(",");
|
|
|
|
+ List<String> list = Arrays.asList(strings);
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(executorId);
|
|
|
|
+ taskRemind.setExecutorName(selectedUser.getName());
|
|
|
|
+ taskRemind.setWxOpenid(selectedUser.getWxOpenid());
|
|
|
|
+ taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
|
|
|
|
+ repeatDate=startDate.plusDays(Integer.parseInt(s));
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(selectedUser.getDepartmentId());
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ taskRemindService.saveBatch(taskRemindList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ if (task.getStartDate()!=null) {
|
|
|
|
+ if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
|
|
|
|
+ ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
|
|
|
|
+ LocalDateTime startDate = task.getStartDate();
|
|
|
|
+ Integer repeatEndCount=0;//重复几次
|
|
|
|
+ LocalDate repeatEndDate=null;//重复到某个日期
|
|
|
|
+ //repeatType 重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
|
|
|
|
+ if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
|
|
|
|
+ Integer repeatType = task.getRepeatType();
|
|
|
|
+ Integer repeatDesignSameday = task.getRepeatDesignSameday();
|
|
|
|
+ //重复结束在几次之后
|
|
|
|
+ if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
|
|
|
|
+ repeatEndCount = task.getRepeatEndCount();
|
|
|
|
+ } else if (task.getRepeatEndDate()!=null) {
|
|
|
|
+ repeatEndDate=task.getRepeatEndDate();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (repeatEndCount!=null) {
|
|
|
|
+ for (int i = 1; i <= repeatEndCount; i++) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = startDate.plusDays(i);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = startDate.plusWeeks(i);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = startDate.plusMonths(i);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (repeatEndDate!=null) {
|
|
|
|
+ LocalDateTime repeatDate=startDate;
|
|
|
|
+ while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ if (repeatType==0) {
|
|
|
|
+ repeatDate = repeatDate.plusDays(1L);
|
|
|
|
+ } else if (repeatType==1) {
|
|
|
|
+ repeatDate = repeatDate.plusWeeks(1L);
|
|
|
|
+ } else if (repeatType==2) {
|
|
|
|
+ repeatDate = repeatDate.plusMonths(1L);
|
|
|
|
+ } else if (repeatType==3&&repeatDesignSameday!=null) {
|
|
|
|
+ repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
|
|
|
|
+ }
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
|
|
|
|
+
|
|
|
|
+ String repeatDesignDay = task.getRepeatDesignDay();
|
|
|
|
+ if (StringUtils.isNotEmpty(repeatDesignDay)) {
|
|
|
|
+ String[] strings = repeatDesignDay.split(",");
|
|
|
|
+ List<String> list = Arrays.asList(strings);
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ LocalDateTime repeatDate=null;
|
|
|
|
+ TaskRemind taskRemind = new TaskRemind();
|
|
|
|
+ taskRemind.setTaskId(task.getId());
|
|
|
|
+ taskRemind.setTaskName(task.getTaskName());
|
|
|
|
+ taskRemind.setExecutorId(null);
|
|
|
|
+ taskRemind.setExecutorName(null);
|
|
|
|
+ taskRemind.setWxOpenid(null);
|
|
|
|
+ taskRemind.setCorpwxUserid(null);
|
|
|
|
+ repeatDate=startDate.plusDays(Integer.parseInt(s));
|
|
|
|
+ taskRemind.setRemindDate(repeatDate);
|
|
|
|
+ taskRemind.setDept(null);
|
|
|
|
+ taskRemindList.add(taskRemind);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ taskRemindService.saveBatch(taskRemindList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //完成任务将任务提醒删掉
|
|
|
|
+ else if (2==taskDto.getStatus()){
|
|
|
|
+ taskRemindService.remove(new QueryWrapper<TaskRemind>().eq("task_id", taskDto.getId()));
|
|
}
|
|
}
|
|
|
|
|
|
LambdaUpdateWrapper<Task> luw = new LambdaUpdateWrapper<>();
|
|
LambdaUpdateWrapper<Task> luw = new LambdaUpdateWrapper<>();
|