员工-机构关系增加字段、增加rabbitmq处理各状态信息

This commit is contained in:
1378012178@qq.com 2025-09-05 14:28:54 +08:00
parent 4e09a91948
commit b1db507d7f
4 changed files with 137 additions and 0 deletions

View File

@ -78,4 +78,8 @@ public class EmployeesOrg implements Serializable {
@Excel(name = "申请状态 1申请中 2通过 3驳回", width = 15) @Excel(name = "申请状态 1申请中 2通过 3驳回", width = 15)
@ApiModelProperty(value = "申请状态 1申请中 2通过 3驳回") @ApiModelProperty(value = "申请状态 1申请中 2通过 3驳回")
private java.lang.String status; private java.lang.String status;
/**审核备注*/
@Excel(name = "审核备注", width = 15)
@ApiModelProperty(value = "审核备注")
private java.lang.String auditContent;
} }

View File

@ -0,0 +1,28 @@
package com.nu.mq.employees.exceptionhandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.AmqpRejectAndDontRequeueException;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.listener.api.RabbitListenerErrorHandler;
import org.springframework.amqp.rabbit.support.ListenerExecutionFailedException;
import org.springframework.stereotype.Component;
@Slf4j
@Component("employeesMQErrorHandler")
public class EmployeesMQExceptionHandler implements RabbitListenerErrorHandler {
@Override
public Object handleError(Message message, org.springframework.messaging.Message<?> message1, ListenerExecutionFailedException e) {
log.error("MQ消息处理失败 | 消息体: {} | 异常原因: {}", new String(message.getBody()), e.getCause().getMessage());
// 根据异常类型选择处理策略
// if (isRetryable(e)) {
// // 可重试异常抛出异常触发重试
// throw e;
// } else {
// 不可恢复异常拒绝消息且不重新入队
throw new AmqpRejectAndDontRequeueException("消息处理失败且禁止重试", e);
// }
}
}

View File

@ -0,0 +1,75 @@
package com.nu.mq.employees.listener;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.nu.dto.EmployeesStatusMQDto;
import com.nu.modules.employees.entity.EmployeesOrg;
import com.nu.modules.employees.service.IEmployeesOrgService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class EmployeesMQListener {
@Autowired
private IEmployeesOrgService employeesOrgService;
/**
* 员工-机构关系状态调整
* 只修改审核状态审核备注
* @param dto
*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.auditstatus.sync", durable = "true"),
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
key = "hldy.employeesorg.auditstatus.sync"), errorHandler = "employeesMQErrorHandler")
public void handleAuditStatus(EmployeesStatusMQDto dto) {
EmployeesOrg employeesOrg = new EmployeesOrg();
employeesOrg.setStatus(dto.getAuditStatus());
employeesOrg.setAuditContent(dto.getAuditContent());
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
uw.eq("employees_id",dto.getEmployeeId());
uw.eq("org_code",dto.getOrgCode());
employeesOrgService.update(employeesOrg,uw);
}
/**
* 员工-机构关系状态调整
* 只修改在线状态
* @param dto
*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.onlinestatus.sync", durable = "true"),
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
key = "hldy.employeesorg.onlinestatus.sync"), errorHandler = "employeesMQErrorHandler")
public void handleIzOnline(EmployeesStatusMQDto dto) {
EmployeesOrg employeesOrg = new EmployeesOrg();
employeesOrg.setIzOnline(dto.getIzOnline());
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
uw.eq("employees_id",dto.getEmployeeId());
uw.eq("org_code",dto.getOrgCode());
employeesOrgService.update(employeesOrg,uw);
}
/**
* 员工-机构关系状态调整
* 只修改冻结状态
* @param dto
*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.freezestatus.sync", durable = "true"),
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
key = "hldy.employeesorg.freezestatus.sync"), errorHandler = "employeesMQErrorHandler")
public void handleIzFreeze(EmployeesStatusMQDto dto) {
EmployeesOrg employeesOrg = new EmployeesOrg();
employeesOrg.setIzFreeze(dto.getIzFreeze());
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
uw.eq("employees_id",dto.getEmployeeId());
uw.eq("org_code",dto.getOrgCode());
employeesOrgService.update(employeesOrg,uw);
}
}

View File

@ -0,0 +1,30 @@
package com.nu.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 员工状态
* @Author: jeecg-boot
* @Date: 2025-09-05
* @Version: V1.0
*/
@Data
public class EmployeesStatusMQDto implements Serializable {
private static final long serialVersionUID = 1L;
/**员工id*/
private String employeeId;
/**申请状态 0历史 1申请中 2通过 3驳回*/
private String auditStatus;
/**审核备注*/
private String auditContent;
/**是否在线 0在线 1不在线*/
private java.lang.String izOnline;
/**冻结状态 0未冻结 1冻结*/
private java.lang.String izFreeze;
/**机构编码*/
private String orgCode;
}