ouyang 2 rokov pred
rodič
commit
3eb90a487b

+ 30 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteRetrieveTaskService.java

@@ -0,0 +1,30 @@
+package com.xunmei.system.api;
+
+import com.xunmei.common.core.constant.ServiceNameConstants;
+import com.xunmei.common.core.domain.R;
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.system.api.factory.RemoteRetrieveTaskFallbackFactory;
+import com.xunmei.system.api.factory.RemoteTaskFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(contextId = "remoteRetrieveTaskService", value = ServiceNameConstants.CORE_SERVICE, fallbackFactory = RemoteRetrieveTaskFallbackFactory.class)
+public interface RemoteRetrieveTaskService {
+    /**
+     * 每天生成日任务 如果当天是周一还需生成周任务
+     *
+     * @return
+     */
+    @GetMapping("/retrievalTask/dayTask")
+    R<AjaxResult> dayTask();
+
+    /**
+     * 1.1生成周期为每月,每季,每半年,每年的任务
+     * 4.1||10.1日生成周期为每月,每季
+     * 7.1日获取执行周期为每月,每季,每半年的 其他日期生成月任务
+     *
+     * @return
+     */
+    @GetMapping("/retrievalTask/monthTask")
+    R<AjaxResult> monthTask();
+}

+ 33 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteRetrieveTaskFallbackFactory.java

@@ -0,0 +1,33 @@
+package com.xunmei.system.api.factory;
+
+import com.xunmei.common.core.domain.R;
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.system.api.RemoteRetrieveTaskService;
+import com.xunmei.system.api.RemoteTaskService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RemoteRetrieveTaskFallbackFactory implements FallbackFactory<RemoteRetrieveTaskService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class);
+    @Override
+    public RemoteRetrieveTaskService create(Throwable throwable) {
+
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteRetrieveTaskService()
+        {
+
+            @Override
+            public R<AjaxResult> dayTask() {
+                return null;
+            }
+
+            @Override
+            public R<AjaxResult> monthTask() {
+                return null;
+            }
+        };
+    }
+}

+ 1 - 0
soc-api/soc-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -7,3 +7,4 @@ com.xunmei.system.api.factory.RemoteWorkTimesFallbackFactory
 com.xunmei.system.api.factory.RemoteSyncOrgAndUserFactory
 com.xunmei.system.api.factory.RemoteTaskFallbackFactory
 com.xunmei.system.api.factory.RemoteDictDataFallbackFactory
+com.xunmei.system.api.factory.RemoteRetrieveTaskFallbackFactory

+ 5 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/controller/CoreMonitoringRetrievalTaskController.java

@@ -29,7 +29,7 @@ import java.util.List;
  */
 @Api(tags = {"CoreMonitoringRetrievalTask"})
 @RestController
-@RequestMapping("/task")
+@RequestMapping("/retrievalTask")
 public class CoreMonitoringRetrievalTaskController extends BaseController {
     @Autowired
     private ICoreMonitoringRetrievalTaskService coreMonitoringRetrievalTaskService;
@@ -113,8 +113,8 @@ public class CoreMonitoringRetrievalTaskController extends BaseController {
      * 如果当天是周一还需生成周任务
      * @return
      */
-    @GetMapping("/dayTask/{taskTime}")
-    public AjaxResult dayTask(@PathVariable("taskTime") LocalDate taskTime) {
+    @GetMapping("/dayTask")
+    public AjaxResult dayTask(@RequestParam("taskTime") LocalDate taskTime) {
         try {
             coreMonitoringRetrievalTaskService.dayTask(taskTime);
             return AjaxResult.success("任务生成成功");
@@ -131,8 +131,8 @@ public class CoreMonitoringRetrievalTaskController extends BaseController {
      * 其他日期生成月任务
      * @return
      */
-    @GetMapping("/monthTask/{taskTime}")
-    public AjaxResult monthTask(@PathVariable("taskTime") LocalDate taskTime) {
+    @GetMapping("/monthTask")
+    public AjaxResult monthTask(@RequestParam("taskTime")  LocalDate taskTime) {
         try {
             coreMonitoringRetrievalTaskService.monthTask(taskTime);
             return AjaxResult.success("任务生成成功");

+ 39 - 46
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskServiceImpl.java

@@ -10,7 +10,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
-import com.xunmei.common.core.domain.R;
+import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
+import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
+import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskVo;
 import com.xunmei.common.core.enums.RetrievalTaskCycle;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
@@ -19,18 +21,14 @@ import com.xunmei.common.core.utils.Ymd;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
 import com.xunmei.core.access.dto.CoreMonitoringTaskRegistrationDTO;
-import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
-import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
 import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
 import com.xunmei.core.retrieval.mapper.CoreMonitoringRetrievalTaskMapper;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
-import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskVo;
 import com.xunmei.system.api.RemoteDictDataService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysDictData;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -207,15 +205,16 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     /**
      * 无周期任务生成
      */
-    public void noCycleTask(List<TMonitoringRetrievalPlan> planList){
+    public void noCycleTask(List<TMonitoringRetrievalPlan> planList) {
         List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.findAllOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
-        LocalDate taskTime = planList.get(0).getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();;
+        LocalDate taskTime = planList.get(0).getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        ;
         for (TMonitoringRetrievalPlan plan : planList) {
             //获取计划关联的机构
-            List<SysOrg> listByType = orgList.stream().filter(r->r.getId().equals(plan.getOrgId())&&r.getDeleted()==0&&r.getIsLock()==0).collect(Collectors.toList());
-            if(CollectionUtil.isNotEmpty(listByType)){
-                List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, taskTime,listByType.get(0));
+            List<SysOrg> listByType = orgList.stream().filter(r -> r.getId().equals(plan.getOrgId()) && r.getDeleted() == 0 && r.getIsLock() == 0).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(listByType)) {
+                List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, taskTime, listByType.get(0));
                 if (CollectionUtil.isNotEmpty(list)) {
                     taskList.addAll(list);
                 }
@@ -223,6 +222,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         }
         this.saveBatch(taskList);
     }
+
     /**
      * 每天生成日任务 如果当天是周一还需生成周任务
      *
@@ -237,19 +237,15 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         List<CoreMonitoringRetrievalTask> list = new ArrayList<>();
         //获取所有机构
         List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.findAllOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-        if(CollectionUtil.isEmpty(orgList)){
-            log.error("获取机构信息失败!");
-            return;
-        }
         //是周一生成周任务
         if (taskTime.getDayOfWeek() == DayOfWeek.MONDAY) {
-            List<CoreMonitoringRetrievalTask> listWeek = this.buildCoreMonitoringRetrievalTask(RetrievalTaskCycle.WEEKCYCLE.getCode(), taskTime,orgList);
+            List<CoreMonitoringRetrievalTask> listWeek = this.buildCoreMonitoringRetrievalTask(RetrievalTaskCycle.WEEKCYCLE.getCode(), taskTime, orgList);
             if (CollectionUtil.isNotEmpty(listWeek)) {
                 list.addAll(listWeek);
             }
         }
         //生成每日任务
-        List<CoreMonitoringRetrievalTask> listDay = this.buildCoreMonitoringRetrievalTask(RetrievalTaskCycle.DAYCYCLE.getCode(), taskTime,orgList);
+        List<CoreMonitoringRetrievalTask> listDay = this.buildCoreMonitoringRetrievalTask(RetrievalTaskCycle.DAYCYCLE.getCode(), taskTime, orgList);
         if (CollectionUtil.isNotEmpty(listDay)) {
             list.addAll(listDay);
         }
@@ -326,14 +322,13 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     }
 
     /**
-     *
-     * @param cycle 周期
+     * @param cycle    周期
      * @param taskTime 日期
-     * @param orgList 机构
+     * @param orgList  机构
      * @return
      */
 
-    private List<CoreMonitoringRetrievalTask> buildCoreMonitoringRetrievalTask(Integer cycle, LocalDate taskTime,List<SysOrg> orgList) {
+    private List<CoreMonitoringRetrievalTask> buildCoreMonitoringRetrievalTask(Integer cycle, LocalDate taskTime, List<SysOrg> orgList) {
         List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
         //获取计划
         QueryWrapper<TMonitoringRetrievalPlan> queryWrapper = new QueryWrapper<>();
@@ -345,9 +340,9 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         //按计划生成任务
         for (TMonitoringRetrievalPlan plan : planList) {
             //获取计划关联的机构
-            List<SysOrg> listByType = orgList.stream().filter(r->r.getId().equals(plan.getOrgId())&&r.getDeleted()==0&&r.getIsLock()==0).collect(Collectors.toList());
-            if(CollectionUtil.isNotEmpty(listByType)){
-                List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, taskTime,listByType.get(0));
+            List<SysOrg> listByType = orgList.stream().filter(r -> r.getId().equals(plan.getOrgId()) && r.getDeleted() == 0 && r.getIsLock() == 0).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(listByType)) {
+                List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, taskTime, listByType.get(0));
                 if (CollectionUtil.isNotEmpty(list)) {
                     taskList.addAll(list);
                 }
@@ -357,48 +352,46 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     }
 
     /**
-     *
-     * @param plan 计划
+     * @param plan     计划
      * @param taskTime 日期
-     * @param sysOrg 机构
+     * @param sysOrg   机构
      * @return
      */
-    private List<CoreMonitoringRetrievalTask> buildCoreMonitoringRetrievalTask(TMonitoringRetrievalPlan plan, LocalDate taskTime,SysOrg sysOrg) {
-         List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
-              Long batchNum = IDHelper.id();
-              for(int i=0;i<plan.getPlanFrequency();i++){
-                  CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum,i+1,plan,sysOrg,taskTime);
-                  taskList.add(task);
-              }
+    private List<CoreMonitoringRetrievalTask> buildCoreMonitoringRetrievalTask(TMonitoringRetrievalPlan plan, LocalDate taskTime, SysOrg sysOrg) {
+        List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
+        Long batchNum = IDHelper.id();
+        for (int i = 0; i < plan.getPlanFrequency(); i++) {
+            CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i + 1, plan, sysOrg, taskTime);
+            taskList.add(task);
+        }
 
-      return taskList;
+        return taskList;
 
     }
 
     /**
-     *
-     * @param batchNum 批次
+     * @param batchNum  批次
      * @param frequency 第几次
-     * @param plan 计划
-     * @param sysOrg 机构
-     * @param taskTime 日期
+     * @param plan      计划
+     * @param sysOrg    机构
+     * @param taskTime  日期
      * @return
      */
-    private CoreMonitoringRetrievalTask buildCoreMonitoringRetrievalTask(Long batchNum, int frequency, TMonitoringRetrievalPlan plan, SysOrg sysOrg,LocalDate taskTime) {
+    private CoreMonitoringRetrievalTask buildCoreMonitoringRetrievalTask(Long batchNum, int frequency, TMonitoringRetrievalPlan plan, SysOrg sysOrg, LocalDate taskTime) {
         Date dateTime = Date.from(taskTime.atStartOfDay(ZoneId.systemDefault()).toInstant());
         Ymd ymd = Ymd.of(dateTime);
-        DateRange dateRange =null;
-        if(Integer.parseInt(plan.getPlanCycle())==RetrievalTaskCycle.NOCYCLE.getCode()){
-           //无周期任务获取计划时间//重计划中获取
+        DateRange dateRange = null;
+        if (Integer.parseInt(plan.getPlanCycle()) == RetrievalTaskCycle.NOCYCLE.getCode()) {
+            //无周期任务获取计划时间//重计划中获取
             dateRange.setStartTime(plan.getStartTime());
             dateRange.setEndTime(plan.getEndTime());
-        }else {
+        } else {
             //周期任务获取计划时间
-            dateRange = DateUtils.getStartAndEnd(dateTime,Integer.parseInt(plan.getPlanCycle()));
+            dateRange = DateUtils.getStartAndEnd(dateTime, Integer.parseInt(plan.getPlanCycle()));
         }
         CoreMonitoringRetrievalTask task = new CoreMonitoringRetrievalTask();
         task.setId(IDHelper.id());
-        task.setTaskName(plan.getPlanName()+"第"+frequency+"次调阅");
+        task.setTaskName(plan.getPlanName() + "第" + frequency + "次调阅");
         task.setCycle(Integer.parseInt(plan.getPlanCycle()));
         task.setOrgId(sysOrg.getId());
         task.setOrgPath(sysOrg.getPath());

+ 43 - 0
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/RetrievalTask.java

@@ -0,0 +1,43 @@
+package com.xunmei.job.task;
+
+
+import com.alibaba.fastjson.JSON;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.R;
+import com.xunmei.system.api.RemoteSyncOrgAndUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 监控调阅定时任务
+ *
+ * @author xunmei
+ */
+
+@Component("RetrievalTask")
+public class RetrievalTask {
+
+
+    /**
+     * 每天生成日任务 如果当天是周一还需生成周任务
+     */
+    public void RetrievalDayTask()
+    {
+
+    }
+    /**
+     * 1.1生成周期为每月,每季,每半年,每年的任务
+     * 4.1||10.1日生成周期为每月,每季
+     * 7.1日获取执行周期为每月,每季,每半年的
+     * 其他日期生成月任务
+     *
+     */
+    public void RetrievalMonthTask()
+    {
+
+    }
+
+
+
+
+}