表单字段根据项目负责人进行显隐控制
# 1、业务背景
### 功能诉求
单据头有一个字段:项目负责人。另外,单据上有一些敏感字段,这些字段只能让项目负责人以及项目负责人的领导才能看见,一般业务员是不能看到这些字段。
### 方案分析
目前标准产品中,字段权限方案的配置只能通过用户直接授权、通用角色授权配置,但是这些都只能指定用户或者角色对这些字段可见还是不可见,没有办法动态设置。
# 2、解决方案
```
package kd.hr.hrt.dada.demo.LicenseCheck;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.servicehelper.user.UserServiceHelper;
import java.util.*;
public class BillFieldVisible extends AbstractBillPlugIn {
@Override
public void afterBindData(EventObject e) {
//get current user
Long userId = UserServiceHelper.getCurrentUserId();
//get chargerid from bill
DynamicObject dynamicObject = (DynamicObject) this.getModel().getValue("my_testbasedata");
Long chargerId = dynamicObject.getLong("id");
boolean isCurrentUserCharger = getProjectChargerList(userId, chargerId);
if (!isCurrentUserCharger)
handelField();
}
private void handelField() {
for (Field filed : Field.values()) {
this.getView().setVisible(false, filed.name());
}
}
private Boolean getProjectChargerList(Long currentUser, Long projectCharger) {
//1.get all positioninfo belongs to the charger
List<Long> userIds = new ArrayList<>(1);
userIds.add(projectCharger);
List<Map<String, Object>> userPositionList = UserServiceHelper.getPosition(userIds);
//traverse all the psotion and get the org supervisor
Set<Long> userSet = new HashSet<>();
userPositionList.forEach(stringObjectMap -> {
List<Map<String, Object>> dynamicObject1 = (List) stringObjectMap.get("entryentity");
DynamicObject dynamicObject2 = (DynamicObject) dynamicObject1.get(0).get("dpt");
Long orgId = dynamicObject2.getLong("id");
List<Long> userIds2 = UserServiceHelper.getManagersOfOrg(orgId);
userSet.addAll(userIds2);
});
//traversal supervisor list and judge if current user is in the list
for (Long aLong : userSet) {
if (aLong.longValue() == currentUser.longValue())
return true;
}
return false;
}
private enum Field {
field1,
field2,
field3,
}
}
```
# 3、方案的可推广价值
- 如何根据人员职位获取人员所在公司
- 如何控制表单字段显隐
表单字段根据项目负责人进行显隐控制
# 1、业务背景 ### 功能诉求单据头有一个字段:项目负责人。另外,单据上有一些敏感字段,这些字段只能让项目负责人以及项目负责人的领...
点击下载文档
上一篇:修复组织的长编码下一篇:业务单元职能的封存与解封,助你轻松实现业务控制!
本文2024-09-23 00:47:29发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141759.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章