调整注册服务
This commit is contained in:
parent
5d5956f44d
commit
af7b492bf8
|
@ -35,6 +35,12 @@
|
|||
<artifactId>nursing-unit-api</artifactId>
|
||||
<version>${nursingunit.version}</version>
|
||||
</dependency>
|
||||
<!-- COMMON 通用工具模块 -->
|
||||
<dependency>
|
||||
<groupId>com.nursingunit.boot</groupId>
|
||||
<artifactId>nursing-unit-common</artifactId>
|
||||
<version>${nursingunit.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package com.nu.mq.directive.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("AdvisoryMQExceptionHandler")
|
||||
public class AdvisoryMQExceptionHandler 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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断异常是否可重试
|
||||
*/
|
||||
private boolean isRetryable(ListenerExecutionFailedException e) {
|
||||
// 示例:网络异常、数据库临时锁超时可重试
|
||||
return e.getCause() instanceof RuntimeException; // 根据实际业务调整
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.nu.mq.NuBizAdvisoryInfo.listener;
|
||||
|
||||
import com.nu.dto.NuBizAdvisoryInfoDto;
|
||||
import com.nu.modules.NuBizAdvisoryInfo.entity.NuBizAdvisoryInfo;
|
||||
import com.nu.modules.NuBizAdvisoryInfo.service.INuBizAdvisoryInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class NuBizAdvisoryInfoListener {
|
||||
@Autowired
|
||||
private INuBizAdvisoryInfoService nuBizAdvisoryInfoService;
|
||||
@RabbitListener(queues = "register.addData", errorHandler = "AdvisoryMQExceptionHandler")
|
||||
public void handleMessage(NuBizAdvisoryInfoDto dto) {
|
||||
try {
|
||||
System.out.println(111);
|
||||
NuBizAdvisoryInfo nuBizAdvisoryInfo = new NuBizAdvisoryInfo();
|
||||
BeanUtils.copyProperties(dto,nuBizAdvisoryInfo);
|
||||
nuBizAdvisoryInfoService.save(nuBizAdvisoryInfo);
|
||||
} catch (Exception e) {
|
||||
System.out.println("异常了:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -49,6 +49,7 @@ public class RabbitMQConfig {
|
|||
public Queue nu002FwzlStatusQueue() {
|
||||
return new Queue("nu002.fwzl.status", true);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Binding binding1(Queue nu001FwzlAsyncQueue, DirectExchange fwzlExchange) {
|
||||
return BindingBuilder.bind(nu001FwzlAsyncQueue).to(fwzlExchange).with("nu001.fwzl.async");
|
||||
|
@ -65,4 +66,20 @@ public class RabbitMQConfig {
|
|||
public Binding binding4(Queue nu002FwzlStatusQueue, DirectExchange fwzlExchange) {
|
||||
return BindingBuilder.bind(nu002FwzlStatusQueue).to(fwzlExchange).with("nu002.fwzl.status");
|
||||
}
|
||||
|
||||
|
||||
|
||||
//注册
|
||||
@Bean
|
||||
public DirectExchange registerExchange() {
|
||||
return new DirectExchange("hldy.register");
|
||||
}
|
||||
@Bean
|
||||
public Queue registerAddQueue() {
|
||||
return new Queue("register.addData", true);
|
||||
}
|
||||
@Bean
|
||||
public Binding binding5(Queue registerAddQueue, DirectExchange registerExchange) {
|
||||
return BindingBuilder.bind(registerAddQueue).to(registerExchange).with("register.addData");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
package com.nu.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 咨询信息
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2025-04-07
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
public class NuBizAdvisoryInfoDto implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**id*/
|
||||
private String id;
|
||||
/**微信id*/
|
||||
private String openId;
|
||||
/**微信名称*/
|
||||
private String wechatName;
|
||||
/**咨询人姓名*/
|
||||
private String name;
|
||||
/**性别*/
|
||||
private String sex;
|
||||
/**联系电话*/
|
||||
private String tel;
|
||||
/**咨询类型 1入住nu 2入驻机构 3我要加盟*/
|
||||
private String advisoryType;
|
||||
/**状态 1审核中 2审核完成 3驳回*/
|
||||
private String status;
|
||||
/**审核备注*/
|
||||
private String content;
|
||||
/**机构访问地址*/
|
||||
private String serverUrl;
|
||||
/**创建人*/
|
||||
private String createBy;
|
||||
/**创建日期*/
|
||||
private java.util.Date createTime;
|
||||
/**更新人*/
|
||||
private String updateBy;
|
||||
/**更新日期*/
|
||||
private java.util.Date updateTime;
|
||||
/**所属部门*/
|
||||
private String sysOrgCode;
|
||||
/**老人姓名*/
|
||||
private String oldManName;
|
||||
/**老人年龄*/
|
||||
private String oldManAge;
|
||||
/**医保类型*/
|
||||
private String medicalInsuranceType;
|
||||
/**老人性别*/
|
||||
private String oldManSex;
|
||||
/**报销类型*/
|
||||
private String reimbType;
|
||||
/**护理单元*/
|
||||
private String nuId;
|
||||
private String advisoryTypeName;
|
||||
private String sexName;
|
||||
private String sysOrgCodeName;
|
||||
private String statusName;
|
||||
private String oldManSexName;
|
||||
private String medicalInsuranceTypeName;
|
||||
private String reimbTypeName;
|
||||
|
||||
|
||||
}
|
|
@ -109,6 +109,9 @@ public class ConfigServiceDirectiveController extends JeecgController<ConfigServ
|
|||
*/
|
||||
@PostMapping("/async")
|
||||
public Result<String> async(@RequestBody DirectiveMQDto dto) {
|
||||
//TODO 源数据的服务指令更新了 不处理 到日子后只能增量
|
||||
//TODO 服务指令相关的字典(服务类别、类型等)需要加个是否已被同步标识
|
||||
//TODO 前台选择机构后刷新数据应该有个更新中的效果
|
||||
List<DictModel> dicts = sysBaseAPI.getDictItems("mq_org_queue");
|
||||
String queue = dicts.stream().filter(d -> d.getValue().equals(dto.getOrgCode())).findFirst().map(DictModel::getText).orElse(null);
|
||||
if (StringUtils.isNotBlank(queue)) {
|
||||
|
|
Loading…
Reference in New Issue