fix(aihr): gate organization display fields in production
This commit is contained in:
@@ -156,6 +156,9 @@ mail:
|
||||
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
|
||||
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用
|
||||
aihr:
|
||||
org-sync:
|
||||
# 仅开发演示保留姓名/部门展示;生产默认关闭,组织同步只保留必要主体与范围字段
|
||||
store-display-fields: true
|
||||
sms:
|
||||
login-template-id: ${AIHR_SMS_LOGIN_TEMPLATE_ID:}
|
||||
# 演示兜底:非空则不真发短信,验证码固定为该值(仅 dev,prod 配置不含此项)
|
||||
|
||||
@@ -159,6 +159,9 @@ mail:
|
||||
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
|
||||
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用
|
||||
aihr:
|
||||
org-sync:
|
||||
# BRD 5.4:生产不复制外部人员姓名/部门到本地展示快照
|
||||
store-display-fields: false
|
||||
sms:
|
||||
login-template-id: ${AIHR_SMS_LOGIN_TEMPLATE_ID:}
|
||||
sms:
|
||||
|
||||
+29
-15
@@ -68,6 +68,9 @@ public class AihrOrgSyncService {
|
||||
@Value("${aihr.org-sync.signing-secret:${AIHR_ORG_SYNC_SIGNING_SECRET:}}")
|
||||
private String configuredSigningSecret;
|
||||
|
||||
@Value("${aihr.org-sync.store-display-fields:${AIHR_ORG_SYNC_STORE_DISPLAY_FIELDS:false}}")
|
||||
private boolean storeDisplayFields;
|
||||
|
||||
public SyncResponse sync(SyncRequest request) {
|
||||
SyncRequest req = request == null ? new SyncRequest(null, null, null, null, null, null, null, null) : request;
|
||||
String baseUrl = normalizeBaseUrl(configuredBaseUrl);
|
||||
@@ -208,9 +211,9 @@ public class AihrOrgSyncService {
|
||||
rs.getLong("id"),
|
||||
rs.getString("project_code"),
|
||||
rs.getString("project_name"),
|
||||
rs.getString("dept_name"),
|
||||
storeDisplayFields ? rs.getString("dept_name") : "",
|
||||
rs.getString("ext_party_id"),
|
||||
rs.getString("person_name"),
|
||||
storeDisplayFields ? rs.getString("person_name") : "",
|
||||
rs.getString("position_name"),
|
||||
rs.getString("position_level"),
|
||||
rs.getString("employment_status"),
|
||||
@@ -387,19 +390,20 @@ public class AihrOrgSyncService {
|
||||
String projectName = firstNonBlank(
|
||||
text(employee, "project_name", "projectName", "company_name", "companyName"),
|
||||
company == null ? "" : company.name(),
|
||||
deptName,
|
||||
storeDisplayFields ? deptName : "",
|
||||
"组织架构"
|
||||
);
|
||||
String personName = firstNonBlank(text(employee, "name", "person_name", "personName", "employee_name", "employeeName"), "-");
|
||||
String positionName = firstNonBlank(text(employee, "position_name", "positionName", "job_title", "jobTitle",
|
||||
"post_name", "postName", "job_name", "jobName", "role_name", "roleName", "position", "title"), "员工");
|
||||
String positionLevel = firstNonBlank(text(employee, "position_level", "positionLevel", "job_level", "jobLevel"), level(positionName));
|
||||
return new OrgRow(
|
||||
projectCode,
|
||||
projectName,
|
||||
deptName,
|
||||
storeDisplayFields ? deptName : "",
|
||||
extPartyId,
|
||||
phone(employee),
|
||||
firstNonBlank(text(employee, "name", "person_name", "personName", "employee_name", "employeeName"), "-"),
|
||||
storeDisplayFields ? personName : "",
|
||||
positionName,
|
||||
positionLevel(positionLevel, positionName),
|
||||
status(text(employee, "status", "employment_status", "employmentStatus")),
|
||||
@@ -442,16 +446,26 @@ public class AihrOrgSyncService {
|
||||
String keywordValue = clean(keyword);
|
||||
if (!keywordValue.isBlank()) {
|
||||
String like = "%" + keywordValue + "%";
|
||||
where.append("""
|
||||
and (person_name like ? or ext_party_id like ? or person_phone like ?
|
||||
or position_name like ? or dept_name like ? or project_name like ?)
|
||||
""");
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
if (storeDisplayFields) {
|
||||
where.append("""
|
||||
and (person_name like ? or ext_party_id like ? or person_phone like ?
|
||||
or position_name like ? or dept_name like ? or project_name like ?)
|
||||
""");
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
} else {
|
||||
where.append("""
|
||||
and (ext_party_id like ? or position_name like ? or project_code like ? or project_name like ?)
|
||||
""");
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
args.add(like);
|
||||
}
|
||||
}
|
||||
String project = clean(projectCode);
|
||||
if (!project.isBlank()) {
|
||||
|
||||
Reference in New Issue
Block a user