组织变更

This commit is contained in:
Administrator 2025-08-08 11:26:57 +08:00
parent 980cee25be
commit fa871ef464
1 changed files with 322 additions and 162 deletions

View File

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