mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-13 05:12:07 +08:00
生产单异步导入:1、修复死信队列ttl和对应任务状态修改;2、临时数据表移除无用状态;3、临时任务表新增文件字段;
This commit is contained in:
+1
-1
@@ -25,7 +25,7 @@ public enum OrderImportStatusEnum {
|
||||
/**
|
||||
* 导入失败
|
||||
*/
|
||||
IMPORT_FAIL(2);
|
||||
IMPORT_FAIL(20);
|
||||
|
||||
private int status;
|
||||
|
||||
|
||||
+6
-1
@@ -30,7 +30,12 @@ public enum OrderImportTaskStatusEnum {
|
||||
/**
|
||||
* 消费失败
|
||||
*/
|
||||
CONSUME_FAIL(30);
|
||||
CONSUME_FAIL(30),
|
||||
|
||||
/**
|
||||
* 消费超时
|
||||
*/
|
||||
CONSUME_TIMEOUT(40);
|
||||
|
||||
private int status;
|
||||
|
||||
|
||||
+9
-25
@@ -13,31 +13,15 @@ import lombok.Getter;
|
||||
@AllArgsConstructor
|
||||
public enum OrderImportTmpDataTypeEnum {
|
||||
ORDER(0),
|
||||
ROOM(1),
|
||||
BODY(2),
|
||||
GROUP(3),
|
||||
GOODS(4),
|
||||
PLATE(6),
|
||||
PART(7),
|
||||
PART_EDGING(8),
|
||||
PART_HARDWARE(9),
|
||||
PART_ASSEMBLY(10),
|
||||
BLOCK_OUTLINE_POINT(11),
|
||||
BLOCK_CUTTINGOUTLINE(12),
|
||||
BLOCK_CUTTINGOUTLINE_POINT(13),
|
||||
BLOCK_RAWOUTLINE_POINT(14),
|
||||
BLOCK_HOLES(15),
|
||||
BLOCK_HOLE(16),
|
||||
BLOCK_GROOVES(17),
|
||||
BLOCK_GROOVE(18),
|
||||
BLOCK_GROOVE_OUTLINE_POINT(19),
|
||||
BLOCK_GROOVE_POINTS_POINT(20),
|
||||
BLOCK_GROOVE_ISLET(21),
|
||||
BLOCK_GROOVE_ISLET_POINTS_POINT(22),
|
||||
BLOCK_GROOVE_CORRELATIONS(23),
|
||||
BLOCK_GROOVE_OFFSETLINE(24),
|
||||
BLOCK_REMKAR(25),
|
||||
PART_REMARK(26);
|
||||
BODY(1),
|
||||
GROUP(2),
|
||||
GOODS(3),
|
||||
PLATE(4),
|
||||
PART(5),
|
||||
PART_EDGING(6),
|
||||
PART_HARDWARE(7),
|
||||
PART_ASSEMBLY(8),
|
||||
PART_REMARK(9);
|
||||
|
||||
private int type;
|
||||
|
||||
|
||||
+5
@@ -54,4 +54,9 @@ public class OrderImportTaskDO extends BaseDO {
|
||||
* 消费状态
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 导入文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
}
|
||||
|
||||
+4
-3
@@ -76,7 +76,7 @@ public class DefaultExcelOrderImportHandler implements AbstractExcelOrderImportH
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void prepareAndConvert(OrderImportAsyncReqVO importAsyncReqVO, MultipartFile file) {
|
||||
// 创建任务
|
||||
Long taskId = createImportTask();
|
||||
Long taskId = createImportTask(file.getOriginalFilename());
|
||||
String importLockKey = String.format(RedisKeyConstants.ORDER_IMPORT_LOCK_KEY, getUserOrganId());
|
||||
// 检查机构导入锁
|
||||
boolean lockResult = redisLockUtil.lock(importLockKey, String.valueOf(taskId), chenfengCacheProperties.getLockTimeout());
|
||||
@@ -102,7 +102,7 @@ public class DefaultExcelOrderImportHandler implements AbstractExcelOrderImportH
|
||||
|
||||
Message message = MessageBuilder
|
||||
.withBody(taskId.toString().getBytes())
|
||||
.setHeader("x-message-ttl", 60000) // 设置 TTL 为 60000 毫秒(60 秒)
|
||||
.setExpiration("60000") // 设置消息级 TTL(60 秒)
|
||||
.build();
|
||||
//如果处于事务中,待事务提交成功了再执行后续操作,防止事务未提交完成导致消费端查不到数据
|
||||
if (TransactionSynchronizationManager.isActualTransactionActive()) {
|
||||
@@ -125,13 +125,14 @@ public class DefaultExcelOrderImportHandler implements AbstractExcelOrderImportH
|
||||
*
|
||||
* @return taskId
|
||||
*/
|
||||
private Long createImportTask() {
|
||||
private Long createImportTask(String fileName) {
|
||||
// 创建导入任务
|
||||
OrderImportTaskDO orderImportTaskDO = OrderImportTaskDO.builder()
|
||||
.id((Long) snowFlakeGenerator.nextId(null))
|
||||
.type(OrderImportTypeEnum.EXCEL.getType())
|
||||
.importStatus(OrderImportStatusEnum.IMPORT_NOT_YET.getStatus())
|
||||
.status(OrderImportTaskStatusEnum.CREATE_NOT_CONSUME.getStatus())
|
||||
.fileName(fileName)
|
||||
.build();
|
||||
orderImportTaskMapper.insert(orderImportTaskDO);
|
||||
return orderImportTaskDO.getId();
|
||||
|
||||
+4
-3
@@ -66,7 +66,7 @@ public class DefaultXmlOrderImportHandler implements AbstractXmlOrderImportHandl
|
||||
@Override
|
||||
public void prepareAndConvert(OrderImportAsyncReqVO importAsyncReqVO, MultipartFile file) {
|
||||
// 创建任务
|
||||
Long taskId = createImportTask();
|
||||
Long taskId = createImportTask(file.getOriginalFilename());
|
||||
String importLockKey = String.format(RedisKeyConstants.ORDER_IMPORT_LOCK_KEY, getUserOrganId());
|
||||
// 检查机构导入锁
|
||||
boolean lockResult = redisLockUtil.lock(importLockKey, String.valueOf(taskId), chenfengCacheProperties.getLockTimeout());
|
||||
@@ -89,7 +89,7 @@ public class DefaultXmlOrderImportHandler implements AbstractXmlOrderImportHandl
|
||||
|
||||
Message message = MessageBuilder
|
||||
.withBody(taskId.toString().getBytes())
|
||||
.setHeader("x-message-ttl", 60000) // 设置 TTL 为 60000 毫秒(60 秒)
|
||||
.setExpiration("60000") // 设置消息级 TTL(60 秒)
|
||||
.build();
|
||||
//如果处于事务中,待事务提交成功了再执行后续操作,防止事务未提交完成导致消费端查不到数据
|
||||
if (TransactionSynchronizationManager.isActualTransactionActive()) {
|
||||
@@ -111,13 +111,14 @@ public class DefaultXmlOrderImportHandler implements AbstractXmlOrderImportHandl
|
||||
*
|
||||
* @return taskId
|
||||
*/
|
||||
private Long createImportTask() {
|
||||
private Long createImportTask(String fileName) {
|
||||
// 创建导入任务
|
||||
OrderImportTaskDO orderImportTaskDO = OrderImportTaskDO.builder()
|
||||
.id((Long) snowFlakeGenerator.nextId(null))
|
||||
.type(OrderImportTypeEnum.EXCEL.getType())
|
||||
.importStatus(OrderImportStatusEnum.IMPORT_NOT_YET.getStatus())
|
||||
.status(OrderImportTaskStatusEnum.CREATE_NOT_CONSUME.getStatus())
|
||||
.fileName(fileName)
|
||||
.build();
|
||||
orderImportTaskMapper.insert(orderImportTaskDO);
|
||||
return orderImportTaskDO.getId();
|
||||
|
||||
Reference in New Issue
Block a user