消息提醒

main
zhaokai 2026-03-18 11:06:21 +08:00
parent 8e05f8606f
commit 206e0309a7
27 changed files with 283 additions and 73 deletions

View File

@ -71,6 +71,11 @@
<artifactId>web-infrastructure</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
<version>${spring-cloud-alibaba.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>

View File

@ -29,8 +29,8 @@ public class FireCheckRecordPlanDayJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 10 0 * * ?", jobDesc = "每半年超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.FireCheckRecordPlanDayJob")
@JobRegister(cron = "0 10 0 * * ?", jobDesc = "每半年超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.FireCheckRecordPlanDayJob")
public ReturnT<String> execute(String param) {
System.out.println("开始执行计划任务");

View File

@ -27,8 +27,8 @@ public class FireCheckRecordPlanHalfMonthlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 0 0 1,16 * ? ", jobDesc = "每半月超期未检查记录",triggerStatus = 1)
// @XxlJob(" com.zcloud.fire.check.plan.FireCheckRecordPlanHalfMonthlyJob")
@JobRegister(cron = "0 0 0 1,16 * ? ", jobDesc = "每半月超期未检查记录",triggerStatus = 1)
@XxlJob(" com.zcloud.fire.check.plan.FireCheckRecordPlanHalfMonthlyJob")
public ReturnT<String> execute(String param) {
XxlJobHelper.log( "============开始定时每半月超期未检查记录==========");
Map<String, Object> params =new HashMap<>();

View File

@ -27,8 +27,8 @@ public class FireCheckRecordPlanHalfYearlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 1,7 ?", jobDesc = "每半年超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanHalfYearlyJob")
@JobRegister(cron = "0 5 0 1 1,7 ?", jobDesc = "每半年超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanHalfYearlyJob")
public ReturnT<String> execute(String param) {
XxlJobHelper.log( "============开始定时增加每半年超期未检查记录==========");
Map<String, Object> params =new HashMap<>();

View File

@ -27,8 +27,8 @@ public class FireCheckRecordPlanMonthlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 * ?", jobDesc = "每月超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanMonthlyJob")
@JobRegister(cron = "0 5 0 1 * ?", jobDesc = "每月超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanMonthlyJob")
public ReturnT<String> execute(String param) {
XxlJobHelper.log( "============开始定时增加每月超期未检查记录==========");
Map<String, Object> params =new HashMap<>();

View File

@ -27,8 +27,8 @@ public class FireCheckRecordPlanQuarterlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 1,4,7,10 ?", jobDesc = "每季度超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanQuarterlyJob")
@JobRegister(cron = "0 5 0 1 1,4,7,10 ?", jobDesc = "每季度超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanQuarterlyJob")
public ReturnT<String> execute(String param) {
XxlJobHelper.log( "============开始定时每季度超期未检查记录==========");
Map<String, Object> params =new HashMap<>();

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import com.zcloud.fire.check.domain.model.DateTimeE;
@ -25,8 +27,8 @@ public class FireCheckRecordPlanTenDayJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1,11,21 * ?", jobDesc = "每询超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanTenDayJob")
@JobRegister(cron = "0 5 0 1,11,21 * ?", jobDesc = "每询超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.CheckRecordPlanTenDayJob")
public ReturnT<String> execute(String param) {
XxlJobHelper.log( "============开始定时增加每询超期未检查记录==========");
Map<String, Object> params =new HashMap<>();

View File

@ -28,8 +28,8 @@ public class FireCheckRecordPlanWeeklyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 ? * MON", jobDesc = "每周超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.zcGbsServicer.plan.CheckRecordPlanWeeklyJob")
@JobRegister(cron = "0 5 0 ? * MON", jobDesc = "每周超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.zcGbsServicer.plan.CheckRecordPlanWeeklyJob")
public ReturnT<String> execute(String param) {
Map<String, Object> params =new HashMap<>();
FireCheckListE fireCheckListE = new FireCheckListE();

View File

@ -27,8 +27,8 @@ public class FireCheckRecordPlanYearlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 1 ?", jobDesc = "每年超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.zcGbsServicer.plan.CheckRecordPlanYearlyJob")
@JobRegister(cron = "0 5 0 1 1 ?", jobDesc = "每年超期未检查记录",triggerStatus = 1)
@XxlJob("com.zcloud.zcGbsServicer.plan.CheckRecordPlanYearlyJob")
public ReturnT<String> execute(String param) {
XxlJobHelper.log( "============开始定时每年超期未检查记录==========");
Map<String, Object> params =new HashMap<>();

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckLisTenJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1,11,21 * ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckLisTenJob")
@JobRegister(cron = "0 5 0 1,11,21 * ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckLisTenJob")
public ReturnT<String> execute(String param) {
log.info( "============待排查消息提醒(消防点检)==========开始");

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckListDayJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 30 0 * * ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListDayJob")
@JobRegister(cron = "0 30 0 * * ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListDayJob")
public ReturnT<String> execute(String param) {
log.info( "============待排查消息提醒(消防点检)==========开始");

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckListHalfMonthlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 0 0 1,16 * ? ", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListHalfMonthlyJob")
@JobRegister(cron = "0 0 0 1,16 * ? ", jobDesc = "待排查消息提醒", triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListHalfMonthlyJob")
public ReturnT<String> execute(String param) {
log.info("============待排查消息提醒(消防点检)==========开始");

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckListHalfYearlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 1,7 ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListHalfYearlyJob")
@JobRegister(cron = "0 5 0 1 1,7 ?", jobDesc = "待排查消息提醒", triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListHalfYearlyJob")
public ReturnT<String> execute(String param) {
log.info("============待排查消息提醒(消防点检)==========开始");

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckListMonthlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 * ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListMonthlyJob")
@JobRegister(cron = "0 5 0 1 * ?", jobDesc = "待排查消息提醒", triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListMonthlyJob")
public ReturnT<String> execute(String param) {
log.info("============待排查消息提醒(消防点检)==========开始");

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckListQuarterlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 1,4,7,10 ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListQuarterlyJob")
@JobRegister(cron = "0 5 0 1 1,4,7,10 ?", jobDesc = "待排查消息提醒", triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListQuarterlyJob")
public ReturnT<String> execute(String param) {
log.info("============待排查消息提醒(消防点检)==========开始");

View File

@ -4,6 +4,7 @@ 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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -20,8 +21,8 @@ public class WaitFireCheckListWeeklyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 ? * MON", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListYearlyJob")
@JobRegister(cron = "0 5 0 ? * MON", jobDesc = "待排查消息提醒",triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListWeeklyJob")
public ReturnT<String> execute(String param) {
log.info( "============待排查消息提醒(消防点检)==========开始");

View File

@ -1,8 +1,10 @@
package com.zcloud.fire.check.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.fire.check.api.FireCheckListServiceI;
import com.zcloud.fire.check.domain.enums.ListManagerCheckPeriodEnum;
import lombok.RequiredArgsConstructor;
@ -19,8 +21,8 @@ public class WaitFireCheckListYearlyJob implements Job {
private FireCheckListServiceI fireCheckListServiceI;
@Override
// @JobRegister(cron = "0 5 0 1 1 ?", jobDesc = "待排查消息提醒",triggerStatus = 1)
// @XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListYearlyJob")
@JobRegister(cron = "0 5 0 1 1 ?", jobDesc = "待排查消息提醒", triggerStatus = 1)
@XxlJob("com.zcloud.fire.check.plan.WaitFireCheckListYearlyJob")
public ReturnT<String> execute(String param) {
log.info("============待排查消息提醒(消防点检)==========开始");

View File

@ -21,6 +21,9 @@
<groupId>com.zcloud.fire.check</groupId>
<artifactId>web-infrastructure</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,6 +1,12 @@
package com.zcloud.fire.check.command;
import cn.hutool.json.JSONUtil;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.alibaba.fastjson.JSONObject;
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.fire.check.domain.gateway.FireCheckListGateway;
import com.zcloud.fire.check.domain.gateway.FireCheckListItemGateway;
import com.zcloud.fire.check.domain.gateway.FireCheckListUserGateway;
@ -8,13 +14,25 @@ import com.zcloud.fire.check.domain.model.FireCheckListE;
import com.zcloud.fire.check.domain.model.FireCheckListItemE;
import com.zcloud.fire.check.domain.model.FireCheckListUserE;
import com.zcloud.fire.check.dto.FireCheckListAddCmd;
import com.zcloud.fire.check.persistence.dataobject.UserDO;
import com.zcloud.fire.check.persistence.repository.FireCheckListRepository;
import com.zcloud.fire.check.persistence.repository.UserRepository;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddBatchEvent;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
import com.zcloud.gbscommon.utils.UuidUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -25,12 +43,16 @@ import java.util.List;
*/
@Component
@AllArgsConstructor
@Slf4j
public class FireCheckListAddExe {
private final FireCheckListGateway fireCheckListGateway;
private final FireCheckListRepository fireCheckListRepository;
private final FireCheckListItemGateway fireCheckListItemGateway;
private final FireCheckListUserGateway fireCheckListUserGateway;
private final TodoListEventPusherUtil todoListEventPusherUtil;
private final UserRepository userRepository;
@DubboReference
private MessageFacade messageFacade;
@Transactional(rollbackFor = Exception.class)
public boolean execute(FireCheckListAddCmd cmd) {
//可以是多个负责人
@ -60,6 +82,47 @@ public class FireCheckListAddExe {
}
});
//TODO 消息提醒
try{
List<UserDO> userDOList = userRepository.getListById(cmd.getUserIdList());
Map<Long, String> userNameMap = userDOList.stream()
.collect(Collectors.toMap(
UserDO::getId,
UserDO::getName));
List<TodoListAddEvent> todoListAddEventList = new ArrayList<>();
cmd.getUserIdList().forEach(userId -> {
MessageSendCmd messageSendCmd = new MessageSendCmd();
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
messageTargetCmd.setUserId(userId);
messageSendCmd.setTargetCmd(messageTargetCmd);
messageSendCmd.setSourceCode("MS000103");
messageSendCmd.setNeedTokenEnum(false);
Map<String, Object> sendParams = new HashMap<String, Object>();
sendParams.put("FirefightinglistName", cmd.getFireCheckName());
sendParams.put("checkPeriod", cmd.getFireCheckTypeName());
messageSendCmd.setParams(sendParams);
log.info("创建清单,提醒发送消息参数:messageSendCmd: {}", JSONUtil.toJsonStr(messageSendCmd));
SingleResponse<Boolean> d = messageFacade.send(messageSendCmd);
log.info("创建清单,超期提醒发送消息结果:d: {}", JSONUtil.toJsonStr(d));
//待排查 待办
TodoListAddEvent event = new TodoListAddEvent();
event.setTitle(userNameMap.get(userId) + "-待排查");
event.setContent("您有一条[" + cmd.getFireCheckName() + "(" + cmd.getFireCheckTypeName() + ")】待检查,请您及时排查,避免超期。");
event.setForeignKey(fireCheckListE.getId()); // 业务表ID -申请
event.setForeignSubsidiaryKey(fireCheckListE.getId()); // 业务附表ID 没有附表时为foreignKey的值
event.setReceiveUser(userId);// user表ID
event.setPcFlag(0); // 是否PC端待办 1是 0否
event.setAppFlag(1); // 是否APP端待办 1是 0否
event.setOtherParams(new JSONObject());
todoListAddEventList.add(event);
});
TodoListAddBatchEvent event3 = new TodoListAddBatchEvent();
event3.setTodoListAddEventList(new ArrayList<>());
todoListEventPusherUtil.sendMessageAddBatchEvent(event3);
}catch (Exception e){
log.error("发送消息异常",e);
}
return true;
}
}

View File

@ -13,6 +13,8 @@ import com.zcloud.fire.check.persistence.dataobject.FireCheckListDO;
import com.zcloud.fire.check.persistence.repository.FireCheckListItemRepository;
import com.zcloud.fire.check.persistence.repository.FireCheckListRepository;
import com.zcloud.fire.check.persistence.repository.FireCheckListUserRepository;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListDeleteEvent;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -36,6 +38,7 @@ public class FireCheckListUpdateExe {
private final FireCheckListItemRepository fireCheckListItemRepository;
private final FireCheckListUserRepository fireCheckListUserRepository;
private final FireCheckListUserGateway fireCheckListUserGateway;
private final TodoListEventPusherUtil todoListEventPusherUtil;
@Transactional(rollbackFor = Exception.class)
public void execute(FireCheckListUpdateCmd fireCheckListUpdateCmd) {
@ -82,6 +85,12 @@ public class FireCheckListUpdateExe {
if (!res) {
throw new BizException("修改失败");
}
if(fireCheckListUpdateStateCmd.getState() == 2){
//删除清单
TodoListDeleteEvent event2 = new TodoListDeleteEvent();
event2.setForeignSubsidiaryKey(fireCheckListUpdateStateCmd.getId());// 业务附表ID 没有附表时为foreignKey的值
todoListEventPusherUtil.sendMessageDeleteEvent(event2);
}
}
}

View File

@ -19,10 +19,14 @@ import com.zcloud.fire.check.dto.FireCheckRecordUserAddCmd;
import com.zcloud.fire.check.dto.clientobject.CorpStatisticsCO;
import com.zcloud.fire.check.dto.clientobject.FireCheckRecordCO;
import com.zcloud.fire.check.dto.clientobject.FireCheckRecordPointCO;
import com.zcloud.fire.check.persistence.dataobject.FireCheckListDO;
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO;
import com.zcloud.fire.check.persistence.dataobject.FireCheckRecordHiddenDO;
import com.zcloud.fire.check.persistence.repository.FireCheckListRepository;
import com.zcloud.fire.check.persistence.repository.FireCheckRecordHiddenRepository;
import com.zcloud.fire.check.persistence.repository.FireCheckRecordRepository;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
import com.zcloud.gbscommon.zcloudhidden.face.ZcloudHiddenFacade;
import com.zcloud.gbscommon.zcloudhidden.request.HiddenAddCmd;
import lombok.AllArgsConstructor;
@ -55,6 +59,8 @@ public class FireCheckRecordAddExe {
private final FireCheckRecordHiddenRepository fireCheckRecordHiddenRepository;
@DubboReference
private final ZcloudHiddenFacade zcloudHiddenFacade;
private final TodoListEventPusherUtil todoListEventPusherUtil;
private final FireCheckListRepository fireCheckListRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(FireCheckRecordAddCmd cmd) {
@ -118,6 +124,15 @@ public class FireCheckRecordAddExe {
FireCheckRecordCO fireCheckRecordCO = new FireCheckRecordCO();
BeanUtils.copyProperties(fireCheckRecordDO, fireCheckRecordCO);
try{
;
FireCheckListDO fireCheckListDO = fireCheckListRepository.getInfoByUUId(fireCheckRecordDO.getFireCheckId());
TodoListCompleteEvent event1 = new TodoListCompleteEvent();
event1.setForeignSubsidiaryKey(fireCheckListDO.getId());// 业务附表ID 没有附表时为foreignKey的值
todoListEventPusherUtil.sendMessageCompleteEvent(event1);
}catch (Exception e){
log.error("发送待办消息失败",e);
}
return fireCheckRecordCO;
}

View File

@ -4,8 +4,13 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.alibaba.fastjson.JSONObject;
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.fire.check.command.convertor.*;
import com.zcloud.fire.check.domain.enums.HiddenCheckTypeEnum;
import com.zcloud.fire.check.domain.model.FireCheckListE;
@ -14,7 +19,12 @@ import com.zcloud.fire.check.dto.clientobject.*;
import com.zcloud.fire.check.persistence.FireCheckPointListDO;
import com.zcloud.fire.check.persistence.dataobject.*;
import com.zcloud.fire.check.persistence.repository.*;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddBatchEvent;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
import com.zcloud.gbscommon.todolistmq.event.TodoListDeleteEvent;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.UuidUtil;
import com.zcloud.gbscommon.zcloudhidden.face.ZcloudHiddenFacade;
import com.zcloud.gbscommon.zcloudhidden.request.HiddenStatisticsQry;
import com.zcloud.gbscommon.zcloudhidden.response.HiddenListCO;
@ -57,9 +67,12 @@ public class FireCheckListQueryExe {
private final FireCheckRecordHiddenRepository fireCheckRecordHiddenRepository;
private final FireCheckRecordHiddenCoConvertor fireCheckRecordHiddenCoConvertor;
private final FireCheckListUserCoConvertor fireCheckListUserCoConvertor;
private final TodoListEventPusherUtil todoListEventPusherUtil;
private final UserRepository userRepository;
@DubboReference
private ZcloudHiddenFacade zcloudHiddenFacade;
@DubboReference
private MessageFacade messageFacade;
/**
*
@ -541,18 +554,43 @@ public class FireCheckListQueryExe {
List<String> fireCheckIdList = noFinishedCheckList.stream().map(FireCheckListDO::getFireCheckId).collect(Collectors.toList());
//查找所有负责人
List<FireCheckListUserDO> fireCheckListUserDOList = fireCheckListUserRepository.getListUserNameByFireCheckIdList(fireCheckIdList);
//fireCheckListUserDOList转换为key value map
/*Map<String, String> fireCheckListUserDONameMap = fireCheckListUserDOList.stream()
Map<String, List<Long>> fireCheckListUserDONameMap = fireCheckListUserDOList.stream()
.collect(Collectors.groupingBy(
FireCheckListUserDO::getFireCheckId,
Collectors.mapping(FireCheckListUserDO::getUserName, Collectors.joining(","))));*/
Collectors.mapping(FireCheckListUserDO::getUserId, Collectors.toList())));
noFinishedCheckList.forEach(info->{
//TODO 进行超期 提醒
/**
* -
* "您有一条【点检表名称(排查周期)】已超期,请尽快处理。"
*/
try{
for (Long userId : fireCheckListUserDONameMap.get(info.getFireCheckId())) {
MessageSendCmd messageSendCmd = new MessageSendCmd();
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
messageTargetCmd.setUserId(userId);
messageSendCmd.setTargetCmd(messageTargetCmd);
messageSendCmd.setSourceCode("MS000104");
messageSendCmd.setNeedTokenEnum(false);
Map<String, Object> sendParams = new HashMap<String, Object>();
sendParams.put("FirefightinglistName", info.getFireCheckName());
sendParams.put("checkPeriod", info.getFireCheckTypeName());
messageSendCmd.setParams(sendParams);
log.info("超期提醒发送消息参数:messageSendCmd: {}", JSONUtil.toJsonStr(messageSendCmd));
SingleResponse<Boolean> d = messageFacade.send(messageSendCmd);
log.info("超期提醒发送消息结果:d: {}", JSONUtil.toJsonStr(d));
}
//删除代办
TodoListDeleteEvent event2 = new TodoListDeleteEvent();
event2.setForeignSubsidiaryKey(info.getId());// 业务附表ID 没有附表时为foreignKey的值
log.info("删除待办,请求:{}",info.getId());
boolean b = todoListEventPusherUtil.sendMessageDeleteEvent(event2);
log.info("删除待办,结果:{}",b);
}catch (Exception e){
log.error("发送消息异常",e);
}
});
}
@ -562,22 +600,63 @@ public class FireCheckListQueryExe {
List<String> fireCheckIdList = waitCheckList.stream().map(FireCheckListDO::getFireCheckId).collect(Collectors.toList());
//查找所有负责人
List<FireCheckListUserDO> fireCheckListUserDOList = fireCheckListUserRepository.getListUserNameByFireCheckIdList(fireCheckIdList);
//fireCheckListUserDOList转换为key value map
/*Map<String, String> fireCheckListUserDONameMap = fireCheckListUserDOList.stream()
Map<String, List<Long>> fireCheckListUserDONameMap = fireCheckListUserDOList.stream()
.collect(Collectors.groupingBy(
FireCheckListUserDO::getFireCheckId,
Collectors.mapping(FireCheckListUserDO::getUserName, Collectors.joining(","))));*/
waitCheckList.forEach(info->{
//TODO 未完成 提醒
Collectors.mapping(FireCheckListUserDO::getUserId, Collectors.toList())));
for (FireCheckListDO info : waitCheckList) {
//TODO 待排查 提醒
/**
* -
* "您有一条【点检表名称(排查周期)】已超期,请尽快处理。"
*/
if (CollUtil.isEmpty(fireCheckListUserDONameMap.get(info.getFireCheckId()))) {
continue;
}
try {
List<UserDO> userDOList = userRepository.getListById(fireCheckListUserDONameMap.get(info.getFireCheckId()));
Map<Long, String> userNameMap = userDOList.stream()
.collect(Collectors.toMap(
UserDO::getId,
UserDO::getName));
List<TodoListAddEvent> todoListAddEventList = new ArrayList<>();
for (Long userId : fireCheckListUserDONameMap.get(info.getFireCheckId())) {
MessageSendCmd messageSendCmd = new MessageSendCmd();
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
messageTargetCmd.setUserId(userId);
messageSendCmd.setTargetCmd(messageTargetCmd);
messageSendCmd.setSourceCode("MS000103");
messageSendCmd.setNeedTokenEnum(false);
Map<String, Object> sendParams = new HashMap<String, Object>();
sendParams.put("FirefightinglistName", info.getFireCheckName());
sendParams.put("checkPeriod", info.getFireCheckTypeName());
messageSendCmd.setParams(sendParams);
log.info("待排查提醒发送消息参数:messageSendCmd: {}", JSONUtil.toJsonStr(messageSendCmd));
SingleResponse<Boolean> d = messageFacade.send(messageSendCmd);
log.info("待排查提醒发送消息结果:d: {}", JSONUtil.toJsonStr(d));
});
//待排查 待办
TodoListAddEvent event = new TodoListAddEvent();
event.setTitle(userNameMap.get(userId) + "-待排查");
event.setContent("您有一条[" + info.getFireCheckName() + "(" + info.getFireCheckTypeName() + ")】待检查,请您及时排查,避免超期。");
event.setForeignKey(info.getId()); // 业务表ID -申请
event.setForeignSubsidiaryKey(info.getId()); // 业务附表ID 没有附表时为foreignKey的值
event.setReceiveUser(userId);// user表ID
event.setPcFlag(0); // 是否PC端待办 1是 0否
event.setAppFlag(1); // 是否APP端待办 1是 0否
event.setOtherParams(new JSONObject());
todoListAddEventList.add(event);
}
TodoListAddBatchEvent event3 = new TodoListAddBatchEvent();
event3.setTodoListAddEventList(new ArrayList<>());
todoListEventPusherUtil.sendMessageAddBatchEvent(event3);
} catch (Exception e) {
log.error("发送消息异常", e);
}
}
}
}

View File

@ -38,6 +38,7 @@ public class FireCheckListGatewayImpl implements FireCheckListGateway {
FireCheckListDO d = new FireCheckListDO();
BeanUtils.copyProperties(fireCheckListE, d);
fireCheckListRepository.save(d);
fireCheckListE.setId(d.getId());
return true;
}

View File

@ -43,5 +43,7 @@ public interface FireCheckListRepository extends BaseRepository<FireCheckListDO>
List<FireCheckListDO> waitFireCheckList(String checkType);
List<FireCheckListDO> overTimeRecord(@Param("params") Map<String, Object> params);
FireCheckListDO getInfoByUUId(String fireCheckId);
}

View File

@ -14,5 +14,7 @@ import java.util.List;
public interface UserRepository extends BaseRepository<UserDO> {
List<UserDO> listByCorpinfoId(Long corpinfoId);
List<UserDO> getListById(List<Long> longs);
}

View File

@ -189,5 +189,12 @@ public class FireCheckListRepositoryImpl extends BaseRepositoryImpl<FireCheckLis
List<FireCheckListDO> result = fireCheckListMapper.overTimeRecord(params);
return result;
}
@Override
public FireCheckListDO getInfoByUUId(String fireCheckId) {
QueryWrapper<FireCheckListDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fire_check_id", fireCheckId);
return fireCheckListMapper.selectOne(queryWrapper);
}
}

View File

@ -26,5 +26,12 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
queryWrapper.eq("corpinfo_id", corpinfoId);
return list(queryWrapper);
}
@Override
public List<UserDO> getListById(List<Long> longs) {
QueryWrapper<UserDO> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id", longs);
return list(queryWrapper);
}
}