Browse Source

代办-推优评优:达到系统参数设置上限后不再显示该类型代办

jingyuanchao 1 year ago
parent
commit
bf9bf11316

+ 56 - 16
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -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);