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 1320b89..f922e6b 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 @@ -102,17 +102,20 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { 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("=", 2)) // 防止值里有 "=" - .collect(Collectors.toMap( - arr -> arr[0], // key - arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) - )); - log.error("SyncDepartmentChanges111.map:{}", map); - addSysDept(map, apiInfo, host, form_id, layout_id); + //增加判空 + if(StringUtils.isNotBlank(changed)){ + // 去掉大括号,并按逗号分割 + String[] entries = changed.substring(1, changed.length() - 1).split(", "); + // 使用 Stream 转换为 Map + Map map = Arrays.stream(entries) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" + .collect(Collectors.toMap( + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) + )); + log.error("SyncDepartmentChanges111.map:{}", map); + addSysDept(map, apiInfo, host, form_id, layout_id); + } } } //删除 @@ -134,52 +137,63 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { for (Map deletedChange : deletedChanges) { String changed = null!=deletedChange.get("changed")?String.valueOf(deletedChange.get("changed").toString()):""; log.error("SyncDepartmentChanges222.changed:{}", changed); - // 去掉大括号,并按逗号分割 - String[] entries = changed.substring(1, changed.length() - 1).split(", "); - // 使用 Stream 转换为 Map - map = Arrays.stream(entries) - .map(entry -> entry.split("=", 2)) // 防止值里有 "=" - .collect(Collectors.toMap( - arr -> arr[0], // key - arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) - )); - log.error("SyncDepartmentChanges222.map:{}", map); - String bh = null!=map.get("bh")? map.get("bh") :""; - String czlx = null!=map.get("czlx")? map.get("czlx") :""; - String bgly = null!=map.get("bgly")? map.get("bgly") :""; - insertZzbgjl( bh, czlx, bgly, bgsxrq); + //增加判空 + if(StringUtils.isNotBlank(changed)){ + // 去掉大括号,并按逗号分割 + String[] entries = changed.substring(1, changed.length() - 1).split(", "); + // 使用 Stream 转换为 Map + map = Arrays.stream(entries) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" + .collect(Collectors.toMap( + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) + )); + log.error("SyncDepartmentChanges222.map:{}", map); + String bh = null!=map.get("bh")? map.get("bh") :""; + String czlx = null!=map.get("czlx")? map.get("czlx") :""; + String bgly = null!=map.get("bgly")? map.get("bgly") :""; + insertZzbgjl( bh, czlx, bgly, bgsxrq); + } } } //修改1 if (CollectionUtils.isNotEmpty(addedChanges)) { for (Map addedChange : addedChanges) { String modified = null!=addedChange.get("changed")?String.valueOf(addedChange.get("changed").toString()):""; - // 去掉大括号,并按逗号分割 - String[] entries = modified.substring(1, modified.length() - 1).split(", "); - // 使用 Stream 转换为 Map - Map map = Arrays.stream(entries) - .map(entry -> entry.split("=", 2)) // 防止值里有 "=" - .collect(Collectors.toMap( - arr -> arr[0], // key - arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) - )); - updateSysDept(map, apiInfo, host, form_id, layout_id); + log.error("SyncDepartmentChanges333.modified:{}", modified); + //增加判空 + if(StringUtils.isNotBlank(modified)){ + // 去掉大括号,并按逗号分割 + String[] entries = modified.substring(1, modified.length() - 1).split(", "); + // 使用 Stream 转换为 Map + Map map = Arrays.stream(entries) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" + .collect(Collectors.toMap( + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) + )); + updateSysDept(map, apiInfo, host, form_id, layout_id); + } } } //修改2 if (CollectionUtils.isNotEmpty(modifiedChanges)) { for (Map modifiedChange : modifiedChanges) { String modified = null!=modifiedChange.get("changed")?String.valueOf(modifiedChange.get("changed").toString()):""; - // 去掉大括号,并按逗号分割 - String[] entries = modified.substring(1, modified.length() - 1).split(", "); - // 使用 Stream 转换为 Map - Map map = Arrays.stream(entries) - .map(entry -> entry.split("=", 2)) // 防止值里有 "=" - .collect(Collectors.toMap( - arr -> arr[0], // key - arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) - )); - updateSysDept(map, apiInfo, host, form_id, layout_id); + log.error("SyncDepartmentChanges444.modified:{}", modified); + //增加判空 + if(StringUtils.isNotBlank(modified)){ + // 去掉大括号,并按逗号分割 + String[] entries = modified.substring(1, modified.length() - 1).split(", "); + // 使用 Stream 转换为 Map + Map map = Arrays.stream(entries) + .map(entry -> entry.split("=", 2)) // 防止值里有 "=" + .collect(Collectors.toMap( + arr -> arr[0], // key + arr -> arr.length > 1 ? arr[1] : "" // value(处理空值) + )); + updateSysDept(map, apiInfo, host, form_id, layout_id); + } } } //合并 @@ -189,19 +203,21 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { .filter(map -> Objects.equals(map.get("czlx"), 3)) // 防止 NullPointerException .collect(Collectors.toList()); //迁移被合并部门下级部门和人员到合并后部门(新增部门) - for (Map map : filteredList) { - //查询被合并部门下所有人员 - /** - * 查询被合并部门的一级下级部门 - */ - String bhbbmcode = null != map.get("bhbbmid") ? String.valueOf(map.get("bhbbmid").toString()) : ""; - String code = null != map.get("bh") ? String.valueOf(map.get("bh").toString()) : ""; - List firstLevelDepts = getFirstLevelDepts(bhbbmcode); - log.error("SyncDepartmentChanges.firstLevelDepts:{}", firstLevelDepts); - /** - * 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员 - */ - updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmcode); + if (CollectionUtils.isNotEmpty(filteredList)) { + for (Map map : filteredList) { + //查询被合并部门下所有人员 + /** + * 查询被合并部门的一级下级部门 + */ + String bhbbmcode = null != map.get("bhbbmid") ? String.valueOf(map.get("bhbbmid").toString()) : ""; + String code = null != map.get("bh") ? String.valueOf(map.get("bh").toString()) : ""; + List firstLevelDepts = getFirstLevelDepts(bhbbmcode); + log.error("SyncDepartmentChanges.firstLevelDepts:{}", firstLevelDepts); + /** + * 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员 + */ + updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmcode); + } } } //拆分:没有下级部门且部门没有人员的部门才可被拆分,因此被拆分部门:1.新增 2.删除 @@ -914,7 +930,7 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { sql = "select a.bgzz,a.bgly,a.bgsxrq,b.* from uf_organization_zzsj b \n" + "left join uf_organizational_changes a on a.id = b.form_data_id where a.delete_type = 0 and b.delete_type = 0 "; }else if("1".equals(flag)){ - sql = "select a.bgzz,b.* from uf_organization_bghzzsj b \n" + + sql = "select a.bgzz,a.bgly,a.bgsxrq,b.* from uf_organization_bghzzsj b \n" + "left join uf_organizational_changes a on a.id = b.form_data_id where a.delete_type = 0 and b.delete_type = 0 "; } if(StringUtils.isNotBlank(bgsxrq)){