拆分列表
This commit is contained in:
@@ -63,4 +63,19 @@ public class OSSFile extends JeroEntity {
|
||||
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 java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 文档对比信息表
|
||||
@@ -304,9 +305,103 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
|
||||
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;
|
||||
}
|
||||
|
||||
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) {
|
||||
List<SarFileCompareMenuVo> list = new ArrayList<>();
|
||||
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.modules.document.enums.FieldTypeEnum;
|
||||
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.oss.entity.OSSFile;
|
||||
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.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -65,6 +71,13 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
|
||||
@Autowired
|
||||
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
|
||||
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);
|
||||
//为来源、标准号、标准名称赋值
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user