Browse Source

履职定时任务,用户修复

luojun 2 years ago
parent
commit
0a22fa670a

+ 35 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteTaskService.java

@@ -0,0 +1,35 @@
+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.RemoteTaskFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(contextId = "remoteTaskService", value = ServiceNameConstants.CORE_SERVICE, fallbackFactory = RemoteTaskFallbackFactory.class)
+public interface RemoteTaskService {
+    /**
+     * 执行每日每小时履职任务生成任务
+     *
+     * @return
+     */
+    @GetMapping("/task/dayTask")
+    R<AjaxResult> dayTask();
+
+    /**
+     * 每周履职任务生成任务
+     *
+     * @return
+     */
+    @GetMapping("/task/weekTask")
+    R<AjaxResult> weekTask();
+
+    /**
+     * 每月,每季,每半年,每年履职任务生成任务
+     *
+     * @return
+     */
+    @GetMapping("/task/monthTask")
+    R<AjaxResult> monthTask();
+}

+ 39 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteTaskFallbackFactory.java

@@ -0,0 +1,39 @@
+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.RemoteTaskService;
+import com.xunmei.system.api.RemoteUserService;
+import com.xunmei.system.api.model.LoginUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class);
+    @Override
+    public RemoteTaskService create(Throwable throwable) {
+
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteTaskService()
+        {
+
+            @Override
+            public R<AjaxResult> dayTask() {
+                return null;
+            }
+
+            @Override
+            public R<AjaxResult> weekTask() {
+                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

@@ -4,3 +4,4 @@ com.xunmei.system.api.factory.RemoteFileFallbackFactory
 com.xunmei.system.api.factory.RemoteOrgFallbackFactory
 com.xunmei.system.api.factory.RemoteConfigFallbackFactory
 com.xunmei.system.api.factory.RemoteWorkTimesFallbackFactory
+com.xunmei.system.api.factory.RemoteTaskFallbackFactory

+ 91 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/TaskController.java

@@ -0,0 +1,91 @@
+package com.xunmei.core.resumption.controller;
+
+import cn.hutool.core.date.DateTime;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.R;
+import com.xunmei.common.core.utils.DateHelper;
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.core.resumption.task.ResumptionTaskBusiness;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.TimeZone;
+
+/**
+ * @author LuoJun
+ */
+@RestController
+@RequestMapping("/task")
+public class TaskController {
+    @Autowired
+    ResumptionTaskBusiness taskBusiness;
+
+    @GetMapping("/dayTask")
+    public AjaxResult dayTask() {
+//        //执行周期为每周的履职计划Plan_cycle=0,6
+//        DateTime datetime = new DateTime();
+//        datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+//        JobLog jobLog = JobLog.builder().id(IDHelper.id()).jobCode("dayTask").jobName("每小时每日履职任务生成job").jobDate(datetime).createTime(datetime).build();
+//        boolean flag = jobLogService.isJobRunning(jobLog);
+//        if(flag){
+//            SCHEDULEDTASKSLOG.info("每小时每日履职任务生成job已执行,本次不执行");
+//            return;
+//        }
+//        SCHEDULEDTASKSLOG.info("================开始执行每日每小时履职任务生成任务================");
+//        taskBusiness.syncHour(datetime,6);
+//        taskBusiness.syncDay(datetime,0);
+//        SCHEDULEDTASKSLOG.info("================每日每小时履职任务生成任务执行结束================");
+        DateTime datetime = new DateTime();
+        datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+//        SCHEDULEDTASKSLOG.info("================开始执行每日每小时履职任务生成任务================");
+        taskBusiness.syncHour(datetime,6);
+        taskBusiness.syncDay(datetime,0);
+//        SCHEDULEDTASKSLOG.info("================每日每小时履职任务生成任务执行结束================");
+        return AjaxResult.success();
+    }
+
+    @GetMapping("/weekTask")
+    public AjaxResult weekTask() {
+        DateTime datetime = new DateTime();
+        datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+//        SCHEDULEDTASKSLOG.info("================开始执行每周履职任务生成任务================");
+        taskBusiness.syncWeek(datetime,1);
+//        SCHEDULEDTASKSLOG.info("================每周履职任务生成任务执行结束================");
+        return AjaxResult.success();
+    }
+
+    @GetMapping("/monthTask")
+    public AjaxResult monthTask() {
+        DateTime datetime = new DateTime();
+        datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+        DateHelper dateHelper = new DateHelper(datetime);
+        int month =dateHelper.getMonth();
+        int day = dateHelper.getDay();
+//        SCHEDULEDTASKSLOG.info("================开始执行每月,每季,每半年,每年履职任务生成任务================");
+        if(month==1&&day==1){
+            //1.1日获取执行周期为每月,每季,每半年,每年的履职计划Plan_cycle=2,3,4,5
+            taskBusiness.syncMonth(datetime,2);
+            taskBusiness.syncQuarter(datetime,3);
+            taskBusiness.syncHalfYear(datetime,4);
+            taskBusiness.syncYear(datetime,5);
+        }else if((month==4&&day==1)||(month==10&&day==1)){
+            //4.1||10.1日获取执行周期为每月,每季的履职计划Plan_cycle=2,3
+            taskBusiness.syncMonth(datetime,2);
+            taskBusiness.syncQuarter(datetime,3);
+        }else if(month==7&&day==1){
+            //7.1日获取执行周期为每月,每季,每半年的履职计划Plan_cycle=2,3,4
+            taskBusiness.syncMonth(datetime,2);
+            taskBusiness.syncQuarter(datetime,3);
+            taskBusiness.syncHalfYear(datetime,4);
+
+        }else {
+            //其他获取每月履职计划Plan_cycle=2
+            taskBusiness.syncMonth(datetime,2);
+        }
+//        SCHEDULEDTASKSLOG.info("================每月,每季,每半年,每年履职任务生成任务执行结束================");
+        return AjaxResult.success();
+    }
+}

+ 2 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -110,7 +110,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         page = userMapper.selectPage(page, query);
         for (SysUser u:
              page.getRecords()) {
-            u.setOrgName(orgService.selectSysOrgById(user.getOrgId()).getName());
+            u.setOrgName(orgService.selectSysOrgById(u.getOrgId()).getName());
         }
         //抓换为TableDataInfo适配前端
         TableDataInfo tableDataInfo = new TableDataInfo();
@@ -316,6 +316,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Transactional(rollbackFor = Exception.class)
     public int insertUser(SysUser user)
     {
+        user.setCreateTime(new Date());
         // 新增用户信息
         int rows = userMapper.insert(user);
         // 新增用户岗位关联