From 2c86a8bd60deed0dd0e044bad6fb83f75d19a332 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 26 十月 2025 15:05:50 +0800
Subject: [PATCH] Merge branch 'feature-task'

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/OaSyncTask.java |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 0 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/OaSyncTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/OaSyncTask.java
new file mode 100644
index 0000000..775f837
--- /dev/null
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/OaSyncTask.java
@@ -0,0 +1,171 @@
+package com.ruoyi.quartz.task;
+
+import com.ruoyi.system.domain.DepartmentSyncDTO;
+import com.ruoyi.system.domain.OrderClassDTO;
+import com.ruoyi.system.domain.UserSyncDTO;
+import com.ruoyi.system.service.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import com.ruoyi.common.core.domain.AjaxResult;
+
+import java.util.List;
+
+/**
+ * OA鏁版嵁鍚屾瀹氭椂浠诲姟锛堢粍鍚堜换鍔★級
+ * 鍏堝悓姝ラ儴闂紝鍐嶅悓姝ョ敤鎴�
+ * 
+ * @author ruoyi
+ * @date 2025-10-18
+ */
+@Component("oaSyncTask")
+public class OaSyncTask
+{
+    private static final Logger log = LoggerFactory.getLogger(OaSyncTask.class);
+
+    @Autowired
+    private IDepartmentSyncService departmentSyncService;
+
+    @Autowired
+    private IUserSyncService userSyncService;
+
+    @Autowired
+    private IDepartmentSyncDataService departmentSyncDataService;
+
+    @Autowired
+    private IUserSyncDataService userSyncDataService;
+
+    private List<DepartmentSyncDTO> getDept(){
+        return departmentSyncDataService.getBranchDepartments();
+    }
+
+
+    private List<UserSyncDTO> getUserData(){
+        return userSyncDataService.getOaUsers();
+    }
+
+    @Autowired
+    private IOrderClassDataService orderClassDataService;
+    private List<OrderClassDTO> getServiceOrdCode() {
+        return orderClassDataService.getServiceOrderClass();
+    }
+    private List<OrderClassDTO> getDispatchOrdCode() {
+        return orderClassDataService.getDispatchOrderClass();
+    }
+    /**
+     * 鍚屾OA鏁版嵁锛堥儴闂�+鐢ㄦ埛锛�
+     * 鎸夐『搴忔墽琛岋細1. 閮ㄩ棬鍚屾  2. 鐢ㄦ埛鍚屾
+     * 
+     * 浣跨敤绀轰緥锛�
+     * - 浠诲姟鍚嶇О锛歄A鏁版嵁鍚屾
+     * - 璋冪敤鐩爣锛歰aSyncTask.syncOaData
+     * - cron琛ㄨ揪寮忥細0 0 2 * * ?锛堟瘡澶╁噷鏅�2鐐规墽琛岋級
+     */
+    public void syncOaData()
+    {
+        try
+        {
+            log.info("##########寮�濮嬫墽琛孫A鏁版嵁鍚屾瀹氭椂浠诲姟##########");
+            
+            // 绗竴姝ワ細鍚屾閮ㄩ棬
+            log.info("銆愭楠�1/2銆戝紑濮嬪悓姝ラ儴闂ㄦ暟鎹�...");
+            AjaxResult deptResult = departmentSyncService.syncBranchDepartments(this.getDept(),this.getServiceOrdCode(),this.getDispatchOrdCode());
+            
+            if (deptResult.get("code").equals(200))
+            {
+                log.info("銆愭楠�1/2銆戦儴闂ㄥ悓姝ユ垚鍔�: {}", deptResult.get("msg"));
+                
+                // 绗簩姝ワ細鍚屾鐢ㄦ埛锛堝彧鏈夐儴闂ㄥ悓姝ユ垚鍔熸墠鎵ц锛�
+                log.info("銆愭楠�2/2銆戝紑濮嬪悓姝ョ敤鎴锋暟鎹�...");
+                AjaxResult userResult = userSyncService.syncOaUsers(this.getUserData());
+                
+                if (userResult.get("code").equals(200))
+                {
+                    log.info("銆愭楠�2/2銆戠敤鎴峰悓姝ユ垚鍔�: {}", userResult.get("msg"));
+                    log.info("##########OA鏁版嵁鍚屾瀹氭椂浠诲姟鎵ц瀹屾垚##########");
+                    log.info("鎬荤粨锛氶儴闂ㄥ悓姝ユ垚鍔燂紝鐢ㄦ埛鍚屾鎴愬姛");
+                }
+                else
+                {
+                    log.error("銆愭楠�2/2銆戠敤鎴峰悓姝ュけ璐�: {}", userResult.get("msg"));
+                    log.warn("##########OA鏁版嵁鍚屾瀹氭椂浠诲姟閮ㄥ垎瀹屾垚##########");
+                    log.warn("鎬荤粨锛氶儴闂ㄥ悓姝ユ垚鍔燂紝鐢ㄦ埛鍚屾澶辫触");
+                }
+            }
+            else
+            {
+                log.error("銆愭楠�1/2銆戦儴闂ㄥ悓姝ュけ璐�: {}", deptResult.get("msg"));
+                log.error("鐢变簬閮ㄩ棬鍚屾澶辫触锛岃烦杩囩敤鎴峰悓姝�");
+                log.error("##########OA鏁版嵁鍚屾瀹氭椂浠诲姟鎵ц澶辫触##########");
+            }
+        }
+        catch (Exception e)
+        {
+            log.error("OA鏁版嵁鍚屾瀹氭椂浠诲姟鎵ц寮傚父", e);
+        }
+    }
+
+    /**
+     * 鍚屾OA鏁版嵁锛堝甫鍙傛暟锛�
+     * 
+     * @param params 鍙傛暟锛堥鐣欙紝鏆傛湭浣跨敤锛�
+     */
+    public void syncOaData(String params)
+    {
+        log.info("OA鏁版嵁鍚屾浠诲姟鍙傛暟: {}", params);
+        syncOaData();
+    }
+
+    /**
+     * 浠呭悓姝ラ儴闂紙鐙珛浠诲姟锛�
+     */
+    public void syncDepartmentsOnly()
+    {
+        try
+        {
+            log.info("==========寮�濮嬫墽琛岄儴闂ㄥ悓姝ヤ换鍔�==========");
+            AjaxResult result = departmentSyncService.syncBranchDepartments(this.getDept(),this.getServiceOrdCode(),this.getDispatchOrdCode());
+            
+            if (result.get("code").equals(200))
+            {
+                log.info("閮ㄩ棬鍚屾鎴愬姛: {}", result.get("msg"));
+            }
+            else
+            {
+                log.error("閮ㄩ棬鍚屾澶辫触: {}", result.get("msg"));
+            }
+            log.info("==========閮ㄩ棬鍚屾浠诲姟鎵ц瀹屾垚==========");
+        }
+        catch (Exception e)
+        {
+            log.error("閮ㄩ棬鍚屾浠诲姟鎵ц寮傚父", e);
+        }
+    }
+
+    /**
+     * 浠呭悓姝ョ敤鎴凤紙鐙珛浠诲姟锛�
+     */
+    public void syncUsersOnly()
+    {
+        try
+        {
+            log.info("==========寮�濮嬫墽琛岀敤鎴峰悓姝ヤ换鍔�==========");
+            AjaxResult result = userSyncService.syncOaUsers(this.getUserData());
+            
+            if (result.get("code").equals(200))
+            {
+                log.info("鐢ㄦ埛鍚屾鎴愬姛: {}", result.get("msg"));
+            }
+            else
+            {
+                log.error("鐢ㄦ埛鍚屾澶辫触: {}", result.get("msg"));
+            }
+            log.info("==========鐢ㄦ埛鍚屾浠诲姟鎵ц瀹屾垚==========");
+        }
+        catch (Exception e)
+        {
+            log.error("鐢ㄦ埛鍚屾浠诲姟鎵ц寮傚父", e);
+        }
+    }
+}

--
Gitblit v1.9.1