Merge pull request #7137 from dataease/pr@dev@fix_disable_user_report
feat: 定时报告过滤掉已禁用用户
This commit is contained in:
commit
0a2bce9d2d
@ -179,9 +179,10 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
// 下面继续执行发送邮件的
|
// 下面继续执行发送邮件的
|
||||||
String recipients = emailTemplateDTO.getRecipients();
|
String recipients = emailTemplateDTO.getRecipients();
|
||||||
String reciUsers = emailTemplateDTO.getReciUsers();
|
String reciUsers = emailTemplateDTO.getReciUsers();
|
||||||
|
Integer extWaitTime = emailTemplateDTO.getExtWaitTime();
|
||||||
List<String> reciLists = null;
|
List<String> reciLists = null;
|
||||||
if (StringUtils.isNotBlank(reciUsers)) {
|
if (StringUtils.isNotBlank(reciUsers)) {
|
||||||
String emailUsers = Arrays.stream(reciUsers.split(",")).map(userService::getUserByName).filter(tempUser -> StringUtils.isNotBlank(tempUser.getEmail())).map(SysUserEntity::getEmail).collect(Collectors.joining(","));
|
String emailUsers = Arrays.stream(reciUsers.split(",")).map(userService::getUserByName).filter(tempUser -> StringUtils.isNotBlank(tempUser.getEmail()) && 1 == tempUser.getEnabled()).map(SysUserEntity::getEmail).collect(Collectors.joining(","));
|
||||||
if (StringUtils.isNotBlank(emailUsers)) {
|
if (StringUtils.isNotBlank(emailUsers)) {
|
||||||
if (StringUtils.isNotBlank(recipients)) {
|
if (StringUtils.isNotBlank(recipients)) {
|
||||||
recipients += "," + emailUsers;
|
recipients += "," + emailUsers;
|
||||||
@ -232,15 +233,14 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<String> errorMsgs = new ArrayList<>();
|
List<String> errorMsgs = new ArrayList<>();
|
||||||
for (int i = 0; i < channels.size(); i++) {
|
for (String channel : channels) {
|
||||||
String channel = channels.get(i);
|
|
||||||
switch (channel) {
|
switch (channel) {
|
||||||
case "email":
|
case "email":
|
||||||
if (StringUtils.isNotBlank(recipients))
|
if (StringUtils.isNotBlank(recipients))
|
||||||
try {
|
try {
|
||||||
Integer panelFormat = emailTemplateDTO.getPanelFormat();
|
Integer panelFormat = emailTemplateDTO.getPanelFormat();
|
||||||
if (ObjectUtils.isEmpty(panelFormat) || panelFormat == 0) {
|
if (ObjectUtils.isEmpty(panelFormat) || panelFormat == 0) {
|
||||||
bytes = emailXpackService.printData(url, token, xpackPixelEntity);
|
bytes = emailXpackService.printData(url, token, xpackPixelEntity, extWaitTime);
|
||||||
emailService.sendWithImageAndFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
emailService.sendWithImageAndFiles(recipients, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
||||||
} else {
|
} else {
|
||||||
bytes = emailXpackService.printPdf(url, token, xpackPixelEntity, false, true);
|
bytes = emailXpackService.printPdf(url, token, xpackPixelEntity, false, true);
|
||||||
@ -252,12 +252,11 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "wecom":
|
case "wecom":
|
||||||
if (SpringContextUtil.getBean(AuthUserService.class).supportWecom()) {
|
if (SpringContextUtil.getBean(AuthUserService.class).supportWecom() && CollectionUtils.isNotEmpty(reciLists)) {
|
||||||
List<String> wecomUsers = new ArrayList<>();
|
List<String> wecomUsers = new ArrayList<>();
|
||||||
for (int j = 0; j < reciLists.size(); j++) {
|
for (String reci : reciLists) {
|
||||||
String reci = reciLists.get(j);
|
|
||||||
SysUserEntity userBySub = userService.getUserByName(reci);
|
SysUserEntity userBySub = userService.getUserByName(reci);
|
||||||
if (ObjectUtils.isEmpty(userBySub)) continue;
|
if (ObjectUtils.isEmpty(userBySub) || 1 != userBySub.getEnabled()) continue;
|
||||||
Long userId = userBySub.getUserId();
|
Long userId = userBySub.getUserId();
|
||||||
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
||||||
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getWecomId()))
|
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getWecomId()))
|
||||||
@ -267,7 +266,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(wecomUsers)) {
|
if (CollectionUtils.isNotEmpty(wecomUsers)) {
|
||||||
WecomXpackService wecomXpackService = SpringContextUtil.getBean(WecomXpackService.class);
|
WecomXpackService wecomXpackService = SpringContextUtil.getBean(WecomXpackService.class);
|
||||||
bytes = emailXpackService.printData(url, token, xpackPixelEntity);
|
bytes = emailXpackService.printData(url, token, xpackPixelEntity, extWaitTime);
|
||||||
WecomMsgResult wecomMsgResult = wecomXpackService.pushOaMsg(wecomUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
WecomMsgResult wecomMsgResult = wecomXpackService.pushOaMsg(wecomUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
||||||
if (wecomMsgResult.getErrcode() != 0) {
|
if (wecomMsgResult.getErrcode() != 0) {
|
||||||
errorMsgs.add("wecom: " + wecomMsgResult.getErrmsg());
|
errorMsgs.add("wecom: " + wecomMsgResult.getErrmsg());
|
||||||
@ -277,12 +276,11 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "dingtalk":
|
case "dingtalk":
|
||||||
if (SpringContextUtil.getBean(AuthUserService.class).supportDingtalk()) {
|
if (SpringContextUtil.getBean(AuthUserService.class).supportDingtalk() && CollectionUtils.isNotEmpty(reciLists)) {
|
||||||
List<String> dingTalkUsers = new ArrayList<>();
|
List<String> dingTalkUsers = new ArrayList<>();
|
||||||
for (int j = 0; j < reciLists.size(); j++) {
|
for (String reci : reciLists) {
|
||||||
String reci = reciLists.get(j);
|
|
||||||
SysUserEntity userBySub = userService.getUserByName(reci);
|
SysUserEntity userBySub = userService.getUserByName(reci);
|
||||||
if (ObjectUtils.isEmpty(userBySub)) continue;
|
if (ObjectUtils.isEmpty(userBySub) || 1 != userBySub.getEnabled()) continue;
|
||||||
Long userId = userBySub.getUserId();
|
Long userId = userBySub.getUserId();
|
||||||
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
||||||
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getDingtalkId()))
|
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getDingtalkId()))
|
||||||
@ -292,7 +290,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(dingTalkUsers)) {
|
if (CollectionUtils.isNotEmpty(dingTalkUsers)) {
|
||||||
DingtalkXpackService dingtalkXpackService = SpringContextUtil.getBean(DingtalkXpackService.class);
|
DingtalkXpackService dingtalkXpackService = SpringContextUtil.getBean(DingtalkXpackService.class);
|
||||||
bytes = emailXpackService.printData(url, token, xpackPixelEntity);
|
bytes = emailXpackService.printData(url, token, xpackPixelEntity, extWaitTime);
|
||||||
DingtalkMsgResult dingtalkMsgResult = dingtalkXpackService.pushOaMsg(dingTalkUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
DingtalkMsgResult dingtalkMsgResult = dingtalkXpackService.pushOaMsg(dingTalkUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
||||||
if (dingtalkMsgResult.getErrcode() != 0) {
|
if (dingtalkMsgResult.getErrcode() != 0) {
|
||||||
errorMsgs.add("dingtalk: " + dingtalkMsgResult.getErrmsg());
|
errorMsgs.add("dingtalk: " + dingtalkMsgResult.getErrmsg());
|
||||||
@ -302,12 +300,11 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "lark":
|
case "lark":
|
||||||
if (SpringContextUtil.getBean(AuthUserService.class).supportLark()) {
|
if (SpringContextUtil.getBean(AuthUserService.class).supportLark() && CollectionUtils.isNotEmpty(reciLists)) {
|
||||||
List<String> larkUsers = new ArrayList<>();
|
List<String> larkUsers = new ArrayList<>();
|
||||||
for (int j = 0; j < reciLists.size(); j++) {
|
for (String reci : reciLists) {
|
||||||
String reci = reciLists.get(j);
|
|
||||||
SysUserEntity userBySub = userService.getUserByName(reci);
|
SysUserEntity userBySub = userService.getUserByName(reci);
|
||||||
if (ObjectUtils.isEmpty(userBySub)) continue;
|
if (ObjectUtils.isEmpty(userBySub) || 1 != userBySub.getEnabled()) continue;
|
||||||
Long userId = userBySub.getUserId();
|
Long userId = userBySub.getUserId();
|
||||||
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
||||||
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getLarkId()))
|
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getLarkId()))
|
||||||
@ -317,7 +314,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(larkUsers)) {
|
if (CollectionUtils.isNotEmpty(larkUsers)) {
|
||||||
LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class);
|
LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class);
|
||||||
bytes = emailXpackService.printData(url, token, xpackPixelEntity);
|
bytes = emailXpackService.printData(url, token, xpackPixelEntity, extWaitTime);
|
||||||
LarkMsgResult larkMsgResult = larkXpackService.pushOaMsg(larkUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
LarkMsgResult larkMsgResult = larkXpackService.pushOaMsg(larkUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
||||||
if (larkMsgResult.getCode() != 0) {
|
if (larkMsgResult.getCode() != 0) {
|
||||||
errorMsgs.add("lark: " + larkMsgResult.getMsg());
|
errorMsgs.add("lark: " + larkMsgResult.getMsg());
|
||||||
@ -327,12 +324,11 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "larksuite":
|
case "larksuite":
|
||||||
if (SpringContextUtil.getBean(AuthUserService.class).supportLarksuite()) {
|
if (SpringContextUtil.getBean(AuthUserService.class).supportLarksuite() && CollectionUtils.isNotEmpty(reciLists)) {
|
||||||
List<String> larksuiteUsers = new ArrayList<>();
|
List<String> larksuiteUsers = new ArrayList<>();
|
||||||
for (int j = 0; j < reciLists.size(); j++) {
|
for (String reci : reciLists) {
|
||||||
String reci = reciLists.get(j);
|
|
||||||
SysUserEntity userBySub = userService.getUserByName(reci);
|
SysUserEntity userBySub = userService.getUserByName(reci);
|
||||||
if (ObjectUtils.isEmpty(userBySub)) continue;
|
if (ObjectUtils.isEmpty(userBySub) || 1 != userBySub.getEnabled()) continue;
|
||||||
Long userId = userBySub.getUserId();
|
Long userId = userBySub.getUserId();
|
||||||
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
SysUserAssist sysUserAssist = sysUserService.assistInfo(userId);
|
||||||
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getLarksuiteId()))
|
if (ObjectUtils.isEmpty(sysUserAssist) || StringUtils.isBlank(sysUserAssist.getLarksuiteId()))
|
||||||
@ -342,7 +338,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(larksuiteUsers)) {
|
if (CollectionUtils.isNotEmpty(larksuiteUsers)) {
|
||||||
LarksuiteXpackService larksuiteXpackService = SpringContextUtil.getBean(LarksuiteXpackService.class);
|
LarksuiteXpackService larksuiteXpackService = SpringContextUtil.getBean(LarksuiteXpackService.class);
|
||||||
bytes = emailXpackService.printData(url, token, xpackPixelEntity);
|
bytes = emailXpackService.printData(url, token, xpackPixelEntity, extWaitTime);
|
||||||
LarksuiteMsgResult larksuiteMsgResult = larksuiteXpackService.pushOaMsg(larksuiteUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
LarksuiteMsgResult larksuiteMsgResult = larksuiteXpackService.pushOaMsg(larksuiteUsers, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
||||||
if (larksuiteMsgResult.getCode() != 0) {
|
if (larksuiteMsgResult.getCode() != 0) {
|
||||||
errorMsgs.add("larksuite: " + larksuiteMsgResult.getMsg());
|
errorMsgs.add("larksuite: " + larksuiteMsgResult.getMsg());
|
||||||
@ -359,7 +355,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
|
|||||||
if (SpringContextUtil.getBean(AuthUserService.class).supportLark() && CollectionUtils.isNotEmpty(groupList)) {
|
if (SpringContextUtil.getBean(AuthUserService.class).supportLark() && CollectionUtils.isNotEmpty(groupList)) {
|
||||||
LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class);
|
LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class);
|
||||||
if (ObjectUtils.isEmpty(bytes)) {
|
if (ObjectUtils.isEmpty(bytes)) {
|
||||||
bytes = emailXpackService.printData(url, token, xpackPixelEntity);
|
bytes = emailXpackService.printData(url, token, xpackPixelEntity, extWaitTime);
|
||||||
}
|
}
|
||||||
List<LarkMsgResult> larkMsgResultList = larkXpackService.pushChatOaMsg(groupList, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
List<LarkMsgResult> larkMsgResultList = larkXpackService.pushChatOaMsg(groupList, emailTemplateDTO.getTitle(), contentStr, bytes, files);
|
||||||
larkMsgResultList.forEach(larkMsgResult -> {
|
larkMsgResultList.forEach(larkMsgResult -> {
|
||||||
|
|||||||
@ -207,7 +207,7 @@ public class XEmailTaskServer {
|
|||||||
String currentToken = ServletUtils.getToken();
|
String currentToken = ServletUtils.getToken();
|
||||||
Future<?> future = priorityExecutor.submit(() -> {
|
Future<?> future = priorityExecutor.submit(() -> {
|
||||||
try {
|
try {
|
||||||
return emailXpackService.print(url, currentToken, buildPixel(request.getPixel()));
|
return emailXpackService.print(url, currentToken, buildPixel(request.getPixel()), request.getExtWaitTime());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtil.error(e.getMessage(), e);
|
LogUtil.error(e.getMessage(), e);
|
||||||
DEException.throwException("预览失败,请联系管理员");
|
DEException.throwException("预览失败,请联系管理员");
|
||||||
@ -247,7 +247,7 @@ public class XEmailTaskServer {
|
|||||||
try {
|
try {
|
||||||
Future<?> future = priorityExecutor.submit(() -> {
|
Future<?> future = priorityExecutor.submit(() -> {
|
||||||
try {
|
try {
|
||||||
return emailXpackService.print(url, token, buildPixel(request.getPixel()));
|
return emailXpackService.print(url, token, buildPixel(request.getPixel()), request.getExtWaitTime());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtil.error(e.getMessage(), e);
|
LogUtil.error(e.getMessage(), e);
|
||||||
DEException.throwException("预览失败,请联系管理员");
|
DEException.throwException("预览失败,请联系管理员");
|
||||||
|
|||||||
@ -1 +1,9 @@
|
|||||||
UPDATE `sys_user` set `enabled` = 0 where `user_id` = 2;
|
UPDATE `sys_user`
|
||||||
|
set `enabled` = 0
|
||||||
|
where `user_id` = 2;
|
||||||
|
|
||||||
|
ALTER TABLE `sys_task_email`
|
||||||
|
ADD COLUMN `groups` varchar(255) NULL COMMENT '群聊' AFTER `view_data_range`;
|
||||||
|
|
||||||
|
ALTER TABLE `sys_task_email`
|
||||||
|
ADD COLUMN `ext_wait_time` int(0) NOT NULL DEFAULT 0 COMMENT '加载仪表板额外等待时间(s)' AFTER `groups`;
|
||||||
@ -2776,7 +2776,9 @@ export default {
|
|||||||
range_all: 'All data',
|
range_all: 'All data',
|
||||||
execute_now: 'Execute now',
|
execute_now: 'Execute now',
|
||||||
fire_now_success: 'Task executing',
|
fire_now_success: 'Task executing',
|
||||||
larkgroups: 'Lark group'
|
larkgroups: 'Lark group',
|
||||||
|
ext_wait_time: 'Additional waiting time for dashboard loading (unit: seconds)',
|
||||||
|
wat_time_limit: 'The additional waiting time must be between [0 - 30]'
|
||||||
},
|
},
|
||||||
dynamic_time: {
|
dynamic_time: {
|
||||||
set_default: 'Set Default',
|
set_default: 'Set Default',
|
||||||
|
|||||||
@ -2768,7 +2768,9 @@ export default {
|
|||||||
range_all: '全部數據',
|
range_all: '全部數據',
|
||||||
execute_now: '立即執行',
|
execute_now: '立即執行',
|
||||||
fire_now_success: '任務發起成功',
|
fire_now_success: '任務發起成功',
|
||||||
larkgroups: '飛書群'
|
larkgroups: '飛書群',
|
||||||
|
ext_wait_time: '加載儀表板額外等待時間(單位:秒)',
|
||||||
|
wat_time_limit: '額外等待時間必須在[0 - 30]'
|
||||||
},
|
},
|
||||||
dynamic_time: {
|
dynamic_time: {
|
||||||
set_default: '設置默認值',
|
set_default: '設置默認值',
|
||||||
|
|||||||
@ -2769,7 +2769,9 @@ export default {
|
|||||||
range_all: '全部数据',
|
range_all: '全部数据',
|
||||||
execute_now: '立即执行',
|
execute_now: '立即执行',
|
||||||
fire_now_success: '任务发起成功',
|
fire_now_success: '任务发起成功',
|
||||||
larkgroups: '飞书群'
|
larkgroups: '飞书群',
|
||||||
|
ext_wait_time: '加载仪表板额外等待时间(单位:秒)',
|
||||||
|
wat_time_limit: '额外等待时间必须在[0 - 30]'
|
||||||
},
|
},
|
||||||
dynamic_time: {
|
dynamic_time: {
|
||||||
set_default: '设置默认值',
|
set_default: '设置默认值',
|
||||||
|
|||||||
@ -34,4 +34,6 @@ public class XpackEmailTaskRequest extends XpackTaskCreateRequest {
|
|||||||
private String viewDataRange = "view";
|
private String viewDataRange = "view";
|
||||||
|
|
||||||
private String groups;
|
private String groups;
|
||||||
|
|
||||||
|
private Integer extWaitTime = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,4 +13,6 @@ public class XpackEmailViewRequest implements Serializable{
|
|||||||
|
|
||||||
private String pixel;
|
private String pixel;
|
||||||
|
|
||||||
|
private Integer extWaitTime = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,4 +37,6 @@ public class XpackEmailTemplateDTO implements Serializable {
|
|||||||
|
|
||||||
private String groups;
|
private String groups;
|
||||||
|
|
||||||
|
private Integer extWaitTime = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,7 +40,7 @@ public abstract class EmailXpackService extends PluginMenuService {
|
|||||||
|
|
||||||
public abstract GlobalTaskInstance instanceForm(Long instanceId);
|
public abstract GlobalTaskInstance instanceForm(Long instanceId);
|
||||||
|
|
||||||
public abstract byte[] print(String url, String token, XpackPixelEntity XpackPixelEntity) throws Exception;
|
public abstract byte[] print(String url, String token, XpackPixelEntity XpackPixelEntity, Integer extWaitTime) throws Exception;
|
||||||
|
|
||||||
public abstract byte[] printPdf(String url, String token, XpackPixelEntity XpackPixelEntity, boolean showPageNo, boolean picture2pdf) throws Exception;
|
public abstract byte[] printPdf(String url, String token, XpackPixelEntity XpackPixelEntity, boolean showPageNo, boolean picture2pdf) throws Exception;
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ public abstract class EmailXpackService extends PluginMenuService {
|
|||||||
|
|
||||||
public abstract XpackEmailTemplateDTO emailTemplate(Long taskId);
|
public abstract XpackEmailTemplateDTO emailTemplate(Long taskId);
|
||||||
|
|
||||||
public abstract byte[] printData(String url, String token, XpackPixelEntity XpackPixelEntity) throws Exception;
|
public abstract byte[] printData(String url, String token, XpackPixelEntity XpackPixelEntity, Integer extWaitTime) throws Exception;
|
||||||
|
|
||||||
public abstract void batchDel(List<Long> taskIds);
|
public abstract void batchDel(List<Long> taskIds);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user