You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-hrm-organization/src/com/engine/organization/service/impl/JclOrgServiceImpl.java

83 lines
3.5 KiB
Java

package com.engine.organization.service.impl;
import com.engine.core.impl.Service;
import com.engine.organization.service.JclOrgService;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import java.util.HashMap;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2022/12/16
* @version: 1.0
*/
public class JclOrgServiceImpl extends Service implements JclOrgService {
@Override
public void supplementResourceInfo(Integer userId) {
// 职等职级树
String zdzjFieldName;
// 等级方案
String schemeFieldName;
// 职等
String levelFieldName;
// 职级
String gradeFieldName;
// 岗位序列
String sequenceFieldName;
Map<String, String> fieldNameMap = new HashMap<>();
// 查询职等职级字段
RecordSet rs = new RecordSet();
rs.execute("select fieldlabel ,fieldname from jcl_org_field");
while (rs.next()) {
fieldNameMap.put(rs.getString("fieldlabel"), rs.getString("fieldname"));
}
zdzjFieldName = fieldNameMap.get("职等职级");
schemeFieldName = fieldNameMap.get("等级方案");
levelFieldName = fieldNameMap.get("职等");
gradeFieldName = fieldNameMap.get("职级");
sequenceFieldName = fieldNameMap.get("岗位序列");
// 所有字段信息存在,执行业务逻辑
if (StringUtils.isNoneBlank(zdzjFieldName, schemeFieldName, levelFieldName, gradeFieldName, sequenceFieldName)) {
String zdzjFieldValue = "";
String schemeFieldValue = "";
String levelFieldValue = "";
String gradeFieldValue = "";
String sequenceFieldValue = "";
String sql = "select " + zdzjFieldName + " from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid=3 and id= " + userId;
rs.execute(sql);
if (rs.next()) {
zdzjFieldValue = rs.getString(zdzjFieldName);
}
// 职等职级为空时不处理
if (StringUtils.isBlank(zdzjFieldValue)) {
return;
}
sql = "select xlid, zjid, zdid from v_jcl_zdzjs where fid='" + zdzjFieldValue.substring(zdzjFieldValue.indexOf("_") + 1) + "'";
rs.execute(sql);
if (rs.next()) {
levelFieldValue = rs.getString("zjid");
gradeFieldValue = rs.getString("zdid");
sequenceFieldValue = rs.getString("xlid");
}
sql = "select scheme_id from jcl_org_sequence where id='" + sequenceFieldValue + "'";
rs.execute(sql);
if (rs.next()) {
schemeFieldValue = rs.getString("scheme_id");
}
// 更新字段信息
sql = "update cus_fielddata set " + sequenceFieldName + " = '" + sequenceFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId;
rs.execute(sql);
sql = "update cus_fielddata set " + schemeFieldName + " = '" + schemeFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId;
rs.execute(sql);
sql = "update cus_fielddata set " + levelFieldName + " = '" + levelFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId;
rs.execute(sql);
sql = "update cus_fielddata set " + gradeFieldName + " = '" + gradeFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId;
rs.execute(sql);
}
}
}