|
@@ -1694,14 +1694,19 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
try {
|
|
|
sheet = new XSSFWorkbook(file.getInputStream()).getSheetAt(0);
|
|
|
int lastRowNum = sheet.getLastRowNum();
|
|
|
+ //用来保存树的数据
|
|
|
List<ZhcxCommissionCheckBaseInfoTreeDo> treeList = new ArrayList<>();
|
|
|
+ //用来存储检查子表数据
|
|
|
List<ZhcxCommissionCheckBaseInfoDetailDo> detailList = new ArrayList<>();
|
|
|
+ //用来存储章节目录数据
|
|
|
List<ImportCheckBaseInfoDetailVo> importDetailList = new ArrayList<>();
|
|
|
+ //校验章节号是否存在重复的数据
|
|
|
List<String> chapterNos = new ArrayList<>();
|
|
|
for (int i = 1; i <= lastRowNum; i++) {
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
ImportCheckBaseInfoDetailVo importDetailVo = new ImportCheckBaseInfoDetailVo();
|
|
|
Row row = sheet.getRow(i);
|
|
|
+ //校验excel导入是否空行,如果空行跳过循环
|
|
|
if (ImportExcelUtils.isRowEmpty(row)) {
|
|
|
continue;
|
|
|
}
|
|
@@ -1722,6 +1727,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
if (StringUtils.isBlank(number)) {
|
|
|
stringBuilder.append("章节号必填");
|
|
|
}else {
|
|
|
+ //处理excel导入把文本1识别成1.0的问题
|
|
|
boolean hasSingleDot = number.matches(".*\\..*");
|
|
|
if ("是".equals(isTitle)&&hasSingleDot){
|
|
|
number = number.replace(".0","");
|
|
@@ -1766,6 +1772,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
}
|
|
|
importDetailList.add(importDetailVo);
|
|
|
}else {
|
|
|
+ //设置标准库子表导入业务数据
|
|
|
ZhcxCommissionCheckBaseInfoDetailDo detailDo = new ZhcxCommissionCheckBaseInfoDetailDo();
|
|
|
detailDo.setId(SecurityUtil.getUUID());
|
|
|
detailDo.setPid(mainId);
|
|
@@ -1798,6 +1805,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
List<ImportCheckBaseInfoDetailVo> oneLevelTreeList = importDetailList.stream().filter(info->!info.getChapterno().contains(".")).sorted(Comparator.comparing(ImportCheckBaseInfoDetailVo::getSerialNumber)).collect(Collectors.toList());
|
|
|
List<String> oneLevelClassList = oneLevelTreeList.stream().map(ImportCheckBaseInfoDetailVo::getOnelevelclassification).distinct().collect(Collectors.toList());
|
|
|
int i = 0;
|
|
|
+ //设置标准库树表数据
|
|
|
for (String one:oneLevelClassList){
|
|
|
i++;
|
|
|
ZhcxCommissionCheckBaseInfoTreeDo treeOneDo = new ZhcxCommissionCheckBaseInfoTreeDo();
|
|
@@ -1842,12 +1850,16 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
}
|
|
|
}
|
|
|
if (!treeList.isEmpty()&&StringUtils.isNotBlank(mainId)) {
|
|
|
+ //后面数据量大就改用物理删除数据
|
|
|
+// zhcxCommissionCheckBaseInfoTreeService.deleteTreeByMainId(mainId);
|
|
|
final LambdaQueryWrapper<ZhcxCommissionCheckBaseInfoTreeDo> removeTreeWrapper = Wrappers.lambdaQuery();
|
|
|
removeTreeWrapper.eq(ZhcxCommissionCheckBaseInfoTreeDo::getBaseinfoid, mainId);
|
|
|
zhcxCommissionCheckBaseInfoTreeService.remove(removeTreeWrapper);
|
|
|
zhcxCommissionCheckBaseInfoTreeService.saveBatch(treeList);
|
|
|
insertDetailData(treeList,detailList);
|
|
|
if (!detailList.isEmpty()&&StringUtils.isNotBlank(mainId)){
|
|
|
+ //后面数据量大就改用物理删除数据
|
|
|
+// zhcxCommissionCheckBaseInfoDetailService.deleteBaseInfoDetailByMainId(mainId);
|
|
|
final LambdaQueryWrapper<ZhcxCommissionCheckBaseInfoDetailDo> removeDetailWrapper = Wrappers.lambdaQuery();
|
|
|
removeDetailWrapper.eq(ZhcxCommissionCheckBaseInfoDetailDo::getPid, mainId);
|
|
|
zhcxCommissionCheckBaseInfoDetailService.remove(removeDetailWrapper);
|
|
@@ -1862,6 +1874,7 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
|
|
|
}
|
|
|
|
|
|
private void insertDetailData(List<ZhcxCommissionCheckBaseInfoTreeDo> treeList, List<ZhcxCommissionCheckBaseInfoDetailDo> detailList) {
|
|
|
+ //设置标准库子表的三级分类的id和树的全路径treefullid字段
|
|
|
if (!treeList.isEmpty()&&!detailList.isEmpty()){
|
|
|
for (ZhcxCommissionCheckBaseInfoDetailDo detailDo:detailList){
|
|
|
List<ZhcxCommissionCheckBaseInfoTreeDo> oneLevelTreeList = treeList.stream().filter(infoTreeDo->infoTreeDo.getLevel().equals(1)).collect(Collectors.toList());
|