fix: 添加采购交易导入的Redis状态初始化

This commit is contained in:
wkc
2026-02-06 15:59:08 +08:00
parent 4ba0803622
commit 9df2b5a8e5

View File

@@ -14,10 +14,14 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -35,6 +39,9 @@ public class CcdiPurchaseTransactionServiceImpl implements ICcdiPurchaseTransact
@Resource @Resource
private ICcdiPurchaseTransactionImportService transactionImportService; private ICcdiPurchaseTransactionImportService transactionImportService;
@Resource
private RedisTemplate<String, Object> redisTemplate;
/** /**
* 查询采购交易列表 * 查询采购交易列表
* *
@@ -154,10 +161,26 @@ public class CcdiPurchaseTransactionServiceImpl implements ICcdiPurchaseTransact
// 生成任务ID // 生成任务ID
String taskId = UUID.randomUUID().toString(); String taskId = UUID.randomUUID().toString();
long startTime = System.currentTimeMillis();
// 获取当前用户名 // 获取当前用户名
String userName = SecurityUtils.getUsername(); String userName = SecurityUtils.getUsername();
// 初始化Redis状态
String statusKey = "import:purchaseTransaction:" + taskId;
Map<String, Object> statusData = new HashMap<>();
statusData.put("taskId", taskId);
statusData.put("status", "PROCESSING");
statusData.put("totalCount", excelList.size());
statusData.put("successCount", 0);
statusData.put("failureCount", 0);
statusData.put("progress", 0);
statusData.put("startTime", startTime);
statusData.put("message", "正在处理...");
redisTemplate.opsForHash().putAll(statusKey, statusData);
redisTemplate.expire(statusKey, 7, TimeUnit.DAYS);
// 调用异步导入服务 // 调用异步导入服务
transactionImportService.importTransactionAsync(excelList, isUpdateSupport, taskId, userName); transactionImportService.importTransactionAsync(excelList, isUpdateSupport, taskId, userName);