员工-机构关系增加字段、增加rabbitmq处理各状态信息
This commit is contained in:
parent
4e09a91948
commit
b1db507d7f
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue