接通历史项目导入后端闭环
This commit is contained in:
@@ -16,6 +16,7 @@ import com.ruoyi.ccdi.project.mapper.CcdiProjectMapper;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiBankTagService;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiFileUploadService;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiProjectService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.lsfx.client.LsfxAnalysisClient;
|
||||
import com.ruoyi.lsfx.constants.LsfxConstants;
|
||||
import com.ruoyi.lsfx.domain.request.FetchInnerFlowRequest;
|
||||
@@ -964,6 +965,9 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
|
||||
if (record == null) {
|
||||
throw new RuntimeException("上传记录不存在");
|
||||
}
|
||||
if ("HISTORY_IMPORT".equals(record.getSourceType())) {
|
||||
throw new ServiceException("历史导入文件不支持删除");
|
||||
}
|
||||
if (!"parsed_success".equals(record.getFileStatus())) {
|
||||
if ("deleted".equals(record.getFileStatus())) {
|
||||
throw new RuntimeException("文件已删除,请勿重复操作");
|
||||
|
||||
@@ -2,11 +2,13 @@ package com.ruoyi.ccdi.project.service.impl;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.CcdiProject;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectImportHistoryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.enums.TriggerType;
|
||||
import com.ruoyi.ccdi.project.domain.entity.CcdiBankStatement;
|
||||
import com.ruoyi.ccdi.project.domain.entity.CcdiFileUploadRecord;
|
||||
import com.ruoyi.ccdi.project.mapper.CcdiBankStatementMapper;
|
||||
import com.ruoyi.ccdi.project.mapper.CcdiFileUploadRecordMapper;
|
||||
import com.ruoyi.ccdi.project.mapper.CcdiProjectMapper;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiBankTagService;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiProjectHistoryImportService;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -47,6 +49,9 @@ public class CcdiProjectHistoryImportServiceImpl implements ICcdiProjectHistoryI
|
||||
@Qualifier("fileUploadExecutor")
|
||||
private Executor fileUploadExecutor;
|
||||
|
||||
@Resource
|
||||
private ICcdiBankTagService bankTagService;
|
||||
|
||||
@Override
|
||||
public void submitImport(Long targetProjectId, Integer targetLsfxProjectId,
|
||||
CcdiProjectImportHistoryDTO dto, String operator) {
|
||||
@@ -97,6 +102,10 @@ public class CcdiProjectHistoryImportServiceImpl implements ICcdiProjectHistoryI
|
||||
if (!recordsToInsert.isEmpty()) {
|
||||
recordMapper.insertBatch(recordsToInsert);
|
||||
}
|
||||
if (!statementsToInsert.isEmpty()) {
|
||||
refreshProjectTargetCount(targetProjectId);
|
||||
bankTagService.submitAutoRebuild(targetProjectId, TriggerType.AUTO_BATCH_UPLOAD);
|
||||
}
|
||||
}
|
||||
|
||||
private CcdiBankStatement copyStatement(CcdiBankStatement sourceStatement, Long targetProjectId,
|
||||
@@ -136,6 +145,17 @@ public class CcdiProjectHistoryImportServiceImpl implements ICcdiProjectHistoryI
|
||||
return sourceProject == null ? null : sourceProject.getProjectName();
|
||||
}
|
||||
|
||||
private void refreshProjectTargetCount(Long targetProjectId) {
|
||||
CcdiProject targetProject = projectMapper.selectById(targetProjectId);
|
||||
if (targetProject == null) {
|
||||
log.warn("【项目历史导入】刷新目标人数时项目不存在: projectId={}", targetProjectId);
|
||||
return;
|
||||
}
|
||||
int targetCount = bankStatementMapper.countMatchedStaffCountByProjectId(targetProjectId);
|
||||
targetProject.setTargetCount(targetCount);
|
||||
projectMapper.updateById(targetProject);
|
||||
}
|
||||
|
||||
private void normalizeDedupFields(CcdiBankStatement statement) {
|
||||
statement.setLeAccountNo(trimToNull(statement.getLeAccountNo()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user