|
@@ -10,9 +10,12 @@ import com.rongwei.bsentity.domain.ZhcxProjectManageDo;
|
|
|
import com.rongwei.bsentity.dto.commission.ImportProjectCheckBO;
|
|
|
import com.rongwei.bsentity.dto.commission.ParseDocBO;
|
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.List;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
public class ImportCommissionHelp {
|
|
|
|
|
@@ -125,6 +128,7 @@ public class ImportCommissionHelp {
|
|
|
String currentLevelStr = paragraph.getParagraphFormat().getStyle().getName().replace("Heading ", "");
|
|
|
int currentLevelNumber = Integer.parseInt(currentLevelStr);
|
|
|
String cellVal = getNodeText(paragraph);
|
|
|
+ cellVal = replaceNo(cellVal);
|
|
|
|
|
|
ZhcxCommissionCheckDetailTreeDo treeDo = new ZhcxCommissionCheckDetailTreeDo();
|
|
|
treeDo.setId(SecurityUtil.getUUID());
|
|
@@ -133,6 +137,26 @@ public class ImportCommissionHelp {
|
|
|
treeDo.setBaseinfoid(importDto.getId());
|
|
|
treeDo.setLevel(currentLevelNumber);
|
|
|
|
|
|
+ if(treeList.size() == 0) {
|
|
|
+ treeDo.setTreecode("1");
|
|
|
+ } else {
|
|
|
+ final ZhcxCommissionCheckDetailTreeDo treeDo1 = treeList.get(treeList.size() - 1); //上个节点
|
|
|
+ if(currentLevelNumber > treeDo1.getLevel()) { //层级大于1,说明是下一届
|
|
|
+ treeDo.setTreecode(treeDo1.getTreecode() + ".1");
|
|
|
+ } else if (currentLevelNumber == treeDo1.getLevel()){
|
|
|
+ String[] treeCodes = treeDo1.getTreecode().split("\\.");
|
|
|
+ int finallyCode = Integer.parseInt(treeCodes[treeCodes.length - 1]) + 1;
|
|
|
+ treeCodes[treeCodes.length - 1] = String.valueOf(finallyCode);
|
|
|
+ treeDo.setTreecode(StringUtils.join(treeCodes, "."));
|
|
|
+ } else {
|
|
|
+ final ZhcxCommissionCheckDetailTreeDo parentTree = ImportCommissionHelp.getBrotherNode(treeList, currentLevelNumber);
|
|
|
+ String[] treeCodes = parentTree.getTreecode().split("\\.");
|
|
|
+ int finallyCode = Integer.parseInt(treeCodes[treeCodes.length - 1]) + 1;
|
|
|
+ treeCodes[treeCodes.length - 1] = String.valueOf(finallyCode);
|
|
|
+ treeDo.setTreecode(StringUtils.join(treeCodes, "."));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if(currentLevelNumber == 1) { //第一层节点
|
|
|
treeDo.setPid("-1");
|
|
|
} else {
|
|
@@ -152,6 +176,23 @@ public class ImportCommissionHelp {
|
|
|
return treeDo;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 去掉序号
|
|
|
+ *
|
|
|
+ * @param input
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String replaceNo(String input) {
|
|
|
+ Pattern pattern = Pattern.compile("([\\d\\.]+)(.*)");
|
|
|
+ Matcher matcher = pattern.matcher(input);
|
|
|
+
|
|
|
+ if (matcher.matches()) {
|
|
|
+ return matcher.group(2); // 序号
|
|
|
+ } else {
|
|
|
+ return input;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* aspose转json列表
|
|
|
*
|
|
@@ -214,6 +255,29 @@ public class ImportCommissionHelp {
|
|
|
return treeDo;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 由于导入是一级一级加入,父级目录有可能是上一个元素或者上上个元素,需要循环往前找
|
|
|
+ *
|
|
|
+ * @param treeList
|
|
|
+ * @param level
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static ZhcxCommissionCheckDetailTreeDo getBrotherNode(List<ZhcxCommissionCheckDetailTreeDo> treeList, int level) {
|
|
|
+ int treeSize = treeList.size();
|
|
|
+ ZhcxCommissionCheckDetailTreeDo treeDo;
|
|
|
+ while (true) {
|
|
|
+ treeDo = treeList.get(treeSize - 1);
|
|
|
+ if(ObjectUtil.isNull(treeDo)) {//找不到前面一个元素,结束循环
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(treeDo.getLevel() == level) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ treeSize--;
|
|
|
+ }
|
|
|
+ return treeDo;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取文本
|
|
|
*
|
|
@@ -223,7 +287,7 @@ public class ImportCommissionHelp {
|
|
|
public static String getNodeText(Node node) {
|
|
|
final String text = node.getText();
|
|
|
if(ObjectUtil.isEmpty(text)) {
|
|
|
- return " ";
|
|
|
+ return "";
|
|
|
}
|
|
|
|
|
|
return StrUtil.trim(text.replace("\u0007", ""));
|