feat(文档拆分): 批量拆分,异常的回滚,正常的提交
This commit is contained in:
+20
@@ -80,9 +80,14 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
|
import org.springframework.transaction.TransactionDefinition;
|
||||||
|
import org.springframework.transaction.TransactionStatus;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -173,6 +178,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
this.sysBaseAPI = sysBaseAPI;
|
this.sysBaseAPI = sysBaseAPI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PlatformTransactionManager dataSourceTransactionManager;
|
||||||
|
|
||||||
@Value("${jero.path.exportExcelTempPath}")
|
@Value("${jero.path.exportExcelTempPath}")
|
||||||
private String exportExcelTempPath;
|
private String exportExcelTempPath;
|
||||||
@Value("#{'${adminRoleCode}'.split(',')}")
|
@Value("#{'${adminRoleCode}'.split(',')}")
|
||||||
@@ -1312,6 +1320,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(noRollbackFor = {JeroBootException.class})
|
||||||
public void batchSplit(JSONObject jsonObject) {
|
public void batchSplit(JSONObject jsonObject) {
|
||||||
// 获取拆分所选文件
|
// 获取拆分所选文件
|
||||||
SplitFileInfo splitFileInfo = new SplitFileInfo();
|
SplitFileInfo splitFileInfo = new SplitFileInfo();
|
||||||
@@ -1323,6 +1332,13 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
|
|
||||||
// 拆分
|
// 拆分
|
||||||
for (SplitFileInfo fileInfo : list) {
|
for (SplitFileInfo fileInfo : list) {
|
||||||
|
// 手动开启事务
|
||||||
|
DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition();
|
||||||
|
// 事物隔离级别,开启新事务
|
||||||
|
defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
|
// 获得事务状态
|
||||||
|
TransactionStatus transaction = dataSourceTransactionManager.getTransaction(defaultTransactionDefinition);
|
||||||
|
|
||||||
SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();
|
SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();
|
||||||
sarFileSplitInfoEO.setFileId(fileInfo.getId());
|
sarFileSplitInfoEO.setFileId(fileInfo.getId());
|
||||||
sarFileSplitInfoEO.setFileName(fileInfo.getFileName());
|
sarFileSplitInfoEO.setFileName(fileInfo.getFileName());
|
||||||
@@ -1332,7 +1348,11 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
sarFileSplitInfoEO.setTitle(fileInfo.getStandardName());
|
sarFileSplitInfoEO.setTitle(fileInfo.getStandardName());
|
||||||
try {
|
try {
|
||||||
add(sarFileSplitInfoEO);
|
add(sarFileSplitInfoEO);
|
||||||
|
// 提交事务
|
||||||
|
dataSourceTransactionManager.commit(transaction);
|
||||||
}catch (JeroBootException e){
|
}catch (JeroBootException e){
|
||||||
|
// 回滚事务
|
||||||
|
dataSourceTransactionManager.rollback(transaction);
|
||||||
errorList.add("标准编号为:" + fileInfo.getStandardNumber() + " " + e.getMessage());
|
errorList.add("标准编号为:" + fileInfo.getStandardNumber() + " " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user