会员变更定时短信
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
package io.v.nutz.task.job.sourcechange;
|
||||
|
||||
import io.v.nutz.base.utils.MsgApi;
|
||||
import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeMiddleTable;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
@IocBean
|
||||
public class SourceChangeJob implements Job {
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private MsgApi msgApi;
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext context) throws JobExecutionException {
|
||||
// 获取当前日期
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
|
||||
// 定义日期格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
// 格式化日期
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
|
||||
List<SourceChangeMiddleTable> list = dao.query(SourceChangeMiddleTable.class, Cnd.NEW().and("changeTime", "like", formattedDate));
|
||||
|
||||
// 统计各类型人数
|
||||
Map<MemberChangeType, Integer> countMap = new HashMap<>();
|
||||
for (MemberChangeType type : MemberChangeType.values()) {
|
||||
countMap.put(type, 0);
|
||||
}
|
||||
for (SourceChangeMiddleTable item : list) {
|
||||
for (MemberChangeType type : MemberChangeType.values()) {
|
||||
if (item.getChangeTypes().contains(type.getType())) {
|
||||
countMap.put(type, countMap.get(type) + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StringBuffer msg = new StringBuffer();
|
||||
msg.append("日期:"+formattedDate);
|
||||
appendIfPositive(msg, "新入职", countMap.get(MemberChangeType.NEW));
|
||||
appendIfPositive(msg, "在职", countMap.get(MemberChangeType.WORK));
|
||||
appendIfPositive(msg, "离校", countMap.get(MemberChangeType.LEAVE_SCHOOL));
|
||||
appendIfPositive(msg, "退休", countMap.get(MemberChangeType.RETIRE));
|
||||
appendIfPositive(msg, "辞职", countMap.get(MemberChangeType.RESIGN));
|
||||
appendIfPositive(msg, "调出", countMap.get(MemberChangeType.OUT));
|
||||
appendIfPositive(msg, "离职", countMap.get(MemberChangeType.LEAVE_OFFICE));
|
||||
appendIfPositive(msg, "其它", countMap.get(MemberChangeType.OTHER));
|
||||
appendIfPositive(msg, "单位异动", countMap.get(MemberChangeType.UNIT_CHANGE));
|
||||
appendIfPositive(msg, "基本信息异动", countMap.get(MemberChangeType.BASIC_CHANGE));
|
||||
|
||||
List<String> channels=new ArrayList<>();
|
||||
channels.add("DingTalk");
|
||||
|
||||
//msgApi.sendMsg(channels, "", 1,"0",msg.toString(),null,null);
|
||||
}
|
||||
|
||||
private void appendIfPositive(StringBuffer msg, String label, Integer count) {
|
||||
if (count > 0) {
|
||||
msg.append("," + label + ":" + count + "人");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user