添加证件到期提醒功能和消息推送机制
parent
7d5f4223e2
commit
6ea7611c36
|
|
@ -26,5 +26,9 @@
|
|||
<groupId>com.zcloud.certificate</groupId>
|
||||
<artifactId>web-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jjb.saas</groupId>
|
||||
<artifactId>jjb-saas-framework-job</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireFifteenDayCopyJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前15天-抄送上级",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireFifteenDayCopyJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前15天-抄送上级==========");
|
||||
userCertificateService.listExpireCertCopy("15");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireFifteenDayJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前15天",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireFifteenDayJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前15天==========");
|
||||
userCertificateService.listExpireCert("15");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireNinetyDayJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前90天",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireNinetyDayJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前90天==========");
|
||||
userCertificateService.listExpireCert("90");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireOneDayJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前1天",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireOneDayJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前1天==========");
|
||||
userCertificateService.listExpireCert("1");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireSevenDayCopyJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前7天-抄送上级",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireSevenDayCopyJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前7天-抄送上级==========");
|
||||
userCertificateService.listExpireCertCopy("7");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireSevenDayJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前7天",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireSevenDayJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前7天==========");
|
||||
userCertificateService.listExpireCert("7");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireThirtyDayJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前30天",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireThirtyDayJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前30天==========");
|
||||
userCertificateService.listExpireCert("30");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.zcloud.certificate.plan;
|
||||
|
||||
import com.jjb.saas.framework.job.Job;
|
||||
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zcloud.certificate.api.UserCertificateServiceI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ExpireThreeDayJob implements Job {
|
||||
|
||||
@Autowired
|
||||
private UserCertificateServiceI userCertificateService;
|
||||
|
||||
@Override
|
||||
@JobRegister(cron = "0 30 8 * * ?", jobDesc = "持证人员证件到期提醒-提前3天",triggerStatus = 1)
|
||||
@XxlJob("com.zcloud.certificate.plan.ExpireThreeDayJob")
|
||||
public ReturnT<String> execute(String param) {
|
||||
System.out.println("开始执行计划任务");
|
||||
XxlJobHelper.log( "============持证人员证件到期提醒-提前3天==========");
|
||||
userCertificateService.listExpireCert("3");
|
||||
return ReturnT.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -56,6 +56,13 @@ public class CorpCertificateController {
|
|||
return corpCertificateService.list(qry);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("所有数据")
|
||||
@GetMapping("/sendMessage")
|
||||
public void sendMessage() {
|
||||
corpCertificateService.sendMessage();
|
||||
}
|
||||
|
||||
@ApiOperation("详情")
|
||||
@GetMapping("/getInfoById")
|
||||
public SingleResponse<CorpCertificateCO> getInfoById(@RequestParam(value = "id") Long id) {
|
||||
|
|
|
|||
|
|
@ -2,18 +2,27 @@ package com.zcloud.certificate.command;
|
|||
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.jjb.saas.message.client.message.facede.MessageFacade;
|
||||
import com.jjb.saas.message.client.message.request.MessageSendCmd;
|
||||
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
|
||||
import com.zcloud.certificate.domain.gateway.CorpCertificateGateway;
|
||||
import com.zcloud.certificate.domain.model.CorpCertificateE;
|
||||
import com.zcloud.certificate.dto.CorpCertificateAddCmd;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.certificate.persistence.dataobject.CorpCertificateDO;
|
||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* web-app
|
||||
|
|
@ -51,5 +60,24 @@ public class CorpCertificateAddExe {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
@DubboReference
|
||||
private final MessageFacade messageFacade;
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void sendMessage() {
|
||||
MessageSendCmd messageSendCmd = new MessageSendCmd();
|
||||
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
|
||||
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
|
||||
messageTargetCmd.setUserId(2029741219479408640L);
|
||||
messageSendCmd.setTargetCmd(messageTargetCmd);
|
||||
messageSendCmd.setSourceCode("MS000093");
|
||||
messageSendCmd.setNeedTokenEnum(false);
|
||||
Map<String, Object> sendParams = new HashMap<String, Object>();
|
||||
sendParams.put("Name", "1");
|
||||
sendParams.put("DocumentName", "2");
|
||||
sendParams.put("IdentificationNumber", "3");
|
||||
sendParams.put("MaturityDate", "5");
|
||||
messageSendCmd.setParams(sendParams);
|
||||
SingleResponse<Boolean> d = messageFacade.send(messageSendCmd);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,16 @@
|
|||
package com.zcloud.certificate.command.query;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.jjb.saas.message.client.message.facede.MessageFacade;
|
||||
import com.jjb.saas.message.client.message.request.MessageSendCmd;
|
||||
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
|
||||
import com.zcloud.certificate.command.convertor.UserCertificateCoConvertor;
|
||||
import com.zcloud.certificate.domain.config.MessageTemplateConfig;
|
||||
import com.zcloud.certificate.domain.model.UserBasicInfo;
|
||||
import com.zcloud.certificate.domain.model.UserCertificateE;
|
||||
import com.zcloud.certificate.dto.CorpCertificateStatPageQry;
|
||||
|
|
@ -21,7 +27,10 @@ import com.zcloud.certificate.persistence.dataobject.UserDO;
|
|||
import com.zcloud.certificate.persistence.repository.UserCertificateRepository;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.ehcache.core.util.CollectionUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -38,10 +47,11 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
public class UserCertificateQueryExe {
|
||||
private final UserCertificateRepository userCertificateRepository;
|
||||
private final UserCertificateCoConvertor userCertificateCoConvertor;
|
||||
|
||||
private final MessageTemplateConfig messageTemplateConfig;
|
||||
/**
|
||||
* 根据id查询
|
||||
* @param id
|
||||
|
|
@ -133,6 +143,98 @@ public class UserCertificateQueryExe {
|
|||
return userCertificateCoConvertor.converEsToCOs(userCertificateES);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 临期证照
|
||||
*/
|
||||
public void listExpireCert(String days) {
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
params.put("days", Integer.valueOf(days)-1);
|
||||
// 查询临期证照
|
||||
List<UserCertificateDO> expirelist = userCertificateRepository.listExpireCert(params);
|
||||
if(expirelist != null && expirelist.size() > 0){
|
||||
//15天的提醒特殊,需要单独查部门负责人
|
||||
Map<Long, String> deptMap = new HashMap<Long, String>();
|
||||
if (days.equals("15") || days.equals("3")){
|
||||
// 查询对应部门负责人
|
||||
List<Long> deptIds = expirelist.stream().map(UserCertificateDO::getDepartmentId).distinct().collect(Collectors.toList());
|
||||
if(deptIds != null && deptIds.size() > 0){
|
||||
List<UserDO> leaders = userCertificateRepository.listDeptLeader(deptIds);
|
||||
// leaders 根据 departmentId 分组 将 name 按逗号拼接
|
||||
deptMap = leaders.stream().collect(Collectors.groupingBy(UserDO::getDepartmentId, Collectors.mapping(UserDO::getName, Collectors.joining(","))));
|
||||
}
|
||||
}
|
||||
String template = messageTemplateConfig.getTemplate(days);
|
||||
for (UserCertificateDO userCertificateDO : expirelist){
|
||||
|
||||
// 给持证人员发站内信
|
||||
sendMessage(userCertificateDO, template, userCertificateDO.getUserId(), deptMap.get(userCertificateDO.getDepartmentId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 临期证照
|
||||
*/
|
||||
public void listExpireCertCopy(String days) {
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
params.put("days", Integer.valueOf(days)-1);
|
||||
// 查询临期证照
|
||||
List<UserCertificateDO> expirelist = userCertificateRepository.listExpireCert(params);
|
||||
// 查询对应部门负责人
|
||||
List<Long> deptIds = expirelist.stream().map(UserCertificateDO::getDepartmentId).distinct().collect(Collectors.toList());
|
||||
Map<Long, List<UserDO>> deptMap = new HashMap<Long, List<UserDO>>();
|
||||
if(deptIds != null && deptIds.size() > 0){
|
||||
List<UserDO> leaders = userCertificateRepository.listDeptLeader(deptIds);
|
||||
deptMap = leaders.stream().collect(Collectors.groupingBy(UserDO::getDepartmentId));
|
||||
}
|
||||
if(expirelist != null && expirelist.size() > 0){
|
||||
for (UserCertificateDO userCertificateDO : expirelist){
|
||||
// 给部门负责人发站内信
|
||||
if(deptMap != null && deptMap.size() > 0){
|
||||
String leaderTemplate = messageTemplateConfig.getTemplate(days + "_copy_leader");
|
||||
List<UserDO> leaderList = deptMap.get(userCertificateDO.getDepartmentId());
|
||||
for (UserDO leader : leaderList){
|
||||
sendMessage(userCertificateDO, leaderTemplate, leader.getId(), leader.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@DubboReference
|
||||
private MessageFacade messageFacade;
|
||||
private void sendMessage(UserCertificateDO userCertificateDO, String template, Long userId, String LeaderName) {
|
||||
try {
|
||||
MessageSendCmd messageSendCmd = new MessageSendCmd();
|
||||
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
|
||||
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
|
||||
messageTargetCmd.setUserId(userId);
|
||||
messageSendCmd.setTargetCmd(messageTargetCmd);
|
||||
messageSendCmd.setSourceCode(template);
|
||||
messageSendCmd.setNeedTokenEnum(false);
|
||||
Map<String, Object> sendParams = new HashMap<String, Object>();
|
||||
sendParams.put("Name", userCertificateDO.getUserName());
|
||||
sendParams.put("DocumentName", userCertificateDO.getCertificateName());
|
||||
sendParams.put("IdentificationNumber", userCertificateDO.getCertificateCode());
|
||||
sendParams.put("MaturityDate", userCertificateDO.getCertificateDateEnd());
|
||||
if(LeaderName != null){
|
||||
sendParams.put("SuperiorName", LeaderName);
|
||||
}
|
||||
messageSendCmd.setParams(sendParams);
|
||||
|
||||
log.info("发送站内信人员:{}", userCertificateDO.getUserName());
|
||||
SingleResponse<Boolean> result = messageFacade.send(messageSendCmd);
|
||||
log.info("发送站内信结果:{}", result.toString());
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void getUserInfo(List<UserCertificateE> userCertificateES, List<Long> userIds) {
|
||||
List<com.zcloud.certificate.domain.model.UserBasicInfo> userBasicInfos = userCertificateRepository.getUserNamesByUserIds(userIds);
|
||||
|
||||
|
|
|
|||
|
|
@ -74,5 +74,10 @@ public class CorpCertificateServiceImpl implements CorpCertificateServiceI {
|
|||
public boolean isExistCertNo(String certNo, Long id) {
|
||||
return corpCertificateQueryExe.checkCertNoExist(certNo, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage() {
|
||||
corpCertificateAddExe.sendMessage();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,9 +80,20 @@ public class UserCertificateServiceImpl implements UserCertificateServiceI {
|
|||
return userCertificateQueryExe.listAll(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listExpireCert(String days) {
|
||||
userCertificateQueryExe.listExpireCert(days);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listExpireCertCopy(String days) {
|
||||
userCertificateQueryExe.listExpireCertCopy(days);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isExistCertNo(String certNo, Long id) {
|
||||
return userCertificateQueryExe.checkCertNoExist(certNo, id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,5 +38,7 @@ public interface CorpCertificateServiceI {
|
|||
* 判断证书编号是否存在
|
||||
*/
|
||||
boolean isExistCertNo(String certNo, Long id);
|
||||
|
||||
void sendMessage();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,9 +40,17 @@ public interface UserCertificateServiceI {
|
|||
*/
|
||||
List<UserCertificateCO> listAll(UserCertificatePageQry qry);
|
||||
|
||||
|
||||
/**
|
||||
* 查询证书编号是否存在
|
||||
*/
|
||||
boolean isExistCertNo(String certNo, Long id);
|
||||
|
||||
void listExpireCert(String days);
|
||||
|
||||
/**
|
||||
* 持证人员证件到期提醒-抄送上级
|
||||
*/
|
||||
void listExpireCertCopy(String days);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
package com.zcloud.certificate.domain.config;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author zhangyue
|
||||
* @date 2026/2/11 10:05
|
||||
*/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "certificate.message.template")
|
||||
@Data
|
||||
public class MessageTemplateConfig {
|
||||
|
||||
//持证人员证件到期提醒-提前1天
|
||||
private String oneDayBeforeExpire;
|
||||
|
||||
// 持证人员证件到期提醒-提前3天
|
||||
private String threeDayBeforeExpire;
|
||||
|
||||
// 持证人员证件到期提醒-提前7天
|
||||
private String sevenDayBeforeExpire;
|
||||
// 持证人员证件到期提醒-提前15天
|
||||
private String fifteenDayBeforeExpire;
|
||||
// 持证人员证件到期提醒-提前30天
|
||||
private String thirtyDayBeforeExpire;
|
||||
// 持证人员证件到期提醒-提前90天
|
||||
private String ninetyDayBeforeExpire;
|
||||
// 持证人员证件到期提醒-提前7天-抄送上级
|
||||
private String sevenDayBeforeExpireCopyLeader;
|
||||
// 持证人员证件到期提醒-提前15天-抄送上级
|
||||
private String fifteenDayBeforeExpireCopyLeader;
|
||||
|
||||
// 存储所有模板的 Map
|
||||
private Map<String, String> templateMap;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
templateMap = new HashMap<>();
|
||||
templateMap.put("1", oneDayBeforeExpire);
|
||||
templateMap.put("3", threeDayBeforeExpire);
|
||||
templateMap.put("7", sevenDayBeforeExpire);
|
||||
templateMap.put("15", fifteenDayBeforeExpire);
|
||||
templateMap.put("30", thirtyDayBeforeExpire);
|
||||
templateMap.put("90", ninetyDayBeforeExpire);
|
||||
templateMap.put("7_copy_leader", sevenDayBeforeExpireCopyLeader);
|
||||
templateMap.put("15_copy_leader", fifteenDayBeforeExpireCopyLeader);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过 key 获取模板
|
||||
*/
|
||||
public String getTemplate(String key) {
|
||||
return templateMap.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过天数获取模板(不抄送上级)
|
||||
*/
|
||||
public String getByDays(Integer days) {
|
||||
return templateMap.get(String.valueOf(days));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.certificate.persistence.dataobject;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import com.zcloud.gbscommon.utils.Tools;
|
||||
|
|
@ -87,6 +88,15 @@ public class UserCertificateDO extends BaseDO {
|
|||
//复审日期
|
||||
@ApiModelProperty(value = "复审日期")
|
||||
private LocalDate reviewDate;
|
||||
//用户名称
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
@TableField(exist = false)
|
||||
private String userName;
|
||||
//班级id
|
||||
@ApiModelProperty(value = "班级id")
|
||||
@TableField(exist = false)
|
||||
private Long departmentId;
|
||||
|
||||
|
||||
public UserCertificateDO(String userCertificateId) {
|
||||
if (StrUtil.isNotBlank(userCertificateId)) this.userCertificateId = userCertificateId;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,8 @@ public interface UserCertificateMapper extends BaseMapper<UserCertificateDO> {
|
|||
|
||||
IPage<UserCerDO> certifiedPersonnelListPage(IPage<UserCerDO> page, @Param("params") Map<String, Object> params);
|
||||
|
||||
|
||||
List<UserCertificateDO> listExpireCert(@Param("params") Map<String, Object> params);
|
||||
List<UserDO> listDeptLeader(@Param("deptIds") List<Long> deptIds);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,5 +46,13 @@ public interface UserCertificateRepository extends BaseRepository<UserCertificat
|
|||
List<UserCertificateDO> listAll(Map<String, Object> params);
|
||||
|
||||
|
||||
|
||||
|
||||
List<UserCertificateDO> listExpireCert(Map<String, Object> params);
|
||||
|
||||
|
||||
List<UserDO> listDeptLeader(List<Long> deptIds);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,5 +89,15 @@ public class UserCertificateRepositoryImpl extends BaseRepositoryImpl<UserCertif
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserCertificateDO> listExpireCert(Map<String, Object> params) {
|
||||
return userCertificateMapper.listExpireCert(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserDO> listDeptLeader(List<Long> deptIds) {
|
||||
return userCertificateMapper.listDeptLeader(deptIds);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -316,5 +316,21 @@
|
|||
group by u.id
|
||||
order by u.sort asc,u.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="listExpireCert" resultType="com.zcloud.certificate.persistence.dataobject.UserCertificateDO">
|
||||
select uc.*, u.name as user_name, u.department_id
|
||||
from user_certificate uc
|
||||
left join user u on u.id = uc.user_id
|
||||
where uc.delete_enum = 'false'
|
||||
and uc.certificate_date_end = DATE_ADD(CURDATE(), INTERVAL #{params.days} DAY);
|
||||
</select>
|
||||
|
||||
<select id="listDeptLeader" resultType="com.zcloud.certificate.persistence.dataobject.UserDO">
|
||||
select * from user where delete_enum = 'false' and department_leader_flag = 1
|
||||
and department_id in
|
||||
<foreach index="index" collection="deptIds" item="deptId" open="(" separator="," close=")">
|
||||
#{deptId}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue