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

自动释放非活跃用户【财务+供应链+制造分组】许可

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

自动释放非活跃用户【财务+供应链+制造分组】许可

# 1、业务背景 ### 功能诉求 期望系统可以自动筛选出长期不登录的账户,并将这些账户分配的许可自动释放。 ### 当前系统局限 1. 没有统计长期不登录用户的功能 2. 没有自动释放许可的功能 # 2、 解决方案 1. 编写定时任务,继承AbstractTask 并重写execute方法; 2. 以当前时间点为基准,查询自三个月前开始就未登录过系统的用户,找到对应的用户id; 3. 根据许可分组编码,获取对应的许可分组id; 4. 调用许可相关服务接口,释放许可。 # 3、 代码示例 ``` package kd.hr.hrt.dada.demo.LicenseCheck; import kd.bos.algo.DataSet; import kd.bos.algo.Row; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.db.DB; import kd.bos.db.DBRoute; import kd.bos.entity.param.AppParam; import kd.bos.exception.KDException; import kd.bos.license.LicenseServiceUtil; import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.servicehelper.license.LicenseServiceHelper; import kd.bos.servicehelper.parameter.SystemParamServiceHelper; import java.util.*; public class LicenseRelease extends AbstractTask { @Override public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { //step1 get accurate time you want start Date current = new Date(System.currentTimeMillis()); Date time = stepDate(current, -3); //step2 get all inactive users List<Long> userList = getInactiveUsers(time); //step3 get groupId by groupNumber Long groupId = this.getGroupIdByNumber("PRO"); //step4 release license by group number releaseLicense(userList, groupId); } private void releaseLicense(List<Long> userList, Long groupId) { Set<Long> groupSet = new HashSet<>(); groupSet.add(groupId); Set<Long> userSet = new HashSet<>(); userSet.addAll(userList); // judge weather system param 【基础服务云】-【公共设置】-【系统参数】-[启用法人公司分配许可] boolean isLegalCheck = LicenseServiceUtil.isEnableLegalPersonAssign(); Long legalPersonId = null; if (isLegalCheck) { legalPersonId = getLegalPersonId(groupId); } LicenseServiceHelper.deleteUserGroupById(userSet, groupSet, legalPersonId); } private Long getLegalPersonId(Long groupId) { QFilter qFilter = new QFilter("group", QFilter.equals, groupId); DynamicObject result = QueryServiceHelper.queryOne("lic_userlicensegroup", "org", new QFilter[]{qFilter}); if (result != null) { return (Long) result.get("org"); } return 0L; } private List<Long> getInactiveUsers(Date time) { String sql = "select u.FID from t_sec_user u where u.FID not in (select DISTINCT FUSERID

自动释放非活跃用户【财务+供应链+制造分组】许可

# 1、业务背景 ### 功能诉求期望系统可以自动筛选出长期不登录的账户,并将这些账户分配的许可自动释放。 ### 当前系统局限 1. 没...
点击下载文档文档为doc格式

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

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