电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何查看自己的以及离职人员的单据

来源:金蝶云社区作者:金蝶2024-09-239

如何查看自己的以及离职人员的单据

# 业务背景 单据配置了数据规则:只允许当前登录人查看自己创建的单据。如果一旦该人员离职,那么他创建的单据就没有人可以看到了。目前数据规则还无法做到类似单据交接的功能:既能看到创建人自己的单据,同时还能看到离职人员创建的单据。 # 解决方案 核心思路:通过开发自定义比较符,做到不仅能够查看自己创建的单据,还能查看到我负责交接的离职人员创建的单据,具体效果图如下: ![image.webp](/download/010014a438bcc44a42b1861c192e5004237b.webp) # 实现步骤 1. 开发平台新建一张单据,具体设计如图: ![image.webp](/download/0100fbdef0b63d2e4ac2ab50e271a07de6c3.webp) **设计说明:** 核心字段有两个:一个是交接人,即有人员离职后,这些人员所创建的单据要转给此交接人;另一个是离职员工分录,顾名思义,该分录记录的就是离职人员。同时,新增表单插件,做相关逻辑校验,插件配置如图: ![image.webp](/download/01004d6f326e9ff743bd876d610b32502bf4.webp) 插件校验逻辑:1、如果离职人员本身也是交接人员,那么就不能保存,需要将该人员名下的离职人员分录也分配给交接人;2、如果对应的【用户禁用】状态是未禁用,则不允许保存。 ``` package kd.hr.hrt.dada.demo.LicenseCheck; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.StringUtils; import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.util.EventObject; public class MyFormPlugin extends AbstractFormPlugin { private final static String OPERATION_KEY = "bar_save"; private final static String KEY_MAINBAR = "tbmain"; @Override public void registerListener(EventObject e) { this.addItemClickListeners(KEY_MAINBAR); } @Override public void beforeItemClick(BeforeItemClickEvent evt) { if (StringUtils.equals(OPERATION_KEY, evt.getItemKey())) { DynamicObjectCollection collection = this.getModel().getEntryEntity("yf_leave_user_entry"); for (DynamicObject object : collection) { DynamicObject leaveUser = (DynamicObject) object.get("leave_user"); //如果离职人员用户禁用装填是非禁用,则不允许保存 if (!(boolean) leaveUser.get("isforbidden")) { this.getView().showMessage(String.format("用户%s尚未被禁用", leaveUser.get("name"))); } //如果离职人员也存在离职人员名单,则需要将其名下维护的人员也自动转到新的交接人员手中 QFilter userFilter = new QFilter("reveiver", QCP.equals, leaveUser.get("id")); DynamicObject leaveUsersList = BusinessDataServiceHelper.loadSingle("yf_employeemapping", "id", new QFilter[]{userFilter}); if (leaveUsersList != null) { this.getView().showMessage(String.format("用户%存在未交接人员名单,请处理", leaveUser.get("name"))); } } } } } ``` 2. 新增自定义比较符,配置如下: ![image.webp](/download/0100b5c7ed2671094c2eafc2ada3d13eb9a8.webp)其中解析类代码如下: ``` package kd.hr.hrt.dada.demo.LicenseCheck; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.filter.AbstractFilterContantParser; import kd.bos.entity.filter.FilterContantParserArgs; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper; import java.uti

如何查看自己的以及离职人员的单据

# 业务背景单据配置了数据规则:只允许当前登录人查看自己创建的单据。如果一旦该人员离职,那么他创建的单据就没有人可以看到了。目前数...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信