许可剩余数量预警
## 业务背景
目前苍穹系统没有许可数量相关的主动预警机制,在许可可用数量所剩不多的时候,用户是无感知的,如果此时进行批量的人员新增并进行许可分配会提示许可不足。针对此种场景,我们可以编写定时任务,在定时任务当中判断许可占用量,当占用量达到预警值时发送邮件通知,从而预防许可不足的问题发生。
## 解决方案
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. 以此为契机,提供关于自定时调度计划、消息发送的的开发示例。
许可剩余数量预警
## 业务背景 目前苍穹系统没有许可数量相关的主动预警机制,在许可可用数量所剩不多的时候,用户是无感知的,如果此时进行批量的...
点击下载文档
本文2024-09-23 00:46:13发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141616.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章