添加平台构建工单
This commit is contained in:
parent
d636afaa9c
commit
1fdb860d1d
|
@ -242,4 +242,15 @@ public class OrgApplyInfo implements Serializable {
|
|||
@ApiModelProperty(value = "加盟时间")
|
||||
private java.util.Date franchiseTime;
|
||||
|
||||
private java.lang.String replyContent;
|
||||
private java.lang.String replyFile;
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private java.util.Date replyTime;
|
||||
private java.lang.String handleBy;
|
||||
@Dict(dicCode = "work_order_status")
|
||||
private java.lang.String workOrderStatus;
|
||||
private java.lang.String workOrderId;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package com.nu.mq.workorder.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("workOrderMQErrorHandler")
|
||||
public class WorkOrderMQExceptionHandler 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,50 @@
|
|||
package com.nu.mq.workorder.listener;
|
||||
|
||||
import com.nu.dto.WorkOrderMQDto;
|
||||
import com.nu.modules.orgapplyinfo.entity.OrgApplyInfo;
|
||||
import com.nu.modules.orgapplyinfo.service.IOrgApplyInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.aspect.annotation.AutoLog;
|
||||
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 WorkOrderMQListener {
|
||||
@Autowired
|
||||
private IOrgApplyInfoService orgApplyInfoService;
|
||||
/**
|
||||
* 工单回执
|
||||
*/
|
||||
@AutoLog(value = "工单-工单回执")
|
||||
@RabbitListener(
|
||||
bindings = @QueueBinding(
|
||||
value = @Queue(name = "nu.workOrder.reply"),
|
||||
exchange = @Exchange(name = "nu.workOrder.reply", type = ExchangeTypes.DIRECT),
|
||||
key = "nu.workOrder.reply"
|
||||
),
|
||||
errorHandler = "workOrderMQErrorHandler"
|
||||
)
|
||||
public void handleNuBaseInfoSyncMessageStatus(WorkOrderMQDto workOrderMQDto) {
|
||||
log.info("接收到工单回复");
|
||||
log.info("工单回复: {}", workOrderMQDto);
|
||||
|
||||
OrgApplyInfo orgApplyInfo = orgApplyInfoService.getById(workOrderMQDto.getOrgId());
|
||||
if(orgApplyInfo != null){
|
||||
orgApplyInfo.setReplyContent(workOrderMQDto.getReplyContent());
|
||||
orgApplyInfo.setReplyFile(workOrderMQDto.getReplyFile());
|
||||
orgApplyInfo.setReplyTime(workOrderMQDto.getReplyTime());
|
||||
orgApplyInfo.setHandleBy(workOrderMQDto.getHandleBy());
|
||||
orgApplyInfo.setWorkOrderStatus("2");
|
||||
orgApplyInfo.setWorkOrderId(workOrderMQDto.getId());
|
||||
orgApplyInfoService.updateById(orgApplyInfo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package com.nu.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecg.common.aspect.annotation.Dict;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 工单表
|
||||
* @Author: zmy
|
||||
* @Date: 2025-07-08
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
public class WorkOrderMQDto implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**id*/
|
||||
private String id;
|
||||
/**区分同一工单用nu_word_order.id*/
|
||||
private String pkId;
|
||||
/**机构ID*/
|
||||
private String orgId;
|
||||
/**机构编码(可能不存在)*/
|
||||
private String orgCode;
|
||||
/**机构名称*/
|
||||
private String orgName;
|
||||
/**平台类型pc wechat pad*/
|
||||
private String platType;
|
||||
/**标题*/
|
||||
private String title;
|
||||
/**描述*/
|
||||
private String content;
|
||||
/**附件*/
|
||||
private String filePath;
|
||||
/**状态 0待接收 1处理中 3已解决 4工单异常 5外部原因*/
|
||||
private String status;
|
||||
/**创建人*/
|
||||
private String createBy;
|
||||
/**创建时间*/
|
||||
private Date createTime;
|
||||
/**回复内容*/
|
||||
private String replyContent;
|
||||
/**回复附件*/
|
||||
private String replyFile;
|
||||
/**回复时间*/
|
||||
private Date replyTime;
|
||||
/**处理人*/
|
||||
private String handleBy;
|
||||
/**工单提交人联系电话*/
|
||||
private String tel;
|
||||
/**工单提交人邮件地址*/
|
||||
private String email;
|
||||
/**状态 1平台构建*/
|
||||
private String workType;
|
||||
}
|
Loading…
Reference in New Issue