会员变更定时短信

This commit is contained in:
=
2025-03-11 20:25:53 +08:00
parent f5cf80358c
commit b69418b5de
@@ -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 + "");
}
}
}