Commit f00d4951 by shenjunjie

Merge branch 'release' into 'master'

Release

See merge request !589
parents c5904d86 6d5b22e0
...@@ -332,11 +332,11 @@ public class AppDownloadController extends BaseController { ...@@ -332,11 +332,11 @@ public class AppDownloadController extends BaseController {
@LogRecord(description = "舆情库-有效舆情导出", values = {"startTime", "endTime", "customTags", "field", "keyword", "politicsLevel", "mainBodyType", "platforms", "region", "tags"}, entity = true, arguments = true) @LogRecord(description = "舆情库-有效舆情导出", values = {"startTime", "endTime", "customTags", "field", "keyword", "politicsLevel", "mainBodyType", "platforms", "region", "tags"}, entity = true, arguments = true)
@DownloadTask(taskName = "舆情库有效舆情数据下载", description = "舆情库有效舆情数据") @DownloadTask(taskName = "舆情库有效舆情数据下载", description = "舆情库有效舆情数据")
public ResponseResult exportYuqingMarkList(@RequestBody MarkSearchDTO markSearchDTO) { public ResponseResult exportYuqingMarkList(@RequestBody MarkSearchDTO markSearchDTO) {
Pair<String, List<ExportAppYuqingDTO>> stringListPair = markDataService.downloadYuqingMarkList(markSearchDTO); Pair<String, Pair<List<List<String>>, List<List<Object>>>> stringPairPair = markDataService.downloadMarkListDynamicHead(markSearchDTO);
// excel写入至指定路径 // excel写入至指定路径
String projectName = projectService.getProjectById(UserThreadLocal.getProjectId()).getProjectName(); String projectName = projectService.getProjectById(UserThreadLocal.getProjectId()).getProjectName();
String filePath = EasyExcelUtil.generateExcelFilePath(brandkbsFilePath, projectName, UserThreadLocal.getNickname(), stringListPair.getLeft() + "_舆情列表数据"); String filePath = EasyExcelUtil.generateExcelFilePath(brandkbsFilePath, projectName, UserThreadLocal.getNickname(), stringPairPair.getLeft() + "_舆情列表数据");
EasyExcelUtil.write(filePath, "sheet1", ExportAppYuqingDTO.class, stringListPair.getRight()); EasyExcelUtil.dynamicHeadWrite(filePath, "sheet1", stringPairPair.getRight().getLeft(), stringPairPair.getRight().getRight());
return ResponseResult.success(filePath); return ResponseResult.success(filePath);
} }
......
...@@ -7,6 +7,7 @@ import org.apache.lucene.search.join.ScoreMode; ...@@ -7,6 +7,7 @@ import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.index.query.*; import org.elasticsearch.index.query.*;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @ClassName: FieldMap * @ClassName: FieldMap
...@@ -94,65 +95,26 @@ public class FieldMapping { ...@@ -94,65 +95,26 @@ public class FieldMapping {
} }
} }
public static FieldMapping createFromNameAndValue(String name, Object value, String question) { public static FieldMapping createFromNameAndValue(String name, Object value, String brandStr) {
FieldMap fieldMap = null; FieldMap fieldMap = null;
// String projectId = UserThreadLocal.getProjectId();
// TODO 字段转换待完善,引入数据库
for (FieldMap f : FieldMap.values()) { for (FieldMap f : FieldMap.values()) {
if (name.equals(f.getName())) { if (name.equals(f.getName())) {
// // 项目名需要转成id
// if (FieldMap.PROJECT == f) {
// Map<String, Project> projectMap = GlobalPojo.PROJECT_MAP.values().stream().collect(Collectors.toMap(AbstractProject::getProjectName, o -> o));
// if (projectMap.containsKey(String.valueOf(value))) {
// value = projectMap.get(String.valueOf(value)).getId();
// }else {
// value = projectId;
// }
// }
// 品牌需要转换
// if (FieldMap.BRAND == f) {
// Project project = GlobalPojo.PROJECT_MAP.get(projectId);
// if (CollectionUtils.isNotEmpty(project.getContendList())){
// List<String> contends = new ArrayList<>();
// List<String> contendNames = project.getContendList().stream().map(AbstractProject::getBrandName).collect(Collectors.toList());
// for (String contendName : contendNames) {
// if (question.contains(contendName)) {
// contends.add(contendName);
// }
// }
// if (CollectionUtils.isNotEmpty(contends)){
// value = String.join("|", contends);
// }else {
// value = Constant.PRIMARY_CONTEND_ID;
// }
// }else {
// value = Constant.PRIMARY_CONTEND_ID;
// }
// if ("主品牌".equals(value)) {
// value = Constant.PRIMARY_CONTEND_ID;
// } else {
// // 寻找对应的竞品id
// Optional<FieldMapping> project = fieldMappings.stream().filter(field -> Objects.equals(FieldMap.PROJECT, field.getFieldMap())).findFirst();
// if (project.isPresent()){
// List<Contend> contendList = GlobalPojo.PROJECT_MAP.get(String.valueOf(project.get().getValue())).getContendList();
// Object finalValue = value;
// Optional<Contend> contendOptional = contendList.stream().filter(contend -> Objects.equals(contend.getBrandName(), finalValue)).findFirst();
// if (contendOptional.isPresent()){
// value = contendOptional.get().getId();
// }else {
// value = Constant.PRIMARY_CONTEND_ID;
// }
// }else {
// value = Constant.PRIMARY_CONTEND_ID;
// }
// }
// }
// 标签只包含正负中 // 标签只包含正负中
if (FieldMap.MTAG == f) { if (FieldMap.MTAG == f) {
if (!Arrays.asList("正面", "中性", "负面").contains(String.valueOf(value))) { if (!Arrays.asList("正面", "中性", "负面").contains(String.valueOf(value))) {
return null; return null;
} }
} }
// 去除关键词中的项目、品牌名干扰
if (FieldMap.IND_FULL_TEXT == f){
String keyword = String.valueOf(value);
List<String> brands = Arrays.stream(brandStr.split("、")).collect(Collectors.toList());
for (String brand : brands) {
if (String.valueOf(value).contains(brand)){
value = keyword.replace(brand, "").trim();
}
}
}
fieldMap = f; fieldMap = f;
break; break;
} }
......
...@@ -79,6 +79,12 @@ public interface MarkDataService { ...@@ -79,6 +79,12 @@ public interface MarkDataService {
Pair<String, List<ExportAppYuqingDTO>> downloadYuqingMarkList(MarkSearchDTO markSearchDTO); Pair<String, List<ExportAppYuqingDTO>> downloadYuqingMarkList(MarkSearchDTO markSearchDTO);
/** /**
* @param markSearchDTO 标注数据搜索传输类
* @return 返回结果
*/
Pair<String, Pair<List<List<String>>, List<List<Object>>>> downloadMarkListDynamicHead(MarkSearchDTO markSearchDTO);
/**
* 生成聚合列表并返回id * 生成聚合列表并返回id
* *
* @return 聚合id * @return 聚合id
......
...@@ -699,7 +699,7 @@ public class SearchWholeServiceImpl implements SearchWholeService { ...@@ -699,7 +699,7 @@ public class SearchWholeServiceImpl implements SearchWholeService {
while (!existTask.getFinish()) { while (!existTask.getFinish()) {
existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto); existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto);
long eTime = System.currentTimeMillis(); long eTime = System.currentTimeMillis();
if (existTask.getFinish() || eTime - sTime >= 3 * 60 * 1000) { if (Objects.isNull(existTask) || existTask.getFinish() || eTime - sTime >= 3 * 60 * 1000) {
break; break;
} }
Thread.sleep(10000L); Thread.sleep(10000L);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment