Commit afabbaf0 authored by 施翔轲's avatar 施翔轲

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

parent dc6fcd0b
...@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -11,6 +11,7 @@ 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;
...@@ -26,6 +27,7 @@ import com.dsk.cscec.service.*; ...@@ -26,6 +27,7 @@ import com.dsk.cscec.service.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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 javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -60,6 +62,8 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -60,6 +62,8 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
private ICbCostMeasureService costMeasureService; private ICbCostMeasureService costMeasureService;
@Resource @Resource
private CbDirectExpenseService directExpenseService; private CbDirectExpenseService directExpenseService;
@Resource
private TransactionTemplate transactionTemplate;
/** /**
* 新增项目 * 新增项目
...@@ -98,7 +102,6 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -98,7 +102,6 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
* @param projectId 项目ID * @param projectId 项目ID
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void importData(Long projectId) throws Exception { public void importData(Long projectId) throws Exception {
//校验项目是否存在 //校验项目是否存在
CbProjectRecord projectRecord = this.checkProjectExist(projectId); CbProjectRecord projectRecord = this.checkProjectExist(projectId);
...@@ -118,6 +121,9 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -118,6 +121,9 @@ 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 -> {
try {
//修改项目状态:解析中 //修改项目状态:解析中
projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING); projectRecord.setProjectFileStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING);
baseMapper.updateById(projectRecord); baseMapper.updateById(projectRecord);
...@@ -127,6 +133,13 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -127,6 +133,13 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING); projectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSING);
projectFile.setFailRemark(null); projectFile.setFailRemark(null);
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
} catch (Exception e) {
status.setRollbackOnly();
e.printStackTrace();
throw new ServiceException("解析状态更新出错,请联系系统管理员");
}
return Boolean.TRUE;
});
//调各个成本类型的解析文件方法 //调各个成本类型的解析文件方法
Integer cbStage = projectRecord.getCbStage(); Integer cbStage = projectRecord.getCbStage();
......
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