美国文档拆分数据丢失问题处理

This commit is contained in:
wangchengjun
2022-04-12 10:23:46 +08:00
parent 2b437b436f
commit 93b43e6204
2 changed files with 48 additions and 65 deletions
@@ -605,80 +605,64 @@ public class FileSpiltService {
paragraphString = paragraphString.replace((char) 12288, ' '); paragraphString = paragraphString.replace((char) 12288, ' ');
paragraphString = paragraphString.trim(); paragraphString = paragraphString.trim();
} }
if (StringUtils.isNotEmpty(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { // if (StringUtils.isNotEmpty(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) {
String numberParent = p.getNumLevelText().substring(0,p.getNumLevelText().lastIndexOf(".")); // String numberParent = p.getNumLevelText().substring(0,p.getNumLevelText().lastIndexOf("."));
if (numberMap.containsKey(numberParent)){ // if (numberMap.containsKey(numberParent)){
Integer numbernow =(Integer)numberMap.get(numberParent)+1; // Integer numbernow =(Integer)numberMap.get(numberParent)+1;
if (messageList != null && !messageList.isEmpty() && messageList.get(messageList.size()-1).getItemsNum().equals(numberParent + "." + String.valueOf(numbernow))){ // if (messageList != null && !messageList.isEmpty() && messageList.get(messageList.size()-1).getItemsNum().equals(numberParent + "." + String.valueOf(numbernow))){
numberMap.put(numberParent,numbernow+1); // numberMap.put(numberParent,numbernow+1);
paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); // paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText();
} else { // } else {
numberMap.put(numberParent,numbernow); // numberMap.put(numberParent,numbernow);
paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); // paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText();
} // }
} else { // } else {
numberMap.put(numberParent,1); // numberMap.put(numberParent,1);
paragraphString = numberParent+".1"+ p.getText(); // paragraphString = numberParent+".1"+ p.getText();
} // }
} // }
//^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$ //^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$
ptest = Pattern.compile("S^[\\d.]*$"); ptest = Pattern.compile("S^[\\d.]*$");
boolean hasGoIf = false; boolean hasGoIf = false;
for (int i=0;i<nowStart.size();i++){ for (int i=0;i<nowStart.size();i++){
if(paragraphString.startsWith(nowStart.get(i))){ if(paragraphString.startsWith(nowStart.get(i))){
if(paragraphString.length()>nowStart.get(i).length() // 判断名称,如果大于10位,取十位,
&& !ptest.matcher(paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+1)).matches()){ String itemName = paragraphString.substring(nowStart.get(i).length()).length()>10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
// 判断名称,如果大于10位,取十位, List<String> clauseContent = new ArrayList<>();
String itemName = paragraphString.substring(nowStart.get(i).length()).length()>10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); clauseContent.add(paragraphString);
List<String> clauseContent = new ArrayList<>(); SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent);
clauseContent.add(paragraphString);
SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent);
String[] numberStr = nowStart.get(i).split("\\."); String[] numberStr = nowStart.get(i).split("\\.");
String numberStrTemp = numberStr[0].replace("S", ""); String numberStrTemp = numberStr[0].replace("S", "");
if (Integer.valueOf(numberStrTemp) > sarFileSplitInfoEO.getStopNumber()){ if (Integer.valueOf(numberStrTemp) > sarFileSplitInfoEO.getStopNumber()){
menuCanAdd = false; menuCanAdd = false;
} else { } else {
// 增加一条数据,需要在数结构中加一条数据 // 增加一条数据,需要在数结构中加一条数据
SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName,enumByValue); SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName,enumByValue);
treeList.add(sarFileSplitMenuEO) ; treeList.add(sarFileSplitMenuEO) ;
message.setMenuId(sarFileSplitMenuEO.getId()); message.setMenuId(sarFileSplitMenuEO.getId());
addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length()));
messageList.add(message); messageList.add(message);
nowStart = getNewNowStartUS(nowStart.get(i)); nowStart = getNewNowStartUS(nowStart.get(i));
menuCanAdd = true; menuCanAdd = true;
}
hasGoIf = true;
break;
}else {
// 判断名称,如果大于10位,取十位,
String itemName = paragraphString.substring(nowStart.get(i).length()).length()>10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
List<String> clauseContent = new ArrayList<>();
clauseContent.add(paragraphString);
SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent);
String[] numberStr = nowStart.get(i).split("\\.");
String numberStrTemp = numberStr[0].replace("S", "");
if (Integer.valueOf(numberStrTemp) > sarFileSplitInfoEO.getStopNumber()){
menuCanAdd = false;
} else {
// 增加一条数据,需要在数结构中加一条数据
SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName,enumByValue);
treeList.add(sarFileSplitMenuEO) ;
message.setMenuId(sarFileSplitMenuEO.getId());
addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length()));
messageList.add(message);
nowStart = getNewNowStartUS(nowStart.get(i));
menuCanAdd = true;
}
hasGoIf = true;
break;
} }
hasGoIf = true;
break;
} }
} }
if(!hasGoIf && menuCanAdd) {
if (!p.getText().equals("") ){
addItermsConditionsText(messageList.get(messageList.size()-1),itemValList,p.getText());
}
List<String> imageBundleList = readImageInParagraph((XWPFParagraph)p);
if(CollectionUtils.isNotEmpty(imageBundleList)) {
addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList);
}
// }
hasGoIf = true;
}
// 判断是否直接跳出所有循环 // 判断是否直接跳出所有循环
if (!menuCanAdd && messageList.size()>0) { if (!menuCanAdd && messageList.size()>0) {
@@ -85,7 +85,7 @@
data(){ data(){
return{ return{
visible:false, visible:false,
fileGroup:undefined, fileGroup:'',
tableSource:[], //列表数据 tableSource:[], //列表数据
selectedRowKeys:[], selectedRowKeys:[],
queryParams:{ queryParams:{
@@ -198,7 +198,6 @@
}, },
//拆分 //拆分
submitSplit(){ submitSplit(){
debugger
if(this.fileGroup.length == 0||this.fileGroup==undefined){ if(this.fileGroup.length == 0||this.fileGroup==undefined){
this.$message.warning(this.$t('selectFileType')) this.$message.warning(this.$t('selectFileType'))
}else if(this.rows&&this.rows.length>1){ }else if(this.rows&&this.rows.length>1){