组织变更
This commit is contained in:
parent
980cee25be
commit
fa871ef464
|
|
@ -56,23 +56,23 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
log.error("SyncDepartmentChanges.changedTree:{}", changedTree);
|
||||
|
||||
// 比对并获取差异
|
||||
//List<Map<Object, Map<String, Object>>> differences = findDifferences(changedTree);
|
||||
List<Map<String, Object>> differences = findDifferences(originalTree, changedTree);
|
||||
|
||||
|
||||
// /**
|
||||
// * 需新增的部门
|
||||
// */
|
||||
// List<Map<String, Object>> addedChanges = differences.stream().filter(map -> "added".equals(map.get("type"))).collect(Collectors.toList());
|
||||
//
|
||||
// /**
|
||||
// * 需修改的部门
|
||||
// */
|
||||
// List<Map<String, Object>> modifiedChanges = differences.stream().filter(map -> "modified".equals(map.get("type"))).collect(Collectors.toList());
|
||||
//
|
||||
// /**
|
||||
// * 需删除的部门
|
||||
// */
|
||||
// List<Map<String, Object>> deletedChanges = differences.stream().filter(map -> "deleted".equals(map.get("type"))).collect(Collectors.toList());
|
||||
/**
|
||||
* 需新增的部门
|
||||
*/
|
||||
List<Map<String, Object>> addedChanges = differences.stream().filter(map -> "added".equals(map.get("type"))).collect(Collectors.toList());
|
||||
|
||||
/**
|
||||
* 需修改的部门
|
||||
*/
|
||||
List<Map<String, Object>> modifiedChanges = differences.stream().filter(map -> "modified".equals(map.get("type"))).collect(Collectors.toList());
|
||||
|
||||
/**
|
||||
* 需删除的部门
|
||||
*/
|
||||
List<Map<String, Object>> deletedChanges = differences.stream().filter(map -> "deleted".equals(map.get("type"))).collect(Collectors.toList());
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -92,96 +92,200 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
/**
|
||||
* 循环changedTree,按照时间顺序判断先执行哪个操作,保存新增部门时上级组织存在
|
||||
*/
|
||||
if (CollectionUtils.isNotEmpty(changedTree)) {
|
||||
for (Map<String, Object> map : changedTree) {
|
||||
log.error("SyncDepartmentChanges.map:{}", map);
|
||||
String czlx = null!=map.get("czlx")?String.valueOf(map.get("czlx").toString()):"";
|
||||
/**
|
||||
* 根据时间先后顺序,按照操作类型执行对应操作
|
||||
*/
|
||||
if("0".equals(czlx)){
|
||||
/**
|
||||
* 多次调用接口逻辑(新增)
|
||||
*/
|
||||
addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
}else if("1".equals(czlx)){
|
||||
/**
|
||||
* 删除部门
|
||||
*/
|
||||
String zz = null!=map.get("zz")?String.valueOf(map.get("zz").toString()):"";
|
||||
Map<String, Object> deleteMap = deleteSysDept(zz, apiInfo, host);
|
||||
log.error("SyncDepartmentChanges1111.deleteMap:{}", deleteMap);
|
||||
}else if("2".equals(czlx)){
|
||||
/**
|
||||
* 多次调用接口逻辑(更新)
|
||||
*/
|
||||
updateSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
}else if("3".equals(czlx)){
|
||||
/**
|
||||
* 多次调用接口逻辑(合并)
|
||||
*/
|
||||
//1.新增合并后部门:目标部门(新增这些部门)
|
||||
Map<String, Object> sysDept = addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
log.error("SyncDepartmentChanges.sysDept:{}", sysDept);
|
||||
//2.先将被合并部门下人员(有的话)迁移到目标合并部门下面
|
||||
//查询被合并部门下所有人员
|
||||
/**
|
||||
* 查询被合并部门的一级下级部门
|
||||
*/
|
||||
String bhbbmid = null != map.get("bhbbmid") ? String.valueOf(map.get("bhbbmid").toString()) : "";
|
||||
String code = null != map.get("bh") ? String.valueOf(map.get("bh").toString()) : "";
|
||||
List<String> firstLevelDepts = getFirstLevelDepts(bhbbmid);
|
||||
log.error("SyncDepartmentChanges.firstLevelDepts:{}", firstLevelDepts);
|
||||
/**
|
||||
* 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员
|
||||
*/
|
||||
updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmid);
|
||||
//3.删除被合并部门
|
||||
/**
|
||||
* 根据部门code查询部门id222
|
||||
*/
|
||||
String sql = "select id from eteams.department where code in (" + bhbbmid+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("SyncDepartmentChanges222.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("SyncDepartmentChanges222.recordList:{}", recordList);
|
||||
String deptids = recordList.stream()
|
||||
.map(map1 -> map1.get("id")) // 提取 "id" 对应的值
|
||||
.filter(Objects::nonNull) // 过滤掉 null 值(可选)
|
||||
.map(Object::toString) // 转为 String(如果 id 不是 String 类型)
|
||||
.collect(Collectors.joining(","));
|
||||
log.error("SyncDepartmentChanges222.deptids:{}", deptids);
|
||||
Map<String, Object> deleteMap = deleteSysDept(deptids, apiInfo, host);
|
||||
log.error("SyncDepartmentChanges222.deleteMap:{}", deleteMap);
|
||||
}else if("4".equals(czlx)){
|
||||
/**
|
||||
* 多次调用接口逻辑(拆分)
|
||||
*/
|
||||
//1.新增拆分后部门
|
||||
addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
//2.删除被拆分的部门
|
||||
String bcfzzid = null != map.get("bcfzzid") ? String.valueOf(map.get("bcfzzid").toString()) : "";
|
||||
log.error("SyncDepartmentChanges3333.bcfzzid:{}", bcfzzid);
|
||||
//3.将code转化为id
|
||||
/**
|
||||
* 4.根据部门code查询部门id222
|
||||
*/
|
||||
String sql = "select id from eteams.department where code in (" + bcfzzid+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("SyncDepartmentChanges3333.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("SyncDepartmentChanges3333.recordList:{}", recordList);
|
||||
String deptids = recordList.stream()
|
||||
.map(map1 -> map1.get("id")) // 提取 "id" 对应的值
|
||||
.filter(Objects::nonNull) // 过滤掉 null 值(可选)
|
||||
.map(Object::toString) // 转为 String(如果 id 不是 String 类型)
|
||||
.collect(Collectors.joining(","));
|
||||
log.error("SyncDepartmentChanges3333.deptids:{}", deptids);
|
||||
Map<String, Object> deleteMap = deleteSysDept(deptids, apiInfo, host);
|
||||
log.error("SyncDepartmentChanges3333.deleteMap:{}", deleteMap);
|
||||
}
|
||||
//新增
|
||||
if (CollectionUtils.isNotEmpty(addedChanges)) {
|
||||
for (Map<String, Object> addedChange : addedChanges) {
|
||||
String changed = null!=addedChange.get("changed")?String.valueOf(addedChange.get("changed").toString()):"";
|
||||
// 去掉大括号,并按逗号分割
|
||||
String[] entries = changed.substring(1, changed.length() - 1).split(", ");
|
||||
// 使用 Stream 转换为 Map
|
||||
Map<String, String> map = Arrays.stream(entries)
|
||||
.map(entry -> entry.split("="))
|
||||
.collect(Collectors.toMap(
|
||||
entry -> entry[0], // key
|
||||
entry -> entry[1] // value
|
||||
));
|
||||
addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
}
|
||||
}
|
||||
//删除
|
||||
if (CollectionUtils.isNotEmpty(deletedChanges)) {
|
||||
// 使用 Stream 获取所有 bh 的值,并用逗号连接
|
||||
String deleteDeptCode = deletedChanges.stream()
|
||||
.map(map -> map.get("bh")) // 提取 bh 的值
|
||||
.filter(Objects::nonNull) // 过滤掉 null 值(可选)
|
||||
.map(Object::toString) // 转换为 String(如果 value 不是 String)
|
||||
.collect(Collectors.joining(",")); // 用逗号连接
|
||||
//根据部门code查询部门id
|
||||
List<String> departmentId = getDepartmentId(deleteDeptCode);
|
||||
Map<String, Object> deleteMap = deleteSysDept(departmentId, apiInfo, host);
|
||||
log.error("SyncDepartmentChanges1111.deleteMap:{}", deleteMap);
|
||||
}
|
||||
//修改1
|
||||
if (CollectionUtils.isNotEmpty(addedChanges)) {
|
||||
for (Map<String, Object> 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<String, String> map = Arrays.stream(entries)
|
||||
.map(entry -> entry.split("="))
|
||||
.collect(Collectors.toMap(
|
||||
entry -> entry[0], // key
|
||||
entry -> entry[1] // value
|
||||
));
|
||||
updateSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
}
|
||||
}
|
||||
//修改2
|
||||
if (CollectionUtils.isNotEmpty(modifiedChanges)) {
|
||||
for (Map<String, Object> 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<String, String> map = Arrays.stream(entries)
|
||||
.map(entry -> entry.split("="))
|
||||
.collect(Collectors.toMap(
|
||||
entry -> entry[0], // key
|
||||
entry -> entry[1] // value
|
||||
));
|
||||
updateSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
}
|
||||
}
|
||||
//合并
|
||||
if (CollectionUtils.isNotEmpty(changedTree)) {
|
||||
// 筛选 czlx=3 的 Map
|
||||
List<Map<String, Object>> filteredList = changedTree.stream()
|
||||
.filter(map -> Objects.equals(map.get("czlx"), 3)) // 防止 NullPointerException
|
||||
.collect(Collectors.toList());
|
||||
//迁移被合并部门下级部门和人员到合并后部门(新增部门)
|
||||
for (Map<String, Object> 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<String> firstLevelDepts = getFirstLevelDepts(bhbbmcode);
|
||||
log.error("SyncDepartmentChanges.firstLevelDepts:{}", firstLevelDepts);
|
||||
/**
|
||||
* 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员
|
||||
*/
|
||||
updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmcode);
|
||||
}
|
||||
}
|
||||
//拆分:没有下级部门且部门没有人员的部门才可被拆分,因此被拆分部门:1.新增 2.删除
|
||||
if (CollectionUtils.isNotEmpty(changedTree)) {
|
||||
// 筛选 czlx=4 的 Map
|
||||
List<Map<String, Object>> filteredList = changedTree.stream()
|
||||
.filter(map -> Objects.equals(map.get("czlx"), 4)) // 防止 NullPointerException
|
||||
.collect(Collectors.toList());
|
||||
String deleteDeptCode = filteredList.stream()
|
||||
.map(map -> map.get("bcfzzid")) // 提取 bcfzzid 的值
|
||||
.filter(Objects::nonNull) // 过滤掉 null 值(可选)
|
||||
.map(Object::toString) // 转换为 String(如果 value 不是 String)
|
||||
.collect(Collectors.joining(",")); // 用逗号连接
|
||||
//根据部门code查询部门id
|
||||
List<String> departmentId = getDepartmentId(deleteDeptCode);
|
||||
Map<String, Object> deleteMap = deleteSysDept(departmentId, apiInfo, host);
|
||||
log.error("SyncDepartmentChanges444.deleteMap:{}", deleteMap);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// if (CollectionUtils.isNotEmpty(changedTree)) {
|
||||
// for (Map<String, Object> map : changedTree) {
|
||||
// log.error("SyncDepartmentChanges.map:{}", map);
|
||||
// String czlx = null!=map.get("czlx")?String.valueOf(map.get("czlx").toString()):"";
|
||||
// /**
|
||||
// * 根据时间先后顺序,按照操作类型执行对应操作
|
||||
// */
|
||||
// if("0".equals(czlx)){
|
||||
// /**
|
||||
// * 多次调用接口逻辑(新增)
|
||||
// */
|
||||
// addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
// }else if("1".equals(czlx)){
|
||||
// /**
|
||||
// * 删除部门
|
||||
// */
|
||||
// String zz = null!=map.get("zz")?String.valueOf(map.get("zz").toString()):"";
|
||||
// Map<String, Object> deleteMap = deleteSysDept(zz, apiInfo, host);
|
||||
// log.error("SyncDepartmentChanges1111.deleteMap:{}", deleteMap);
|
||||
// }else if("2".equals(czlx)){
|
||||
// /**
|
||||
// * 多次调用接口逻辑(更新)
|
||||
// */
|
||||
// updateSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
// }else if("3".equals(czlx)){
|
||||
// /**
|
||||
// * 多次调用接口逻辑(合并)
|
||||
// */
|
||||
// //1.新增合并后部门:目标部门(新增这些部门)
|
||||
// Map<String, Object> sysDept = addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
// log.error("SyncDepartmentChanges.sysDept:{}", sysDept);
|
||||
// //2.先将被合并部门下人员(有的话)迁移到目标合并部门下面
|
||||
// //查询被合并部门下所有人员
|
||||
// /**
|
||||
// * 查询被合并部门的一级下级部门
|
||||
// */
|
||||
// String bhbbmid = null != map.get("bhbbmid") ? String.valueOf(map.get("bhbbmid").toString()) : "";
|
||||
// String code = null != map.get("bh") ? String.valueOf(map.get("bh").toString()) : "";
|
||||
// List<String> firstLevelDepts = getFirstLevelDepts(bhbbmid);
|
||||
// log.error("SyncDepartmentChanges.firstLevelDepts:{}", firstLevelDepts);
|
||||
// /**
|
||||
// * 更改下级部门的上级部门为新增部门以及被合并部门下的全部人员
|
||||
// */
|
||||
// updateFirstLevelDeptAndEmployee(code, firstLevelDepts, bhbbmid);
|
||||
// //3.删除被合并部门
|
||||
// /**
|
||||
// * 根据部门code查询部门id222
|
||||
// */
|
||||
// String sql = "select id from eteams.department where code in (" + bhbbmid+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
// log.error("SyncDepartmentChanges222.sql:{}", sql);
|
||||
// Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
// List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
// log.error("SyncDepartmentChanges222.recordList:{}", recordList);
|
||||
// String deptids = recordList.stream()
|
||||
// .map(map1 -> map1.get("id")) // 提取 "id" 对应的值
|
||||
// .filter(Objects::nonNull) // 过滤掉 null 值(可选)
|
||||
// .map(Object::toString) // 转为 String(如果 id 不是 String 类型)
|
||||
// .collect(Collectors.joining(","));
|
||||
// log.error("SyncDepartmentChanges222.deptids:{}", deptids);
|
||||
// Map<String, Object> deleteMap = deleteSysDept(deptids, apiInfo, host);
|
||||
// log.error("SyncDepartmentChanges222.deleteMap:{}", deleteMap);
|
||||
// }else if("4".equals(czlx)){
|
||||
// /**
|
||||
// * 多次调用接口逻辑(拆分)
|
||||
// */
|
||||
// //1.新增拆分后部门
|
||||
// addSysDept(map, apiInfo, host, form_id, layout_id);
|
||||
// //2.删除被拆分的部门
|
||||
// String bcfzzid = null != map.get("bcfzzid") ? String.valueOf(map.get("bcfzzid").toString()) : "";
|
||||
// log.error("SyncDepartmentChanges3333.bcfzzid:{}", bcfzzid);
|
||||
// //3.将code转化为id
|
||||
// /**
|
||||
// * 4.根据部门code查询部门id222
|
||||
// */
|
||||
// String sql = "select id from eteams.department where code in (" + bcfzzid+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
// log.error("SyncDepartmentChanges3333.sql:{}", sql);
|
||||
// Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
// List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
// log.error("SyncDepartmentChanges3333.recordList:{}", recordList);
|
||||
// String deptids = recordList.stream()
|
||||
// .map(map1 -> map1.get("id")) // 提取 "id" 对应的值
|
||||
// .filter(Objects::nonNull) // 过滤掉 null 值(可选)
|
||||
// .map(Object::toString) // 转为 String(如果 id 不是 String 类型)
|
||||
// .collect(Collectors.joining(","));
|
||||
// log.error("SyncDepartmentChanges3333.deptids:{}", deptids);
|
||||
// Map<String, Object> deleteMap = deleteSysDept(deptids, apiInfo, host);
|
||||
// log.error("SyncDepartmentChanges3333.deleteMap:{}", deleteMap);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
return WeaResult.success(result);
|
||||
}
|
||||
|
||||
|
|
@ -190,14 +294,14 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
* @param bhbbmids
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> deleteSysDept(String bhbbmids,Map<String, Object> apiInfo,String host){
|
||||
private Map<String, Object> deleteSysDept(List<String> bhbbmids,Map<String, Object> apiInfo,String host){
|
||||
/**
|
||||
* 3.组装数据
|
||||
*/
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
JSONArray paramArray = new JSONArray();
|
||||
String[] ids = bhbbmids.split(",");
|
||||
for (String s : ids) {
|
||||
//String[] ids = bhbbmids.split(",");
|
||||
for (String s : bhbbmids) {
|
||||
JSONObject paramJson = new JSONObject();
|
||||
//此处应该有多个id
|
||||
paramJson.put("id", s);
|
||||
|
|
@ -286,7 +390,20 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
List<Map<String, Object>> records = databaseUtils.getDataSourceList(rt);
|
||||
log.error("updateFirstLevelDept111.records:{}", records);
|
||||
}
|
||||
String depts = splitStr(dept);
|
||||
/**
|
||||
* 根据部门code查询新增部门id
|
||||
*/
|
||||
sql = "select id from eteams.department where code in (" + dept+ ") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("updateFirstLevelDept111.sql:{}", sql);
|
||||
Map<String, Object> rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> records = databaseUtils.getDataSourceList(rt);
|
||||
log.error("updateFirstLevelDept111.recordList:{}", records);
|
||||
String deptids = records.stream()
|
||||
.map(map -> String.valueOf(map.get("id"))) // 提取 "id" 的值并转为 String
|
||||
.filter(id -> id != null && !id.isEmpty()) // 过滤掉 null 或空值
|
||||
.collect(Collectors.joining(", "));
|
||||
log.error("getFirstLevelDepts111.deptid:{}", deptid);
|
||||
String depts = splitStr(deptids);
|
||||
log.error("updateFirstLevelDept.depts:{}", depts);
|
||||
/**
|
||||
* 更新depts部门中的人员为新部门下人员
|
||||
|
|
@ -320,21 +437,27 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
* @param map
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> addSysDept(Map<String, Object> map,Map<String, Object> apiInfo,String host,String form_id,String layout_id){
|
||||
private Map<String, Object> addSysDept(Map<String, String> map,Map<String, Object> apiInfo,String host,String form_id,String layout_id){
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
log.error("addSysDept.map:{}", map);
|
||||
//for (Map<String, Object> map : addList) {
|
||||
String bh = null!=map.get("bh")?String.valueOf(map.get("bh").toString()):"";
|
||||
String zz = null!=map.get("zz")?String.valueOf(map.get("zz").toString()):"";
|
||||
String sjzz = null!=map.get("sjzz")?String.valueOf(map.get("sjzz").toString()):"";
|
||||
String sjzzbh = null!=map.get("sjzzbh")?String.valueOf(map.get("sjzzbh").toString()):"";
|
||||
String bmfzr = null!=map.get("bmfzr")?String.valueOf(map.get("bmfzr").toString()):"";
|
||||
String fgld = null!=map.get("fgld")?String.valueOf(map.get("fgld").toString()):"";
|
||||
String sscb = null!=map.get("sscb")?String.valueOf(map.get("sscb").toString()):"";
|
||||
String bmsqcj = null!=map.get("bmsqcj")?String.valueOf(map.get("bmsqcj").toString()):"";
|
||||
String bz = null!=map.get("bz")?String.valueOf(map.get("bz").toString()):"";
|
||||
String zzmc = null!=map.get("zzmc")?String.valueOf(map.get("zzmc").toString()):"";
|
||||
String bh = null!=map.get("bh")? map.get("bh") :"";
|
||||
String zz = null!=map.get("zz")? map.get("zz") :"";
|
||||
String sjzz = null!=map.get("sjzz")? map.get("sjzz") :"";
|
||||
String sjzzbh = null!=map.get("sjzzbh")? map.get("sjzzbh") :"";
|
||||
String bmfzr = null!=map.get("bmfzr")? map.get("bmfzr") :"";
|
||||
String fgld = null!=map.get("fgld")? map.get("fgld") :"";
|
||||
String sscb = null!=map.get("sscb")? map.get("sscb") :"";
|
||||
String bmsqcj = null!=map.get("bmsqcj")? map.get("bmsqcj") :"";
|
||||
String bz = null!=map.get("bz")? map.get("bz") :"";
|
||||
String zzmc = null!=map.get("zzmc")? map.get("zzmc") :"";
|
||||
//新增临时上级部门编号
|
||||
String sjzzidls = null!=map.get("bgzz")? map.get("bgzz") :"";
|
||||
//根据id查询部门code
|
||||
String parentls = getDepartmentCode(sjzzidls);
|
||||
log.error("addSysDept.parentls:{}", parentls);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 3.组装数据
|
||||
*/
|
||||
JSONArray paramArray = new JSONArray();
|
||||
|
|
@ -342,7 +465,7 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
JSONObject paramJson = new JSONObject();
|
||||
paramJson.put("name",zzmc);
|
||||
paramJson.put("code", bh);
|
||||
paramJson.put("parent", sjzzbh);
|
||||
paramJson.put("parent", parentls);
|
||||
paramArray.add(paramJson);
|
||||
|
||||
/***
|
||||
|
|
@ -377,9 +500,18 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
log.error("addSysDept.deptFormMap:{}", deptFormMap);
|
||||
String deptCustomfieldFormid=deptFormMap.get("hrm");
|
||||
String tableName = "ft_"+deptCustomfieldFormid;
|
||||
|
||||
//给部门自定义表插入入参信息
|
||||
insertDeptCustomField(tableName,bh,bmfzr,fgld,sscb,bmsqcj,form_id,layout_id);
|
||||
/**
|
||||
* 根据编号查询系统是否已有此部门
|
||||
*/
|
||||
boolean b = checkIsNotDept(bh);
|
||||
if(b){
|
||||
//修改部门信息
|
||||
String formData = getDeptFormData(bh);
|
||||
updatatDeptCustomField(tableName, formData, bmfzr, fgld, sscb, bmsqcj);
|
||||
}else{
|
||||
//给部门自定义表插入入参信息
|
||||
insertDeptCustomField(tableName,bh,bmfzr,fgld,sscb,bmsqcj,form_id,layout_id);
|
||||
}
|
||||
}else{
|
||||
result.put("status2","fail");
|
||||
}
|
||||
|
|
@ -398,19 +530,20 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
* @param map
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> updateSysDept(Map<String, Object> map,Map<String, Object> apiInfo,String host,String form_id,String layout_id){
|
||||
private Map<String, Object> updateSysDept(Map<String, String> map,Map<String, Object> apiInfo,String host,String form_id,String layout_id){
|
||||
log.error("updateSysDept.map:{}", map);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
//for (Map<String, Object> map : updateList) {
|
||||
String bh = null!=map.get("bh")?String.valueOf(map.get("bh").toString()):"";
|
||||
String zz = null!=map.get("zz")?String.valueOf(map.get("zz").toString()):"";
|
||||
String sjzz = null!=map.get("sjzz")?String.valueOf(map.get("sjzz").toString()):"";
|
||||
String sjzzbh = null!=map.get("sjzzbh")?String.valueOf(map.get("sjzzbh").toString()):"";
|
||||
String bmfzr = null!=map.get("bmfzr")?String.valueOf(map.get("bmfzr").toString()):"";
|
||||
String fgld = null!=map.get("fgld")?String.valueOf(map.get("fgld").toString()):"";
|
||||
String sscb = null!=map.get("sscb")?String.valueOf(map.get("sscb").toString()):"";
|
||||
String bmsqcj = null!=map.get("bmsqcj")?String.valueOf(map.get("bmsqcj").toString()):"";
|
||||
String bz = null!=map.get("bz")?String.valueOf(map.get("bz").toString()):"";
|
||||
String zzmc = null!=map.get("zzmc")?String.valueOf(map.get("zzmc").toString()):"";
|
||||
String bh = null!=map.get("bh")? map.get("bh") :"";
|
||||
String zz = null!=map.get("zz")? map.get("zz") :"";
|
||||
String sjzz = null!=map.get("sjzz")? map.get("sjzz") :"";
|
||||
String sjzzbh = null!=map.get("sjzzbh")? map.get("sjzzbh") :"";
|
||||
String bmfzr = null!=map.get("bmfzr")? map.get("bmfzr") :"";
|
||||
String fgld = null!=map.get("fgld")? map.get("fgld") :"";
|
||||
String sscb = null!=map.get("sscb")? map.get("sscb") :"";
|
||||
String bmsqcj = null!=map.get("bmsqcj")? map.get("bmsqcj") :"";
|
||||
String bz = null!=map.get("bz")? map.get("bz") :"";
|
||||
String zzmc = null!=map.get("zzmc")? map.get("zzmc") :"";
|
||||
|
||||
/**
|
||||
* 3.组装数据
|
||||
|
|
@ -456,9 +589,18 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
String deptCustomfieldFormid = deptFormMap.get("hrm");
|
||||
String tableName = "ft_" + deptCustomfieldFormid;
|
||||
|
||||
//修改部门信息
|
||||
String formData = getDeptFormData(bh);
|
||||
updatatDeptCustomField(tableName, formData, bmfzr, fgld, sscb, bmsqcj);
|
||||
/**
|
||||
* 根据编号查询系统是否已有此部门
|
||||
*/
|
||||
boolean b = checkIsNotDept(bh);
|
||||
if(b){
|
||||
//修改部门信息
|
||||
String formData = getDeptFormData(bh);
|
||||
updatatDeptCustomField(tableName, formData, bmfzr, fgld, sscb, bmsqcj);
|
||||
}else{
|
||||
//给部门自定义表插入入参信息
|
||||
insertDeptCustomField(tableName,bh,bmfzr,fgld,sscb,bmsqcj,form_id,layout_id);
|
||||
}
|
||||
} else {
|
||||
result.put("status2", "fail");
|
||||
}
|
||||
|
|
@ -471,7 +613,7 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
return result;
|
||||
}
|
||||
|
||||
public static List<Map<Object, Map<String, Object>>> findDifferences(List<Map<String, Object>> changedTree) {
|
||||
public static List<Map<Object, Map<String, Object>>> findDifferences111(List<Map<String, Object>> changedTree) {
|
||||
List<Map<Object, Map<String, Object>>> mapList = new ArrayList<>();
|
||||
// 变更后组织数据分类
|
||||
Map<Object, Map<String, Object>> addedChanges = changedTree.stream()
|
||||
|
|
@ -501,7 +643,7 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
}
|
||||
|
||||
|
||||
public static List<Map<String, Object>> findDifferences111(
|
||||
public static List<Map<String, Object>> findDifferences(
|
||||
List<Map<String, Object>> originalTree,
|
||||
List<Map<String, Object>> changedTree) {
|
||||
|
||||
|
|
@ -530,15 +672,15 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
Map<String, Object> original = originalMap.get(bh);
|
||||
Map<String, Object> changed = changedMap.get(bh);
|
||||
|
||||
return !Objects.equals(original.get("bh"), changed.get("bh")) ||
|
||||
!Objects.equals(original.get("zz"), changed.get("zz")) ||
|
||||
return !Objects.equals(original.get("zz"), changed.get("zz")) ||
|
||||
!Objects.equals(original.get("sjzz"), changed.get("sjzz"))||
|
||||
!Objects.equals(original.get("bmfzr"), changed.get("bmfzr"))||
|
||||
!Objects.equals(original.get("fgld"), changed.get("fgld"))||
|
||||
!Objects.equals(original.get("bmsqcj"), changed.get("bmsqcj"))||
|
||||
!Objects.equals(original.get("bz"), changed.get("bz"))||
|
||||
!Objects.equals(original.get("sscbzx"), changed.get("sscb"))||
|
||||
!Objects.equals(original.get("sjzzbh"), changed.get("sjzzbh"));
|
||||
!Objects.equals(original.get("sjzzmc"), changed.get("sjzzmc"))||
|
||||
!Objects.equals(original.get("zzmc"), changed.get("zzmc"));
|
||||
})
|
||||
.map(bh -> {
|
||||
// 构建差异结果,标记是新增、删除还是修改
|
||||
|
|
@ -647,31 +789,49 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
}
|
||||
|
||||
/**
|
||||
* 根据部门code获取部门formdata
|
||||
* 根据部门code查询是否存在此部门
|
||||
* @return
|
||||
*/
|
||||
public String getDepartmentFormData(String code){
|
||||
log.error("getDepartmentFormData.code:{}", code);
|
||||
String sql = "select formdata from eteams.department where code = '"+ code +"' and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getDepartmentFormData.sql:{}", sql);
|
||||
public boolean checkIsNotDept(String code){
|
||||
boolean flag= false;
|
||||
log.error("checkIsNotDept.code:{}", code);
|
||||
String sql = "select id from eteams.department where code = '"+ code +"' and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("checkIsNotDept.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getDepartmentFormData.recordList:{}", recordList);
|
||||
return String.valueOf(recordList.get(0).get("formdata"));
|
||||
log.error("checkIsNotDept.recordList:{}", recordList);
|
||||
if(CollectionUtils.isNotEmpty(recordList)){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门code获取部门id
|
||||
* @return
|
||||
*/
|
||||
public List<String> getDepartmentId(String bh){
|
||||
log.error("getDepartmentId.bh:{}", bh);
|
||||
String sql = "select id from eteams.department where code in ("+ bh +") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getDepartmentId.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getDepartmentId.recordList:{}", recordList);
|
||||
return recordList.stream().filter(map -> map.containsKey("id")).map(map -> map.get("id").toString()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门id获取部门code
|
||||
* @return
|
||||
*/
|
||||
public List<String> getDepartmentId(String bh){
|
||||
log.error("getDepartmentId.id:{}", bh);
|
||||
String sql = "select id from eteams.department where code = '"+ bh +"' and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getDepartmentId.sql:{}", sql);
|
||||
public String getDepartmentCode(String id){
|
||||
log.error("getDepartmentCode.id:{}", id);
|
||||
String sql = "select code from eteams.department where id in ("+ id +") and tenant_key = '"+RecruitModuleUtils.getCurrentTenantKey()+"' ";
|
||||
log.error("getDepartmentCode.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
log.error("getDepartmentId.recordList:{}", recordList);
|
||||
return recordList.stream().filter(map -> map.containsKey("id")).map(map -> map.get("id").toString()).collect(Collectors.toList());
|
||||
log.error("getDepartmentCode.recordList:{}", recordList);
|
||||
return String.valueOf(recordList.get(0).get("code"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -682,15 +842,15 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
|
|||
log.error("getOriginalTree.bgsxrq:{}", bgsxrq);
|
||||
String sql = "";
|
||||
if("0".equals(flag)){
|
||||
sql = "select 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 ORDER BY b.create_time asc ";
|
||||
sql = "select a.bgzz,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 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 ORDER BY b.create_time asc ";
|
||||
}
|
||||
if(StringUtils.isNotBlank(bgsxrq)){
|
||||
sql += " and a.bgsxrq = '"+bgsxrq+"' ";
|
||||
sql = "select a.bgzz,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)){
|
||||
// sql += " and a.bgsxrq = '"+bgsxrq+"' ";
|
||||
// }
|
||||
log.error("getOriginalTree.sql:{}", sql);
|
||||
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
|
||||
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
|
||||
|
|
|
|||
Loading…
Reference in New Issue