Browse Source

培训/演练: bug修改

jingyuanchao 1 year ago
parent
commit
100ce36304

+ 23 - 27
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java

@@ -704,35 +704,30 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         } else {
             plan.setBuildTaskNow(0);
         }
-        //事务提交后执行
-        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
-            @Override
-            public void afterCommit() {
 
-                final CompletableFuture<List<CoreDrillPlan>> planListFuture = CompletableFuture.supplyAsync(() -> {
-                    List<CoreDrillPlan> planList = lambdaQuery()
-                            .eq(CoreDrillPlan::getParentId, planId)
-                            .select(CoreDrillPlan::getId).list();
-                    if (planList.isEmpty()) {
-                        planList = buildPlanData(plan, new ArrayList<>(), true, status);
-                    } else {
-                        planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
-                        List<Long> collect = planList.stream().map(CoreDrillPlan::getId).collect(Collectors.toList());
-                        coreDrillPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
-                    }
-                    return planList;
-                }, threadPoolTaskExecutor);
-
-                planListFuture.thenAcceptAsync((result) -> {
-                    for (CoreDrillPlan drillPlan : result) {
-                        if (checkCanBuildTaskNow(plan)) {
-                            final CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(drillPlan.getId());
-                            coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
-                        }
-                    }
-                }, threadPoolTaskExecutor);
+        final CompletableFuture<List<CoreDrillPlan>> planListFuture = CompletableFuture.supplyAsync(() -> {
+            List<CoreDrillPlan> planList = lambdaQuery()
+                    .eq(CoreDrillPlan::getParentId, planId)
+                    .select(CoreDrillPlan::getId).list();
+            if (planList.isEmpty()) {
+                planList = buildPlanData(plan, new ArrayList<>(), true, status);
+            } else {
+                planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
+                List<Long> collect = planList.stream().map(CoreDrillPlan::getId).collect(Collectors.toList());
+                coreDrillPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
             }
-        });
+            return planList;
+        }, threadPoolTaskExecutor);
+
+        planListFuture.thenAcceptAsync((result) -> {
+            for (CoreDrillPlan drillPlan : result) {
+                if (checkCanBuildTaskNow(drillPlan)) {
+                    final CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(drillPlan.getId());
+                    coreDrillTaskService.createTaskForNow(detailPlanData, drillPlan.getPlanStartDate(), drillPlan.getPlanEndDate());
+                }
+            }
+        }, threadPoolTaskExecutor);
+
 
     }
 
@@ -870,6 +865,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
                 //走到这说明,执行机构中都是省联社/办事处 这些不需要子机话,所以直接返回,
                 //但是如果后期扩展多选执行机构类型,此处将不再适用
                 plan.setParentId(plan.getId());
+                updateById(plan);
                 list.add(plan);
                 return list;
             }

+ 22 - 28
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -714,36 +714,29 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         } else {
             plan.setBuildTaskNow(0);
         }
-        //事务提交后执行
-        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
-            @Override
-            public void afterCommit() {
-                final CompletableFuture<List<CoreEduTrainingPlan>> planListFuture = CompletableFuture.supplyAsync(() -> {
-                    List<CoreEduTrainingPlan> planList = lambdaQuery()
-                            .eq(CoreEduTrainingPlan::getParentId, planId)
-                            .list();
-                    if (planList.isEmpty()) {
-                        planList = buildPlanData(plan, new ArrayList<>(), true, status);
-                    } else {
-                        planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
-                        List<Long> collect = planList.stream().map(CoreEduTrainingPlan::getId).collect(Collectors.toList());
-                        coreEduTrainingPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
-                    }
-                    return planList;
-                }, threadPoolTaskExecutor);
-
-                planListFuture.thenAcceptAsync((result) -> {
-                    for (CoreEduTrainingPlan plan : result) {
-                        if (checkCanBuildTaskNow(plan)) {
-                            CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(plan.getId());
-                            coreEduTrainingTaskService.createTaskForNow(detailPlanData, plan.getStartDate(), plan.getEndDate());
-                        }
-                    }
-                }, threadPoolTaskExecutor);
 
+        final CompletableFuture<List<CoreEduTrainingPlan>> planListFuture = CompletableFuture.supplyAsync(() -> {
+            List<CoreEduTrainingPlan> planList = lambdaQuery()
+                    .eq(CoreEduTrainingPlan::getParentId, planId)
+                    .list();
+            if (planList.isEmpty()) {
+                planList = buildPlanData(plan, new ArrayList<>(), true, status);
+            } else {
+                planList.forEach(plan1 -> plan1.setPlanStatus(EduTrainingPlanStatus.USING.getCode()));
+                List<Long> collect = planList.stream().map(CoreEduTrainingPlan::getId).collect(Collectors.toList());
+                coreEduTrainingPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
             }
-        });
-
+            return planList;
+        }, threadPoolTaskExecutor);
+
+        planListFuture.thenAcceptAsync((result) -> {
+            for (CoreEduTrainingPlan eduPlan : result) {
+                if (checkCanBuildTaskNow(eduPlan)) {
+                    CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(eduPlan.getId());
+                    coreEduTrainingTaskService.createTaskForNow(detailPlanData, eduPlan.getStartDate(), eduPlan.getEndDate());
+                }
+            }
+        }, threadPoolTaskExecutor);
     }
 
     private void updatePlanTime(CoreEduTrainingPlan plan, int status) {
@@ -810,6 +803,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
                 //走到这说明,执行机构中都是省联社/办事处 这些不需要子机话,所以直接返回,
                 //但是如果后期扩展多选执行机构类型,此处将不再适用
                 plan.setParentId(plan.getId());
+                updateById(plan);
                 list.add(plan);
                 return list;
             }