韩国文档模板处理

This commit is contained in:
wangchengjun
2022-04-13 00:49:59 +08:00
parent aa72c65306
commit 527d5b755e
3 changed files with 184 additions and 19 deletions
@@ -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) {
@@ -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