This commit is contained in:
Administrator 2025-09-11 16:29:31 +08:00
parent 7f212762d7
commit dd4ad4c375
6 changed files with 609 additions and 1 deletions

View File

@ -0,0 +1,56 @@
package com.weaver.seconddev.jcl.organization.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
public class Node implements Serializable {
private static final long serialVersionUID = -1751343370319719157L;
/**
* 数据id required
*/
private Long id;
/**
* 节点名称 required
*/
private String name;
/**
* 节点类型 required
*/
private String type;
/**
* 备注信息
*/
private String remark;
/**
* 节点背景色
*/
private String bgColor;
/**
* 节点文字颜色
*/
private String color;
/**
* 节点边框颜色
*/
private String borderColor;
/**
* 节点状态
*/
private String status;
/**
* 子节点
*/
private List<Node> children;
/**
* 人员数量
*/
private int employeeCount;
}

View File

@ -0,0 +1,25 @@
package com.weaver.seconddev.jcl.organization.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class Sheet implements Serializable {
private static final long serialVersionUID = 924808037114910711L;
/**
* sheet id required
*/
private String id;
/**
* sheet名称 required
*/
private String title;
/**
* sheet节点信息 required
*/
private Node node;
}

View File

@ -127,6 +127,28 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
List<String> departmentId = getDepartmentId(deleteDeptCode);
Map<String, Object> deleteMap = deleteSysDept(departmentId, apiInfo, host);
log.error("SyncDepartmentChanges1111.deleteMap:{}", deleteMap);
/**
* 插入组织变更记录表变更理由
*/
Map<String, String> map;
for (Map<String, Object> 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);
}
}
//修改1
if (CollectionUtils.isNotEmpty(addedChanges)) {
@ -449,6 +471,9 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
log.error("addSysDept.map:{}", map);
//for (Map<String, Object> map : addList) {
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") :"";
String bgsxrq = null!=map.get("bgsxrq")? map.get("bgsxrq") :"";
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") :"";
@ -493,6 +518,10 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
jsonObject.put("access_token",accessToken);
result = syncDataUtils.doPostHttp(jsonObject, path,host);
log.error("addSysDept.result:111{}", result);
/**
* 先插入组织变更记录表变更理由
*/
insertZzbgjl( bh, czlx, bgly, bgsxrq);
/**
* 新增部门成功之后需要同步插入部门自定义表字段信息
*/
@ -531,6 +560,32 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
return result;
}
/**
* 插入组织变更记录表变更理由
*/
private void insertZzbgjl(String bh,String czlx,String bgly,String bgsxrq){
// 生成随机 ID
long id = IdGenerator.generate();
log.error("insertZzbgjl.id:{}", id);
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 定义日期时间格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化当前日期
String nowData = now.format(formatter);
log.error("insertZzbgjl.nowData:{}", nowData);
String tenant_key = RecruitModuleUtils.getCurrentTenantKey();
log.error("insertZzbgjl.tenant_key:{}", tenant_key);
String userId = "1147262704872284161";
log.error("insertZzbgjl.userId:{}", userId);
String sql="insert into uf_zzbgjl(ID, FORM_DATA_ID, DATA_INDEX, CREATE_TIME, UPDATE_TIME, TENANT_KEY, " +
" IS_DELETE, CREATOR, UPDATER, DELETE_TYPE, FT_STATUS, bgzzbh,czlx,bgly,bgsxrq)" +
" values('" + id + "','" + id + "','0','"+nowData+"','" + nowData + "','" + tenant_key + "','0'," +
" '"+userId+"','"+userId+"','0','0','" + bh + "','" + czlx + "','" + bgly + "','" + bgsxrq + "')";
log.error("insertZzbgjl.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
}
/**
* 更新部门
@ -542,6 +597,9 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
Map<String, Object> result = new HashMap<>();
//for (Map<String, Object> map : updateList) {
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") :"";
String bgsxrq = null!=map.get("bgsxrq")? map.get("bgsxrq") :"";
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") :"";
@ -581,6 +639,10 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
jsonObject.put("access_token", accessToken);
result = syncDataUtils.doPostHttp(jsonObject, path, host);
log.error("updateSysDept.result:111{}", result);
/**
* 先插入组织变更记录表变更理由
*/
insertZzbgjl( bh, czlx, bgly, bgsxrq);
/**
* 新增部门成功之后需要同步插入部门自定义表字段信息
*/
@ -849,7 +911,7 @@ public class SyncDepartmentChanges implements EsbServerlessRpcRemoteInterface {
log.error("getOriginalTree.bgsxrq:{}", bgsxrq);
String sql = "";
if("0".equals(flag)){
sql = "select a.bgzz,b.* from uf_organization_zzsj b \n" +
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" +

View File

@ -0,0 +1,465 @@
package com.weaver.seconddev.jcl.organization.esb.cbd;
import com.weaver.common.base.entity.result.WeaResult;
import com.weaver.framework.rpc.annotation.RpcReference;
import com.weaver.loom.context.annotation.WeaHookReg;
import com.weaver.loom.context.domain.AppInfo;
import com.weaver.loom.context.domain.WeaHookRequest;
import com.weaver.loom.context.domain.WeaHookResponse;
import com.weaver.loom.context.register.RegHookEvent;
import com.weaver.seconddev.jcl.common.service.CommonService;
import com.weaver.seconddev.jcl.organization.entity.Deft;
import com.weaver.seconddev.jcl.organization.entity.Node;
import com.weaver.seconddev.jcl.organization.entity.Sheet;
import com.weaver.seconddev.jcl.organization.util.DatabaseUtils;
import com.weaver.seconddev.jcl.organization.util.RecruitModuleUtils;
import com.weaver.teams.hrapp.dto.est.HrComEstCfgInfoDto;
import com.weaver.teams.hrapp.dto.est.param.HrComEstCfgInfoParam;
import com.weaver.teams.hrapp.rest.HrRemoteApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
import java.util.stream.Collectors;
@WeaHookReg(code = "HRM_XMIND_DATA_FILTER_001")
public class XmindDataFilterCmd extends RegHookEvent {
private static final Logger log = LoggerFactory.getLogger(XmindDataFilterCmd.class);
private static String tenant_key = RecruitModuleUtils.getCurrentTenantKey();
@Autowired
private DatabaseUtils databaseUtils;
@RpcReference
private HrRemoteApiService hrRemoteApiService;
@Autowired
private CommonService commonService;
@Override
public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
//入参修改入参并不会影响到埋点的原始数据
Map<String, Object> param = request.getParams();
//创建Sheet数据
List<Sheet> sheets = new ArrayList<>();
Sheet allDataSheet = new Sheet().setId("1").setTitle("组织架构");
//Sheet orgDataSheet = new Sheet().setId("2").setTitle("组织详情");
sheets.add(allDataSheet);
//sheets.add(orgDataSheet);
//1.查询获取所有部门信息
List<Map<String, Object>> allDepartments = getAllDepartments();
//2.组装部门数据
List<Deft> defts = new ArrayList<>();
for (Map<String, Object> allDepartment : allDepartments) {
Deft deft = new Deft();
String id = String.valueOf(allDepartment.get("id"));
deft.setId(id);
deft.setName(String.valueOf(allDepartment.get("name")));
deft.setParent_id(String.valueOf(allDepartment.get("parent")));
//这里要根据部门id查询
HrComEstCfgInfoDto cfgInfoDto = getPreparationsByBm(id);
//编制数
int estCount = cfgInfoDto.getEstCount();
//缺编数
Integer estLackCount = cfgInfoDto.getEstLackCount();
//超编数
Integer estOverCount = cfgInfoDto.getEstOverCount();
//查询在岗人数
int positionCount = getPositionCount(id);
//查询部门岗位名称
List<Map<String, Object>> positionByDept = getPositionByDept(id);
//遍历部门岗位查询岗位编制等相关信息
StringJoiner joiner = new StringJoiner(",");
for (Map<String, Object> map : positionByDept) {
String gwId = String.valueOf(map.get("id"));
String gwName = String.valueOf(map.get("name"));
//查询岗位编制数/缺编数
List<Map<String, Object>> personYdzqMonthList = getListDatasBySourceName(gwId);
// 处理数据增加空列表校验
int estCountGw = 0;
int estLackCountGw = 0;
if (!personYdzqMonthList.isEmpty()) {
Map<String, Object> data = personYdzqMonthList.get(0);
estCountGw = Integer.parseInt(String.valueOf(data.getOrDefault("estCount", 0)));
estLackCountGw = Integer.parseInt(String.valueOf(data.getOrDefault("estLackCount", 0)));
}
//查询岗位人数
int countGw = getPositionCountGw(gwId);
String gwInfo = String.format("岗位名称:%s、编制数%d、在岗人数%d、缺编数%d",
gwName, estCountGw, countGw, estLackCountGw);
joiner.add(gwInfo);
}
//查询人员姓名/职级/职位
StringBuilder sb = new StringBuilder();
List<Map<String, Object>> userNameByDept = getUserNameByDept(id);
for (Map<String, Object> map : userNameByDept) {
String userId = String.valueOf(map.get("id"));
String userName = String.valueOf(map.get("username"));
String jobset_level = String.valueOf(map.get("jobset_level"));
//职级
String jobsetLevel = getJobsetLevel(jobset_level);
//职位
String zw = getZw(userId);
// 格式化当前人员信息
String personInfo = String.format("姓名:%s、职级%s、职位%s",
userName, jobsetLevel, zw);
// 非首条数据添加分隔符
if (sb.length() > 0) {
sb.append(",");
}
sb.append(personInfo);
}
// 计算remark
String remark = String.format("部门编制数:%d\n部门在岗人数%d\n部门缺编数%d\n岗位%s\n人员%s",
estCount,
positionCount,
estLackCount,
joiner.toString(),
sb.toString());
if (null!=estLackCount&&estLackCount >0) {
remark += "\n缺编" + (estLackCount);
}
if (null!=estOverCount&&estOverCount >0) {
remark += "\n超编" + (estOverCount);
}
deft.setRemark(remark);
if((null!=estLackCount&&estLackCount >0) || (null!=estOverCount&&estOverCount >0)){
deft.setBgColor("#F1F1F1");
}
defts.add(deft);
}
//3.组装
Node root = buildDepartmentTree(defts);
//4.塞入节点
allDataSheet.setNode(root);
//独立部门
List<Map<String, Object>> getsfdcdlzzjgBm = getsfdcdlzzjgBm();
//2.组装部门数据2
List<Deft> defts2 = new ArrayList<>();
for (int i = 0; i < getsfdcdlzzjgBm.size(); i++) {
String id = String.valueOf(getsfdcdlzzjgBm.get(i).get("id"));
String name = String.valueOf(getsfdcdlzzjgBm.get(i).get("name"));
Sheet orgDataSheet = new Sheet().setId(String.valueOf(i+2)).setTitle(name);
//这里先要根据部门id分别查询其所有下级部门包含自身
List<Map<String, Object>> allLinkDept = getAllLinkDept(id);
for (Map<String, Object> objectMap : allLinkDept) {
Deft deft = new Deft();
deft.setId(String.valueOf(objectMap.get("id")));
deft.setName(String.valueOf(objectMap.get("name")));
deft.setParent_id(String.valueOf(objectMap.get("parent")));
//这里要根据部门id查询
HrComEstCfgInfoDto cfgInfoDto = getPreparationsByBm(id);
//编制数
int estCount = cfgInfoDto.getEstCount();
//缺编数
Integer estLackCount = cfgInfoDto.getEstLackCount();
//超编数
Integer estOverCount = cfgInfoDto.getEstOverCount();
//查询在岗人数
int positionCount = getPositionCount(id);
//查询部门岗位名称
List<Map<String, Object>> positionByDept = getPositionByDept(id);
//遍历部门岗位查询岗位编制等相关信息
StringJoiner joiner = new StringJoiner(",");
for (Map<String, Object> map : positionByDept) {
String gwId = String.valueOf(map.get("id"));
String gwName = String.valueOf(map.get("name"));
//查询岗位编制数/缺编数
List<Map<String, Object>> personYdzqMonthList = getListDatasBySourceName(gwId);
// 处理数据增加空列表校验
int estCountGw = 0;
int estLackCountGw = 0;
if (!personYdzqMonthList.isEmpty()) {
Map<String, Object> data = personYdzqMonthList.get(0);
estCountGw = Integer.parseInt(String.valueOf(data.getOrDefault("estCount", 0)));
estLackCountGw = Integer.parseInt(String.valueOf(data.getOrDefault("estLackCount", 0)));
}
//查询岗位人数
int countGw = getPositionCountGw(gwId);
String gwInfo = String.format("岗位名称:%s、编制数%d、在岗人数%d、缺编数%d",
gwName, estCountGw, countGw, estLackCountGw);
joiner.add(gwInfo);
}
//查询人员姓名/职级/职位
StringBuilder sb = new StringBuilder();
List<Map<String, Object>> userNameByDept = getUserNameByDept(id);
for (Map<String, Object> map : userNameByDept) {
String userId = String.valueOf(map.get("id"));
String userName = String.valueOf(map.get("username"));
String jobset_level = String.valueOf(map.get("jobset_level"));
//职级
String jobsetLevel = getJobsetLevel(jobset_level);
//职位
String zw = getZw(userId);
// 格式化当前人员信息
String personInfo = String.format("姓名:%s、职级%s、职位%s",
userName, jobsetLevel, zw);
// 非首条数据添加分隔符
if (sb.length() > 0) {
sb.append(",");
}
sb.append(personInfo);
}
// 计算remark
String remark = String.format("部门编制数:%d\n部门在岗人数%d\n部门缺编数%d\n岗位%s\n人员%s",
estCount,
positionCount,
estLackCount,
joiner.toString(),
sb.toString());
if (null!=estLackCount&&estLackCount >0) {
remark += "\n缺编" + (estLackCount);
}
if (null!=estOverCount&&estOverCount >0) {
remark += "\n超编" + (estOverCount);
}
deft.setRemark(remark);
if((null!=estLackCount&&estLackCount >0) || (null!=estOverCount&&estOverCount >0)){
deft.setBgColor("#F1F1F1");
}
defts2.add(deft);
}
//3.组装
Node root2 = buildDepartmentTree(defts2);
//4.塞入节点
orgDataSheet.setNode(root2);
sheets.add(orgDataSheet);
}
//返回
Map<String, Object> result = new HashMap();
result.put("data", sheets);
//Map<String, Object> result = ImmutableMapUtil.of("data", sheets);
//设置出参
response.setResult(result);
return response;
}
@Override
public void rollBack(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
}
/**
* 塞入节点
* @param departments
* @return
*/
public Node buildDepartmentTree(List<Deft> departments) {
// 创建ID到Node的映射
Map<String, Node> nodeMap = new HashMap<>();
// 第一步创建所有节点
for (Deft dept : departments) {
Node node = new Node()
.setId(Long.parseLong(dept.getId()))
.setName(dept.getName())
.setType("department")
.setRemark(dept.getRemark())
.setBgColor(dept.getBgColor());
nodeMap.put(dept.getId(), node);
}
// 第二步建立父子关系
Node root = null;
for (Deft dept : departments) {
Node node = nodeMap.get(dept.getId());
String parentId = dept.getParent_id();
if (parentId == null || parentId.equals("null") || StringUtils.isBlank(parentId)) {
root = node; // 找到根节点
} else {
Node parent = nodeMap.get(parentId);
if (parent != null) {
parent.getChildren().add(node);
}
}
}
return root;
}
/**
* 查询所有部门
*/
private List<Map<String,Object>> getAllDepartments(){
String sql="select id,name,parent from eteams.department where 1=1 ";
log.error("getAllDept.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getAllDept.recordList:{}", recordList);
return recordList;
}
/**
* 查询部门在岗人数
*/
private int getPositionCount(String dept){
int num = 0;
String sql="select count(*) as num from eteams.employee where department = '"+dept+"' ";
log.error("getPositionCount.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getPositionCount.recordList:{}", recordList);
if(CollectionUtils.isNotEmpty(recordList)){
num = Integer.parseInt(String.valueOf(recordList.get(0).get("num")));
}
return num;
}
/**
* 查询所有部门
*/
private List<Map<String, Object>> getListDatasBySourceName(String gwId){
List<Map<String, Object>> personYdzqMonthList = commonService.getListDatasBySourceName("人员编制控编维度统计数据","LOGIC","weaver-hr-service");
log.error("getListDatasBySourceName.personYdzqMonthList:{}", personYdzqMonthList);
return personYdzqMonthList.stream().filter(e->e.get("position").equals(gwId)).collect(Collectors.toList());
}
/**
* 查询岗位在岗人数
*/
private int getPositionCountGw(String position){
int num = 0;
String sql="select count(*) as num from eteams.employee where position = '"+position+"' ";
log.error("getPositionCountGw.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getPositionCountGw.recordList:{}", recordList);
if(CollectionUtils.isNotEmpty(recordList)){
num = Integer.parseInt(String.valueOf(recordList.get(0).get("num")));
}
return num;
}
/**
* 查询部门人员姓名
*/
private List<Map<String,Object>> getUserNameByDept(String dept){
String sql="select id,username,jobset_level from eteams.employee where department = '"+dept+"' ";
log.error("getUserNameByDept.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getUserNameByDept.recordList:{}", recordList);
return recordList;
}
/**
* 查询人员职级
*/
private String getJobsetLevel(String levelId){
String jobset_level = "";
String sql="select jobset_level from eteams.hrm_jobset_level where id = '"+levelId+"' ";
log.error("getJobsetLevel.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getJobsetLevel.recordList:{}", recordList);
if(CollectionUtils.isNotEmpty(recordList)){
jobset_level = String.valueOf(recordList.get(0).get("jobset_level"));
}
return jobset_level;
}
/**
* 查询人员职位
*/
private String getZw(String userId){
String zw = "";
String sql="select zw from eteams.ft_1152026012537184302 where form_data_id = '"+userId+"' ";
log.error("getZw.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getZw.recordList:{}", recordList);
if(CollectionUtils.isNotEmpty(recordList)){
zw = String.valueOf(recordList.get(0).get("zw"));
}
return zw;
}
/**
* 根据部门查岗位
*/
private List<Map<String,Object>> getPositionByDept(String deptId){
String sql="select p.id,p.name\n" +
"from eteams.position p\n" +
"left join eteams.hrm_pos_dep_link pdl on p.id = pdl.position_id\n" +
"where p.TENANT_KEY = '"+tenant_key+"'\n"+
"AND p.is_delete = '0'\n" +
"AND (\n" +
" p.delete_type = '0'\n" +
" OR p.delete_type IS NULL\n" +
")\n" +
"AND p.is_canceled = '0'\n" +
"and pdl.delete_type = 0\n" +
"and pdl.department_id = '"+deptId+"'";
log.error("getPositionByDept.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getPositionByDept.recordList:{}", recordList);
return recordList;
}
/**
* 根据岗位查职级
*/
private List<Map<String,Object>> getRankByPosition(String positionId){
String sql="select * from grade g\n" +
"left join position p on g.ID = p.grade_id \n" +
"where p.ID = '"+positionId+"'\n" +
"and g.TENANT_KEY = '"+tenant_key+"'\n" +
"and g.ISDELETE = 0 ";
log.error("getRankByPosition.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getRankByPosition.recordList:{}", recordList);
return recordList;
}
/**
* 查询独立导出组织架构
*/
private List<Map<String,Object>> getsfdcdlzzjgBm(){
String sql=" select id,name,parent from department where formdata in(\n" +
" select form_data_id from eteams.ft_1154218872715993098 where sfdcdlzzjg=1)";
log.error("getsfdcdlzzjgBm.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getsfdcdlzzjgBm.recordList:{}", recordList);
return recordList;
}
/**
* 查询所有下级部门包含自身
*/
private List<Map<String,Object>> getAllLinkDept(String deptId){
String sql=" select id,name,parent from department where id='"+deptId+"' union all\n" +
"(SELECT id,name,parent FROM department\n" +
"WHERE id IN (SELECT cid FROM depart_link WHERE pid='"+deptId+"')\n" +
"AND is_delete = 0 AND status = 1)";
log.error("getAllLinkDept.sql:{}", sql);
Map<String, Object> rs = databaseUtils.execute("LOGIC", "weaver-ebuilder-form-service", sql);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(rs);
log.error("getAllLinkDept.recordList:{}", recordList);
return recordList;
}
/**
* 部门编制数查询
*/
private HrComEstCfgInfoDto getPreparationsByBm(String deptId){
HrComEstCfgInfoParam hrComEstCfgInfoParam = new HrComEstCfgInfoParam();
hrComEstCfgInfoParam.setFindLatestParent(false);
hrComEstCfgInfoParam.setOrgId(Long.parseLong(deptId));
WeaResult<HrComEstCfgInfoDto> estCfgInfo = hrRemoteApiService.getEstCfgInfo(tenant_key, 1167276462243069953L, hrComEstCfgInfoParam);
log.error("getPreparations.estCfgInfo:{}", estCfgInfo);
HrComEstCfgInfoDto data = new HrComEstCfgInfoDto();
if (estCfgInfo != null && estCfgInfo.isStatus()) {
data = estCfgInfo.getData();
}
return data;
}
}