jingyuanchao 2 anni fa
parent
commit
56c549cfea

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -90,7 +90,7 @@ public class CoreEduTrainingTaskController extends BaseController {
     }
 
     @ApiOperation(value = "教育培训签名")
-    @RequiresPermissions("core:eduTask:sign")
+    @RequiresPermissions("core:eduTask:edit")
     @PostMapping("sign")
     public AjaxResult sign(@RequestBody @Validated CoreEduTrainingTaskSignDto request) {
         return success(coreEduTrainingTaskService.sign(request));

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingPlanMapper.java

@@ -78,4 +78,5 @@ public interface CoreEduTrainingPlanMapper extends BaseMapper<CoreEduTrainingPla
     List<CoreEduTrainingPlanPageVo> selectChildrenPlan(@Param("request") CoreEduTrainingPlanPageDto request);
 
     List<Long> selectIdByParentId(@Param("planId") Long planId);
+    List<Long> selectAllIdByParentId(@Param("planId") Long planId);
 }

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

@@ -238,7 +238,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         //此处判断能否修改,如果可以 需要删除任务,且还需要判断是否需要生成任务
         Boolean can = checkCanUpdate(request, plan);
         if (!can) {
-            throw new RuntimeException("当前任务已生成且存在已执行情况,无法修改培训机构类型,具体培训机构,培训角色,培训周期等信息!");
+            throw new RuntimeException("当前任务已生成且存在已执行情况,无法修改培训机构类型,具体培训机构,培训角色,培训周期,状态等信息!");
         }
         //可以修改计划
         BeanUtils.copyProperties(request, plan);
@@ -269,7 +269,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         }
         Long planId = plan.getId();
         //删除原有数据, 然后重新生成计划,任务
-        List<Long> planIdList = coreEduTrainingPlanMapper.selectIdByParentId(planId);
+        List<Long> planIdList = coreEduTrainingPlanMapper.selectAllIdByParentId(planId);
         if (ObjectUtil.isNotEmpty(planIdList)) {
             coreEduTrainingPlanMapper.deleteBatchIds(planIdList);
             coreEduTrainingPlanToExecOrgMapper.delete(new LambdaQueryWrapper<CoreEduTrainingPlanToExecOrg>().in(CoreEduTrainingPlanToExecOrg::getPlanId, planIdList));
@@ -284,6 +284,11 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         }
         List<CoreEduTrainingPlan> planList = buildPlanData(plan, trainingPlanToRoleList);
 
+        if (plan.getPlanStatus()==1){
+            log.info("计划已被修改为禁用,不再生成任务!");
+            return;
+        }
+
         for (CoreEduTrainingPlan trainingPlan : planList) {
             CoreEduTrainingPlanDataVo dataVo = getCoreEduTrainingPlanDataVo(trainingPlan.getId());
             CompletableFuture.runAsync(() -> {
@@ -306,6 +311,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
             //TODO 考虑是否同步修改已生成的任务的名称
             return;
         }
+        if (plan.getPlanStatus()==1){
+            log.info("计划已被修改为禁用,不再生成任务!");
+            return;
+        }
         //此为情况一,计划没有生成任务或者生成了任务但未执行
         final CoreEduTrainingPlanDataVo dataVo = getCoreEduTrainingPlanDataVo(plan.getId());
         if (ObjectUtil.equal(1, plan.getBuildTaskNow()) && ObjectUtil.equal(0, plan.getPlanStatus())) {
@@ -334,6 +343,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         if (standardPlanHasDone != null) {
             throw new RuntimeException("该计划下存在任务已执行的情况,无法修改!");
         }
+        //计划状态
+        if (ObjectUtil.notEqual(request.getPlanStatus(), plan.getPlanStatus())) {
+            flag = false;
+        }
         //计划周期
         if (ObjectUtil.notEqual(request.getPlanCycle(), plan.getPlanCycle())) {
             flag = false;

+ 7 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingPlanMapper.xml

@@ -595,4 +595,11 @@
           and deleted = 0
           and plan_status = 0
     </select>
+
+    <select id="selectAllIdByParentId" resultType="java.lang.Long">
+        select id
+        from core_edu_training_plan
+        where parent_id = #{planId}
+          and deleted = 0
+    </select>
 </mapper>

+ 5 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -222,7 +222,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public SysOrg selectByParentId(Long orgId) {
         LambdaQueryWrapper<SysOrg> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SysOrg::getParentId, orgId);
-        return sysOrgMapper.selectOne(wrapper);
+        List<SysOrg> selectList = sysOrgMapper.selectList(wrapper);
+        if (selectList.size()>0){
+            return selectList.get(0);
+        }
+        return null;
     }
 
     @Override