Jelajahi Sumber

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

ouyang 2 tahun lalu
induk
melakukan
5f7d3dbd43

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskRecPageVo.java

@@ -41,4 +41,5 @@ public class CoreDrillTaskRecPageVo {
     private String recStatusText;
 
 
+    private String title;
 }

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/enums/PanelTypeEnums.java

@@ -26,6 +26,7 @@ public enum PanelTypeEnums {
     EDU_TRAINING(5, "教育培训"),
 
     OTHER(6, "其他任务"),
+    DRILL_REC(7, "推优评优"),
 
 
     ;

+ 3 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillTaskService.java

@@ -106,4 +106,7 @@ public interface ICoreDrillTaskService extends IService<CoreDrillTask> {
     void delTaskByIdList(List<Long> taskIdList);
 
     void delByStartTimeAndEndTimeAndPlanIdList(List<Long> planIdList, Date startTime, Date endTime);
+
+    List<PanelListVo> selectRecList(PanelListDto panelListDto);
+
 }

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

@@ -263,7 +263,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         } else {
             coreDrillTask.setHostId(SecurityUtils.getUserId());
         }
-        List<CoreDrillTaskToUser> taskUserList=request.getTaskUserList();
+        List<CoreDrillTaskToUser> taskUserList = request.getTaskUserList();
         /*if (ObjectUtil.isNotEmpty(request.getTaskUserList())) {
             taskUserList = request.getTaskUserList();
         } else {
@@ -672,7 +672,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         dealRecListParam(request);
         IPage<CoreDrillTaskRecPageVo> page;
 
-            page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request);
+        page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request);
 
         final List<SysDictData> drillTypeDictList = DictUtils.getDictCache(DictConstants.CORE_DRILL_TYPE);
         final List<SysDictData> drillTaskRecStatusList = DictUtils.getDictCache(DictConstants.DRILL_TASK_REC_STATUS);
@@ -858,14 +858,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 
             //查询待评价与待推优数据
             List<PanelListVo> waitEvaluateTaskList = coreDrillTaskMapper.selectWaitEvaluateTaskList(panelListDto);
-            List<PanelListVo> waitRecTaskList = coreDrillTaskMapper.selectWaitRecTaskList(panelListDto);
-            waitRecTaskList.forEach(item -> {
-                if (ObjectUtil.isNotNull(item.getRecStatus())) {
-                    item.setStatus(10);
-                }
-            });
             list.addAll(waitEvaluateTaskList);
-            list.addAll(waitRecTaskList);
             list.removeIf(item -> DateUtil.compare(new Date(), item.getEndTime()) > 0);
         }
 
@@ -876,6 +869,35 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         return list;
     }
 
+    @Override
+    public List<PanelListVo> selectRecList(PanelListDto panelListDto) {
+        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                orgService.selectSysOrgById(panelListDto.getOrgId(), SecurityConstants.FROM_SOURCE), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        panelListDto.setOrgType(sysOrg.getType());
+        panelListDto.setOrgPath(sysOrg.getPath());
+        List<PanelListVo> waitRecTaskList = new ArrayList<>();
+        //省联社/办事处或行社
+        if (OrgTypeEnum.HANG_SHE.getCode().equals(sysOrg.getType()) ||
+                OrgTypeEnum.BAN_SHI_CHU.getCode().equals(sysOrg.getType()) ||
+                OrgTypeEnum.SHEGN_LIAN_SHE.getCode().equals(sysOrg.getType())) {
+
+            //查询待评价与待推优数据
+            waitRecTaskList = coreDrillTaskMapper.selectWaitRecTaskList(panelListDto);
+            waitRecTaskList.forEach(item -> {
+                if (ObjectUtil.isNotNull(item.getRecStatus())) {
+                    item.setStatus(10);
+                }
+            });
+            waitRecTaskList.removeIf(item -> DateUtil.compare(new Date(), item.getEndTime()) > 0);
+        }
+
+        waitRecTaskList.forEach(item -> {
+            item.setType(PanelTypeEnums.DRILL_REC.getCode());
+        });
+
+        return waitRecTaskList;
+    }
+
     private void dealListData(List<PanelListVo> list, Long userId) {
         if (ObjectUtil.isEmpty(list)) {
             return;

+ 37 - 14
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -19,12 +19,15 @@ import com.xunmei.core.resumption.service.IProtectionService;
 import com.xunmei.core.resumption.service.ResumptionService;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
+import com.xunmei.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.model.LoginUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -57,6 +60,9 @@ public class PanelServiceImpl implements PanelService {
     private RemoteRoleService roleService;
     @Autowired
     private IProtectionService protectionService;
+    @Autowired
+    @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
+    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
 
     @Override
     public List<PanelResultVo> selectPage() throws ExecutionException, InterruptedException, TimeoutException {
@@ -71,44 +77,49 @@ public class PanelServiceImpl implements PanelService {
 
         //履职任务
         CompletableFuture<List<PanelListVo>> resumptionTaskFuture = CompletableFuture.supplyAsync(() ->
-             resumptionService.selectCurUserTaskList(panelListDto)
+                resumptionService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
         );
 
         //布撤防
         CompletableFuture<List<PanelListVo>> protectionTaskFuture = CompletableFuture.supplyAsync(() ->
-             protectionService.selectCurUserTaskList(panelListDto)
+                protectionService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
         );
 
         //监控调阅任务
         CompletableFuture<List<PanelListVo>> monitorTaskFuture = CompletableFuture.supplyAsync(() ->
-             coreMonitoringRetrievalTaskService.selectCurUserTaskList(panelListDto)
+                coreMonitoringRetrievalTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
         );
 
         //安全检查任务
         CompletableFuture<List<PanelListVo>> safetyTaskFuture = CompletableFuture.supplyAsync(() ->
-             safetyTaskService.selectCurUserTaskList(panelListDto)
+                safetyTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
         );
 
 
         //预案演练任务
         CompletableFuture<List<PanelListVo>> drillTaskFuture = CompletableFuture.supplyAsync(() ->
-             drillTaskService.selectCurUserTaskList(panelListDto)
+                drillTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
+        );
+        //预案演练任务
+        CompletableFuture<List<PanelListVo>> recLitFuture = CompletableFuture.supplyAsync(() ->
+                drillTaskService.selectRecList(panelListDto), threadPoolTaskExecutor
         );
 
         //教育培训任务
         CompletableFuture<List<PanelListVo>> eduTrainingTaskFuture = CompletableFuture.supplyAsync(() ->
-             eduTrainingTaskService.selectCurUserTaskList(panelListDto)
+                eduTrainingTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
         );
+
         CompletableFuture<Void> allQueries = CompletableFuture.allOf(
                 resumptionTaskFuture, protectionTaskFuture, monitorTaskFuture,
-                safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture
+                safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture, recLitFuture
         );
 
         allQueries.get(TIMEOUT, TimeUnit.SECONDS);
 
         List<PanelListVo> resultList = Stream.of(
                         resumptionTaskFuture.join(), protectionTaskFuture.join(), monitorTaskFuture.join(),
-                        safetyTaskFuture.join(), drillTaskFuture.join(), eduTrainingTaskFuture.join()
+                        safetyTaskFuture.join(), drillTaskFuture.join(), eduTrainingTaskFuture.join(), recLitFuture.join()
                 )
                 .flatMap(Collection::stream)
                 .collect(Collectors.toList());
@@ -132,12 +143,24 @@ public class PanelServiceImpl implements PanelService {
     }
 
     private void dealResult(List<PanelListVo> resumptionTaskResult, List<PanelListVo> protectionTaskResult, List<PanelListVo> monitorTaskResult, List<PanelListVo> safetyTaskResult, List<PanelListVo> drillTaskResult, List<PanelListVo> eduTrainingTaskResult) {
-        resumptionTaskResult.forEach(item->{item.setType(PanelTypeEnums.RESUMPTION.getCode());});
-        protectionTaskResult.forEach(item->{item.setType(PanelTypeEnums.PROTECTION.getCode());});
-        monitorTaskResult.forEach(item->{item.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode());});
-        safetyTaskResult.forEach(item->{item.setType(PanelTypeEnums.SAFETY_CHECK.getCode());});
-        drillTaskResult.forEach(item->{item.setType(PanelTypeEnums.DRILL.getCode());});
-        eduTrainingTaskResult.forEach(item->{item.setType(PanelTypeEnums.EDU_TRAINING.getCode());});
+        resumptionTaskResult.forEach(item -> {
+            item.setType(PanelTypeEnums.RESUMPTION.getCode());
+        });
+        protectionTaskResult.forEach(item -> {
+            item.setType(PanelTypeEnums.PROTECTION.getCode());
+        });
+        monitorTaskResult.forEach(item -> {
+            item.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode());
+        });
+        safetyTaskResult.forEach(item -> {
+            item.setType(PanelTypeEnums.SAFETY_CHECK.getCode());
+        });
+        drillTaskResult.forEach(item -> {
+            item.setType(PanelTypeEnums.DRILL.getCode());
+        });
+        eduTrainingTaskResult.forEach(item -> {
+            item.setType(PanelTypeEnums.EDU_TRAINING.getCode());
+        });
 
     }
 }

+ 7 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java

@@ -25,10 +25,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
+import java.util.*;
 
 /**
  * @author : 高雄
@@ -81,7 +78,8 @@ public class ApiPlanController {
             if (plan.getBuildTaskNow() == 1) {
                 List<AppPlan> list = appPlanService.list(new LambdaQueryWrapper<AppPlan>().eq(AppPlan::getParentId, plan.getId()).eq(AppPlan::getDeleted, 0));
                 list.add(plan);
-                rebuildResumptionTaskBusiness.rebuildCurrentCycleTask(Collections.singletonList(list));
+                List<Object> newlist = new ArrayList<>(list);
+                rebuildResumptionTaskBusiness.rebuildCurrentCycleTask(newlist);
 
 //                DateTime datetime = new DateTime();
 //                datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
@@ -193,7 +191,8 @@ public class ApiPlanController {
                 //如果编辑
                 List<AppPlan> list = appPlanService.list(new LambdaQueryWrapper<AppPlan>().eq(AppPlan::getParentId, plan.getId()).eq(AppPlan::getDeleted, 0));
                 list.add(plan);
-                rebuildResumptionTaskBusiness.rebuildCurrentCycleTask(Collections.singletonList(list));
+                List<Object> newlist = new ArrayList<>(list);
+                rebuildResumptionTaskBusiness.rebuildCurrentCycleTask(newlist);
 
             }
 
@@ -292,7 +291,8 @@ public class ApiPlanController {
 //            }
             List<AppPlan> list = appPlanService.list(new LambdaQueryWrapper<AppPlan>().eq(AppPlan::getParentId, plan.getId()).eq(AppPlan::getDeleted, 0));
             list.add(plan);
-            rebuildResumptionTaskBusiness.rebuildCurrentCycleTask(Collections.singletonList(list));
+            List<Object> newlist = new ArrayList<>(list);
+            rebuildResumptionTaskBusiness.rebuildCurrentCycleTask(newlist);
 
         }
         return AjaxResult.success(i);

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/listener/WorkTimeChangeEventListener.java

@@ -31,7 +31,7 @@ public class WorkTimeChangeEventListener implements ApplicationListener<WorkTime
     @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, fallbackExecution = false)
     public void onApplicationEvent(WorkTimeChangeEvent event) {
 
-        //remoteResumptionTaskService.rebuild(JSON.toJSONString(event), SecurityConstants.INNER);
+        remoteResumptionTaskService.rebuild(JSON.toJSONString(event), SecurityConstants.INNER);
         eduTrainingService.rebuild(JSON.toJSONString(event), SecurityConstants.INNER);
         remoteRetrievalTaskService.rebuild(JSON.toJSONString(event), SecurityConstants.INNER);