xmind
This commit is contained in:
parent
7f212762d7
commit
dd4ad4c375
Binary file not shown.
Binary file not shown.
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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" +
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue