Pārlūkot izejas kodu

4.1.21 中建主数据同步调岗逻辑完善,添加执行时间

zero 1 mēnesi atpakaļ
vecāks
revīzija
3132fd9977

+ 1 - 1
platomix-gmetry-system-api/pom.xml

@@ -10,7 +10,7 @@
     <!--    日期和版本号需要同时升级-->
     <!--    4.2.64-2024.07.22->4.2.65-2024.07.22->4.2.66-2024.07.23-->
     <artifactId>platomix-gmetry-system-api</artifactId>
-    <version>4.1.20-20241225</version>
+    <version>4.1.21-20241226</version>
     <dependencies>
         <dependency>
             <groupId>com.platomix</groupId>

+ 22 - 15
platomix-gmetry-system-api/src/main/java/org/springblade/zhonnjian/task/FileToOssMonthTask.java

@@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -51,24 +52,27 @@ public class FileToOssMonthTask {
     private String tenantId;
 
 
-    @Scheduled(cron = "0 0 1 * * ?")  // 每天凌晨1:00执行
-    //@Scheduled(fixedRate = 90000000)
+
+    //@Scheduled(cron = "0 0 1 * * ?")  // 每天凌晨1:00执行
+    @Scheduled(fixedRate = 10000000)
     public void syncDeptAndUserFromMdm() {
-        log.info("开始同步MDM组织架构数据");
+        String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        log.info("开始同步MDM组织架构数据,开始时间:{}", startTime);
         try {
             String accessToken = getAccessToken();
             if (StringUtils.isNotBlank(accessToken)) {
                 // 同步部门数据,并获取MDM编码到部门ID的映射  同步人员数据,使用部门映射关系
                 syncDeptData(accessToken);
-                log.info("MDM组织架构数据同步完成");
+                String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+                log.info("MDM组织架构数据同步完成,开始时间:{},结束时间:{}", startTime, endTime);
             }
         } catch (Exception e) {
-            log.error("MDM组织架构数据同步失败", e);
+            String errorTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+            log.error("MDM组织架构数据同步失败,开始时间:{},失败时间:{}", startTime, errorTime, e);
             throw new RuntimeException(e);
         }
     }
 
-
     private JSONArray getAllTreeData(String accessToken) {
         JSONArray allData = new JSONArray();
         int page = 1;
@@ -174,11 +178,11 @@ public class FileToOssMonthTask {
                         log.info("新增部门: {}", dept.getDeptName());
                         mdmCodeToDeptId.put(mdmCode, dept.getId());
                     } else {
+                        mdmCodeToDeptId.put(mdmCode, existingDept.getId());
                         if (StringUtils.isBlank(existingDept.getDeptCode())) {
                             log.info("原部门数据补齐关联字段值: {},{}", dept.getDeptName(), dept.getDeptCode());
                             existingDept.setDeptCode(dept.getDeptCode());
                             bladeDeptService.updateById(existingDept);
-                            mdmCodeToDeptId.put(mdmCode, existingDept.getId());
                         }
                     }
                 } catch (Exception e) {
@@ -270,13 +274,16 @@ public class FileToOssMonthTask {
                         log.info("新增用户部门关系-用户: {}, 部门: {}", user.getName(), deptId);
                     } else {
                         // 更新用户部门信息
-                        boolean updated = bladeUserService.lambdaUpdate()
-                                .eq(BladeUser::getId, existingUser.getId())
-                                .eq(BladeUser::getIsDeleted, 0)
-                                .set(BladeUser::getDeptId, deptId.toString())
-                                .update();
-                        if (updated) {
-                            log.info("更新用户[{}]的部门关系,原部门,新部门: {},{}", existingUser.getId(), existingUser.getDeptId(), deptId);
+                        if (!deptId.toString().equals(existingUser.getDeptId())) {  // 只有当部门ID发生变化时才更新
+                            // 更新用户部门信息
+                            boolean updated = bladeUserService.lambdaUpdate()
+                                    .eq(BladeUser::getId, existingUser.getId())
+                                    .eq(BladeUser::getIsDeleted, 0)
+                                    .set(BladeUser::getDeptId, deptId.toString())
+                                    .update();
+                            if (updated) {
+                                log.info("更新用户[{}] [{}] 的部门关系,原部门,新部门: {},{}", existingUser.getName(),existingUser.getId(), existingUser.getDeptId(), deptId);
+                            }
                         }
 
                         // 检查并更新部门关系
@@ -326,7 +333,7 @@ public class FileToOssMonthTask {
         dept.setId(json.getLong("WECHAT_ID"));
         dept.setDeptName(json.getString("MDM_NAME"));
         dept.setFullName(json.getString("MDM_NAME"));
-        dept.setDeptCode(json.getString("PARENT_MDM_CODE")); // 使用MDM_CODE作为deptCode
+        dept.setDeptCode(json.getString("MDM_CODE")); // 使用MDM_CODE作为deptCode
         //dept.setParentId(json.getString("PARENT_MDM_CODE"));
         dept.setDeptCategory(1);
         dept.setIsDeleted(0);