Commit 73791c7d authored by 施翔轲's avatar 施翔轲

根据项目文件导入数据流程优化

parent fad31180
...@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.helper.LoginHelper; import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.component.DataAnalysisComponent; import com.dsk.component.DataAnalysisComponent;
...@@ -25,6 +24,7 @@ import com.dsk.cscec.mapper.CbProjectFileMapper; ...@@ -25,6 +24,7 @@ import com.dsk.cscec.mapper.CbProjectFileMapper;
import com.dsk.cscec.mapper.CbProjectRecordMapper; import com.dsk.cscec.mapper.CbProjectRecordMapper;
import com.dsk.cscec.service.*; import com.dsk.cscec.service.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.framework.AopContext;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
...@@ -122,24 +122,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -122,24 +122,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
projectFileList.addAll(this.checkCbTypeExistFile(projectId, CbProjectConstants.CB_TYPE_SUMMARY, CbProjectConstants.CB_TYPE_SUMMARY_NAME)); projectFileList.addAll(this.checkCbTypeExistFile(projectId, CbProjectConstants.CB_TYPE_SUMMARY, CbProjectConstants.CB_TYPE_SUMMARY_NAME));
//修改文件和项目解析状态为解析中 //修改文件和项目解析状态为解析中
transactionTemplate.execute(status -> { ((CbProjectRecordServiceImpl) AopContext.currentProxy()).editParseStatus(projectRecord, projectFileList);
try {
//修改项目状态:解析中
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING);
baseMapper.updateById(projectRecord);
//修改所有该项目的项目文件状态:解析中
CbProjectFileServiceImpl projectFileService = new CbProjectFileServiceImpl();
projectFileService.updateBatchById(projectFileList.stream().peek(projectFile -> {
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING);
projectFile.setFailRemark(null);
}).collect(Collectors.toList()));
} catch (Exception e) {
status.setRollbackOnly();
e.printStackTrace();
throw new ServiceException("解析状态更新出错,请联系系统管理员");
}
return Boolean.TRUE;
});
//调各个成本类型的解析文件方法 //调各个成本类型的解析文件方法
Integer cbStage = projectRecord.getCbStage(); Integer cbStage = projectRecord.getCbStage();
...@@ -162,6 +145,19 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -162,6 +145,19 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
cbSummaryService.importCbSummary(projectId); cbSummaryService.importCbSummary(projectId);
} }
@Transactional(rollbackFor = Exception.class)
public void editParseStatus(CbProjectRecord projectRecord, List<CbProjectFile> projectFileList) {
//修改项目状态:解析中
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING);
baseMapper.updateById(projectRecord);
//修改所有该项目的项目文件状态:解析中
CbProjectFileServiceImpl projectFileService = new CbProjectFileServiceImpl();
projectFileService.updateBatchById(projectFileList.stream().peek(projectFile -> {
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING);
projectFile.setFailRemark(null);
}).collect(Collectors.toList()));
}
/** /**
* 校验各个成本类型是否至少有1个文件 * 校验各个成本类型是否至少有1个文件
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment