瀏覽代碼

add:定时任务

caozixuan 1 年之前
父節點
當前提交
c47b74e689

+ 8 - 0
sop-common/src/main/java/com/qmth/sop/common/enums/JobEnum.java

@@ -25,6 +25,14 @@ public enum JobEnum {
 
     SYNC_FXXK_CRM_GROUP("同步纷享销客派单数据定时任务组"),
 
+    SYNC_RTZF_USER_PUSH("软通智服用户推送定时任务"),
+
+    SYNC_RTZF_USER_PUSH_GROUP("软通智服用户推送定时任务组"),
+
+    SYNC_RTZF_USER_UPDATE("软通智服用户更新定时任务"),
+
+    SYNC_RTZF_USER_UPDATE_GROUP("软通智服用户更新定时任务组"),
+
     AUTO_ADD_DING_RECORD("自动打卡定时任务"),
 
     AUTO_ADD_DING_RECORD_GROUP("自动打卡定时任务组");

+ 28 - 0
sop-task/src/main/java/com/qmth/sop/task/job/RtzfUserPushJob.java

@@ -0,0 +1,28 @@
+package com.qmth.sop.task.job;
+
+import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.task.job.service.JobService;
+import org.quartz.JobExecutionContext;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import javax.annotation.Resource;
+
+/**
+ * @Description: 软通智服用户推送定时任务
+ * @Author: CaoZixuan
+ * @Date: 2023-11-28
+ */
+public class RtzfUserPushJob extends QuartzJobBean {
+    @Resource
+    JobService jobService;
+
+
+    @Override
+    protected void executeInternal(JobExecutionContext context) {
+        try {
+            jobService.rtzfUserPush();
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        }
+    }
+}

+ 27 - 0
sop-task/src/main/java/com/qmth/sop/task/job/RtzfUserUpdateJob.java

@@ -0,0 +1,27 @@
+package com.qmth.sop.task.job;
+
+import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.task.job.service.JobService;
+import org.quartz.JobExecutionContext;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import javax.annotation.Resource;
+
+/**
+ * @Description: 软通智服用户更新定时任务
+ * @Author: CaoZixuan
+ * @Date: 2023-11-28
+ */
+public class RtzfUserUpdateJob extends QuartzJobBean {
+    @Resource
+    JobService jobService;
+
+    @Override
+    protected void executeInternal(JobExecutionContext context) {
+        try {
+            jobService.rtzfUserUpdate();
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        }
+    }
+}

+ 14 - 2
sop-task/src/main/java/com/qmth/sop/task/job/service/JobService.java

@@ -2,8 +2,6 @@ package com.qmth.sop.task.job.service;
 
 import com.qmth.sop.common.enums.JobEnum;
 
-import java.util.Map;
-
 /**
  * @Description: job service
  * @Param:
@@ -39,6 +37,20 @@ public interface JobService {
      */
     void fxxkCrmSync() throws Exception;
 
+    /**
+     * 软通智服用户推送同步
+     *
+     * @throws Exception 异常
+     */
+    void rtzfUserPush() throws Exception;
+
+    /**
+     * 软通智服用户更新同步
+     *
+     * @throws Exception 异常
+     */
+    void rtzfUserUpdate() throws Exception;
+
     /**
      * 自动打卡定时任务
      */

+ 60 - 0
sop-task/src/main/java/com/qmth/sop/task/job/service/impl/JobServiceImpl.java

@@ -8,6 +8,8 @@ import com.qmth.sop.business.entity.TBTask;
 import com.qmth.sop.business.entity.TSJobRemind;
 import com.qmth.sop.business.service.*;
 import com.qmth.sop.business.templete.execute.AsyncFxxkCrmSyncService;
+import com.qmth.sop.business.templete.execute.AsyncRtzfUserPushService;
+import com.qmth.sop.business.templete.execute.AsyncRtzfUserUpdateBatchService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.*;
 import com.qmth.sop.task.job.RemindTaskJob;
@@ -58,6 +60,12 @@ public class JobServiceImpl implements JobService {
     @Resource
     TBDingService tbDingService;
 
+    @Resource
+    AsyncRtzfUserPushService asyncRtzfUserPushService;
+
+    @Resource
+    AsyncRtzfUserUpdateBatchService asyncRtzfUserUpdateBatchService;
+
     /**
      * 流程任务提醒task
      */
@@ -200,6 +208,58 @@ public class JobServiceImpl implements JobService {
         asyncFxxkCrmSyncService.syncData(map);
     }
 
+    @Override
+    public void rtzfUserPush() throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        List<TBTask> tbTaskList = tbTaskService.list(new QueryWrapper<TBTask>().lambda().eq(TBTask::getType, TaskTypeEnum.RTZF_USER_PUSH_SYNC));
+        TBTask tbTask;
+        if (!CollectionUtils.isEmpty(tbTaskList)) {
+            if (tbTaskList.size() > 1) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("存在多条类型为[%s]的任务", TaskTypeEnum.RTZF_USER_PUSH_SYNC.getTitle()));
+            }
+            tbTask = tbTaskList.get(0);
+            tbTask.setStatus(TaskStatusEnum.RUNNING);
+            tbTaskService.updateById(tbTask);
+        } else {
+            SysUser sysUser = sysUserService.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName, "sysadmin"));
+            if (Objects.isNull(sysUser)) {
+                throw ExceptionResultEnum.ERROR.exception("缺少系统管理员");
+            }
+            tbTask = new TBTask(TaskTypeEnum.RTZF_USER_PUSH_SYNC,
+                    TaskStatusEnum.RUNNING,
+                    sysUser.getId());
+            tbTaskService.save(tbTask);
+        }
+        map.put(SystemConstant.TASK, tbTask);
+        asyncRtzfUserPushService.syncData(map);
+    }
+
+    @Override
+    public void rtzfUserUpdate() throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        List<TBTask> tbTaskList = tbTaskService.list(new QueryWrapper<TBTask>().lambda().eq(TBTask::getType, TaskTypeEnum.RTZF_USER_UPDATE_SYNC));
+        TBTask tbTask;
+        if (!CollectionUtils.isEmpty(tbTaskList)) {
+            if (tbTaskList.size() > 1) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("存在多条类型为[%s]的任务", TaskTypeEnum.RTZF_USER_UPDATE_SYNC.getTitle()));
+            }
+            tbTask = tbTaskList.get(0);
+            tbTask.setStatus(TaskStatusEnum.RUNNING);
+            tbTaskService.updateById(tbTask);
+        } else {
+            SysUser sysUser = sysUserService.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getLoginName, "sysadmin"));
+            if (Objects.isNull(sysUser)) {
+                throw ExceptionResultEnum.ERROR.exception("缺少系统管理员");
+            }
+            tbTask = new TBTask(TaskTypeEnum.RTZF_USER_UPDATE_SYNC,
+                    TaskStatusEnum.RUNNING,
+                    sysUser.getId());
+            tbTaskService.save(tbTask);
+        }
+        map.put(SystemConstant.TASK, tbTask);
+        asyncRtzfUserUpdateBatchService.syncData(map);
+    }
+
     @Override
     public void autoAddDingRecord() {
         Calendar calendar = Calendar.getInstance();

+ 15 - 4
sop-task/src/main/java/com/qmth/sop/task/start/StartRunning.java

@@ -5,10 +5,7 @@ import com.qmth.sop.business.entity.SysConfig;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.JobEnum;
-import com.qmth.sop.task.job.AutoAddDingRecordJob;
-import com.qmth.sop.task.job.FlowTaskRemindJob;
-import com.qmth.sop.task.job.FxxkCrmSyncJob;
-import com.qmth.sop.task.job.SequenceJob;
+import com.qmth.sop.task.job.*;
 import com.qmth.sop.task.service.QuartzService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -68,6 +65,20 @@ public class StartRunning implements CommandLineRunner {
         quartzService.addJob(FxxkCrmSyncJob.class, JobEnum.SYNC_FXXK_CRM.name(), JobEnum.SYNC_FXXK_CRM_GROUP.name(), "0 0/5 6-23 * * ?", fxxkCrmSyncMap);
         log.info("fxxk派单同步定时任务 end");
 
+        log.info("rtzf用户推送定时任务 start");
+        Map<Object,Object> rtzfUserPushMap = new HashMap<>();
+        rtzfUserPushMap.put(SystemConstant.NAME, RtzfUserPushJob.class.getName());
+        quartzService.deleteJob(JobEnum.SYNC_RTZF_USER_PUSH.name(), JobEnum.SYNC_RTZF_USER_PUSH_GROUP.name());
+        quartzService.addJob(RtzfUserPushJob.class, JobEnum.SYNC_RTZF_USER_PUSH.name(), JobEnum.SYNC_RTZF_USER_PUSH_GROUP.name(), "0 0/5 6-23 * * ?", rtzfUserPushMap);
+        log.info("rtzf用户推送定时任务 end");
+
+        log.info("rtzf用户更新定时任务 start");
+        Map<Object,Object> rtzfUserUpdateMap = new HashMap<>();
+        rtzfUserUpdateMap.put(SystemConstant.NAME, RtzfUserUpdateJob.class.getName());
+        quartzService.deleteJob(JobEnum.SYNC_RTZF_USER_UPDATE.name(), JobEnum.SYNC_RTZF_USER_UPDATE_GROUP.name());
+        quartzService.addJob(RtzfUserUpdateJob.class, JobEnum.SYNC_RTZF_USER_PUSH.name(), JobEnum.SYNC_RTZF_USER_PUSH_GROUP.name(), "0 2/5 6-23 * * ?", rtzfUserUpdateMap);
+        log.info("rtzf用户更新定时任务 end");
+
         log.info("自动打卡定时任务 start");
         Map<Object,Object> autoAddDingRecordMap = new HashMap<>();
         autoAddDingRecordMap.put(SystemConstant.NAME, AutoAddDingRecordJob.class.getName());