Commit 6d5b22e0 by shenjunjie

Merge branch 'feature' into 'release'

Feature

See merge request !588
parents fd55f1af bc9dd8a0
......@@ -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)
@DownloadTask(taskName = "舆情库有效舆情数据下载", description = "舆情库有效舆情数据")
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写入至指定路径
String projectName = projectService.getProjectById(UserThreadLocal.getProjectId()).getProjectName();
String filePath = EasyExcelUtil.generateExcelFilePath(brandkbsFilePath, projectName, UserThreadLocal.getNickname(), stringListPair.getLeft() + "_舆情列表数据");
EasyExcelUtil.write(filePath, "sheet1", ExportAppYuqingDTO.class, stringListPair.getRight());
String filePath = EasyExcelUtil.generateExcelFilePath(brandkbsFilePath, projectName, UserThreadLocal.getNickname(), stringPairPair.getLeft() + "_舆情列表数据");
EasyExcelUtil.dynamicHeadWrite(filePath, "sheet1", stringPairPair.getRight().getLeft(), stringPairPair.getRight().getRight());
return ResponseResult.success(filePath);
}
......
......@@ -7,6 +7,7 @@ import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.index.query.*;
import java.util.*;
import java.util.stream.Collectors;
/**
* @ClassName: FieldMap
......@@ -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;
// String projectId = UserThreadLocal.getProjectId();
// TODO 字段转换待完善,引入数据库
for (FieldMap f : FieldMap.values()) {
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 (!Arrays.asList("正面", "中性", "负面").contains(String.valueOf(value))) {
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;
break;
}
......
......@@ -79,6 +79,12 @@ public interface MarkDataService {
Pair<String, List<ExportAppYuqingDTO>> downloadYuqingMarkList(MarkSearchDTO markSearchDTO);
/**
* @param markSearchDTO 标注数据搜索传输类
* @return 返回结果
*/
Pair<String, Pair<List<List<String>>, List<List<Object>>>> downloadMarkListDynamicHead(MarkSearchDTO markSearchDTO);
/**
* 生成聚合列表并返回id
*
* @return 聚合id
......
......@@ -699,7 +699,7 @@ public class SearchWholeServiceImpl implements SearchWholeService {
while (!existTask.getFinish()) {
existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto);
long eTime = System.currentTimeMillis();
if (existTask.getFinish() || eTime - sTime >= 3 * 60 * 1000) {
if (Objects.isNull(existTask) || existTask.getFinish() || eTime - sTime >= 3 * 60 * 1000) {
break;
}
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