diff --git a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/service/record/HydrogenRecordServiceImpl.java b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/service/record/HydrogenRecordServiceImpl.java index 527d43d..8c44272 100644 --- a/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/service/record/HydrogenRecordServiceImpl.java +++ b/yudao-module-energy/yudao-module-energy-server/src/main/java/cn/iocoder/yudao/module/energy/service/record/HydrogenRecordServiceImpl.java @@ -267,8 +267,11 @@ public class HydrogenRecordServiceImpl implements HydrogenRecordService { } @Override - @Transactional(rollbackFor = Exception.class) public Map importConfirm(String batchNo, String duplicateStrategy) { + // Validate duplicateStrategy + if (!"skip".equals(duplicateStrategy) && !"overwrite".equals(duplicateStrategy)) { + throw new IllegalArgumentException("duplicateStrategy 必须为 skip 或 overwrite"); + } // Read cached preview data String cacheJson = stringRedisTemplate.opsForValue().get(REDIS_KEY_PREVIEW + batchNo); if (cacheJson == null || cacheJson.isBlank()) { @@ -346,8 +349,8 @@ public class HydrogenRecordServiceImpl implements HydrogenRecordService { TimeUnit.MINUTES); } - // Mark progress as completed - progress.setStatus(failCount == 0 ? "completed" : "failed"); + // Mark progress as completed (partial success if some failed) + progress.setStatus(failCount == 0 ? "completed" : (successCount > 0 ? "completed" : "failed")); stringRedisTemplate.opsForValue().set( REDIS_KEY_PROGRESS + batchNo, JSONUtil.toJsonStr(progress), @@ -375,7 +378,7 @@ public class HydrogenRecordServiceImpl implements HydrogenRecordService { HydrogenRecordImportProgressVO vo = new HydrogenRecordImportProgressVO(); vo.setCurrent(0); vo.setTotal(0); - vo.setStatus("completed"); + vo.setStatus("not_found"); return vo; } return JSONUtil.toBean(json, HydrogenRecordImportProgressVO.class);