|  | @@ -116,7 +116,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          if (ObjectUtil.equal(record.getCreateOrgId(), orgId)) {
 | 
	
		
			
				|  |  |              record.setCreateByTopOrg(1);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        record.setCategoryText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_CATEGORY,record.getCategory()));
 | 
	
		
			
				|  |  | +        record.setCategoryText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_CATEGORY, record.getCategory()));
 | 
	
		
			
				|  |  |          /*String roleNameList = coreDrillPlanToRoleMapper.selectRoleNameByPlanId(record.getId()).stream().map(CoreDrillPlanRoleVo::getRoleName).collect(Collectors.joining(","));
 | 
	
		
			
				|  |  |          record.setPlanRoleNameList(roleNameList);
 | 
	
		
			
				|  |  |          request.setId(record.getId());
 | 
	
	
		
			
				|  | @@ -152,7 +152,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          final List<CoreDrillPlanToExecOrg> execOrgList = coreDrillPlanToExecOrgMapper.selectByMap(MapUtil.of("plan_id", id));
 | 
	
		
			
				|  |  |          final List<Long> execOrgIdList = execOrgList.stream().map(CoreDrillPlanToExecOrg::getOrgId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          vo.setPlanExecOrgIdList(ObjectUtil.isEmpty(execOrgIdList) ? null : execOrgIdList);
 | 
	
		
			
				|  |  | -        vo.setCategoryText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_CATEGORY,vo.getCategory()));
 | 
	
		
			
				|  |  | +        vo.setCategoryText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_CATEGORY, vo.getCategory()));
 | 
	
		
			
				|  |  |          /*final List<CoreDrillPlanToRole> planToRoles = coreDrillPlanToRoleMapper.selectByMap(MapUtil.of("plan_id", id));
 | 
	
		
			
				|  |  |          final List<Long> execRoleIdList = planToRoles.stream().map(CoreDrillPlanToRole::getRoleId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          vo.setPlanRoleId(ObjectUtil.isEmpty(execRoleIdList) ? null : execRoleIdList);*/
 | 
	
	
		
			
				|  | @@ -221,36 +221,19 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |              plan.setStandard(1);
 | 
	
		
			
				|  |  |              plan.setIssue(0);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        //如果是省联社或者办事处,不需要下发
 | 
	
		
			
				|  |  | -        if (checkNeedPublish(org.getType())) {
 | 
	
		
			
				|  |  | -            plan.setStandard(2);
 | 
	
		
			
				|  |  | -            plan.setPlanStatus(EduTrainingPlanStatus.USING.getCode());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |          plan.setBeIssue(0);
 | 
	
		
			
				|  |  | -        int insert = coreDrillPlanMapper.insert(plan);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        //如果不是省联社或者办事处行社,状态启用,并且是无周期或者立即生效
 | 
	
		
			
				|  |  | -        if (checkCanBuildTaskNow(org.getType(), plan)) {
 | 
	
		
			
				|  |  | -            final CoreDrillPlanDataVo detailPlanData = this.getCoreDrillPlanDataVo(plan.getId());
 | 
	
		
			
				|  |  | -            coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        return insert;
 | 
	
		
			
				|  |  | +        return coreDrillPlanMapper.insert(plan);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public Boolean checkCanBuildTaskNow(Integer orgType, CoreDrillPlan plan) {
 | 
	
		
			
				|  |  | -        //创建机构是否是省联社或者办事处及行社? 如果是则需要下发,不能立即创建任务
 | 
	
		
			
				|  |  | -        boolean orgFlag = !checkOrgType(orgType);
 | 
	
		
			
				|  |  | +    public Boolean checkCanBuildTaskNow(CoreDrillPlan plan) {
 | 
	
		
			
				|  |  |          //使用中,如果不是使用中状态不能立即生成任务
 | 
	
		
			
				|  |  |          boolean statusFlag = ObjectUtil.equal(DrillPlanStatus.USING.getCode(), plan.getPlanStatus());
 | 
	
		
			
				|  |  |          //无周期?有周期的不能立即生成任务
 | 
	
		
			
				|  |  |          boolean cycleFlag = ObjectUtil.equal(DrillPlanCycleEnum.NONE.getCode(), plan.getPlanCycle());
 | 
	
		
			
				|  |  |          //是否需要立即生效 不是则不能立即生成任务
 | 
	
		
			
				|  |  |          boolean buildFlag = ObjectUtil.equal(1, plan.getBuildTaskNow());
 | 
	
		
			
				|  |  | -        //是否需要下发:如果需要下发,不能立即生成任务
 | 
	
		
			
				|  |  | -        boolean publishFlag = checkNeedPublish(orgType);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        return (orgFlag && statusFlag && (cycleFlag || buildFlag))||publishFlag;
 | 
	
		
			
				|  |  | +        return statusFlag && (cycleFlag || buildFlag);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -349,8 +332,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |                      for (CoreDrillPlan drillPlan : finalPlanList) {
 | 
	
		
			
				|  |  |                          CompletableFuture.runAsync(() -> {
 | 
	
		
			
				|  |  |                              //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
 | 
	
		
			
				|  |  | -                            if ((ObjectUtil.equal(EduTrainingPlanStatus.USING.getCode(), plan.getPlanStatus())
 | 
	
		
			
				|  |  | -                                    && (ObjectUtil.equal(DrillPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, plan.getBuildTaskNow())))) {
 | 
	
		
			
				|  |  | +                            if (checkCanBuildTaskNow(plan)) {
 | 
	
		
			
				|  |  |                                  CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(drillPlan.getId());
 | 
	
		
			
				|  |  |                                  coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
 | 
	
		
			
				|  |  |                              }
 | 
	
	
		
			
				|  | @@ -437,8 +419,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |              public void afterCommit() {
 | 
	
		
			
				|  |  |                  CompletableFuture.runAsync(() -> {
 | 
	
		
			
				|  |  |                      //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
 | 
	
		
			
				|  |  | -                    if ((ObjectUtil.equal(EduTrainingPlanStatus.USING.getCode(), plan.getPlanStatus())
 | 
	
		
			
				|  |  | -                            && (ObjectUtil.equal(EduTrainingPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, plan.getBuildTaskNow())))) {
 | 
	
		
			
				|  |  | +                    if (checkCanBuildTaskNow(plan)) {
 | 
	
		
			
				|  |  |                          final CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(plan.getId());
 | 
	
		
			
				|  |  |                          coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -472,7 +453,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          validateListForStandard(execOrgIdList, request.getPlanExecOrgIdList(), errorMsg);
 | 
	
		
			
				|  |  |          validateFieldForStandard(request.getRemark(), plan.getRemark(), errorMsg);
 | 
	
		
			
				|  |  |          validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), errorMsg);
 | 
	
		
			
				|  |  | -        if (plan.getPlanCycle().equals(EduTrainingPlanCycleEnum.NONE.getCode())){
 | 
	
		
			
				|  |  | +        if (plan.getPlanCycle().equals(EduTrainingPlanCycleEnum.NONE.getCode())) {
 | 
	
		
			
				|  |  |              validateFieldForStandard(request.getStartDate(), plan.getPlanStartDate(), errorMsg);
 | 
	
		
			
				|  |  |              validateFieldForStandard(request.getEndDate(), plan.getPlanEndDate(), errorMsg);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -600,11 +581,11 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          List<CoreDrillPlan> planList = lambdaQuery()
 | 
	
		
			
				|  |  |                  .eq(CoreDrillPlan::getParentId, planId)
 | 
	
		
			
				|  |  |                  .select(CoreDrillPlan::getId).list();
 | 
	
		
			
				|  |  | -        boolean isPublishAgain=false;
 | 
	
		
			
				|  |  | +        boolean isPublishAgain = false;
 | 
	
		
			
				|  |  |          if (planList.isEmpty()) {
 | 
	
		
			
				|  |  |              planList = buildPlanData(plan, new ArrayList<>(), true);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            isPublishAgain=true;
 | 
	
		
			
				|  |  | +            isPublishAgain = true;
 | 
	
		
			
				|  |  |              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());
 | 
	
	
		
			
				|  | @@ -613,7 +594,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          plan.setPlanStatus(DrillPlanStatus.USING.getCode());
 | 
	
		
			
				|  |  |          plan.setIssue(1);
 | 
	
		
			
				|  |  |          this.updateById(plan);
 | 
	
		
			
				|  |  | -        if (isPublishAgain){
 | 
	
		
			
				|  |  | +        if (isPublishAgain) {
 | 
	
		
			
				|  |  |              //说明是计划是二次下发,下个周期生效,此处临时set为0,不保存入库,
 | 
	
		
			
				|  |  |              plan.setBuildTaskNow(0);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -625,7 +606,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |                  for (CoreDrillPlan drillPlan : finalPlanList) {
 | 
	
		
			
				|  |  |                      CompletableFuture.runAsync(() -> {
 | 
	
		
			
				|  |  |                          //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
 | 
	
		
			
				|  |  | -                        if ((ObjectUtil.equal(DrillPlanStatus.USING.getCode(), plan.getPlanStatus()) && (ObjectUtil.equal(DrillPlanCycleEnum.NONE.getCode(), plan.getPlanCycle()) || ObjectUtil.equal(1, plan.getBuildTaskNow())))) {
 | 
	
		
			
				|  |  | +                        if (checkCanBuildTaskNow(plan)) {
 | 
	
		
			
				|  |  |                              final CoreDrillPlanDataVo detailPlanData = getCoreDrillPlanDataVo(drillPlan.getId());
 | 
	
		
			
				|  |  |                              coreDrillTaskService.createTaskForNow(detailPlanData, plan.getPlanStartDate(), plan.getPlanEndDate());
 | 
	
		
			
				|  |  |                          }
 | 
	
	
		
			
				|  | @@ -647,8 +628,8 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          //无周期计划撤回,不管任务状态,删除所有任务,撤回后计划停用
 | 
	
		
			
				|  |  |          //有周期计划撤回,如果没有任务已完成,删除所有任务,撤回后计划停用
 | 
	
		
			
				|  |  |          Integer isExecute = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
 | 
	
		
			
				|  |  | -                .in(CoreDrillTask::getPlanId, list)
 | 
	
		
			
				|  |  | -                .eq(CoreDrillTask::getStatus,DrillDoStatus.DONE.getCode()))
 | 
	
		
			
				|  |  | +                        .in(CoreDrillTask::getPlanId, list)
 | 
	
		
			
				|  |  | +                        .eq(CoreDrillTask::getStatus, DrillDoStatus.DONE.getCode()))
 | 
	
		
			
				|  |  |                  .intValue();
 | 
	
		
			
				|  |  |          if (ObjectUtil.equal(isExecute, 0) || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())) {
 | 
	
		
			
				|  |  |              coreDrillTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
 |