人员F7控件,模糊搜索区分同名人员的解决方案

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

人员F7控件,模糊搜索区分同名人员的解决方案

# 业务背景 业务单据上的人员字段,模糊搜索时如果存在同名人员,无法有效区分 ![image.webp](/download/0100a096f53240d04936b14cd10de039419e.webp) # 痛点分析 - 当前系统手机号、身份证号属于敏感信息,不便对外展示; - 人员基本信息(包括手机号、身份证)等依然无法有效区分人员,特别是对财务人员来说,更关注的是具体哪个部门的哪个人; - 单据通常是以部门的维度来做区分,所以人员选择时候,以部门来做辨别是有效方式,但是人员职位信息是分录的形式,F7模糊查询结果页不支持分录的展示。 # 解决方案 1. 在人员基本信息界面扩展一个文本字段,用来记录职位信息当中的部门长名称 ![image.webp](/download/010039289255ff9c4445a2bdee068c796ba5.webp) 2. 在系统参数界面配置二开的字段展示 ![image.webp](/download/0100113df7d84f414ae594f09a4372e1de37.webp) 3. 返回表单设计器界面,在save操作上绑定二开插件 ![image.webp](/download/0100c245c475351a497c9308a0a7c295cebb.webp) 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; } } getFullname(entryList.get(0), dynamicObject); } } private void getFullname(DynamicObject object, DynamicObject dynamicObject) { DynamicObject orgStructureInfo = (DynamicObject) object.get("orgstructure"); String fullname = ((OrmLocaleValue) orgStructureInfo.get("fullname")).getLocaleValue_zh_CN(); dynamicObject.set("mylongname", fullname); } } ``` # 效果展示 人员信息详情页数据展示: ![image.webp](/download/0100f8a396742f1a4e9ca0a542890ed8da50.webp) 人员F7选择界面数据展示: ![image.webp](/download/0100d74401fab019401e90244ccd8ca1ce7b.webp) # 注意事项 - 文本字段长默认为varchar(50),有些长名称长度会远超50,所以在表单设计器上设置字段长度,或者通过sql的方式来修改字段长度,脚本示例: ``` alter table t_sec_user modify column fk_mylongname varhcar(256) ``` - 因为长名称文字较长,下拉框无法显示完整,可以在系统参数配置页面设置下拉列宽,来调整长名称的显示 配置如图: ![image.webp](/download/01004145c6899cce4148aac8ffff2edb2ea3.webp) 最终效果展示: ![image.webp](/download/0100da2dab976cda468da969c41540dc108d.webp) # 参考资料 [操作插件](https://vip.kingdee.com/knowledge/specialDetail/218022218066869248?category=238612178977499648&id=225569169830609664&productLineId=29&lang=zh-CN)

人员F7控件,模糊搜索区分同名人员的解决方案

# 业务背景业务单据上的人员字段,模糊搜索时如果存在同名人员,无法有效区分![image.webp](/download/0100a096f53240d04936b14cd10de0394...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息