Переглянути джерело

教育/演练计划下发撤回需求变更修改

jingyuanchao 2 роки тому
батько
коміт
8ae58b2ec1

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

@@ -574,26 +574,23 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
             List<Long> collect = planList.stream().map(CoreDrillPlan::getId).collect(Collectors.toList());
             coreDrillPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
         }
-        //非无周期的撤回后重新下发下个周期生效,无周期的立即生效
-        int buildTaskNow = 0;
-        if (plan.getPlanCycle().equals(EduTrainingPlanCycleEnum.NONE.getCode()) ||
-                EduTrainingPlanStatus.DRAFT.getCode().equals(plan.getPlanStatus())) {
-            buildTaskNow = 1;
-        }
         //下发后修改为使用中
         plan.setPlanStatus(DrillPlanStatus.USING.getCode());
         plan.setIssue(1);
         this.updateById(plan);
+        if (ObjectUtil.isNotEmpty(planList)){
+            //说明是计划是二次下发,下个周期生效,此处临时set为0,不保存入库,
+            plan.setBuildTaskNow(0);
+        }
         //事务提交后执行
         List<CoreDrillPlan> finalPlanList = planList;
-        int finalBuildTaskNow = buildTaskNow;
         TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
             @Override
             public void afterCommit() {
                 for (CoreDrillPlan drillPlan : finalPlanList) {
                     CompletableFuture.runAsync(() -> {
                         //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
-                        if ((ObjectUtil.equal(DrillPlanStatus.USING.getCode(), plan.getPlanStatus()) && (ObjectUtil.equal(DrillPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, finalBuildTaskNow)))) {
+                        if ((ObjectUtil.equal(DrillPlanStatus.USING.getCode(), plan.getPlanStatus()) && (ObjectUtil.equal(DrillPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, plan.getBuildTaskNow())))) {
                             final CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(drillPlan.getId());
                             coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
                         }

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

@@ -621,19 +621,16 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
             List<Long> collect = planList.stream().map(CoreEduTrainingPlan::getId).collect(Collectors.toList());
             coreEduTrainingPlanMapper.updatePlanStatusByIdList(collect, EduTrainingPlanStatus.USING.getCode());
         }
-        //非无周期的撤回后重新下发下个周期生效,无周期的立即生效
-        int buildTaskNow = 0;
-        if (plan.getPlanCycle().equals(EduTrainingPlanCycleEnum.NONE.getCode()) ||
-                EduTrainingPlanStatus.DRAFT.getCode().equals(plan.getPlanStatus())) {
-            buildTaskNow = 1;
-        }
         //下发后修改为使用中
         plan.setPlanStatus(EduTrainingPlanStatus.USING.getCode());
         plan.setIssue(1);
         this.updateById(plan);
+        if (ObjectUtil.isNotEmpty(planList)){
+            //说明是计划是二次下发,下个周期生效,此处临时set为0,不保存入库,
+            plan.setBuildTaskNow(0);
+        }
         //事务提交后执行
         List<CoreEduTrainingPlan> finalPlanList = planList;
-        Integer finalBuildTaskNow = buildTaskNow;
         TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
             @Override
             public void afterCommit() {
@@ -641,7 +638,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
                     CompletableFuture.runAsync(() -> {
                         //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
                         if ((ObjectUtil.equal(EduTrainingPlanStatus.USING.getCode(), plan.getPlanStatus())
-                                && (ObjectUtil.equal(EduTrainingPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, finalBuildTaskNow)))) {
+                                && (ObjectUtil.equal(EduTrainingPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, plan.getBuildTaskNow())))) {
                             CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(trainingPlan.getId());
                             coreEduTrainingTaskService.createTaskForNow(detailPlanData, plan.getStartDate(), plan.getEndDate());
                         }