韩国文档模板处理
This commit is contained in:
+160
-16
@@ -1414,7 +1414,7 @@ public class FileSpiltService {
|
||||
List<String> nowStartNotes = new ArrayList<>();
|
||||
//初始判断值
|
||||
nowStart.add("1.");
|
||||
nowStartNotes.add("1");
|
||||
nowStartNotes.add("1.");
|
||||
// if (sarFileSplitInfoEO.getStartNumber()<4){
|
||||
// } else {
|
||||
// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
|
||||
@@ -1446,9 +1446,11 @@ public class FileSpiltService {
|
||||
boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
|
||||
boolean filterFlag = false;
|
||||
int menuLevel = 0;//菜单等级,分为1/2/3/4/5级
|
||||
int menuNoteLevel = 0;//菜单等级,分为1/2/3/4/5级
|
||||
// StringBuilder lastStr = new StringBuilder();
|
||||
//存储前四级目录数据
|
||||
String[] catalogerArr = new String[4];
|
||||
String[] catalogerNoteArr = new String[4];
|
||||
for (IBodyElement element : elements) {
|
||||
// 段落
|
||||
if (element instanceof XWPFParagraph) {
|
||||
@@ -1462,26 +1464,33 @@ public class FileSpiltService {
|
||||
}
|
||||
|
||||
if(filterFlag){
|
||||
boolean noteFlag = false;
|
||||
for (String nowStartNote : nowStartNotes) {
|
||||
if(paragraphString.startsWith(nowStartNote)){
|
||||
noteFlag = true;
|
||||
//预测下一级内容
|
||||
nowStartNotes = getNewNowStartKmvssTable(catalogerArr,nowStartNote,menuLevel);
|
||||
nowStartNotes = getNewNowStartKmvssTable(catalogerNoteArr,nowStartNote,menuNoteLevel);
|
||||
break;
|
||||
}else {
|
||||
for (int i=0;i<nowStart.size();i++){
|
||||
if(paragraphString.startsWith(nowStart.get(i))){
|
||||
filterFlag = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!noteFlag){
|
||||
for (int i=0;i<nowStart.size();i++){
|
||||
if(paragraphString.startsWith(nowStart.get(i))){
|
||||
filterFlag = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//包含note或者notes
|
||||
if(filterList.contains(paragraphString)){
|
||||
//重置所有note计数参数
|
||||
filterFlag = true;
|
||||
nowStartNotes = new ArrayList<>();
|
||||
nowStartNotes.add("1.");
|
||||
catalogerNoteArr = new String[4];
|
||||
menuNoteLevel = 0;
|
||||
}
|
||||
// if(menuLevel <= 3){
|
||||
// String thisLevel = catalogerArr[menuLevel];
|
||||
@@ -1508,7 +1517,11 @@ public class FileSpiltService {
|
||||
SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent);
|
||||
|
||||
// 增加一条数据,需要在数结构中加一条数据
|
||||
String name = nowStart.get(i);
|
||||
String name = "";
|
||||
for (int j = 0; j < catalogerArr.length; j++) {
|
||||
name = name + "=" + catalogerArr[j];
|
||||
}
|
||||
name = name +"="+nowStart.get(i);
|
||||
SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(name,treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName,enumByValue);
|
||||
treeList.add(sarFileSplitMenuEO) ;
|
||||
message.setMenuId(sarFileSplitMenuEO.getId());
|
||||
@@ -1807,7 +1820,7 @@ public class FileSpiltService {
|
||||
String numberStr = nowStart.replace("(","").replace(")","");
|
||||
Integer lastnumber = Integer.valueOf(numberStr)+1;
|
||||
// catalogerArr[4] = lastnumber+")";
|
||||
nowResultStartList.add(lastnumber+")");
|
||||
nowResultStartList.add("("+lastnumber+")");
|
||||
|
||||
//上一级
|
||||
nowResultStartList.add(catalogerArr[0]);
|
||||
@@ -1864,7 +1877,9 @@ public class FileSpiltService {
|
||||
|
||||
// 用现在得name 和之前得name 做比较,确定,parentId
|
||||
|
||||
boolean flag = false;
|
||||
boolean oneFlag = false;
|
||||
boolean twoFlag = false;
|
||||
boolean threeFlag = false;
|
||||
a:
|
||||
for (SarFileSplitMenuEO forDocumentTree : treeList) {
|
||||
switch (enumByValue) {
|
||||
@@ -1947,8 +1962,8 @@ public class FileSpiltService {
|
||||
int firstNumber = Integer.parseInt(firstStr) - 1;
|
||||
firstNameTemp = firstNumber + ".";
|
||||
}
|
||||
if ((!flag) && firstNameTemp.equals(forDocumentTree.getName())) {
|
||||
flag = true;
|
||||
if ((!oneFlag) && firstNameTemp.equals(forDocumentTree.getName())) {
|
||||
oneFlag = true;
|
||||
}
|
||||
|
||||
//再找二级目录
|
||||
@@ -1957,7 +1972,7 @@ public class FileSpiltService {
|
||||
int firstNumber = Integer.parseInt(firstStr) - 1;
|
||||
secondTemp = "(" + firstNumber + ")";
|
||||
}
|
||||
if (flag && secondTemp.equals(forDocumentTree.getName())) {
|
||||
if (oneFlag && secondTemp.equals(forDocumentTree.getName())) {
|
||||
documentTreeEO.setName(nameTemp);
|
||||
documentTreeEO.setPId(forDocumentTree.getId());
|
||||
break a;
|
||||
@@ -1997,7 +2012,136 @@ public class FileSpiltService {
|
||||
}
|
||||
break;
|
||||
case KMVSS_TABLE:
|
||||
documentTreeEO.setPId(generalCatalogueId);
|
||||
if (name.indexOf("=") >= 0) {
|
||||
String[] nameSplit = name.split("=");
|
||||
|
||||
//获取name值
|
||||
String firstNameTemp = nameSplit[1];
|
||||
String secondTemp = nameSplit[2];
|
||||
String threeTemp = nameSplit[3];
|
||||
String fourTemp = nameSplit[4];
|
||||
String nameTemp = nameSplit[5];
|
||||
|
||||
if(FileSplitUtils.hasDigit(nameTemp) && nameTemp.contains(".")){
|
||||
//第一级:1. 2. 3. 4. 等
|
||||
documentTreeEO.setName(nameTemp);
|
||||
}else if(FileSplitUtils.judgeContainsStr(nameTemp) && nameTemp.contains(".")){
|
||||
//第二级:A. B. C. D. 等
|
||||
if (StringUtils.isNotEmpty(firstNameTemp)) {
|
||||
String firstStr = firstNameTemp.replaceAll("\\.", "");
|
||||
int firstNumber = Integer.parseInt(firstStr) - 1;
|
||||
firstNameTemp = firstNumber + ".";
|
||||
}
|
||||
if (firstNameTemp.equals(forDocumentTree.getName())) {
|
||||
documentTreeEO.setName(nameTemp);
|
||||
documentTreeEO.setPId(forDocumentTree.getId());
|
||||
break a;
|
||||
}
|
||||
}else if(FileSplitUtils.hasDigit(nameTemp) && nameTemp.contains(")") && (!nameTemp.contains("("))){
|
||||
//第三级:1) 2) 3) 4) 等
|
||||
|
||||
//先找一级目录
|
||||
if (StringUtils.isNotEmpty(firstNameTemp)) {
|
||||
String firstStr = firstNameTemp.replaceAll("\\.", "");
|
||||
int firstNumber = Integer.parseInt(firstStr) - 1;
|
||||
firstNameTemp = firstNumber + ".";
|
||||
}
|
||||
if ((!oneFlag) && firstNameTemp.equals(forDocumentTree.getName())) {
|
||||
oneFlag = true;
|
||||
}
|
||||
|
||||
//再找二级目录
|
||||
if (oneFlag && StringUtils.isNotEmpty(secondTemp)) {
|
||||
String firstStr = secondTemp.replace(".","");
|
||||
String nextUpEn = FileSplitUtils.getLastEn(firstStr);
|
||||
secondTemp = nextUpEn + ".";
|
||||
}
|
||||
if (oneFlag && secondTemp.equals(forDocumentTree.getName())) {
|
||||
documentTreeEO.setName(nameTemp);
|
||||
documentTreeEO.setPId(forDocumentTree.getId());
|
||||
break a;
|
||||
}
|
||||
|
||||
}else if(FileSplitUtils.judgeContainsStr(nameTemp) && nameTemp.contains(")")){
|
||||
//第四级:A) B) C) D) 等
|
||||
|
||||
//先找一级目录
|
||||
if (StringUtils.isNotEmpty(firstNameTemp)) {
|
||||
String firstStr = firstNameTemp.replaceAll("\\.", "");
|
||||
int firstNumber = Integer.parseInt(firstStr) - 1;
|
||||
firstNameTemp = firstNumber + ".";
|
||||
}
|
||||
if ((!oneFlag) && firstNameTemp.equals(forDocumentTree.getName())) {
|
||||
oneFlag = true;
|
||||
}
|
||||
|
||||
//再找二级目录
|
||||
if (oneFlag && StringUtils.isNotEmpty(secondTemp)) {
|
||||
String firstStr = secondTemp.replace(".","");
|
||||
String nextUpEn = FileSplitUtils.getLastEn(firstStr);
|
||||
secondTemp = nextUpEn + ".";
|
||||
}
|
||||
if ((!twoFlag) && secondTemp.equals(forDocumentTree.getName())) {
|
||||
twoFlag = true;
|
||||
}
|
||||
//再找三级目录
|
||||
if (oneFlag && twoFlag && StringUtils.isNotEmpty(threeTemp)) {
|
||||
String numberStr = threeTemp.replace(")","");
|
||||
Integer lastnumber = Integer.valueOf(numberStr)-1;
|
||||
threeTemp = lastnumber + ")";
|
||||
}
|
||||
if (oneFlag && twoFlag && threeTemp.equals(forDocumentTree.getName())) {
|
||||
documentTreeEO.setName(nameTemp);
|
||||
documentTreeEO.setPId(forDocumentTree.getId());
|
||||
break a;
|
||||
}
|
||||
|
||||
}else if(FileSplitUtils.hasDigit(nameTemp) && nameTemp.contains("(") && nameTemp.contains(")")){
|
||||
//第五级:(1) (2) (3) (4) 等
|
||||
|
||||
//先找一级目录
|
||||
if (StringUtils.isNotEmpty(firstNameTemp)) {
|
||||
String firstStr = firstNameTemp.replaceAll("\\.", "");
|
||||
int firstNumber = Integer.parseInt(firstStr) - 1;
|
||||
firstNameTemp = firstNumber + ".";
|
||||
}
|
||||
if ((!oneFlag) && firstNameTemp.equals(forDocumentTree.getName())) {
|
||||
oneFlag = true;
|
||||
}
|
||||
|
||||
//再找二级目录
|
||||
if (oneFlag && StringUtils.isNotEmpty(secondTemp)) {
|
||||
String firstStr = secondTemp.replace(".","");
|
||||
String nextUpEn = FileSplitUtils.getLastEn(firstStr);
|
||||
secondTemp = nextUpEn + ".";
|
||||
}
|
||||
if ((!twoFlag) && secondTemp.equals(forDocumentTree.getName())) {
|
||||
twoFlag = true;
|
||||
}
|
||||
//再找三级目录
|
||||
if (oneFlag && twoFlag && StringUtils.isNotEmpty(threeTemp)) {
|
||||
String numberStr = threeTemp.replace(")","");
|
||||
Integer lastnumber = Integer.valueOf(numberStr)-1;
|
||||
threeTemp = lastnumber + ")";
|
||||
}
|
||||
if ((!threeFlag) && threeTemp.equals(forDocumentTree.getName())) {
|
||||
threeFlag = true;
|
||||
}
|
||||
//再找四级目录
|
||||
if (oneFlag && twoFlag && threeFlag && StringUtils.isNotEmpty(fourTemp)) {
|
||||
String numberStr = fourTemp.replace(")","");
|
||||
String nextUpEn = FileSplitUtils.getLastEn(numberStr);
|
||||
fourTemp = nextUpEn + ")";
|
||||
}
|
||||
if (oneFlag && twoFlag && threeFlag && fourTemp.equals(forDocumentTree.getName())) {
|
||||
documentTreeEO.setName(nameTemp);
|
||||
documentTreeEO.setPId(forDocumentTree.getId());
|
||||
break a;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
documentTreeEO.setPId(generalCatalogueId);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (name.indexOf(".") >= 0) {
|
||||
|
||||
+22
-1
@@ -5,7 +5,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class FileSplitUtils {
|
||||
public static void main(String[] args) {
|
||||
System.out.println(getNextUpEn("Z"));
|
||||
System.out.println(getLastEn("G"));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,6 +29,27 @@ public class FileSplitUtils {
|
||||
return String.valueOf(uppercase);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 获取下一个英文字母
|
||||
* @param en
|
||||
* @return
|
||||
*/
|
||||
public static String getLastEn(String en) {
|
||||
if (en == null || en.equals(""))
|
||||
return "Z";
|
||||
char lastE = 'A';
|
||||
int lastEnglish = (int) lastE;
|
||||
char[] c = en.toCharArray();
|
||||
if (c.length > 1) {
|
||||
return null;
|
||||
} else {
|
||||
int now = (int) c[0];
|
||||
if (now <= lastEnglish)
|
||||
return "A";
|
||||
char uppercase = (char) (now - 1);
|
||||
return String.valueOf(uppercase);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断一个字符串是否含有数字
|
||||
|
||||
@@ -22,8 +22,8 @@ management:
|
||||
spring:
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 10MB
|
||||
max-request-size: 10MB
|
||||
max-file-size: 100MB
|
||||
max-request-size: 100MB
|
||||
mail:
|
||||
host: smtp.163.com
|
||||
username: test@163.com
|
||||
|
||||
Reference in New Issue
Block a user