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 35affcf..79061f2 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 @@ -56,23 +56,23 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { log.error("SyncDepartmentChanges.changedTree:{}", changedTree); // 比对并获取差异 - //List>> differences = findDifferences(changedTree); + List> differences = findDifferences(originalTree, changedTree); -// /** -// * 需新增的部门 -// */ -// List> addedChanges = differences.stream().filter(map -> "added".equals(map.get("type"))).collect(Collectors.toList()); -// -// /** -// * 需修改的部门 -// */ -// List> modifiedChanges = differences.stream().filter(map -> "modified".equals(map.get("type"))).collect(Collectors.toList()); -// -// /** -// * 需删除的部门 -// */ -// List> deletedChanges = differences.stream().filter(map -> "deleted".equals(map.get("type"))).collect(Collectors.toList()); + /** + * 需新增的部门 + */ + List> addedChanges = differences.stream().filter(map -> "added".equals(map.get("type"))).collect(Collectors.toList()); + + /** + * 需修改的部门 + */ + List> modifiedChanges = differences.stream().filter(map -> "modified".equals(map.get("type"))).collect(Collectors.toList()); + + /** + * 需删除的部门 + */ + List> 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 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 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 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); - List> 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); - List> 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 deleteMap = deleteSysDept(deptids, apiInfo, host); - log.error("SyncDepartmentChanges3333.deleteMap:{}", deleteMap); - } + //新增 + if (CollectionUtils.isNotEmpty(addedChanges)) { + for (Map 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 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 departmentId = getDepartmentId(deleteDeptCode); + Map deleteMap = deleteSysDept(departmentId, apiInfo, host); + log.error("SyncDepartmentChanges1111.deleteMap:{}", deleteMap); + } + //修改1 + if (CollectionUtils.isNotEmpty(addedChanges)) { + 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("=")) + .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 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("=")) + .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> filteredList = changedTree.stream() + .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); + } + } + //拆分:没有下级部门且部门没有人员的部门才可被拆分,因此被拆分部门:1.新增 2.删除 + if (CollectionUtils.isNotEmpty(changedTree)) { + // 筛选 czlx=4 的 Map + List> 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 departmentId = getDepartmentId(deleteDeptCode); + Map deleteMap = deleteSysDept(departmentId, apiInfo, host); + log.error("SyncDepartmentChanges444.deleteMap:{}", deleteMap); + } + + + +// if (CollectionUtils.isNotEmpty(changedTree)) { +// for (Map 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 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 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); +// List> 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); +// List> 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 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 deleteSysDept(String bhbbmids,Map apiInfo,String host){ + private Map deleteSysDept(List bhbbmids,Map apiInfo,String host){ /** * 3.组装数据 */ Map 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> 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 rt = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 addSysDept(Map map,Map apiInfo,String host,String form_id,String layout_id){ + private Map addSysDept(Map map,Map apiInfo,String host,String form_id,String layout_id){ Map result = new HashMap<>(); + log.error("addSysDept.map:{}", map); //for (Map 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 updateSysDept(Map map,Map apiInfo,String host,String form_id,String layout_id){ + private Map updateSysDept(Map map,Map apiInfo,String host,String form_id,String layout_id){ + log.error("updateSysDept.map:{}", map); Map result = new HashMap<>(); //for (Map 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>> findDifferences(List> changedTree) { + public static List>> findDifferences111(List> changedTree) { List>> mapList = new ArrayList<>(); // 变更后组织数据分类 Map> addedChanges = changedTree.stream() @@ -501,7 +643,7 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { } - public static List> findDifferences111( + public static List> findDifferences( List> originalTree, List> changedTree) { @@ -530,15 +672,15 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface { Map original = originalMap.get(bh); Map 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); List> 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); + List> 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 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); List> 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 rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql); List> recordList = databaseUtils.getDataSourceList(rs);