拆分列表
This commit is contained in:
@@ -63,4 +63,19 @@ public class OSSFile extends JeroEntity {
|
|||||||
private String fileDisplayName;
|
private String fileDisplayName;
|
||||||
|
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "来源")
|
||||||
|
private String origin;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "来源")
|
||||||
|
private String origin_dictText;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "标准号")
|
||||||
|
private String standardNumber;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "标准名称")
|
||||||
|
private String standardName;
|
||||||
}
|
}
|
||||||
|
|||||||
+95
@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 文档对比信息表
|
* @Description: 文档对比信息表
|
||||||
@@ -304,9 +305,103 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
|
|||||||
sfVo.addTextRight(item);
|
sfVo.addTextRight(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//修改标准目录顺序结构
|
||||||
|
// List<SarFileCompareMenuVo> menuLeft = this.tree(sfVo.getMenuLeft());
|
||||||
|
// List<SarFileCompareMenuVo> menuRight = this.tree(sfVo.getMenuRight());
|
||||||
|
// sfVo.setMenuLeft(menuLeft);
|
||||||
|
// sfVo.setMenuRight(menuRight);
|
||||||
return sfVo;
|
return sfVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<SarFileCompareMenuVo> tree(List<SarFileCompareMenuVo> list) {
|
||||||
|
List<SarFileCompareMenuVo> compareMenuVos = new ArrayList<>();
|
||||||
|
//先删除name是总目录的数据
|
||||||
|
list = list.get(0).getChildren();
|
||||||
|
/**
|
||||||
|
* 根节点:
|
||||||
|
* 1、没有"."
|
||||||
|
* 2、其他对象都不等于 最后一个"."之前的数据
|
||||||
|
*/
|
||||||
|
|
||||||
|
//查询根节点是哪一级,也就是"."最少的那一层
|
||||||
|
int least = 100;
|
||||||
|
for (SarFileCompareMenuVo menuVo : list) {
|
||||||
|
String name = menuVo.getName();
|
||||||
|
int i = countCharacters(name);
|
||||||
|
if (least > i){
|
||||||
|
least = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//把第一级放入compareMenuVos
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : list) {
|
||||||
|
String name = compareMenuVo.getName();
|
||||||
|
int i = countCharacters(name);
|
||||||
|
if (least == i){
|
||||||
|
compareMenuVos.add(compareMenuVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//遍历第一级,寻找第二级
|
||||||
|
List<SarFileCompareMenuVo> two = new ArrayList<>();
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : list) {
|
||||||
|
String name = compareMenuVo.getName();
|
||||||
|
int i = countCharacters(name);
|
||||||
|
if (least + 1 == i){
|
||||||
|
two.add(compareMenuVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : compareMenuVos) {
|
||||||
|
String name = compareMenuVo.getName();
|
||||||
|
int length = name.length();
|
||||||
|
//找到所有以name为前缀的数据
|
||||||
|
List<SarFileCompareMenuVo> menuVos = two.stream().filter(SarFileCompareMenuVo -> SarFileCompareMenuVo.getName().startsWith(name)).collect(Collectors.toList());
|
||||||
|
compareMenuVo.setChildren(menuVos);
|
||||||
|
}
|
||||||
|
//遍历第二级,寻找第三级
|
||||||
|
List<SarFileCompareMenuVo> three = new ArrayList<>();
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : list) {
|
||||||
|
String name = compareMenuVo.getName();
|
||||||
|
int i = countCharacters(name);
|
||||||
|
if (least + 2 == i){
|
||||||
|
three.add(compareMenuVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : compareMenuVos) {
|
||||||
|
List<SarFileCompareMenuVo> children = compareMenuVo.getChildren();
|
||||||
|
for (SarFileCompareMenuVo child : children) {
|
||||||
|
String name = child.getName();
|
||||||
|
//找到所有以name为前缀的数据
|
||||||
|
List<SarFileCompareMenuVo> menuVos = three.stream().filter(SarFileCompareMenuVo -> SarFileCompareMenuVo.getName().startsWith(name)).collect(Collectors.toList());
|
||||||
|
child.setChildren(menuVos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//遍历第三级,寻找第四级
|
||||||
|
List<SarFileCompareMenuVo> four = new ArrayList<>();
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : list) {
|
||||||
|
String name = compareMenuVo.getName();
|
||||||
|
int i = countCharacters(name);
|
||||||
|
if (least + 3 == i){
|
||||||
|
four.add(compareMenuVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SarFileCompareMenuVo compareMenuVo : compareMenuVos) {
|
||||||
|
List<SarFileCompareMenuVo> children = compareMenuVo.getChildren();
|
||||||
|
for (SarFileCompareMenuVo child : children) {
|
||||||
|
List<SarFileCompareMenuVo> vos = child.getChildren();
|
||||||
|
for (SarFileCompareMenuVo vo : vos) {
|
||||||
|
String name = vo.getName();
|
||||||
|
//找到所有以name为前缀的数据
|
||||||
|
List<SarFileCompareMenuVo> menuVos = four.stream().filter(SarFileCompareMenuVo -> SarFileCompareMenuVo.getName().startsWith(name)).collect(Collectors.toList());
|
||||||
|
vo.setChildren(menuVos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return compareMenuVos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int countCharacters(String str) {
|
||||||
|
return Math.toIntExact(str.chars().filter(ch -> ch == '.').count());
|
||||||
|
}
|
||||||
|
|
||||||
private List<SarFileCompareMenuVo> getMenuChildren(List<SarFileCompareMenu> menuList, String leftOrRight, String pid) {
|
private List<SarFileCompareMenuVo> getMenuChildren(List<SarFileCompareMenu> menuList, String leftOrRight, String pid) {
|
||||||
List<SarFileCompareMenuVo> list = new ArrayList<>();
|
List<SarFileCompareMenuVo> list = new ArrayList<>();
|
||||||
for (SarFileCompareMenu menu : menuList) {
|
for (SarFileCompareMenu menu : menuList) {
|
||||||
|
|||||||
+71
-2
@@ -14,6 +14,11 @@ import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
|
|||||||
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
|
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
|
||||||
import com.jero.modules.document.enums.FieldTypeEnum;
|
import com.jero.modules.document.enums.FieldTypeEnum;
|
||||||
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
||||||
|
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
|
||||||
|
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||||
|
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
||||||
import com.jero.modules.ocr.util.LineHumpUtil;
|
import com.jero.modules.ocr.util.LineHumpUtil;
|
||||||
import com.jero.modules.oss.entity.OSSFile;
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
import com.jero.modules.oss.service.IOSSFileService;
|
import com.jero.modules.oss.service.IOSSFileService;
|
||||||
@@ -27,6 +32,7 @@ import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
|||||||
import com.jero.modules.split.vo.SplitFilePageInfoParam;
|
import com.jero.modules.split.vo.SplitFilePageInfoParam;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.service.ISysDictItemService;
|
import com.jero.modules.system.service.ISysDictItemService;
|
||||||
|
import com.jero.modules.system.service.ISysDictService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -65,6 +71,13 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
|
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ILawsDomesticStandardService lawsDomesticStandardService; //国内标准
|
||||||
|
@Autowired
|
||||||
|
private ILawsEnterpriseStandardService ILawsEnterpriseStandardService; //企业标准
|
||||||
|
@Autowired
|
||||||
|
private ISysDictService sysDictService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
@@ -332,9 +345,65 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<OSSFile> splitFilePageInfoList(Page<OSSFile> page, HttpServletRequest request, SplitFilePageInfoParam param) {
|
public Page<OSSFile> splitFilePageInfoList(Page<OSSFile> page, HttpServletRequest request, SplitFilePageInfoParam param) {
|
||||||
QueryWrapper<OSSFile> wrapper = new QueryWrapper<>();
|
List<LawsDomesticStandard> lawsDomesticStandards = lawsDomesticStandardService.list();
|
||||||
|
List<LawsEnterpriseStandard> lawsEnterpriseStandards = ILawsEnterpriseStandardService.list();
|
||||||
|
LambdaQueryWrapper<OSSFile> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
String origin = param.getOrigin();
|
||||||
|
if (StringUtils.isNotBlank(origin)){
|
||||||
|
if ("1".equals(origin)){
|
||||||
|
List<String> collect = lawsDomesticStandards.stream().map(LawsDomesticStandard::getId).collect(Collectors.toList());
|
||||||
|
wrapper.in(OSSFile::getStandardId, collect);
|
||||||
|
}
|
||||||
|
if ("3".equals(origin)){
|
||||||
|
List<String> collect = lawsEnterpriseStandards.stream().map(LawsEnterpriseStandard::getId).collect(Collectors.toList());
|
||||||
|
wrapper.in(OSSFile::getStandardId, collect);
|
||||||
|
}
|
||||||
|
if (!"1".equals(origin) && !"3".equals(origin)){
|
||||||
|
return new Page<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String standardNumber = param.getStandardNumber();
|
||||||
|
if (StringUtils.isNotBlank(standardNumber)){
|
||||||
|
List<String> collect1 = lawsDomesticStandards.stream().filter(LawsDomesticStandard -> LawsDomesticStandard.getStandardNumber().contains(standardNumber)).map(LawsDomesticStandard::getId).collect(Collectors.toList());
|
||||||
|
wrapper.in(OSSFile::getStandardId, collect1);
|
||||||
|
List<String> collect2 = lawsEnterpriseStandards.stream().filter(LawsEnterpriseStandard -> LawsEnterpriseStandard.getStandardNumber().contains(standardNumber)).map(LawsEnterpriseStandard::getId).collect(Collectors.toList());
|
||||||
|
wrapper.in(OSSFile::getStandardId, collect2);
|
||||||
|
}
|
||||||
|
String standardName = param.getStandardName();
|
||||||
|
if (StringUtils.isNotBlank(standardName)){
|
||||||
|
List<String> collect1 = lawsDomesticStandards.stream().filter(LawsDomesticStandard -> LawsDomesticStandard.getStandardName().contains(standardName)).map(LawsDomesticStandard::getId).collect(Collectors.toList());
|
||||||
|
wrapper.in(OSSFile::getStandardId, collect1);
|
||||||
|
List<String> collect2 = lawsEnterpriseStandards.stream().filter(LawsEnterpriseStandard -> LawsEnterpriseStandard.getStandardName().contains(standardName)).map(LawsEnterpriseStandard::getId).collect(Collectors.toList());
|
||||||
|
wrapper.in(OSSFile::getStandardId, collect2);
|
||||||
|
}
|
||||||
|
wrapper.eq(StringUtils.isNotBlank(param.getStandardFileType()), OSSFile::getStandardFileType, param.getStandardFileType());
|
||||||
|
wrapper.orderByDesc(OSSFile::getCreateTime);
|
||||||
Page<OSSFile> pageList = ossFileService.page(page, wrapper);
|
Page<OSSFile> pageList = ossFileService.page(page, wrapper);
|
||||||
|
//为来源、标准号、标准名称赋值
|
||||||
|
Map<String, List<LawsDomesticStandard>> collect1 = lawsDomesticStandards.stream().collect(Collectors.groupingBy(LawsDomesticStandard::getId));
|
||||||
|
Map<String, List<LawsEnterpriseStandard>> collect2 = lawsEnterpriseStandards.stream().collect(Collectors.groupingBy(LawsEnterpriseStandard::getId));
|
||||||
|
for (OSSFile record : pageList.getRecords()) {
|
||||||
|
String standardId = record.getStandardId();
|
||||||
|
List<LawsDomesticStandard> standards = collect1.get(standardId);
|
||||||
|
if (standards != null && !standards.isEmpty()){
|
||||||
|
LawsDomesticStandard standard = standards.get(0);
|
||||||
|
String origin_dictText = sysDictService.queryDictTextByKey("split_standard_source", "1");
|
||||||
|
record.setOrigin_dictText(origin_dictText);
|
||||||
|
record.setStandardNumber(standard.getStandardNumber());
|
||||||
|
record.setStandardName(standard.getStandardName());
|
||||||
|
}else {
|
||||||
|
List<LawsEnterpriseStandard> domesticStandards = collect2.get(standardId);
|
||||||
|
if (domesticStandards != null && !domesticStandards.isEmpty()){
|
||||||
|
LawsEnterpriseStandard standard = domesticStandards.get(0);
|
||||||
|
String origin_dictText = sysDictService.queryDictTextByKey("split_standard_source", "2");
|
||||||
|
record.setOrigin_dictText(origin_dictText);
|
||||||
|
record.setStandardNumber(standard.getStandardNumber());
|
||||||
|
record.setStandardName(standard.getStandardName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return pageList;
|
return pageList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user