
# 业务背景
业务单据上的人员字段,模糊搜索时如果存在同名人员,无法有效区分

# 痛点分析
- 当前系统手机号、身份证号属于敏感信息,不便对外展示;
- 人员基本信息(包括手机号、身份证)等依然无法有效区分人员,特别是对财务人员来说,更关注的是具体哪个部门的哪个人;
- 单据通常是以部门的维度来做区分,所以人员选择时候,以部门来做辨别是有效方式,但是人员职位信息是分录的形式,F7模糊查询结果页不支持分录的展示。
# 解决方案
1. 在人员基本信息界面扩展一个文本字段,用来记录职位信息当中的部门长名称

2. 在系统参数界面配置二开的字段展示

3. 返回表单设计器界面,在save操作上绑定二开插件

4. 插件处理逻辑:取人员任职信息的主职的部门长名称,如果人员没有主职部门,则默认取第一个。
# 代码示例
```
package kd.hr.hrt.dada.demo.LicenseCheck;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.entity.OrmLocaleValue;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.BeforeOperationArgs;
public class UserFieldListPlugin extends AbstractOperationServicePlugIn {
private final static String KEY_ENTRYENTITY = "entryentity";
@Override
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
String longName;
for (DynamicObject dynamicObject : e.getDataEntities()) {
//get position entries
DynamicObjectCollection entryList = dynamicObject.getDynamicObjectCollection(KEY_ENTRYENTITY);
for (DynamicObject object : entryList) {
//get position incharge,otherwise choose first
if ((Boolean) object.get("isincharge") == true) {
getFullname(object, dynamicObject);
return;