|
|
@@ -258,18 +258,21 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
batchSavePlanToRole(request.getPlanRoleId(), plan.getId());
|
|
|
batchSavePlanToExecOrg(request.getPlanExecOrgIdList(), plan.getId());
|
|
|
final int i = coreEduTrainingPlanMapper.updateById(plan);
|
|
|
- if (ObjectUtil.equal(plan.getStandard(), 0)) {
|
|
|
- //自建计划
|
|
|
- Integer exit = coreEduTrainingTaskMapper.checkHasTask(request.getId());
|
|
|
- Integer hasDone = coreEduTrainingTaskMapper.checkHasTaskIsDone(Collections.singletonList(request.getId()));
|
|
|
- if (ObjectUtil.equal(exit, 1) && ObjectUtil.isNull(hasDone)) {
|
|
|
- coreEduTrainingTaskMapper.deleteByMap(MapUtil.of("plan_id", request.getId()));
|
|
|
- //说明有任务并且都没执行过,需要重新生成任务
|
|
|
- final CoreEduTrainingPlanDataVo dataVo = getCoreEduTrainingPlanDataVo(request.getId());
|
|
|
- coreEduTrainingTaskService.createTaskForNow(dataVo, plan.getStartDate(), plan.getEndDate());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ /*
|
|
|
+ 判断能否修改: 如果上面返回了true; 说明两种情况
|
|
|
+ 1:计划生成了任务,但是未执行: 此时需要删除所有任务,修改计划数据后重新创建任务
|
|
|
+ 2:计划生成了任务且执行了,但是没有修改到关键信息,此时则不能删除任务,只允许修改计划信息
|
|
|
+ */
|
|
|
+ final Integer done = coreEduTrainingTaskMapper.checkHasTaskIsDone(Arrays.asList(plan.getId()));
|
|
|
+ if (ObjectUtil.equal(1,done)){
|
|
|
+ //此为情况二, 计划生成了任务且执行 不能删除任务,只允许修改计划信息,所以直接返回
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+ //此为情况一,计划没有生成任务或者生成了任务但未执行
|
|
|
+ coreEduTrainingTaskMapper.deleteByMap(MapUtil.of("plan_id", request.getId()));
|
|
|
+ //说明有任务并且都没执行过,需要重新生成任务
|
|
|
+ final CoreEduTrainingPlanDataVo dataVo = getCoreEduTrainingPlanDataVo(request.getId());
|
|
|
+ coreEduTrainingTaskService.createTaskForNow(dataVo, plan.getStartDate(), plan.getEndDate());
|
|
|
return i;
|
|
|
}
|
|
|
|