|
@@ -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);
|