fix(文档拆分): 78128
This commit is contained in:
+43
@@ -0,0 +1,43 @@
|
|||||||
|
package com.jero.modules.laws.documenttool.common;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: DirectoryComparator
|
||||||
|
* @Description:
|
||||||
|
* @Author: yjz
|
||||||
|
* @Date: 2023-11-03 11:24
|
||||||
|
* @Version: 1.0
|
||||||
|
**/
|
||||||
|
public class DirectoryComparator implements Comparator<Map<String, Object>> {
|
||||||
|
public int compare(Map<String, Object> dir1, Map<String, Object> dir2) {
|
||||||
|
String sortNumber1 = (String) dir1.get("item_num");
|
||||||
|
String sortNumber2 = (String) dir2.get("item_num");
|
||||||
|
|
||||||
|
String[] parts1 = sortNumber1.split("\\.");
|
||||||
|
String[] parts2 = sortNumber2.split("\\.");
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (i < parts1.length && i < parts2.length) {
|
||||||
|
int part1 = tryParseInt(parts1[i]);
|
||||||
|
int part2 = tryParseInt(parts2[i]);
|
||||||
|
|
||||||
|
if (part1 != part2) {
|
||||||
|
return part1 - part2;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return parts1.length - parts2.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int tryParseInt(String str) {
|
||||||
|
try {
|
||||||
|
return Integer.parseInt(str);
|
||||||
|
} catch(NumberFormatException e) {
|
||||||
|
return str.hashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-1
@@ -16,6 +16,7 @@ import com.jero.common.util.UUIDUtils;
|
|||||||
import com.jero.common.util.ZipUtil;
|
import com.jero.common.util.ZipUtil;
|
||||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||||
|
import com.jero.modules.laws.documenttool.common.DirectoryComparator;
|
||||||
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
|
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
|
||||||
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
|
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
|
||||||
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplitView;
|
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplitView;
|
||||||
@@ -541,6 +542,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
StringBuilder strSelectCondition = new StringBuilder(selectCondition);
|
StringBuilder strSelectCondition = new StringBuilder(selectCondition);
|
||||||
// 查询数据
|
// 查询数据
|
||||||
List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, strSelectCondition.toString());
|
List<Map<String, Object>> listMap = documentSplitMapper.queryDocumentSplitDetail(selectColumn, strSelectCondition.toString());
|
||||||
|
// 排序
|
||||||
|
listMap.sort(new DirectoryComparator());
|
||||||
// 第一条数据
|
// 第一条数据
|
||||||
Map<String, Object> firstData = listMap.get(0);
|
Map<String, Object> firstData = listMap.get(0);
|
||||||
listMap.remove(0);
|
listMap.remove(0);
|
||||||
@@ -572,7 +575,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
|||||||
}
|
}
|
||||||
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID), "");
|
List<SarFileSplitItemsValEO> sarFileSplitItemsValEOS = documentSplitMapper.queryItemsValByItemId((String) firstData.get(ID), "");
|
||||||
// 第一条数据信息的最大的排序字段值
|
// 第一条数据信息的最大的排序字段值
|
||||||
Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted().findFirst();
|
Optional<SarFileSplitItemsValEO> sarFileSplitItemsValEOOptional = sarFileSplitItemsValEOS.stream().sorted(Comparator.comparing(v -> Integer.valueOf(String.valueOf(v.getDisplaySeq())))).findFirst();
|
||||||
sarFileSplitItemsValEOOptional.ifPresent(v ->{
|
sarFileSplitItemsValEOOptional.ifPresent(v ->{
|
||||||
// 排序字段
|
// 排序字段
|
||||||
Integer displaySeq = v.getDisplaySeq();
|
Integer displaySeq = v.getDisplaySeq();
|
||||||
|
|||||||
Reference in New Issue
Block a user