|  | @@ -294,16 +294,19 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          // 判断标准计划能否修改:存在下发的计划生成了任务且任务存在已执行
 | 
	
		
			
				|  |  |          Integer standardPlanHasDone = coreDrillTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
 | 
	
		
			
				|  |  |          if (ObjectUtil.equal(standardPlanHasDone, 1)) {
 | 
	
		
			
				|  |  | +            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
 | 
	
		
			
				|  |  | +                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
		
			
				|  |  |              //验证修改的字段是否符合要求
 | 
	
		
			
				|  |  |              String errorMsg = "有任务已执行或已过期,仅允许修改计划名称!";
 | 
	
		
			
				|  |  | -            validatePlanForStandard(request, plan, errorMsg);
 | 
	
		
			
				|  |  | +            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
 | 
	
		
			
				|  |  |              doUpdatePlan(plan, request);
 | 
	
		
			
				|  |  |              coreDrillPlanMapper.updatePlanName(plan.getId(), plan.getPlanName());
 | 
	
		
			
				|  |  |              coreDrillTaskMapper.updateTaskNameByParentPlanId(planId, plan.getPlanName(), range.getStartTime(), range.getEndTime());
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              doUpdatePlan(plan, request);
 | 
	
		
			
				|  |  |              delAllByParentPlanId(plan.getId());
 | 
	
		
			
				|  |  | -            List<CoreDrillPlan> planList = buildPlanData(plan, null, false);            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
 | 
	
		
			
				|  |  | +            List<CoreDrillPlan> planList = buildPlanData(plan, null, false);
 | 
	
		
			
				|  |  | +            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
 | 
	
		
			
				|  |  |                  @Override
 | 
	
		
			
				|  |  |                  public void afterCommit() {
 | 
	
		
			
				|  |  |                      for (CoreDrillPlan drillPlan : planList) {
 | 
	
	
		
			
				|  | @@ -327,7 +330,8 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void populateProperties(CoreDrillPlan source, CoreDrillPlan target) {
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void populateProperties(CoreDrillPlan source, CoreDrillPlan target) {
 | 
	
		
			
				|  |  |          target.setPlanName(source.getPlanName());
 | 
	
		
			
				|  |  |          target.setPlanCycle(source.getPlanCycle());
 | 
	
		
			
				|  |  |          target.setExecTimes(source.getExecTimes());
 | 
	
	
		
			
				|  | @@ -369,8 +373,15 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |              throw new RuntimeException("执行次数不能小于基准计划执行次数!");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (ObjectUtil.notEqual(plan.getId(), plan.getParentId())) {
 | 
	
		
			
				|  |  | -            String errorMsg = "子计划仅允许修改培训次数!";
 | 
	
		
			
				|  |  | -            validatePlanForStandard(request, plan, errorMsg);
 | 
	
		
			
				|  |  | +            String errorMsg = null;
 | 
	
		
			
				|  |  | +            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
 | 
	
		
			
				|  |  | +                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
		
			
				|  |  | +            if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.SHEGN_LIAN_SHE.getCode())) {
 | 
	
		
			
				|  |  | +                errorMsg = "当前用户身份仅允许修改子计划的计划名称和演练次数!!";
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                errorMsg = "当前用户身份仅允许修改子计划的演练次数!";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          doUpdatePlan(plan, request);
 | 
	
		
			
				|  |  |          final long done = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
 | 
	
	
		
			
				|  | @@ -418,7 +429,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void validatePlanForStandard(CoreDrillPlanUpdateDto request, CoreDrillPlan plan, String errorMsg) {
 | 
	
		
			
				|  |  | +    private void validatePlanForStandard(CoreDrillPlanUpdateDto request, CoreDrillPlan plan, String errorMsg, Integer type) {
 | 
	
		
			
				|  |  |          validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), errorMsg);
 | 
	
		
			
				|  |  |          validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), errorMsg);
 | 
	
		
			
				|  |  |          List<Long> execOrgIdList = coreDrillPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
 | 
	
	
		
			
				|  | @@ -426,9 +437,10 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 | 
	
		
			
				|  |  |          validateFieldForStandard(request.getRemark(), plan.getRemark(), errorMsg);
 | 
	
		
			
				|  |  |          validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), errorMsg);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //标准计划可以修改名称
 | 
	
		
			
				|  |  | -        //validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        if (OrgTypeEnum.HANG_SHE.equals(OrgTypeEnum.getOrgTypeEnum(type))) {
 | 
	
		
			
				|  |  | +            //标准计划可以修改名称,行社不允许修改名称
 | 
	
		
			
				|  |  | +            validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |