Procházet zdrojové kódy

1.修改了工号缓存更新的方法
2.提供了公开的手工获取薪资数据的方法

verguenza před 5 roky
rodič
revize
323af87b72

+ 33 - 0
src/main/java/com/galaxis/manatee/controller/GetController.java

@@ -0,0 +1,33 @@
+package com.galaxis.manatee.controller;
+
+import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.net.http.HttpResponse;
+
+/**
+ * 提供手工触发更新氚云数据的接口
+ * @author zcj
+ * @version 0.1
+ * @date 2020/6/7 10:26 上午
+ */
+@RestController
+public class GetController {
+
+    private final ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask;
+
+    public GetController(ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask) {
+        this.chuanyunHumanResourceScheduledTask = chuanyunHumanResourceScheduledTask;
+    }
+
+    /**
+     * 手动更新chuanyunPayRoll
+     * @return  提示信息
+     */
+    @GetMapping("/test/getChuanyunPayroll")
+    public String getChuanyunPayroll(){
+        chuanyunHumanResourceScheduledTask.getPayrollManually();
+        return "开始更新薪资数据";
+    }
+}

+ 15 - 7
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -81,6 +81,21 @@ public class ChuanyunBasicDataScheduledTask {
     }
 
     /**
+     * 获取用户工号
+     */
+    @Scheduled(fixedDelay = 1800000L)
+    private void getUserEmployeeNumber(){
+        chuanyunUserDao.findAll().forEach(chuanyunUserDO -> {
+            if(StringUtils.isEmpty(chuanyunUserDO.getEmployeeNumber())){
+                ChuanYunConstant.USER_EMPLOYEE_NUMBER.put(chuanyunUserDO.getObjectId(),"");
+            }else{
+                ChuanYunConstant.USER_EMPLOYEE_NUMBER.put(chuanyunUserDO.getObjectId(),chuanyunUserDO.getEmployeeNumber());
+            }
+        });
+        log.info("用户工号MAP更新完成");
+    }
+
+    /**
      * 从氚云中获取用户列表
      */
     private void getUserList() {
@@ -89,13 +104,6 @@ public class ChuanyunBasicDataScheduledTask {
         var totalCount=0;
         try {
             List<ChuanyunUserDO> userList=objectMapper.readValue(chuanyunFindAllDTO.getReturnData().getData(),new TypeReference<>(){});
-            userList.forEach(chuanyunUserDO -> {
-                if(StringUtils.isEmpty(chuanyunUserDO.getEmployeeNumber())){
-                    ChuanYunConstant.USER_EMPLOYEE_NUMBER.put(chuanyunUserDO.getObjectId(),"");
-                }else{
-                    ChuanYunConstant.USER_EMPLOYEE_NUMBER.put(chuanyunUserDO.getObjectId(),chuanyunUserDO.getEmployeeNumber());
-                }
-            });
             totalCount=chuanyunUserDao.saveAll(userList).size();
         } catch (Exception e) {
             e.printStackTrace();

+ 9 - 0
src/main/java/com/galaxis/manatee/task/ChuanyunHumanResourceScheduledTask.java

@@ -12,6 +12,7 @@ import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.manager.ChuanYunManager;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -46,6 +47,14 @@ public class ChuanyunHumanResourceScheduledTask {
     }
 
     /**
+     * 提供一个外部调用接口
+     */
+    @Async
+    public void getPayrollManually(){
+        this.getPayroll();
+    }
+
+    /**
      * 每天3点更新日志记录
      */
     @Scheduled(cron = "0 0 3 * * *")