|
@@ -796,7 +796,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.DAILY.getCode())
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.DAILY.getCode())
|
|
|
.like(CoreEduTrainingTask::getStartDate, todayStr)
|
|
.like(CoreEduTrainingTask::getStartDate, todayStr)
|
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
|
- .select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
|
|
|
|
|
+ .select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId,
|
|
|
|
|
+ CoreEduTrainingTask::getPlanCycle, CoreEduTrainingTask::getStatus)
|
|
|
.list();
|
|
.list();
|
|
|
//根据营业歇业分组
|
|
//根据营业歇业分组
|
|
|
Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
@@ -811,14 +812,12 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
.map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
//删除任务
|
|
//删除任务
|
|
|
delTaskByIdList(delTaskIdList);
|
|
delTaskByIdList(delTaskIdList);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
//营业的数据
|
|
//营业的数据
|
|
|
List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
|
//营业的机构id
|
|
//营业的机构id
|
|
|
List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
- //获取任务中存在的机构id
|
|
|
|
|
- List<Long> taskOrgIdList = taskList.stream().map(CoreEduTrainingTask::getOrgId).distinct().collect(Collectors.toList());
|
|
|
|
|
- //查询在任务表中不存在的营业机构id,即需要生成任务的机构
|
|
|
|
|
- List<Long> needTaskOrgIdList = workOrgIdList.stream().filter(orgId -> !taskOrgIdList.contains(orgId)).collect(Collectors.toList());
|
|
|
|
|
//查询需要生成任务的机构的计划
|
|
//查询需要生成任务的机构的计划
|
|
|
//每日的情况需要考虑到特殊日子,比如每月一号 一月一号等多周期重合的情况
|
|
//每日的情况需要考虑到特殊日子,比如每月一号 一月一号等多周期重合的情况
|
|
|
List<Integer> cycleList = DateUtils.checkDate(today);
|
|
List<Integer> cycleList = DateUtils.checkDate(today);
|
|
@@ -827,7 +826,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
|
.in(CoreEduTrainingPlan::getPlanCycle, cycleList)
|
|
.in(CoreEduTrainingPlan::getPlanCycle, cycleList)
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
- .in(CoreEduTrainingPlan::getBelongOrgId, needTaskOrgIdList)
|
|
|
|
|
|
|
+ .in(CoreEduTrainingPlan::getBelongOrgId, workOrgIdList)
|
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
|
buildTaskByPlan(planList, today);
|
|
buildTaskByPlan(planList, today);
|
|
@@ -846,30 +845,35 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
|
.list();
|
|
.list();
|
|
|
-
|
|
|
|
|
- //获取任务中存在的机构id
|
|
|
|
|
- List<Long> taskOrgIdList = taskList.stream().map(CoreEduTrainingTask::getOrgId).distinct().collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //根据营业歇业分组
|
|
|
|
|
- Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
|
|
|
|
|
+ Map<Long, List<SysWorkTime>> orgWorkTimeMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
|
|
|
|
|
+ List<Long> workOrgIdList = new ArrayList<>();
|
|
|
//歇业的数据
|
|
//歇业的数据
|
|
|
- List<SysWorkTime> unWorkTimeList = listMap.get(UN_WORK);
|
|
|
|
|
- List<Long> unWorkOrgIdList = unWorkTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- List<Long> delTaskIdList = taskList.stream().filter(task -> unWorkOrgIdList.contains(task.getOrgId())).map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<Long> unWorkOrgIdList = new ArrayList<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<SysWorkTime>> entry : orgWorkTimeMap.entrySet()) {
|
|
|
|
|
+ List<SysWorkTime> weeklyWorkTimeList = entry.getValue();
|
|
|
|
|
+ //如果有任何一天营业,那么就应该生成该周期的任务
|
|
|
|
|
+ boolean match = weeklyWorkTimeList.stream().anyMatch(time -> ObjectUtil.equal(time.getIsEnable(), WORK));
|
|
|
|
|
+ if (match) {
|
|
|
|
|
+ workOrgIdList.add(entry.getKey());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ unWorkOrgIdList.add(entry.getKey());
|
|
|
|
|
+ }
|
|
|
|
|
+ //删除已经歇业且未执行的任务
|
|
|
|
|
+ List<Long> delTaskIdList = taskList.stream()
|
|
|
|
|
+ .filter(task -> unWorkOrgIdList.contains(task.getOrgId()))
|
|
|
|
|
+ .filter(task -> task.getStatus().equals(EduTrainingDoStatus.WAIT_RECORDED.getCode()))
|
|
|
|
|
+ .map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
+ //删除任务
|
|
|
delTaskByIdList(delTaskIdList);
|
|
delTaskByIdList(delTaskIdList);
|
|
|
|
|
|
|
|
- //营业的数据
|
|
|
|
|
- List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
|
|
|
- List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- //查询在任务表中不存在的营业机构id,即需要生成任务的机构
|
|
|
|
|
- List<Long> needTaskOrgIdList = workOrgIdList.stream().filter(orgId -> !taskOrgIdList.contains(orgId)).collect(Collectors.toList());
|
|
|
|
|
//查询需要生成任务的机构的计划
|
|
//查询需要生成任务的机构的计划
|
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.WEEKLY.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.WEEKLY.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
- .in(CoreEduTrainingPlan::getBelongOrgId, needTaskOrgIdList)
|
|
|
|
|
|
|
+ .in(CoreEduTrainingPlan::getBelongOrgId, workOrgIdList)
|
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
|
buildTaskByPlan(planList, today);
|
|
buildTaskByPlan(planList, today);
|
|
@@ -879,7 +883,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
List<Long> orgIds = event.getOrgIds();
|
|
List<Long> orgIds = event.getOrgIds();
|
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.MONTHLY.getCode());
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.MONTHLY.getCode());
|
|
|
- //查询机构当月是否存在任务
|
|
|
|
|
|
|
+ //查询机构当周是否存在任务
|
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.MONTHLY.getCode())
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.MONTHLY.getCode())
|
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
@@ -887,30 +891,35 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
|
.list();
|
|
.list();
|
|
|
-
|
|
|
|
|
- //获取任务中存在的机构id
|
|
|
|
|
- List<Long> taskOrgIdList = taskList.stream().map(CoreEduTrainingTask::getOrgId).distinct().collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //根据营业歇业分组
|
|
|
|
|
- Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
|
|
|
|
|
+ Map<Long, List<SysWorkTime>> orgWorkTimeMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
|
|
|
|
|
+ List<Long> workOrgIdList = new ArrayList<>();
|
|
|
//歇业的数据
|
|
//歇业的数据
|
|
|
- List<SysWorkTime> unWorkTimeList = listMap.get(UN_WORK);
|
|
|
|
|
- List<Long> unWorkOrgIdList = unWorkTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- List<Long> delTaskIdList = taskList.stream().filter(task -> unWorkOrgIdList.contains(task.getOrgId())).map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<Long> unWorkOrgIdList = new ArrayList<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<SysWorkTime>> entry : orgWorkTimeMap.entrySet()) {
|
|
|
|
|
+ List<SysWorkTime> weeklyWorkTimeList = entry.getValue();
|
|
|
|
|
+ //如果有任何一天营业,那么就应该生成该周期的任务
|
|
|
|
|
+ boolean match = weeklyWorkTimeList.stream().anyMatch(time -> ObjectUtil.equal(time.getIsEnable(), WORK));
|
|
|
|
|
+ if (match) {
|
|
|
|
|
+ workOrgIdList.add(entry.getKey());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ unWorkOrgIdList.add(entry.getKey());
|
|
|
|
|
+ }
|
|
|
|
|
+ //删除已经歇业且未执行的任务
|
|
|
|
|
+ List<Long> delTaskIdList = taskList.stream()
|
|
|
|
|
+ .filter(task -> unWorkOrgIdList.contains(task.getOrgId()))
|
|
|
|
|
+ .filter(task -> task.getStatus().equals(EduTrainingDoStatus.WAIT_RECORDED.getCode()))
|
|
|
|
|
+ .map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
+ //删除任务
|
|
|
delTaskByIdList(delTaskIdList);
|
|
delTaskByIdList(delTaskIdList);
|
|
|
|
|
|
|
|
- //营业的数据
|
|
|
|
|
- List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
|
|
|
- List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- //查询在任务表中不存在的营业机构id,即需要生成任务的机构
|
|
|
|
|
- List<Long> needTaskOrgIdList = workOrgIdList.stream().filter(orgId -> !taskOrgIdList.contains(orgId)).collect(Collectors.toList());
|
|
|
|
|
//查询需要生成任务的机构的计划
|
|
//查询需要生成任务的机构的计划
|
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.MONTHLY.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.MONTHLY.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
- .in(CoreEduTrainingPlan::getBelongOrgId, needTaskOrgIdList)
|
|
|
|
|
|
|
+ .in(CoreEduTrainingPlan::getBelongOrgId, workOrgIdList)
|
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
|
buildTaskByPlan(planList, today);
|
|
buildTaskByPlan(planList, today);
|
|
@@ -920,7 +929,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
List<Long> orgIds = event.getOrgIds();
|
|
List<Long> orgIds = event.getOrgIds();
|
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.QUARTERLY.getCode());
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.QUARTERLY.getCode());
|
|
|
- //查询机构当季度是否存在任务
|
|
|
|
|
|
|
+ //查询机构当周是否存在任务
|
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.QUARTERLY.getCode())
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.QUARTERLY.getCode())
|
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
@@ -928,30 +937,35 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
|
.list();
|
|
.list();
|
|
|
-
|
|
|
|
|
- //获取任务中存在的机构id
|
|
|
|
|
- List<Long> taskOrgIdList = taskList.stream().map(CoreEduTrainingTask::getOrgId).distinct().collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //根据营业歇业分组
|
|
|
|
|
- Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
|
|
|
|
|
+ Map<Long, List<SysWorkTime>> orgWorkTimeMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
|
|
|
|
|
+ List<Long> workOrgIdList = new ArrayList<>();
|
|
|
//歇业的数据
|
|
//歇业的数据
|
|
|
- List<SysWorkTime> unWorkTimeList = listMap.get(UN_WORK);
|
|
|
|
|
- List<Long> unWorkOrgIdList = unWorkTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- List<Long> delTaskIdList = taskList.stream().filter(task -> unWorkOrgIdList.contains(task.getOrgId())).map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<Long> unWorkOrgIdList = new ArrayList<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<SysWorkTime>> entry : orgWorkTimeMap.entrySet()) {
|
|
|
|
|
+ List<SysWorkTime> weeklyWorkTimeList = entry.getValue();
|
|
|
|
|
+ //如果有任何一天营业,那么就应该生成该周期的任务
|
|
|
|
|
+ boolean match = weeklyWorkTimeList.stream().anyMatch(time -> ObjectUtil.equal(time.getIsEnable(), WORK));
|
|
|
|
|
+ if (match) {
|
|
|
|
|
+ workOrgIdList.add(entry.getKey());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ unWorkOrgIdList.add(entry.getKey());
|
|
|
|
|
+ }
|
|
|
|
|
+ //删除已经歇业且未执行的任务
|
|
|
|
|
+ List<Long> delTaskIdList = taskList.stream()
|
|
|
|
|
+ .filter(task -> unWorkOrgIdList.contains(task.getOrgId()))
|
|
|
|
|
+ .filter(task -> task.getStatus().equals(EduTrainingDoStatus.WAIT_RECORDED.getCode()))
|
|
|
|
|
+ .map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
+ //删除任务
|
|
|
delTaskByIdList(delTaskIdList);
|
|
delTaskByIdList(delTaskIdList);
|
|
|
|
|
|
|
|
- //营业的数据
|
|
|
|
|
- List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
|
|
|
- List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- //查询在任务表中不存在的营业机构id,即需要生成任务的机构
|
|
|
|
|
- List<Long> needTaskOrgIdList = workOrgIdList.stream().filter(orgId -> !taskOrgIdList.contains(orgId)).collect(Collectors.toList());
|
|
|
|
|
//查询需要生成任务的机构的计划
|
|
//查询需要生成任务的机构的计划
|
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.QUARTERLY.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.QUARTERLY.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
- .in(CoreEduTrainingPlan::getBelongOrgId, needTaskOrgIdList)
|
|
|
|
|
|
|
+ .in(CoreEduTrainingPlan::getBelongOrgId, workOrgIdList)
|
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
|
buildTaskByPlan(planList, today);
|
|
buildTaskByPlan(planList, today);
|
|
@@ -961,7 +975,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
List<Long> orgIds = event.getOrgIds();
|
|
List<Long> orgIds = event.getOrgIds();
|
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode());
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode());
|
|
|
- //查询机构当半年度是否存在任务
|
|
|
|
|
|
|
+ //查询机构当周是否存在任务
|
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode())
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode())
|
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
@@ -969,30 +983,35 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
|
.list();
|
|
.list();
|
|
|
-
|
|
|
|
|
- //获取任务中存在的机构id
|
|
|
|
|
- List<Long> taskOrgIdList = taskList.stream().map(CoreEduTrainingTask::getOrgId).distinct().collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //根据营业歇业分组
|
|
|
|
|
- Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
|
|
|
|
|
+ Map<Long, List<SysWorkTime>> orgWorkTimeMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
|
|
|
|
|
+ List<Long> workOrgIdList = new ArrayList<>();
|
|
|
//歇业的数据
|
|
//歇业的数据
|
|
|
- List<SysWorkTime> unWorkTimeList = listMap.get(UN_WORK);
|
|
|
|
|
- List<Long> unWorkOrgIdList = unWorkTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- List<Long> delTaskIdList = taskList.stream().filter(task -> unWorkOrgIdList.contains(task.getOrgId())).map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<Long> unWorkOrgIdList = new ArrayList<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<SysWorkTime>> entry : orgWorkTimeMap.entrySet()) {
|
|
|
|
|
+ List<SysWorkTime> weeklyWorkTimeList = entry.getValue();
|
|
|
|
|
+ //如果有任何一天营业,那么就应该生成该周期的任务
|
|
|
|
|
+ boolean match = weeklyWorkTimeList.stream().anyMatch(time -> ObjectUtil.equal(time.getIsEnable(), WORK));
|
|
|
|
|
+ if (match) {
|
|
|
|
|
+ workOrgIdList.add(entry.getKey());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ unWorkOrgIdList.add(entry.getKey());
|
|
|
|
|
+ }
|
|
|
|
|
+ //删除已经歇业且未执行的任务
|
|
|
|
|
+ List<Long> delTaskIdList = taskList.stream()
|
|
|
|
|
+ .filter(task -> unWorkOrgIdList.contains(task.getOrgId()))
|
|
|
|
|
+ .filter(task -> task.getStatus().equals(EduTrainingDoStatus.WAIT_RECORDED.getCode()))
|
|
|
|
|
+ .map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
+ //删除任务
|
|
|
delTaskByIdList(delTaskIdList);
|
|
delTaskByIdList(delTaskIdList);
|
|
|
|
|
|
|
|
- //营业的数据
|
|
|
|
|
- List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
|
|
|
- List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- //查询在任务表中不存在的营业机构id,即需要生成任务的机构
|
|
|
|
|
- List<Long> needTaskOrgIdList = workOrgIdList.stream().filter(orgId -> !taskOrgIdList.contains(orgId)).collect(Collectors.toList());
|
|
|
|
|
//查询需要生成任务的机构的计划
|
|
//查询需要生成任务的机构的计划
|
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.HALF_YEARLY.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
- .in(CoreEduTrainingPlan::getBelongOrgId, needTaskOrgIdList)
|
|
|
|
|
|
|
+ .in(CoreEduTrainingPlan::getBelongOrgId, workOrgIdList)
|
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
|
buildTaskByPlan(planList, today);
|
|
buildTaskByPlan(planList, today);
|
|
@@ -1003,7 +1022,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
List<Long> orgIds = event.getOrgIds();
|
|
List<Long> orgIds = event.getOrgIds();
|
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
|
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.YEARLY.getCode());
|
|
DateRange dateRange = DateUtils.getStartAndEnd(today, EduTrainingPlanCycleEnum.YEARLY.getCode());
|
|
|
- //查询机构当半年度是否存在任务
|
|
|
|
|
|
|
+ //查询机构当周是否存在任务
|
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
List<CoreEduTrainingTask> taskList = lambdaQuery()
|
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.YEARLY.getCode())
|
|
.eq(CoreEduTrainingTask::getPlanCycle, EduTrainingPlanCycleEnum.YEARLY.getCode())
|
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
.ge(CoreEduTrainingTask::getStartDate, dateRange.getStartTime())
|
|
@@ -1011,30 +1030,35 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
.in(CoreEduTrainingTask::getOrgId, orgIds)
|
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
.select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStatus)
|
|
|
.list();
|
|
.list();
|
|
|
-
|
|
|
|
|
- //获取任务中存在的机构id
|
|
|
|
|
- List<Long> taskOrgIdList = taskList.stream().map(CoreEduTrainingTask::getOrgId).distinct().collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //根据营业歇业分组
|
|
|
|
|
- Map<Long, List<SysWorkTime>> listMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getIsEnable));
|
|
|
|
|
|
|
+ Map<Long, List<SysWorkTime>> orgWorkTimeMap = futureWorkTime.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
|
|
|
|
|
+ List<Long> workOrgIdList = new ArrayList<>();
|
|
|
//歇业的数据
|
|
//歇业的数据
|
|
|
- List<SysWorkTime> unWorkTimeList = listMap.get(UN_WORK);
|
|
|
|
|
- List<Long> unWorkOrgIdList = unWorkTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- List<Long> delTaskIdList = taskList.stream().filter(task -> unWorkOrgIdList.contains(task.getOrgId())).map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<Long> unWorkOrgIdList = new ArrayList<>();
|
|
|
|
|
+ for (Map.Entry<Long, List<SysWorkTime>> entry : orgWorkTimeMap.entrySet()) {
|
|
|
|
|
+ List<SysWorkTime> weeklyWorkTimeList = entry.getValue();
|
|
|
|
|
+ //如果有任何一天营业,那么就应该生成该周期的任务
|
|
|
|
|
+ boolean match = weeklyWorkTimeList.stream().anyMatch(time -> ObjectUtil.equal(time.getIsEnable(), WORK));
|
|
|
|
|
+ if (match) {
|
|
|
|
|
+ workOrgIdList.add(entry.getKey());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ unWorkOrgIdList.add(entry.getKey());
|
|
|
|
|
+ }
|
|
|
|
|
+ //删除已经歇业且未执行的任务
|
|
|
|
|
+ List<Long> delTaskIdList = taskList.stream()
|
|
|
|
|
+ .filter(task -> unWorkOrgIdList.contains(task.getOrgId()))
|
|
|
|
|
+ .filter(task -> task.getStatus().equals(EduTrainingDoStatus.WAIT_RECORDED.getCode()))
|
|
|
|
|
+ .map(CoreEduTrainingTask::getId).collect(Collectors.toList());
|
|
|
|
|
+ //删除任务
|
|
|
delTaskByIdList(delTaskIdList);
|
|
delTaskByIdList(delTaskIdList);
|
|
|
|
|
|
|
|
- //营业的数据
|
|
|
|
|
- List<SysWorkTime> workTimeList = listMap.get(WORK);
|
|
|
|
|
- List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
|
|
|
|
|
- //查询在任务表中不存在的营业机构id,即需要生成任务的机构
|
|
|
|
|
- List<Long> needTaskOrgIdList = workOrgIdList.stream().filter(orgId -> !taskOrgIdList.contains(orgId)).collect(Collectors.toList());
|
|
|
|
|
//查询需要生成任务的机构的计划
|
|
//查询需要生成任务的机构的计划
|
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
List<CoreEduTrainingPlan> planList = coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
|
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
.eq(CoreEduTrainingPlan::getStandard, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.YEARLY.getCode())
|
|
.eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.YEARLY.getCode())
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
- .in(CoreEduTrainingPlan::getBelongOrgId, needTaskOrgIdList)
|
|
|
|
|
|
|
+ .in(CoreEduTrainingPlan::getBelongOrgId, workOrgIdList)
|
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle));
|
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
//此list中Plan对象仅id与planCycle字段有值,
|
|
|
buildTaskByPlan(planList, today);
|
|
buildTaskByPlan(planList, today);
|