Эх сурвалжийг харах

Merge remote-tracking branch 'origin/V0.1.0' into V0.1.0

jingyuanchao 1 жил өмнө
parent
commit
c84f1bfa9a

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

@@ -31,6 +31,7 @@ import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDetailVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanPageVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanRoleVo;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
+import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToExecOrg;
 import com.xunmei.common.core.domain.reminder.domain.CoreReminderSchedule;
 import com.xunmei.common.core.domain.reminder.vo.CoreReminderConfigurationFullVo;
 import com.xunmei.common.core.enums.BusinessPlanType;
@@ -652,9 +653,9 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
     public int revocationPlan(Long planId) {
         checkPlanIsCreatingTask(planId, "撤回");
         List<Long> list = coreDrillPlanMapper.selectIdByParentId(planId);
-        int isExecute = coreDrillTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
+        Integer isExecute = coreDrillTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
         //计划下没有已完成:删除所有任务数据和子计划,计划状态回到草稿状态。
-        if (isExecute < 1/* || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())*/) {
+        if (ObjectUtil.isNull(isExecute) || isExecute < 1/* || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())*/) {
             // 删除所有任务数据
             coreDrillTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
             //删除所有子计划
@@ -803,10 +804,25 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         if (oldPlan != null) {
             oldPlan.setDeleted(0);
             coreDrillPlanToExecOrgMapper.deleteByMap(MapUtil.of("plan_id", oldPlan.getId()));
-            if (planToExecOrgs.size() > 0) {
-                final List<Long> collect = planToExecOrgs.stream().map(SysOrgVO::getId).distinct().collect(toList());
-                batchSavePlanToExecOrg(collect, oldPlan.getId());
+//            if (planToExecOrgs.size() > 0) {
+//                final List<Long> collect = planToExecOrgs.stream().map(SysOrgVO::getId).distinct().collect(toList());
+//                batchSavePlanToExecOrg(collect, oldPlan.getId());
+//            }
+
+            List<CoreDrillPlanToExecOrg> newPlanToExecOrgs = new ArrayList<>();
+            if (ObjectUtil.isNotEmpty(planToExecOrgs)) {
+                // 找到子计划所属的具体执行机构
+                planToExecOrgs.stream().filter(x -> x.getPath().contains(sysOrg.getPath())).forEach(y -> {
+                    CoreDrillPlanToExecOrg temp = new CoreDrillPlanToExecOrg();
+                    temp.setPlanId(oldPlan.getId());
+                    temp.setOrgId(y.getId());
+                    newPlanToExecOrgs.add(temp);
+                });
             }
+            if (newPlanToExecOrgs.size() > 0) {
+                coreDrillPlanToExecOrgService.saveBatch(newPlanToExecOrgs);
+            }
+
             oldPlan.setPlanName(plan.getPlanName());
             oldPlan.setPlanStatus(DrillPlanStatus.USING.getCode());
             oldPlan.setBuildTaskNow(plan.getBuildTaskNow());

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

@@ -738,10 +738,25 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         if (oldPlan != null) {
             oldPlan.setDeleted(0);
             coreEduTrainingPlanToExecOrgMapper.deleteByMap(MapUtil.of("plan_id", oldPlan.getId()));
-            if (planToExecOrgs.size() > 0) {
-                final List<Long> collect = planToExecOrgs.stream().map(SysOrgVO::getId).distinct().collect(toList());
-                batchSavePlanToExecOrg(collect, oldPlan.getId());
+//            if (planToExecOrgs.size() > 0) {
+//                final List<Long> collect = planToExecOrgs.stream().map(SysOrgVO::getId).distinct().collect(toList());
+//                batchSavePlanToExecOrg(collect, oldPlan.getId());
+//            }
+
+            List<CoreEduTrainingPlanToExecOrg> newPlanToExecOrgs = new ArrayList<>();
+            if (ObjectUtil.isNotEmpty(planToExecOrgs)) {
+                // 找到子计划所属的具体执行机构
+                planToExecOrgs.stream().filter(x -> x.getPath().contains(sysOrg.getPath())).forEach(y -> {
+                    CoreEduTrainingPlanToExecOrg temp = new CoreEduTrainingPlanToExecOrg();
+                    temp.setPlanId(oldPlan.getId());
+                    temp.setOrgId(y.getId());
+                    newPlanToExecOrgs.add(temp);
+                });
             }
+            if (newPlanToExecOrgs.size() > 0) {
+                coreEduTrainingPlanToExecOrgService.saveBatch(newPlanToExecOrgs);
+            }
+
             oldPlan.setPlanName(plan.getPlanName());
             oldPlan.setPlanStatus(EduTrainingPlanStatus.USING.getCode());
             oldPlan.setBuildTaskNow(plan.getBuildTaskNow());
@@ -765,9 +780,9 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
     public Integer revocationPlan(Long planId) {
         checkPlanIsCreatingTask(planId, "撤回");
         List<Long> list = coreEduTrainingPlanMapper.selectIdByParentId(planId);
-        int isExecute = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
+        Integer isExecute = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
         //计划下没有已完成:计划下没有已完成:删除所有任务数据,计划状态回到草稿状态。
-        if (isExecute < 1/* || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())*/) {
+        if (ObjectUtil.isNull(isExecute) || isExecute < 1/* || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())*/) {
             // 删除所有任务数据
             coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
             //删除所有子计划