diff --git a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/cbd/SyncDepartmentChanges.java b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/cbd/SyncDepartmentChanges.java index 16c8e6c..3727c2e 100644 --- a/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/cbd/SyncDepartmentChanges.java +++ b/jcl-hrmorganization/secondev-jcl-hrmorganization/src/main/java/com/weaver/seconddev/jcl/organization/esb/cbd/SyncDepartmentChanges.java @@ -53,26 +53,31 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { */ List> originalTree = getOriginalTree("0", bgsxrq); List> changedTree = getOriginalTree("1", bgsxrq); + log.error("SyncDepartmentChanges.originalTree:{}", originalTree); log.error("SyncDepartmentChanges.changedTree:{}", changedTree); // 比对并获取差异 List> differences = findDifferences(originalTree, changedTree); + log.error("SyncDepartmentChanges.differences:{}", differences); /** * 需新增的部门 */ List> addedChanges = differences.stream().filter(map -> "added".equals(map.get("type"))).collect(Collectors.toList()); + log.error("SyncDepartmentChanges.addedChanges:{}", addedChanges); /** * 需修改的部门 */ List> modifiedChanges = differences.stream().filter(map -> "modified".equals(map.get("type"))).collect(Collectors.toList()); + log.error("SyncDepartmentChanges.modifiedChanges:{}", modifiedChanges); /** * 需删除的部门 */ List> deletedChanges = differences.stream().filter(map -> "deleted".equals(map.get("type"))).collect(Collectors.toList()); + log.error("SyncDepartmentChanges.deletedChanges:{}", deletedChanges); /** @@ -96,15 +101,17 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { if (CollectionUtils.isNotEmpty(addedChanges)) { for (Map addedChange : addedChanges) { String changed = null!=addedChange.get("changed")?String.valueOf(addedChange.get("changed").toString()):""; + log.error("SyncDepartmentChanges111.changed:{}", changed); // 去掉大括号,并按逗号分割 String[] entries = changed.substring(1, changed.length() - 1).split(", "); // 使用 Stream 转换为 Map Map map = Arrays.stream(entries) - .map(entry -> entry.split("=")) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" .collect(Collectors.toMap( - entry -> entry[0], // key - entry -> entry[1] // value + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) )); + log.error("SyncDepartmentChanges111.map:{}", map); addSysDept(map, apiInfo, host, form_id, layout_id); } } @@ -129,10 +136,10 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { String[] entries = modified.substring(1, modified.length() - 1).split(", "); // 使用 Stream 转换为 Map Map map = Arrays.stream(entries) - .map(entry -> entry.split("=")) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" .collect(Collectors.toMap( - entry -> entry[0], // key - entry -> entry[1] // value + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) )); updateSysDept(map, apiInfo, host, form_id, layout_id); } @@ -145,10 +152,10 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { String[] entries = modified.substring(1, modified.length() - 1).split(", "); // 使用 Stream 转换为 Map Map map = Arrays.stream(entries) - .map(entry -> entry.split("=")) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" .collect(Collectors.toMap( - entry -> entry[0], // key - entry -> entry[1] // value + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) )); updateSysDept(map, apiInfo, host, form_id, layout_id); }