|  | @@ -101,8 +101,6 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private RemoteRoleService roleService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  | -    private ICoreRegisterBookPdfService registerBookPdfService;
 | 
	
		
			
				|  |  | -    @Autowired
 | 
	
		
			
				|  |  |      private CoreDrillTaskToRoleMapper taskToRoleMapper;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private CoreDrillTaskToUserMapper taskToUserMapper;
 | 
	
	
		
			
				|  | @@ -110,7 +108,6 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |      private ICoreDrillTaskToUserService coreDrillTaskToUserService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private CoreDrillPlanMapper coreDrillPlanMapper;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      RemoteConfigService remoteConfigService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
	
		
			
				|  | @@ -171,7 +168,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |              request.setOrgPath(org.getPath());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //如果行社以下的用户需要看已完成的任务.那么需要去查询待评价的数据,因为行方需求对于网点的用户来说签名完成(待评价)就相当于完成任务了
 | 
	
		
			
				|  |  | -        if (ObjectUtil.equal(request.getStatus(),DrillDoStatus.DONE.getCode())&&OrgTypeEnum.HANG_SHE.getCode()<org.getType()){
 | 
	
		
			
				|  |  | +        if (ObjectUtil.equal(request.getStatus(), DrillDoStatus.DONE.getCode()) && OrgTypeEnum.HANG_SHE.getCode() < org.getType()) {
 | 
	
		
			
				|  |  |              request.setStatus(null);
 | 
	
		
			
				|  |  |              request.setIsSpecial(1);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -659,7 +656,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |              throw new SystemException("未获取到数据");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          for (CoreDrillTaskReportVo task : list) {
 | 
	
		
			
				|  |  | -            task.setNo(list.indexOf(task)+1);
 | 
	
		
			
				|  |  | +            task.setNo(list.indexOf(task) + 1);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              // 设置响应头
 | 
	
	
		
			
				|  | @@ -693,10 +690,10 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          if (ObjectUtil.isAllEmpty(planId, planIdList)) {
 | 
	
		
			
				|  |  |              return new ArrayList<>();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (ObjectUtil.isEmpty(request.getRange())){
 | 
	
		
			
				|  |  | +        if (ObjectUtil.isEmpty(request.getRange())) {
 | 
	
		
			
				|  |  |              request.setStartTime(DateUtil.beginOfMonth(request.getStartTime()));
 | 
	
		
			
				|  |  |              request.setEndTime(DateUtil.endOfMonth(request.getEndTime()));
 | 
	
		
			
				|  |  | -        }else {
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  |              request.setStartTime(DateUtil.beginOfMonth(request.getRange()[0]));
 | 
	
		
			
				|  |  |              request.setEndTime(DateUtil.endOfMonth(request.getRange()[0]));
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -803,7 +800,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          }*/
 | 
	
		
			
				|  |  |          return sign;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    private String getFileOrgName(SysOrg org){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private String getFileOrgName(SysOrg org) {
 | 
	
		
			
				|  |  |          String[] strings = org.getPath().split("-");
 | 
	
		
			
				|  |  |          List<Long> list = Arrays.stream(strings).map(Long::valueOf).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          List<SysOrg> sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgByIdList(list, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
 | 
	
	
		
			
				|  | @@ -812,7 +810,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          for (String orgId : strings) {
 | 
	
		
			
				|  |  |              list1.add(map.get(Long.parseLong(orgId)));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        return   String.join("_", list1);
 | 
	
		
			
				|  |  | +        return String.join("_", list1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -844,7 +842,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |              registerBookPdf.setOrgPath(sysOrg.getPath());
 | 
	
		
			
				|  |  |              registerBookPdf.setFileUrl(pdfUrl);
 | 
	
		
			
				|  |  |              registerBookPdf.setFileName(StringUtils.substringAfterLast(pdfUrl, File.separator));
 | 
	
		
			
				|  |  | -           // registerBookPdfService.save(registerBookPdf);
 | 
	
		
			
				|  |  | +            // registerBookPdfService.save(registerBookPdf);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          }, threadPoolTaskExecutor);
 | 
	
	
		
			
				|  | @@ -1081,6 +1079,38 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          return 3;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private Boolean checkRecNum(SysOrg sysOrg) {
 | 
	
		
			
				|  |  | +        //行社用户登录 需要判断机构下 "行社优秀案例" "已推荐地区优秀案例" 两种状态的数据是否达到设置上限
 | 
	
		
			
				|  |  | +        if (OrgTypeEnum.HANG_SHE.getCode().equals(sysOrg.getType())) {
 | 
	
		
			
				|  |  | +            SysConfig sysConfig = RemoteCallHandlerExecutor.executeRemoteCall(() ->
 | 
	
		
			
				|  |  | +                            remoteConfigService.findSysConfigByCode(SystemParameterConstant.HS_REC_DRILL_TASK_MAX, SecurityConstants.INNER),
 | 
	
		
			
				|  |  | +                    ErrorMsgConstants.QUERY_CONFIG_ERROR);
 | 
	
		
			
				|  |  | +            if (sysConfig == null || ObjectUtil.isEmpty(sysConfig.getConfigValue())) {
 | 
	
		
			
				|  |  | +                return true;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            final Long count = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
 | 
	
		
			
				|  |  | +                    .in(CoreDrillTask::getRecStatus, Arrays.asList(DrillRecStatus.HS_EXCELLENT_CASE.getCode(), DrillRecStatus.REC_REGION_EXCELLENT_CASE.getCode()))
 | 
	
		
			
				|  |  | +                    .likeRight(CoreDrillTask::getOrgPath, sysOrg.getPath()));
 | 
	
		
			
				|  |  | +            //如果 小于设置推荐上限则返回true,反之false
 | 
	
		
			
				|  |  | +            return count < Integer.parseInt(sysConfig.getConfigValue());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //办事处用户登录 需要判断机构下 "地区优秀案例" "已推荐省级优秀案例" 两种状态的数据是否达到设置上限
 | 
	
		
			
				|  |  | +        if (OrgTypeEnum.BAN_SHI_CHU.getCode().equals(sysOrg.getType())) {
 | 
	
		
			
				|  |  | +            SysConfig sysConfig = RemoteCallHandlerExecutor.executeRemoteCall(() ->
 | 
	
		
			
				|  |  | +                            remoteConfigService.findSysConfigByCode(SystemParameterConstant.AREA_REC_DRILL_TASK_MAX, SecurityConstants.INNER),
 | 
	
		
			
				|  |  | +                    ErrorMsgConstants.QUERY_CONFIG_ERROR);
 | 
	
		
			
				|  |  | +            if (sysConfig == null || ObjectUtil.isEmpty(sysConfig.getConfigValue())) {
 | 
	
		
			
				|  |  | +                return true;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            final int count = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
 | 
	
		
			
				|  |  | +                    .in(CoreDrillTask::getRecStatus, Arrays.asList(DrillRecStatus.REGION_EXCELLENT_CASE.getCode(), DrillRecStatus.REC_PROVINCE_EXCELLENT_CASE.getCode()))
 | 
	
		
			
				|  |  | +                    .likeRight(CoreDrillTask::getOrgPath, sysOrg.getPath())).intValue();
 | 
	
		
			
				|  |  | +            //如果 小于设置推荐上限则返回true,反之false
 | 
	
		
			
				|  |  | +            return count < Integer.parseInt(sysConfig.getConfigValue());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return true;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private void checkRecNum(CoreDrillTask drillTask, Integer recStatus) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<Long> collect = Stream.of(drillTask.getOrgPath().split("-")).map(Long::valueOf).collect(Collectors.toList());
 | 
	
	
		
			
				|  | @@ -1170,6 +1200,10 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |                  OrgTypeEnum.BAN_SHI_CHU.getCode().equals(sysOrg.getType()) ||
 | 
	
		
			
				|  |  |                  OrgTypeEnum.SHEGN_LIAN_SHE.getCode().equals(sysOrg.getType())) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            //如果演练优秀案例已经达到推荐上限,那么就不再显示推优的代办
 | 
	
		
			
				|  |  | +            if (!checkRecNum(sysOrg)) {
 | 
	
		
			
				|  |  | +                return new ArrayList<>();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              //查询待评价与待推优数据
 | 
	
		
			
				|  |  |              waitRecTaskList = coreDrillTaskMapper.selectWaitRecTaskList(panelListDto);
 | 
	
		
			
				|  |  |              waitRecTaskList.forEach(item -> {
 | 
	
	
		
			
				|  | @@ -1231,7 +1265,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void dealTimeWorkChangeForDaily(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  | +    private void dealTimeWorkChangeForDaily(WorkTimeChangeEvent event, String
 | 
	
		
			
				|  |  | +            todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  |          DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
 | 
	
		
			
				|  |  |          List<Long> orgIds = event.getOrgIds();
 | 
	
		
			
				|  |  |          //查询机构当天是否存在任务
 | 
	
	
		
			
				|  | @@ -1299,7 +1334,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |                  .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanCycle, CoreDrillPlan::getPlanName));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void dealTimeWorkChangeForWeekly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  | +    private void dealTimeWorkChangeForWeekly(WorkTimeChangeEvent event, String
 | 
	
		
			
				|  |  | +            todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  |          List<Long> orgIds = event.getOrgIds();
 | 
	
		
			
				|  |  |          DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
 | 
	
		
			
				|  |  |          DateRange dateRange = DateUtils.getStartAndEnd(today, CycleCommonEnum.WEEKLY);
 | 
	
	
		
			
				|  | @@ -1347,7 +1383,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void dealTimeWorkChangeForMonthly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  | +    private void dealTimeWorkChangeForMonthly(WorkTimeChangeEvent event, String
 | 
	
		
			
				|  |  | +            todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  |          List<Long> orgIds = event.getOrgIds();
 | 
	
		
			
				|  |  |          DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
 | 
	
		
			
				|  |  |          DateRange dateRange = DateUtils.getStartAndEnd(today, CycleCommonEnum.MONTHLY);
 | 
	
	
		
			
				|  | @@ -1393,7 +1430,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          buildTaskByPlan(planList, today);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void dealTimeWorkChangeForQuarterly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  | +    private void dealTimeWorkChangeForQuarterly(WorkTimeChangeEvent event, String
 | 
	
		
			
				|  |  | +            todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  |          List<Long> orgIds = event.getOrgIds();
 | 
	
		
			
				|  |  |          DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
 | 
	
		
			
				|  |  |          DateRange dateRange = DateUtils.getStartAndEnd(today, CycleCommonEnum.QUARTERLY);
 | 
	
	
		
			
				|  | @@ -1439,7 +1477,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          buildTaskByPlan(planList, today);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void dealTimeWorkChangeForHalfYearly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  | +    private void dealTimeWorkChangeForHalfYearly(WorkTimeChangeEvent event, String
 | 
	
		
			
				|  |  | +            todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  |          List<Long> orgIds = event.getOrgIds();
 | 
	
		
			
				|  |  |          DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
 | 
	
		
			
				|  |  |          DateRange dateRange = DateUtils.getStartAndEnd(today, CycleCommonEnum.HALF_YEARLY);
 | 
	
	
		
			
				|  | @@ -1485,7 +1524,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 | 
	
		
			
				|  |  |          buildTaskByPlan(planList, today);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private void dealTimeWorkChangeForYearly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  | +    private void dealTimeWorkChangeForYearly(WorkTimeChangeEvent event, String
 | 
	
		
			
				|  |  | +            todayStr, List<SysWorkTime> futureWorkTime) {
 | 
	
		
			
				|  |  |          List<Long> orgIds = event.getOrgIds();
 | 
	
		
			
				|  |  |          DateTime today = DateUtil.parse(todayStr, Constants.DAILY_FORMAT);
 | 
	
		
			
				|  |  |          DateRange dateRange = DateUtils.getStartAndEnd(today, CycleCommonEnum.YEARLY);
 |