refactor: 更新采购交易导入使用专门的失败记录VO

将通用的ImportFailureVO替换为专门的PurchaseTransactionImportFailureVO,
以提供更明确的类型安全和更好的API文档。

修改文件:
- ICcdiPurchaseTransactionImportService.java: 更新接口方法返回类型
- CcdiPurchaseTransactionImportServiceImpl.java: 更新实现类使用专门的VO
- CcdiPurchaseTransactionController.java: 更新Controller使用专门的VO

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
wkc
2026-02-06 16:11:30 +08:00
parent 1aa0d15ee8
commit 4a560bd4e4
3 changed files with 10 additions and 9 deletions

View File

@@ -6,7 +6,7 @@ import com.ruoyi.ccdi.domain.dto.CcdiPurchaseTransactionEditDTO;
import com.ruoyi.ccdi.domain.dto.CcdiPurchaseTransactionQueryDTO;
import com.ruoyi.ccdi.domain.excel.CcdiPurchaseTransactionExcel;
import com.ruoyi.ccdi.domain.vo.CcdiPurchaseTransactionVO;
import com.ruoyi.ccdi.domain.vo.ImportFailureVO;
import com.ruoyi.ccdi.domain.vo.PurchaseTransactionImportFailureVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.service.ICcdiPurchaseTransactionImportService;
import com.ruoyi.ccdi.service.ICcdiPurchaseTransactionService;
@@ -164,7 +164,7 @@ public class CcdiPurchaseTransactionController extends BaseController {
@PreAuthorize("@ss.hasPermi('ccdi:purchaseTransaction:import')")
@GetMapping("/importFailures/{taskId}")
public AjaxResult getImportFailures(@PathVariable String taskId) {
List<ImportFailureVO> failures = transactionImportService.getImportFailures(taskId);
List<PurchaseTransactionImportFailureVO> failures = transactionImportService.getImportFailures(taskId);
return success(failures);
}
}

View File

@@ -1,7 +1,7 @@
package com.ruoyi.ccdi.service;
import com.ruoyi.ccdi.domain.excel.CcdiPurchaseTransactionExcel;
import com.ruoyi.ccdi.domain.vo.ImportFailureVO;
import com.ruoyi.ccdi.domain.vo.PurchaseTransactionImportFailureVO;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO;
import java.util.List;
@@ -38,5 +38,5 @@ public interface ICcdiPurchaseTransactionImportService {
* @param taskId 任务ID
* @return 失败记录列表
*/
List<ImportFailureVO> getImportFailures(String taskId);
List<PurchaseTransactionImportFailureVO> getImportFailures(String taskId);
}

View File

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.ccdi.domain.CcdiPurchaseTransaction;
import com.ruoyi.ccdi.domain.dto.CcdiPurchaseTransactionAddDTO;
import com.ruoyi.ccdi.domain.excel.CcdiPurchaseTransactionExcel;
import com.ruoyi.ccdi.domain.vo.ImportFailureVO;
import com.ruoyi.ccdi.domain.vo.PurchaseTransactionImportFailureVO;
import com.ruoyi.ccdi.domain.vo.ImportResult;
import com.ruoyi.ccdi.domain.vo.ImportStatusVO;
import com.ruoyi.ccdi.mapper.CcdiPurchaseTransactionMapper;
@@ -46,7 +46,7 @@ public class CcdiPurchaseTransactionImportServiceImpl implements ICcdiPurchaseTr
public void importTransactionAsync(List<CcdiPurchaseTransactionExcel> excelList, Boolean isUpdateSupport, String taskId, String userName) {
List<CcdiPurchaseTransaction> newRecords = new ArrayList<>();
List<CcdiPurchaseTransaction> updateRecords = new ArrayList<>();
List<ImportFailureVO> failures = new ArrayList<>();
List<PurchaseTransactionImportFailureVO> failures = new ArrayList<>();
// 批量查询已存在的采购事项ID
Set<String> existingIds = getExistingPurchaseIds(excelList);
@@ -75,11 +75,12 @@ public class CcdiPurchaseTransactionImportServiceImpl implements ICcdiPurchaseTr
}
} else {
transaction.setCreatedBy(userName);
transaction.setUpdatedBy(userName);
newRecords.add(transaction);
}
} catch (Exception e) {
ImportFailureVO failure = new ImportFailureVO();
PurchaseTransactionImportFailureVO failure = new PurchaseTransactionImportFailureVO();
BeanUtils.copyProperties(excel, failure);
failure.setErrorMessage(e.getMessage());
failures.add(failure);
@@ -119,7 +120,7 @@ public class CcdiPurchaseTransactionImportServiceImpl implements ICcdiPurchaseTr
* @return 失败记录列表
*/
@Override
public List<ImportFailureVO> getImportFailures(String taskId) {
public List<PurchaseTransactionImportFailureVO> getImportFailures(String taskId) {
String key = "import:purchaseTransaction:" + taskId + ":failures";
Object failuresObj = redisTemplate.opsForValue().get(key);
@@ -127,7 +128,7 @@ public class CcdiPurchaseTransactionImportServiceImpl implements ICcdiPurchaseTr
return Collections.emptyList();
}
return JSON.parseArray(JSON.toJSONString(failuresObj), ImportFailureVO.class);
return JSON.parseArray(JSON.toJSONString(failuresObj), PurchaseTransactionImportFailureVO.class);
}
/**