|
|
@@ -263,7 +263,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
|
|
|
//标准计划 且是省联社创建的
|
|
|
updateStandardPlan(plan, request, range);
|
|
|
} else {
|
|
|
- //标准计划 还可能是行社创建的标准计划
|
|
|
+ //普通计划,还可能是行社创建的标准计划
|
|
|
updateCommonPlan(plan, request, range);
|
|
|
}
|
|
|
|
|
|
@@ -302,19 +302,11 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
|
|
|
coreDrillTaskMapper.updateTaskNameByParentPlanId(planId, plan.getPlanName(), range.getStartTime(), range.getEndTime());
|
|
|
} else {
|
|
|
doUpdatePlan(plan, request);
|
|
|
- List<CoreDrillPlan> list = lambdaQuery().eq(CoreDrillPlan::getParentId, planId).list();
|
|
|
- for (CoreDrillPlan drillPlan : list) {
|
|
|
- populateProperties(plan, drillPlan);
|
|
|
- updateById(drillPlan);
|
|
|
- coreDrillPlanToExecOrgMapper.deleteByMap(MapUtil.of("plan_id", plan.getId()));
|
|
|
- batchSavePlanToExecOrg(request.getPlanExecOrgIdList(), plan.getId());
|
|
|
- }
|
|
|
- List<Long> collect = list.stream().map(CoreDrillPlan::getId).collect(Collectors.toList());
|
|
|
- coreDrillTaskService.delByStartTimeAndEndTimeAndPlanIdList(collect, null, null);
|
|
|
- TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
|
|
|
+ delAllByParentPlanId(plan.getId());
|
|
|
+ List<CoreDrillPlan> planList = buildPlanData(plan, null, false); TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
|
|
|
@Override
|
|
|
public void afterCommit() {
|
|
|
- for (CoreDrillPlan drillPlan : list) {
|
|
|
+ for (CoreDrillPlan drillPlan : planList) {
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
//如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
|
|
|
if ((ObjectUtil.equal(EduTrainingPlanStatus.USING.getCode(), plan.getPlanStatus())
|
|
|
@@ -376,10 +368,11 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
|
|
|
if (parentPlan.getExecTimes() > request.getExecTimes()) {
|
|
|
throw new RuntimeException("执行次数不能小于基准计划执行次数!");
|
|
|
}
|
|
|
- String errorMsg = "子计划仅允许修改演练次数!";
|
|
|
- validatePlanForStandard(request, plan, errorMsg);
|
|
|
+ if (ObjectUtil.notEqual(plan.getId(), plan.getParentId())) {
|
|
|
+ String errorMsg = "子计划仅允许修改培训次数!";
|
|
|
+ validatePlanForStandard(request, plan, errorMsg);
|
|
|
+ }
|
|
|
doUpdatePlan(plan, request);
|
|
|
-
|
|
|
final long done = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
|
|
|
.eq(CoreDrillTask::getPlanId, plan.getId())
|
|
|
.ge(CoreDrillTask::getStartDate, range.getStartTime())
|
|
|
@@ -408,6 +401,23 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
|
|
|
}
|
|
|
|
|
|
|
|
|
+ private void delAllByParentPlanId(Long planId) {
|
|
|
+ List<Long> planIdList = coreDrillPlanMapper.selectIdByParentId(planId);
|
|
|
+ if (ObjectUtil.isEmpty(planIdList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ coreDrillPlanMapper.deleteBatchIds(planIdList);
|
|
|
+ coreDrillPlanToRoleMapper.delete(new LambdaQueryWrapper<CoreDrillPlanToRole>()
|
|
|
+ .in(CoreDrillPlanToRole::getPlanId, planIdList));
|
|
|
+ coreDrillPlanToExecOrgMapper.delete(new LambdaQueryWrapper<CoreDrillPlanToExecOrg>()
|
|
|
+ .in(CoreDrillPlanToExecOrg::getPlanId, planIdList));
|
|
|
+
|
|
|
+ coreDrillTaskService.delByStartTimeAndEndTimeAndPlanIdList(planIdList, null, null);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
private void validatePlanForStandard(CoreDrillPlanUpdateDto request, CoreDrillPlan plan, String errorMsg) {
|
|
|
validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), errorMsg);
|
|
|
validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), errorMsg);
|