package com.engine.organization.service.impl;
import com.api.browser.bean.SearchConditionGroup;
import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption;
import com.api.browser.util.ConditionType;
import com.api.hrm.bean.HrmFieldBean;
import com.api.hrm.util.HrmFieldSearchConditionComInfo;
import com.cloudstore.eccom.constant.WeaBoolAttr;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.core.impl.Service;
import com.engine.hrm.util.face.HrmFaceCheckManager;
import com.engine.organization.component.OrganizationWeaTable;
import com.engine.organization.entity.DeleteParam;
import com.engine.organization.entity.company.bo.CompBO;
import com.engine.organization.entity.company.po.CompPO;
import com.engine.organization.entity.department.bo.DepartmentBO;
import com.engine.organization.entity.department.po.DepartmentPO;
import com.engine.organization.entity.extend.bo.ExtendInfoBO;
import com.engine.organization.entity.extend.po.ExtendInfoPO;
import com.engine.organization.entity.hrmresource.bo.HrmRelationBO;
import com.engine.organization.entity.hrmresource.param.HrmRelationSaveParam;
import com.engine.organization.entity.hrmresource.param.SearchTemplateParam;
import com.engine.organization.entity.hrmresource.po.HrmRelationPO;
import com.engine.organization.entity.hrmresource.po.JclOrgCustomTemplatePO;
import com.engine.organization.entity.hrmresource.po.SearchTemplatePO;
import com.engine.organization.entity.hrmresource.po.TransferDataPO;
import com.engine.organization.entity.hrmresource.vo.HrmResourceVO;
import com.engine.organization.entity.jclimport.po.CusFormFieldPO;
import com.engine.organization.entity.job.bo.JobBO;
import com.engine.organization.entity.job.po.JobPO;
import com.engine.organization.entity.searchtree.SearchTree;
import com.engine.organization.entity.searchtree.SearchTreeParams;
import com.engine.organization.enums.HrmGroupEnum;
import com.engine.organization.mapper.comp.CompMapper;
import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.hrmresource.HrmRelationMapper;
import com.engine.organization.mapper.hrmresource.SystemDataMapper;
import com.engine.organization.mapper.job.JobMapper;
import com.engine.organization.mapper.resource.HrmResourceMapper;
import com.engine.organization.mapper.resource.JclOrgCustomTemplateMapper;
import com.engine.organization.service.HrmResourceService;
import com.engine.organization.util.HasRightUtil;
import com.engine.organization.util.MenuBtn;
import com.engine.organization.util.OrganizationAssert;
import com.engine.organization.util.OrganizationDateUtil;
import com.engine.organization.util.db.DBType;
import com.engine.organization.util.db.MapperProxyFactory;
import com.engine.organization.util.detach.DetachUtil;
import com.engine.organization.util.page.PageUtil;
import com.engine.organization.util.tree.SearchTreeUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONException;
import org.json.JSONObject;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.StringUtil;
import weaver.general.Util;
import weaver.hrm.definedfield.HrmFieldManager;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* @author:dxfeng
* @createTime: 2022/06/20
* @version: 1.0
*/
public class HrmResourceServiceImpl extends Service implements HrmResourceService {
/**
* 左侧树 类型表示
*
* 0:集团
* 1:分部
* 2:部门
* 3:岗位
*/
private static final String TYPE_COMP = "1";
private static final String TYPE_DEPT = "2";
private static final String TYPE_JOB = "3";
private static final String RIGHT_NAME = "Roster:All";
private static final String level = getFieldName("职等");
private static final String grade = getFieldName("职级");
private HrmRelationMapper getHrmRelationMapper() {
return MapperProxyFactory.getProxy(HrmRelationMapper.class);
}
private DepartmentMapper getDepartmentMapper() {
return MapperProxyFactory.getProxy(DepartmentMapper.class);
}
private CompMapper getCompMapper() {
return MapperProxyFactory.getProxy(CompMapper.class);
}
private JobMapper getJobMapper() {
return MapperProxyFactory.getProxy(JobMapper.class);
}
private HrmResourceMapper getHrmResourceMapper() {
return MapperProxyFactory.getProxy(HrmResourceMapper.class);
}
private SystemDataMapper getSystemDataMapper() {
return MapperProxyFactory.getProxy(SystemDataMapper.class);
}
private JclOrgCustomTemplateMapper getJclOrgCustomTemplateMapper() {
return MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class);
}
// 所有满足条件的岗位ID
private List jobTitleList = null;
// 是否
boolean searchJobTitle = false;
@Override
public Map getSearchTree(SearchTreeParams params) {
String keyword = params.getKeyword();
String id = params.getId();
String type = Util.null2String(params.getType());
List treeList = getFilterCompany(id, type, keyword);
return SearchTreeUtil.getSearchTree(type, treeList);
}
@Override
public Map listPage(Map params) {
OrganizationWeaTable table = new OrganizationWeaTable<>(user, HrmResourceVO.class);
String sqlWhere = buildSqlWhere(params);
table.setSqlwhere(sqlWhere);
List weaTableColumnList = new ArrayList<>();
JclOrgCustomTemplatePO jclOrgCustomTemplatePO = MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).queryIsusedTemp("1", String.valueOf(user.getUID()));
String columns = null;
List fields = new ArrayList<>();
List allConditions = getAllConditions();
if (jclOrgCustomTemplatePO != null) {
if (StringUtils.isNotBlank(jclOrgCustomTemplatePO.getBasicFields())) {
columns = jclOrgCustomTemplatePO.getBasicFields();
}
if (StringUtils.isNotBlank(jclOrgCustomTemplatePO.getPersonalFields())) {
columns = columns + "," + jclOrgCustomTemplatePO.getPersonalFields();
}
if (StringUtils.isNotBlank(jclOrgCustomTemplatePO.getWorkFields())) {
columns = columns + "," + jclOrgCustomTemplatePO.getWorkFields();
}
} else {
//初次使用,无模板初始值
columns = "-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_subcompanyid1,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid,-1_hrm_sporder";
}
List columnList = Arrays.asList(columns.split(","));
BigDecimal decimal = new BigDecimal(100 / columnList.size());
for (SearchConditionGroup allCondition : allConditions) {
List items = allCondition.getItems();
for (SearchConditionItem item : items) {
String columnName = item.getDomkey()[0];
fields.add(buildTableSql(columnName) + " as " + buildTableSql(columnName).replace(".", "_"));
String scopeId = columnName.split("_")[0];
String fieldName = columnName.substring(columnName.lastIndexOf("_") + 1);
WeaTableColumn weaTableColumn = new WeaTableColumn();
weaTableColumn.setText(getHrmResourceMapper().queryLabelName(fieldName, scopeId));
weaTableColumn.setColumn(buildTableSql(columnName).replace(".", "_"));
weaTableColumn.setDisplay(columnList.contains(columnName) ? WeaBoolAttr.TRUE : WeaBoolAttr.FALSE);
weaTableColumn.setTransmethod("com.engine.organization.transmethod.HrmResourceTransMethod.getFieldTrueValue");
weaTableColumn.setOtherpara(columnName);
weaTableColumn.setWidth(decimal.setScale(2, RoundingMode.HALF_UP).doubleValue() + "%");
weaTableColumnList.add(weaTableColumn);
}
}
// if (StringUtils.isNotBlank(columns)) {
// String[] tmp = columns.split(",");
// for (int i = 0; i < tmp.length; i++) {
// String scopeId = tmp[i].split("_")[0];
// String fieldName = tmp[i].substring(tmp[i].lastIndexOf("_") + 1);
// WeaTableColumn weaTableColumn = new WeaTableColumn();
// weaTableColumn.setText(getHrmResourceMapper().queryLabelName(fieldName, scopeId));
// weaTableColumn.setColumn(buildTableSql(tmp[i]).replace(".", "_"));
// weaTableColumn.setDisplay(WeaBoolAttr.TRUE);
// weaTableColumn.setTransmethod("com.engine.organization.transmethod.HrmResourceTransMethod.getFieldTrueValue");
// String param = tmp[i];
// weaTableColumn.setOtherpara(param);
// weaTableColumnList.add(weaTableColumn);
// }
// }
// 增加id字段,跳转人员卡片
WeaTableColumn weaTableColumn = new WeaTableColumn();
// weaTableColumn.setText("id");
weaTableColumn.setColumn("id");
weaTableColumn.setDisplay(WeaBoolAttr.FALSE);
weaTableColumnList.add(weaTableColumn);
fields.add("t.id");
table.setBackfields(StringUtils.join(fields, ","));
table.setColumns(weaTableColumnList);
WeaResultMsg result = new WeaResultMsg(false);
result.putAll(table.makeDataResult());
result.success();
return new HashMap<>(result.getResultMap());
}
@Override
public Map getSaveForm() {
Map apiDatas = new HashMap<>();
List addGroups = new ArrayList<>();
apiDatas.put("condition", addGroups);
return apiDatas;
}
@Override
public Long saveBaseForm(Map params) {
return 0L;
}
@Override
public Map getBaseForm(Map params) {
return new HashMap<>();
}
@Override
public int updateForm(Map params) {
return 0;
}
@Override
public Integer saveSearchTemplate(SearchTemplateParam params) {
// 重复名称校验
SearchTemplatePO searchTemplateByName = getHrmResourceMapper().getSearchTemplateByName(user.getUID(), params.getShowname());
OrganizationAssert.isFalse("默认模板".equals(params.getShowname()) || null != searchTemplateByName, "该模板名称已存在");
SearchTemplatePO templatePO = buildSearchTemplateByFields(params.getFields());
if (null == templatePO) {
return -1;
}
templatePO.setName(params.getShowname());
templatePO.setCreator(user.getUID());
templatePO.setCreateTime(new Date());
templatePO.setUpdateTime(new Date());
getHrmResourceMapper().insertSearchTemplate(templatePO);
return templatePO.getId();
}
@Override
public void deleteSearchTemplate(Integer id) {
getHrmResourceMapper().deleteSearchTemplate(id, user.getUID());
}
@Override
public String getTemplateSelectKeys(Map params) {
String templateId = Util.null2String(params.get("templateId"));
templateId = StringUtils.isBlank(templateId) ? "-1" : templateId;
String type = Util.null2String(params.get("type"));
OrganizationAssert.isTrue(StringUtils.isNotBlank(templateId), "数据有误,未找到对应数据");
// 判断是否为搜索模板
SearchTemplatePO searchTemplateById;
List selectKeys;
if ("custom".equals(type)) {
if ("-1".equals(templateId)) {
selectKeys = Arrays.asList("-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid".split(","));
} else {
searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId);
selectKeys = getSelectKeys(searchTemplateById);
}
} else {
if ("-1".equals(templateId)) {
selectKeys = getAllConditions().get(0).getItems().stream().map(item -> item.getDomkey()[0]).collect(Collectors.toList());
} else {
searchTemplateById = getHrmResourceMapper().getSearchTemplateById(templateId);
selectKeys = getSelectKeys(searchTemplateById);
}
}
return StringUtils.join(selectKeys, ",");
}
@Override
public Map getSearchTemplate(Map params) {
Map returnMap = new HashMap<>();
String type = Util.null2String(params.get("type"));
int userUID = user.getUID();
// 根据ID查询所存储的模板
List templates;
if ("custom".equals(type)) {
templates = getHrmResourceMapper().getCustomTemplatesByUser(userUID);
SearchTemplatePO usedCustomTemplate = getHrmResourceMapper().getUsedCustomTemplateByUser(user.getUID());
if (null != usedCustomTemplate) {
returnMap.put("templateId", usedCustomTemplate.getId());
} else {
returnMap.put("templateId", "-1");
}
} else {
templates = getHrmResourceMapper().getSearchTemplatesByUser(userUID);
}
templates.add(0, SearchTemplateParam.builder().key("-1").showname("默认模板").build());
returnMap.put("templates", templates);
return returnMap;
}
@Override
public Integer saveCustomTemplate(SearchTemplateParam params) {
// 重复名称校验
SearchTemplatePO searchTemplateByName = getHrmResourceMapper().getCustomTemplateByName(user.getUID(), params.getShowname());
OrganizationAssert.isFalse("默认模板".equals(params.getShowname()) || null != searchTemplateByName, "该模板名称已存在");
SearchTemplatePO templatePO = buildSearchTemplateByFields(params.getFields());
if (null == templatePO) {
return -1;
}
templatePO.setName(params.getShowname());
templatePO.setCreator(user.getUID());
templatePO.setIsused("0");
templatePO.setCreateTime(new Date());
templatePO.setUpdateTime(new Date());
getHrmResourceMapper().insertCustomTemplate(templatePO);
return templatePO.getId();
}
@Override
public Integer updateCustomTemplate(Map params) {
int rowNum = Util.getIntValue((String) params.get("rownum"));
int count = 0;
List allIds = getJclOrgCustomTemplateMapper().listAllId();
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
List nameList = new ArrayList<>();
for (int i = 0; i < rowNum; i++) {
String recordIndex = "_" + i;
String name = Util.null2String(params.get("name" + recordIndex));
if (StringUtils.isNotBlank(name)) {
nameList.add(name);
}
}
OrganizationAssert.isFalse(new HashSet<>(nameList).size() < nameList.size(), "模板名称不能重复");
for (int i = 0; i < rowNum; i++) {
String recordIndex = "_" + i;
String id = Util.null2String(params.get("id" + recordIndex));
String name = Util.null2String(params.get("name" + recordIndex));
JclOrgCustomTemplatePO jclOrgCustomTemplatePO = new JclOrgCustomTemplatePO();
if (StringUtils.isNotBlank(id)) {
// 更新
long jclId = Long.parseLong(id);
jclOrgCustomTemplatePO = MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).selectByPrimaryKey(jclId);
jclOrgCustomTemplatePO.setName(name);
jclOrgCustomTemplatePO.setUpdateTime(new java.sql.Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
count += MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).updateByPrimaryKey(jclOrgCustomTemplatePO);
allIds.remove(jclId);
} else {
//插入
OrganizationAssert.isFalse("".equals(name), "模板名称不能为空");
jclOrgCustomTemplatePO.setName(name);
jclOrgCustomTemplatePO.setCreator(user.getUID());
jclOrgCustomTemplatePO.setCreateTime(new java.sql.Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclOrgCustomTemplatePO.setUpdateTime(new java.sql.Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
count += MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).insert(jclOrgCustomTemplatePO);
}
}
if (CollectionUtils.isNotEmpty(allIds)) {
count += MapperProxyFactory.getProxy(JclOrgCustomTemplateMapper.class).deleteByIds(allIds);
}
return count;
}
@Override
public void deleteCustomTemplate(Integer id) {
getHrmResourceMapper().deleteCustomTemplate(id, user.getUID());
}
@Override
public Map getCustomTransferData(Map params) {
Map resultMap = new HashMap<>();
String templateId = StringUtils.isNotBlank(Util.null2String(params.get("templateId"))) ? Util.null2String(params.get("templateId")) : "-1";
List transferDatas = new ArrayList<>();
List transferKeys;
List transferOptions = new ArrayList<>();
List allConditions = getAllConditions();
AtomicInteger idx = new AtomicInteger(0);
for (SearchConditionGroup allCondition : allConditions) {
List items = allCondition.getItems();
List collect = items.stream().map(item -> TransferDataPO.builder().id(item.getDomkey()[0]).label(item.getLabel()).title(allCondition.getTitle()).idx(Integer.toString(idx.get())).build()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(collect)) {
transferDatas.addAll(collect);
}
transferOptions.add(SearchTemplateParam.builder().key(Integer.toString(idx.getAndIncrement())).showname(allCondition.getTitle()).build());
}
if ("-1".equals(templateId)) {
// 查询当前使用的模板,没有使用的,则展示默认模板
SearchTemplatePO usedCustomTemplate = getHrmResourceMapper().getUsedCustomTemplateByUser(user.getUID());
if (null == usedCustomTemplate) {
String selectKeys = "-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid";
transferKeys = Arrays.asList(selectKeys.split(","));
} else {
transferKeys = getSelectKeys(usedCustomTemplate);
templateId = usedCustomTemplate.getId().toString();
}
} else {
SearchTemplatePO searchTemplateById = getHrmResourceMapper().getCustomTemplateById(templateId);
transferKeys = getSelectKeys(searchTemplateById);
}
transferOptions.add(0, SearchTemplateParam.builder().key("").showname("").build());
resultMap.put("transferDatas", transferDatas);
resultMap.put("transferKeys", transferKeys);
resultMap.put("transferOptions", transferOptions);
resultMap.put("templateId", templateId);
return resultMap;
}
@Override
public Integer saveColumnsCustomTemplate(Map params) {
String columns = Util.null2String(params.get("columns"));
String templateId = Util.null2String(params.get("templateId"));
SearchTemplatePO templatePO = buildSearchTemplateByFields(columns);
JclOrgCustomTemplatePO jclOrgCustomTemplatePO = new JclOrgCustomTemplatePO();
if (StringUtils.isNotBlank(templateId)) {
if (templateId.equals("-1")) {
getJclOrgCustomTemplateMapper().updateUsed("0", null, String.valueOf(user.getUID()));
} else {
jclOrgCustomTemplatePO = getJclOrgCustomTemplateMapper().selectByPrimaryKey(Long.parseLong(templateId));
if (jclOrgCustomTemplatePO != null) {
jclOrgCustomTemplatePO.setId(Integer.valueOf(templateId));
jclOrgCustomTemplatePO.setBasicFields(templatePO.getBasicFields());
jclOrgCustomTemplatePO.setPersonalFields(templatePO.getPersonalFields());
jclOrgCustomTemplatePO.setWorkFields(templatePO.getWorkFields());
jclOrgCustomTemplatePO.setIsused(1);
//取消已启用模板
getJclOrgCustomTemplateMapper().updateUsed("0", null, String.valueOf(user.getUID()));
//启用当前模板
getJclOrgCustomTemplateMapper().updateByPrimaryKeySelective(jclOrgCustomTemplatePO);
}
}
}
return jclOrgCustomTemplatePO.getId();
}
@Override
public Map getSearchCondition(Map params) {
String templateId = Util.null2String(params.get("templateId"));
String selectKeys = Util.null2String(params.get("selectKeys"));
if (StringUtils.isBlank(templateId)) {
templateId = "-1";
}
Map apiDatas = new HashMap<>();
List addGroups = new ArrayList<>();
List allConditions = getAllConditions();
// 穿梭框ID,展示所选字段信息
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo();
if ("-1".equals(templateId)) {
if (StringUtils.isNotBlank(selectKeys)) {
SearchTemplatePO templatePO = buildSearchTemplateByFields(selectKeys);
if (null != templatePO) {
buildSearchConditionGroup(templatePO, hrmFieldSearchConditionComInfo, addGroups);
}
} else {
// 未选择模板展示默认模板搜索条件
if (CollectionUtils.isNotEmpty(allConditions)) {
addGroups.add(allConditions.get(0));
}
}
} else {
// 选择模板则遍历所选模板所选字段
SearchTemplatePO searchTemplateById = getHrmResourceMapper().getSearchTemplateById(templateId);
buildSearchConditionGroup(searchTemplateById, hrmFieldSearchConditionComInfo, addGroups);
}
apiDatas.put("defaultcondition", addGroups);
apiDatas.put("conditions", allConditions);
return apiDatas;
}
@Override
public Map getHasRight() {
Map btnDatas = new HashMap<>();
if (HasRightUtil.hasRight(user, RIGHT_NAME, true)) {
ArrayList topMenuList = new ArrayList<>();
ArrayList rightMenuList = new ArrayList<>();
topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build());
topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("customization").menuIcon("icon-coms-task-list").menuName("列定制").type("BTN_COLUMN").build());
btnDatas.put("topMenu", topMenuList);
rightMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build());
//rightMenuList.add(MenuBtn.builder().isBatch("0").isTop("0").menuFun("custom").menuIcon("icon-coms-task-list").menuName("显示列定制").type("BTN_COLUMN").build());
rightMenuList.add(MenuBtn.rightMenu_btnLog());
btnDatas.put("rightMenu", rightMenuList);
}
btnDatas.put("hasRight", true);
return btnDatas;
}
@Override
public Map getTabForm(Map params) {
String viewAttrStr = (String) params.get("viewAttr");
OrganizationAssert.notBlank(viewAttrStr, "未指定操作类型,请确认");
String id = Util.null2String(params.get("id"));
OrganizationAssert.notBlank(id, "数据有误,请确认");
int viewAttr = Integer.parseInt(viewAttrStr);
Map apiDatas = new HashMap<>();
//List addGroups = new ArrayList<>();
//SearchConditionItem schemeId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "等级方案", "161", "schemeId", "schemeBrowser");
//schemeId.setRules("required");
//SearchConditionItem gradeId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "职级", "161", "gradeId", "gradeBrowser");
//gradeId.setRules("required");
//SearchConditionItem levelId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "职等", "162", "levelId", "levelBrowser");
//levelId.setRules("required");
//SearchConditionItem sequenceId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "岗位序列", "161", "sequenceId", "sequenceBrowser");
//sequenceId.setRules("required");
//SearchConditionItem postId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "职务分类", "161", "postId", "postBrowser");
//postId.setRules("required");
//SearchConditionItem postInfoId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "职务信息", "161", "postInfoId", "postInfoBrowser");
//postInfoId.setRules("required");
//SearchConditionItem companyId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "分部", "164", "companyId", "");
//companyId.setRules("required");
//SearchConditionItem departmentId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "部门", "4", "departmentId", "");
//departmentId.setRules("required");
//SearchConditionItem jobId = OrganizationFormItemUtil.browserItem(user, 2, 17, viewAttr, false, "岗位", "161", "jobId", "jobBrowser");
//jobId.setRules("required");
//
//
//// 编辑状态下赋值操作
//HrmRelationPO relationPO = getHrmRelationMapper().getRelationById(Long.parseLong(id));
//if (null != relationPO) {
// setBrowserValue(schemeId, relationPO.getSchemeId(), getSchemeMapper().listSchemesByIds(Stream.of(relationPO.getSchemeId()).collect(Collectors.toList())), null, null);
// setBrowserValue(gradeId, relationPO.getGradeId(), getGradeMapper().listGradessByIds(Stream.of(relationPO.getGradeId()).collect(Collectors.toList())), "scheme_id", relationPO.getSchemeId());
// setBrowserValue(levelId, relationPO.getLevelId(), getLevelMapper().listLevelsByIds(DeleteParam.builder().ids(relationPO.getLevelId()).build().getIds()), "grade_id", relationPO.getGradeId());
// setBrowserValue(sequenceId, relationPO.getSequenceId(), getSequenceMapper().listSequencesByIds(Stream.of(relationPO.getSequenceId()).collect(Collectors.toList())), "scheme_id", relationPO.getSchemeId());
// setBrowserValue(postId, relationPO.getPostId(), getPostMapper().listPostsByIds(Stream.of(relationPO.getPostId()).collect(Collectors.toList())), null, null);
// setBrowserValue(postInfoId, relationPO.getPostInfoId(), getPostInfoMapper().listPostInfosByIds(Stream.of(relationPO.getPostInfoId()).collect(Collectors.toList())), "post_id", relationPO.getPostId());
//
// List