diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiPurchaseTransactionServiceImpl.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiPurchaseTransactionServiceImpl.java index bd04113..f335146 100644 --- a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiPurchaseTransactionServiceImpl.java +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/service/impl/CcdiPurchaseTransactionServiceImpl.java @@ -14,10 +14,14 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import jakarta.annotation.Resource; import org.springframework.beans.BeanUtils; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; +import java.util.Map; import java.util.UUID; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -35,6 +39,9 @@ public class CcdiPurchaseTransactionServiceImpl implements ICcdiPurchaseTransact @Resource private ICcdiPurchaseTransactionImportService transactionImportService; + @Resource + private RedisTemplate redisTemplate; + /** * 查询采购交易列表 * @@ -154,10 +161,26 @@ public class CcdiPurchaseTransactionServiceImpl implements ICcdiPurchaseTransact // 生成任务ID String taskId = UUID.randomUUID().toString(); + long startTime = System.currentTimeMillis(); // 获取当前用户名 String userName = SecurityUtils.getUsername(); + // 初始化Redis状态 + String statusKey = "import:purchaseTransaction:" + taskId; + Map 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);