Quellcode durchsuchen

监控调阅任务

ouyang vor 2 Jahren
Ursprung
Commit
8acd567339

+ 8 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteRetrievalTaskService.java

@@ -48,4 +48,12 @@ public interface RemoteRetrievalTaskService {
      */
     @GetMapping("/retrievalTask/monthTask")
     AjaxResult monthTask(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 修改未完成任务(待调阅和调阅中的任务)的状态为已超期
+     * @param source
+     * @return
+     */
+    @GetMapping("/retrievalTask/updateTaskStart")
+    AjaxResult updateTaskStart(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteRetrievalTaskFallbackFactory.java

@@ -40,6 +40,11 @@ public class RemoteRetrievalTaskFallbackFactory implements FallbackFactory<Remot
             public AjaxResult monthTask(String source) {
                 return AjaxResult.error("监控调阅每月任务生成服务调用失败,失败原因:" + throwable.getMessage());
             }
+
+            @Override
+            public AjaxResult updateTaskStart(String source) {
+                return AjaxResult.error("修改未完成任务的状态为已超期服务调用失败,失败原因:" + throwable.getMessage());
+            }
         };
     }
 }

+ 2 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/RetrievalTaskCycle.java

@@ -12,8 +12,8 @@ public enum RetrievalTaskCycle
     WEEKCYCLE(2, "每月"),
     MONTHCYCLE(3, "每月"),
     QUARTERCYCLE(4, "每季度"),
-    HALFYEARCYCLE(4, "每半年"),
-    YEARCYCLE(5, "每年");
+    HALFYEARCYCLE(5, "每半年"),
+    YEARCYCLE(6, "每年");
 
     private final Integer code;
     private final String info;

+ 9 - 6
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/utils/DateUtils.java

@@ -1,5 +1,7 @@
 package com.xunmei.common.core.utils;
 
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.domain.DateRange;
@@ -172,7 +174,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 endDateTime = localDate.atTime(LocalTime.MAX);
                 startTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
                 endTime = Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
-                return new DateRange(startTime, endTime);
+                break;
             case 2: // week
                 LocalDate startOfWeek = localDate.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
                 LocalDate endOfWeek = localDate.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
@@ -180,7 +182,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 endDateTime = endOfWeek.atTime(LocalTime.MAX);
                 startTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
                 endTime = Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
-                return new DateRange(startTime, endTime);
+                break;
             case 3: // month
                 LocalDate startOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth());
                 LocalDate endOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth());
@@ -188,7 +190,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 endDateTime = endOfMonth.atTime(LocalTime.MAX);
                 startTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
                 endTime = Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
-                return new DateRange(startTime, endTime);
+                break;
             case 4: // quarter
                 Month month = localDate.getMonth();
                 int quarter = (month.getValue() - 1) / 3 + 1;
@@ -198,7 +200,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 endDateTime = endOfQuarter.atTime(LocalTime.MAX);
                 startTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
                 endTime = Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
-                return new DateRange(startTime, endTime);
+                break;
             case 5: // half-year
                 int halfYear = (localDate.getMonthValue() - 1) / 6 + 1;
                 LocalDate startOfHalfYear = LocalDate.of(localDate.getYear(), (halfYear - 1) * 6 + 1, 1);
@@ -207,7 +209,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 endDateTime = endOfHalfYear.atTime(LocalTime.MAX);
                 startTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
                 endTime = Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
-                return new DateRange(startTime, endTime);
+                break;
             case 6: // year
                 LocalDate startOfYear = localDate.with(TemporalAdjusters.firstDayOfYear());
                 LocalDate endOfYear = localDate.with(TemporalAdjusters.lastDayOfYear());
@@ -215,11 +217,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 endDateTime = endOfYear.atTime(LocalTime.MAX);
                 startTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
                 endTime = Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant());
-                return new DateRange(startTime, endTime);
+                break;
             default: // unsupported planCycle
                 throw new IllegalArgumentException("Unsupported planCycle: " + planCycle);
         }
 
+        return new DateRange(DateTime.of(startTime).setField(DateField.MILLISECOND, 0), DateTime.of(endTime).setField(DateField.MILLISECOND, 0));
     }
 
     /**

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

@@ -145,4 +145,18 @@ public class CoreMonitoringRetrievalTaskController extends BaseController {
         }
     }
 
+    /**
+     * 修改未完成任务(待调阅和调阅中的任务)的状态为已超期
+     * @return
+     */
+    @InnerAuth
+    @GetMapping("/updateTaskStart")
+    public AjaxResult updateTaskStart() {
+        try {
+            coreMonitoringRetrievalTaskService.updateTaskStart();
+            return AjaxResult.success("修改任务状态成功");
+        } catch (Exception e) {
+            return AjaxResult.error("修改任务状态失败" + e.getMessage());
+        }
+    }
 }

+ 3 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/mapper/CoreMonitoringRetrievalTaskMapper.java

@@ -1,5 +1,6 @@
 package com.xunmei.core.retrieval.mapper;
 
+import java.util.Date;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -76,4 +77,6 @@ public interface CoreMonitoringRetrievalTaskMapper extends BaseMapper<CoreMonito
     List<TaskDataVo> selectTaskDataVoListByRetrievalTaskId(@Param("taskId") Long id);
 
     CoreMonitoringRetrievalTaskOneVo selectOneById(@Param("taskId") Long id);
+
+    void updateTaskStart(@Param("dateTimeNew") Date dateTimeNew);
 }

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/ICoreMonitoringRetrievalTaskService.java

@@ -87,4 +87,6 @@ public interface ICoreMonitoringRetrievalTaskService extends IService<CoreMonito
     void monthTask(LocalDate taskTime);
 
     CoreMonitoringRetrievalTaskOneVo selectCoreMonitoringRetrievalTaskOneVoById(Long id);
+
+    void updateTaskStart();
 }

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

@@ -1,10 +1,14 @@
 package com.xunmei.core.retrieval.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
@@ -328,13 +332,19 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
     @Override
     public CoreMonitoringRetrievalTaskOneVo selectCoreMonitoringRetrievalTaskOneVoById(Long id) {
         CoreMonitoringRetrievalTaskOneVo retrievalTaskOneVo = coreMonitoringRetrievalTaskMapper.selectOneById(id);
-       /* CoreMonitoringRetrievalTask retrievalTask = this.getById(id);
-        BeanHelper.copyProperties(retrievalTaskOneVo, retrievalTask);*/
         List<TaskDataVo>  taskDataVoList = coreMonitoringRetrievalTaskMapper.selectTaskDataVoListByRetrievalTaskId(id);
         retrievalTaskOneVo.setTaskDataVoList(taskDataVoList);
         return retrievalTaskOneVo;
     }
 
+    @Override
+    public void updateTaskStart() {
+        LocalDate dateTime =  LocalDate.now();
+        Date dateTimeNew = Date.from(dateTime.atStartOfDay(ZoneId.systemDefault()).toInstant());
+        DateUtil.endOfDay(dateTimeNew).setField(DateField.MILLISECOND, 0);
+        coreMonitoringRetrievalTaskMapper.updateTaskStart(dateTimeNew);
+    }
+
     /**
      * @param cycle    周期
      * @param taskTime 日期
@@ -350,7 +360,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanStatus, 0);
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getIsDeleted, 0);
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getCreateType, 1);
-        List<TMonitoringRetrievalPlan> planList = itMonitoringRetrievalPlanService.list();
+        List<TMonitoringRetrievalPlan> planList = itMonitoringRetrievalPlanService.list(queryWrapper);
         //按计划生成任务
         for (TMonitoringRetrievalPlan plan : planList) {
             //获取计划关联的机构
@@ -373,7 +383,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
      */
     private List<CoreMonitoringRetrievalTask> buildCoreMonitoringRetrievalTask(TMonitoringRetrievalPlan plan, LocalDate taskTime, SysOrg sysOrg) {
         List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
-        Long batchNum = IDHelper.id();
+        Long batchNum = IdWorker.getId();
         for (int i = 0; i < plan.getPlanFrequency(); i++) {
             CoreMonitoringRetrievalTask task = this.buildCoreMonitoringRetrievalTask(batchNum, i + 1, plan, sysOrg, taskTime);
             taskList.add(task);
@@ -397,13 +407,13 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         DateRange dateRange = null;
         if (Integer.parseInt(plan.getPlanCycle()) == RetrievalTaskCycle.NOCYCLE.getCode()) {
             //无周期任务获取计划时间//重计划中获取
-            dateRange = new  DateRange(plan.getStartTime(), plan.getEndTime());
+            dateRange = new  DateRange(DateUtil.beginOfDay(plan.getStartTime()).setField(DateField.MILLISECOND, 0), DateUtil.endOfDay(plan.getEndTime()).setField(DateField.MILLISECOND, 0));
         } else {
             //周期任务获取计划时间
             dateRange = DateUtils.getStartAndEnd(dateTime, Integer.parseInt(plan.getPlanCycle()));
         }
         CoreMonitoringRetrievalTask task = new CoreMonitoringRetrievalTask();
-        task.setId(IDHelper.id());
+        task.setId(IdWorker.getId());
         task.setTaskName(plan.getPlanName() + "第" + frequency + "次调阅");
         task.setCycle(plan.getPlanCycle());
         task.setOrgId(sysOrg.getId());
@@ -412,7 +422,6 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         task.setBatchNum(batchNum);
         task.setPlanId(plan.getId());
         task.setOrderNum(frequency);
-        System.out.println(dateRange.getStartTime() + "---" + dateRange.getEndTime());
         task.setPlanStartTime(dateRange.getStartTime());
         task.setPlanEndTime(dateRange.getEndTime());
         task.setYmdDate(ymd.getDate());
@@ -424,6 +433,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         task.setYmdDay(ymd.getDay());
         task.setRoleId(plan.getRoleId());
         task.setStatus("0");
+        task.setCreateTime(DateTime.now());
         return task;
     }
 

+ 3 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -309,6 +309,9 @@
         </trim>
         where id = #{id}
     </update>
+    <update id="updateTaskStart">
+        update core_monitoring_retrieval_task set status=3 where #{dateTimeNew}>plan_end_time and status!=2
+    </update>
 
     <delete id="deleteCoreMonitoringRetrievalTaskById" parameterType="Long">
         delete

+ 28 - 13
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/RetrievalTask.java

@@ -1,21 +1,24 @@
 package com.xunmei.job.task;
 
 
+import cn.hutool.core.lang.UUID;
 import com.alibaba.fastjson.JSON;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.system.api.RemoteRetrievalTaskService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
+import java.util.Date;
 
 /**
  * 监控调阅定时任务
  *
  * @author xunmei
  */
-
+@Slf4j
 @Component("RetrievalTask")
 public class RetrievalTask {
     @Resource
@@ -24,10 +27,12 @@ public class RetrievalTask {
     /**
      * 每天生成日任务 如果当天是周一还需生成周任务
      */
-    public void retrieveDayTaskByDate(LocalDate taskTime)
-    {   System.out.println("监控调阅每日每周任务生产服务有参"+taskTime);
-        AjaxResult result = remoteRetrievalTaskService.dayTask(taskTime, SecurityConstants.INNER);
-        System.out.println(JSON.toJSONString(result));
+    public void retrieveDayTaskByDate(String taskTime)
+    {   String id = UUID.fastUUID().toString();
+        log.info("开始执行监控调阅每日每周任务生成定时任务,当前任务 id:{},当前时间:{},参数:{}", id, new Date(), JSON.toJSONString(taskTime));
+        LocalDate dateTime = LocalDate.parse(taskTime);
+        AjaxResult result = remoteRetrievalTaskService.dayTask(dateTime, SecurityConstants.INNER);
+        log.info("监控调阅每日每周任务生成定时任务执行结束,当前任务 id:{},当前时间:{},结果:{}", id, new Date(), JSON.toJSONString(result));
     }
     /**
      * 1.1生成周期为每月,每季,每半年,每年的任务
@@ -36,16 +41,19 @@ public class RetrievalTask {
      * 其他日期生成月任务
      *
      */
-    public void retrieveMonthTaskByDate(LocalDate taskTime)
-    {   System.out.println("监控调阅每月任务生产服务有参"+taskTime);
-        AjaxResult result = remoteRetrievalTaskService.monthTask(taskTime,SecurityConstants.INNER);
-        System.out.println(JSON.toJSONString(result));
+    public void retrieveMonthTaskByDate(String taskTime)
+    {   String id = UUID.fastUUID().toString();
+        log.info("开始执行监控调阅每月季度半年年任务生成定时任务,当前任务 id:{},当前时间:{},参数:{}", id, new Date(), JSON.toJSONString(taskTime));
+        LocalDate dateTime = LocalDate.parse(taskTime);
+        AjaxResult result = remoteRetrievalTaskService.monthTask(dateTime,SecurityConstants.INNER);
+        log.info("监控调阅每月季度半年年任务生成定时任务执行结束,当前任务 id:{},当前时间:{},结果:{}", id, new Date(), JSON.toJSONString(result));
     }
 
     public void retrieveDayTask()
-    {   System.out.println("监控调阅每日每周任务生产服务无参");
+    {   String id = UUID.fastUUID().toString();
+        log.info("开始执行监控调阅每日每周任务生成定时任务,当前任务 id:{},当前时间:{},无参数", id, new Date());
         AjaxResult result = remoteRetrievalTaskService.dayTask(SecurityConstants.INNER);
-        System.out.println(JSON.toJSONString(result));
+        log.info("监控调阅每日每周任务生成定时任务执行结束,当前任务 id:{},当前时间:{},结果:{}", id, new Date(), JSON.toJSONString(result));
     }
     /**
      * 1.1生成周期为每月,每季,每半年,每年的任务
@@ -55,9 +63,16 @@ public class RetrievalTask {
      *
      */
     public void retrieveMonthTask()
-    {   System.out.println("监控调阅每月任务生产服务无参");
+    {   String id = UUID.fastUUID().toString();
+        log.info("开始执行监控调阅每月季度半年年任务生成定时任务,当前任务 id:{},当前时间:{},无参数", id, new Date());
         AjaxResult result =  remoteRetrievalTaskService.monthTask(SecurityConstants.INNER);
-        System.out.println(JSON.toJSONString(result));
+        log.info("监控调阅每月季度半年年任务生成定时任务执行结束,当前任务 id:{},当前时间:{},结果:{}", id, new Date(), JSON.toJSONString(result));
+    }
+    public void updateTaskStart()
+    {   String id = UUID.fastUUID().toString();
+        log.info("开始执行监控调阅任务超期定时任务,当前任务 id:{},当前时间:{},无参数", id, new Date());
+        AjaxResult result =  remoteRetrievalTaskService.updateTaskStart(SecurityConstants.INNER);
+        log.info("监控调阅任务超期定时任务执行结束,当前任务 id:{},当前时间:{},结果:{}", id, new Date(), JSON.toJSONString(result));
     }