许可剩余数量预警

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

许可剩余数量预警

## 业务背景 目前苍穹系统没有许可数量相关的主动预警机制,在许可可用数量所剩不多的时候,用户是无感知的,如果此时进行批量的人员新增并进行许可分配会提示许可不足。针对此种场景,我们可以编写定时任务,在定时任务当中判断许可占用量,当占用量达到预警值时发送邮件通知,从而预防许可不足的问题发生。 ## 解决方案 1. 编写定时任务,继承AbstractTask基类,并重写execute方法。 2. 获取许可总数以及许可剩余数 3. 根据总数和剩余数计算出剩余百分比 4. 发送邮件 5. 具体代码实现逻辑如下: ``` package kd.hr.hrt.dada.demo.LicenseCheck; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.exception.KDException; import kd.bos.message.api.EmailInfo; import kd.bos.message.service.handler.EmailHandler; import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.servicehelper.license.LicenseServiceHelper; import java.util.Map; public class LicenseAlert extends AbstractTask { @Override public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { // get the groupId by groupNumber Integer groupId = getGroupIdByNumber("PRO"); double threshold = 0.2; // 2.get the valid license double total = LicenseServiceHelper.getTotalNumber(groupId) * 0.1; //3. get the total license double remain = LicenseServiceHelper.getRemainNumber(groupId) * 0.1; //4. calculate the percentage double percentage = total / remain; if (percentage > threshold) { //5. send message via email EmailInfo emailInfo = this.buildMessageInfo(remain); EmailHandler.sendEmail(emailInfo); } } private EmailInfo buildMessageInfo(double remain) { EmailInfo emailInfo = new EmailInfo(); emailInfo.setTitle("License Alert"); emailInfo.setContent("Insufficient Finance License, only " + remain + "left please be attention"); return emailInfo; } private Integer getGroupIdByNumber(String groupNumber) { // we can get groupNumber from path 【安全管理】-【许可分许明细列表】-【分组简码】 QFilter qFilter = new QFilter("number", QFilter.equals, groupNumber); DynamicObject result = QueryServiceHelper.queryOne("lic_group", "id", new QFilter[]{qFilter}); if (result != null) { return (Integer) result.get("id"); } return 0; } } ``` ## 方案推广价值 1. 定期提醒,方便用户清理无效许可占用,降低系统使用成本; 2. 预防在批量人员同步场景下,由于许可原因导致的同步中断的问题; 3. 以此为契机,提供关于自定时调度计划、消息发送的的开发示例。

许可剩余数量预警

## 业务背景 目前苍穹系统没有许可数量相关的主动预警机制,在许可可用数量所剩不多的时候,用户是无感知的,如果此时进行批量的...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息