提交 5ad50710 作者: 925993793@qq.com

研究中心对接bug修改

上级 6713a62d
...@@ -799,10 +799,11 @@ public class SubjectManageController { ...@@ -799,10 +799,11 @@ public class SubjectManageController {
* @date 2025/1/9 * @date 2025/1/9
*/ */
@PostMapping("/removeDirectInfoSource") @PostMapping("/removeDirectInfoSource")
public Result<?> removeDirectInfoSource(@RequestBody JSONObject params){ public Result<?> removeDirectInfoSource(@RequestBody List<JSONObject> params){
String subjectId = params.get("subjectId").toString(); for (JSONObject param : params) {
String webSiteName = params.get("webSiteName").toString(); String subjectId = param.get("subjectId").toString();
String status = params.get("status").toString(); String webSiteName = param.get("webSiteName").toString();
String status = param.get("status").toString();
if ("1".equals(status)) { if ("1".equals(status)) {
List<InfoSource> infoSources = infoSourceService.directSourceColumnList(webSiteName); List<InfoSource> infoSources = infoSourceService.directSourceColumnList(webSiteName);
List<String> sourceIds = infoSources.stream().map(InfoSource::getId).collect(Collectors.toList()); List<String> sourceIds = infoSources.stream().map(InfoSource::getId).collect(Collectors.toList());
...@@ -810,6 +811,7 @@ public class SubjectManageController { ...@@ -810,6 +811,7 @@ public class SubjectManageController {
} else if ("0".equals(status)) { } else if ("0".equals(status)) {
subjectInfoSourceMiddleMapService.remove(new LambdaQueryWrapper<SubjectInfoSourceMiddleMap>().eq(SubjectInfoSourceMiddleMap::getSubjectId, subjectId).eq(SubjectInfoSourceMiddleMap::getInfoSourceName, webSiteName)); subjectInfoSourceMiddleMapService.remove(new LambdaQueryWrapper<SubjectInfoSourceMiddleMap>().eq(SubjectInfoSourceMiddleMap::getSubjectId, subjectId).eq(SubjectInfoSourceMiddleMap::getInfoSourceName, webSiteName));
} }
}
return Result.OK(); return Result.OK();
} }
......
package com.zzsn.event.controller.common; package com.zzsn.event.controller.common;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zzsn.event.constant.Result; import com.zzsn.event.constant.Result;
import com.zzsn.event.entity.InfoSource; import com.zzsn.event.entity.InfoSource;
import com.zzsn.event.entity.Subject; import com.zzsn.event.entity.Subject;
...@@ -15,6 +17,7 @@ import com.zzsn.event.vo.*; ...@@ -15,6 +17,7 @@ import com.zzsn.event.vo.*;
import com.zzsn.event.vo.es.Label; import com.zzsn.event.vo.es.Label;
import com.zzsn.event.vo.es.SpecialInformation; import com.zzsn.event.vo.es.SpecialInformation;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -52,7 +55,7 @@ public class StatisticalAnalysisController { ...@@ -52,7 +55,7 @@ public class StatisticalAnalysisController {
* @author lkg * @author lkg
* @date 2024/12/26 * @date 2024/12/26
*/ */
@GetMapping("overview") @PostMapping("overview")
public Result<OverviewAnalysisVO> overviewAnalysis(@RequestBody InfoDataSearchCondition searchCondition) { public Result<OverviewAnalysisVO> overviewAnalysis(@RequestBody InfoDataSearchCondition searchCondition) {
OverviewAnalysisVO overviewAnalysisVO = new OverviewAnalysisVO(); OverviewAnalysisVO overviewAnalysisVO = new OverviewAnalysisVO();
Subject subject = subjectService.getById(searchCondition.getSubjectId()); Subject subject = subjectService.getById(searchCondition.getSubjectId());
...@@ -114,7 +117,7 @@ public class StatisticalAnalysisController { ...@@ -114,7 +117,7 @@ public class StatisticalAnalysisController {
format = "yyyy-MM"; format = "yyyy-MM";
} else if ("day".equalsIgnoreCase(groupType)) { } else if ("day".equalsIgnoreCase(groupType)) {
format = "yyyy-MM-dd"; format = "yyyy-MM-dd";
} else if ("hout".equalsIgnoreCase(groupType)) { } else if ("hour".equalsIgnoreCase(groupType)) {
format = "HH:00:00"; format = "HH:00:00";
} }
if (format != null) { if (format != null) {
...@@ -171,13 +174,13 @@ public class StatisticalAnalysisController { ...@@ -171,13 +174,13 @@ public class StatisticalAnalysisController {
public Result<?> dataSource(@RequestBody InfoDataSearchCondition searchCondition) { public Result<?> dataSource(@RequestBody InfoDataSearchCondition searchCondition) {
List<CountVO> dataList = new ArrayList<>(); List<CountVO> dataList = new ArrayList<>();
List<Label> bindLabelList = bindLabelList(searchCondition.getSubjectId()); List<Label> bindLabelList = bindLabelList(searchCondition.getSubjectId());
Map<String, Label> labelMap = bindLabelList.stream().collect(Collectors.toMap(Label::getRelationId, label -> label));
if (CollectionUtils.isEmpty(searchCondition.getIds()) && searchCondition.getNum() == null) { if (CollectionUtils.isEmpty(searchCondition.getIds()) && searchCondition.getNum() == null) {
List<String> includeValues = new ArrayList<>(); List<String> includeValues = new ArrayList<>();
bindLabelList.forEach(e -> includeValues.add(e.getRelationId())); bindLabelList.forEach(e -> includeValues.add(e.getRelationId()));
searchCondition.setIncludeValues(includeValues.toArray(new String[0])); searchCondition.setIncludeValues(includeValues.toArray(new String[0]));
dataList = esService.groupByInfoSourceTag(searchCondition); dataList = esService.groupByInfoSourceTag(searchCondition);
} else { } else {
Map<String, Label> labelMap = bindLabelList.stream().collect(Collectors.toMap(Label::getRelationId, label -> label));
String[] fetchFields = new String[]{"id", "labels"}; String[] fetchFields = new String[]{"id", "labels"};
searchCondition.setFetchFields(fetchFields); searchCondition.setFetchFields(fetchFields);
List<SpecialInformation> specialInformationList = esService.informationList(searchCondition); List<SpecialInformation> specialInformationList = esService.informationList(searchCondition);
...@@ -185,10 +188,35 @@ public class StatisticalAnalysisController { ...@@ -185,10 +188,35 @@ public class StatisticalAnalysisController {
for (Map.Entry<String, List<SpecialInformation>> entry : map.entrySet()) { for (Map.Entry<String, List<SpecialInformation>> entry : map.entrySet()) {
CountVO countVO = new CountVO(); CountVO countVO = new CountVO();
String key = entry.getKey(); String key = entry.getKey();
countVO.setName(labelMap.get(key).getRelationName()); countVO.setName(key);
countVO.setValue((long) entry.getValue().size()); countVO.setValue((long) entry.getValue().size());
} }
} }
if (CollectionUtils.isNotEmpty(dataList)) {
for (CountVO countVO : dataList) {
String name = countVO.getName();
Label label = labelMap.get(name);
if (label != null) {
countVO.setName(label.getRelationName());
labelMap.remove(name);
}
}
if (MapUtils.isNotEmpty(labelMap)) {
dataList.addAll(labelMap.values().stream().map(e -> {
CountVO countVO = new CountVO();
countVO.setName(e.getRelationName());
countVO.setValue(0L);
return countVO;
}).collect(Collectors.toList()));
}
} else {
for (Label label : bindLabelList) {
CountVO countVO = new CountVO();
countVO.setName(label.getRelationName());
countVO.setValue(0L);
dataList.add(countVO);
}
}
return Result.OK(dataList); return Result.OK(dataList);
} }
...@@ -202,7 +230,11 @@ public class StatisticalAnalysisController { ...@@ -202,7 +230,11 @@ public class StatisticalAnalysisController {
@PostMapping("/infoSource/dataCount/top") @PostMapping("/infoSource/dataCount/top")
public Result<?> infoSourceDataCountTop(@RequestBody InfoDataSearchCondition searchCondition) { public Result<?> infoSourceDataCountTop(@RequestBody InfoDataSearchCondition searchCondition) {
List<CountVO> dataList = new ArrayList<>(); List<CountVO> dataList = new ArrayList<>();
List<String> sourceIdList = searchCondition.getSourceIdList();
if (CollectionUtils.isEmpty(searchCondition.getIds()) && searchCondition.getNum() == null) { if (CollectionUtils.isEmpty(searchCondition.getIds()) && searchCondition.getNum() == null) {
if (CollectionUtils.isNotEmpty(sourceIdList)) {
searchCondition.setIncludeValues(sourceIdList.toArray(new String[0]));
}
dataList = esService.groupBySourceId(searchCondition); dataList = esService.groupBySourceId(searchCondition);
} else { } else {
String[] fetchFields = new String[]{"id", "sid"}; String[] fetchFields = new String[]{"id", "sid"};
...@@ -211,8 +243,11 @@ public class StatisticalAnalysisController { ...@@ -211,8 +243,11 @@ public class StatisticalAnalysisController {
Map<String, List<SpecialInformation>> map = informationList.stream() Map<String, List<SpecialInformation>> map = informationList.stream()
.collect(Collectors.groupingBy(SpecialInformation::getSid)); .collect(Collectors.groupingBy(SpecialInformation::getSid));
for (Map.Entry<String, List<SpecialInformation>> entry : map.entrySet()) { for (Map.Entry<String, List<SpecialInformation>> entry : map.entrySet()) {
CountVO countVO = new CountVO();
String sid = entry.getKey(); String sid = entry.getKey();
if (CollectionUtils.isNotEmpty(sourceIdList) && (!sourceIdList.contains(sid))) {
continue;
}
CountVO countVO = new CountVO();
countVO.setName(sid); countVO.setName(sid);
countVO.setValue((long) entry.getValue().size()); countVO.setValue((long) entry.getValue().size());
dataList.add(countVO); dataList.add(countVO);
...@@ -220,12 +255,16 @@ public class StatisticalAnalysisController { ...@@ -220,12 +255,16 @@ public class StatisticalAnalysisController {
} }
if (CollectionUtils.isNotEmpty(dataList)) { if (CollectionUtils.isNotEmpty(dataList)) {
List<String> sidList = dataList.stream().map(CountVO::getName).collect(Collectors.toList()); List<String> sidList = dataList.stream().map(CountVO::getName).collect(Collectors.toList());
List<InfoSource> infoSources = infoSourceService.listByIds(sidList); LambdaQueryWrapper<InfoSource> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.select(InfoSource::getId, InfoSource::getSiteName).in(InfoSource::getId, sidList);
List<InfoSource> infoSources = infoSourceService.list(queryWrapper);
Map<String, InfoSource> sourceMap = infoSources.stream().collect(Collectors.toMap(InfoSource::getId, infoSource -> infoSource)); Map<String, InfoSource> sourceMap = infoSources.stream().collect(Collectors.toMap(InfoSource::getId, infoSource -> infoSource));
for (CountVO countVO : dataList) { for (CountVO countVO : dataList) {
String sid = countVO.getName(); String sid = countVO.getName();
InfoSource infoSource = sourceMap.get(sid); InfoSource infoSource = sourceMap.get(sid);
countVO.setName(infoSource.getWebSiteName()); if (infoSource != null) {
countVO.setName(infoSource.getSiteName());
}
} }
} }
return Result.OK(dataList); return Result.OK(dataList);
...@@ -240,15 +279,32 @@ public class StatisticalAnalysisController { ...@@ -240,15 +279,32 @@ public class StatisticalAnalysisController {
* @date 2024/12/30 * @date 2024/12/30
*/ */
private void changeKey(List<CountVO> dataList, String dictCode) { private void changeKey(List<CountVO> dataList, String dictCode) {
if (CollectionUtils.isNotEmpty(dataList)) {
List<SysDictItem> dictItemList = sysDictItemService.listByDictCode(dictCode); List<SysDictItem> dictItemList = sysDictItemService.listByDictCode(dictCode);
if (CollectionUtils.isNotEmpty(dataList)) {
Map<String, List<SysDictItem>> map = dictItemList.stream().collect(Collectors.groupingBy(SysDictItem::getItemValue)); Map<String, List<SysDictItem>> map = dictItemList.stream().collect(Collectors.groupingBy(SysDictItem::getItemValue));
for (CountVO countVO : dataList) { for (CountVO countVO : dataList) {
List<SysDictItem> sysDictItemList = map.get(countVO.getName()); String name = countVO.getName();
List<SysDictItem> sysDictItemList = map.get(name);
if (CollectionUtils.isNotEmpty(sysDictItemList)) { if (CollectionUtils.isNotEmpty(sysDictItemList)) {
countVO.setName(sysDictItemList.get(0).getItemText()); countVO.setName(sysDictItemList.get(0).getItemText());
map.remove(name);
} }
} }
if (MapUtils.isNotEmpty(map)) {
dataList.addAll(map.values().stream().map(e -> {
CountVO countVO = new CountVO();
countVO.setName(e.get(0).getItemText());
countVO.setValue(0L);
return countVO;
}).collect(Collectors.toList()));
}
} else {
for (SysDictItem sysDictItem : dictItemList) {
CountVO countVO = new CountVO();
countVO.setName(sysDictItem.getItemText());
countVO.setValue(0L);
dataList.add(countVO);
}
} }
} }
...@@ -264,12 +320,12 @@ public class StatisticalAnalysisController { ...@@ -264,12 +320,12 @@ public class StatisticalAnalysisController {
List<InfoSourceLabelVO> infoSourceLabelInfos = clbLabelService.bindInfoSourceLabelInfo(subjectId); List<InfoSourceLabelVO> infoSourceLabelInfos = clbLabelService.bindInfoSourceLabelInfo(subjectId);
if (ObjectUtil.isNotEmpty(infoSourceLabelInfos)) { if (ObjectUtil.isNotEmpty(infoSourceLabelInfos)) {
for (InfoSourceLabelVO infoSourceLabel : infoSourceLabelInfos) { for (InfoSourceLabelVO infoSourceLabel : infoSourceLabelInfos) {
String labelCode = infoSourceLabel.getLabelCode();
List<InfoSourceLabelItemVO> infoSourceLabelItemList = infoSourceLabel.getInfoSourceLabelItemList(); List<InfoSourceLabelItemVO> infoSourceLabelItemList = infoSourceLabel.getInfoSourceLabelItemList();
for (InfoSourceLabelItemVO infoSourceLabelItem : infoSourceLabelItemList) { for (InfoSourceLabelItemVO infoSourceLabelItem : infoSourceLabelItemList) {
Label label = new Label(); Label label = new Label();
label.setRelationName(infoSourceLabelItem.getLabelItemName()); label.setRelationName(infoSourceLabelItem.getLabelItemName());
label.setRelationId(labelCode + "_" +infoSourceLabelItem.getLabelItemCode()); label.setRelationId(infoSourceLabelItem.getLabelItemCode());
labels.add(label);
} }
} }
} }
......
...@@ -1477,7 +1477,7 @@ public class EsService { ...@@ -1477,7 +1477,7 @@ public class EsService {
if ("year".equalsIgnoreCase(groupType)) { if ("year".equalsIgnoreCase(groupType)) {
aggregationBuilder = AggregationBuilders.dateHistogram("groupYear") aggregationBuilder = AggregationBuilders.dateHistogram("groupYear")
.field("publishDate") .field("publishDate")
.calendarInterval(DateHistogramInterval.MONTH) .calendarInterval(DateHistogramInterval.YEAR)
.format("yyyy"); .format("yyyy");
} }
if ("month".equalsIgnoreCase(groupType)) { if ("month".equalsIgnoreCase(groupType)) {
...@@ -1648,6 +1648,9 @@ public class EsService { ...@@ -1648,6 +1648,9 @@ public class EsService {
searchSourceBuilder.query(boolQuery); searchSourceBuilder.query(boolQuery);
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(groupName); TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(groupName);
aggregationBuilder.field(field); aggregationBuilder.field(field);
if (!Objects.isNull(searchCondition.getIncludeValues()) || !Objects.isNull(searchCondition.getExcludeValues())) {
aggregationBuilder.includeExclude(new IncludeExclude(searchCondition.getIncludeValues(), searchCondition.getExcludeValues()));
}
Integer size = searchCondition.getPageSize(); Integer size = searchCondition.getPageSize();
if (size != null) { if (size != null) {
aggregationBuilder.size(size); aggregationBuilder.size(size);
......
...@@ -12,18 +12,10 @@ ...@@ -12,18 +12,10 @@
</resultMap> </resultMap>
<select id="bindInfoSourceLabelInfo" resultMap="labelMap"> <select id="bindInfoSourceLabelInfo" resultMap="labelMap">
select label.label_code, label.label_name, item.label_item_code, item.label_item_name select label.label_code, label.label_name, item.label_item_code, item.label_item_name
from subject_info_source_map m on s.id = m.subject_id from subject_info_source_map m
left join clb_label label inner join clb_label_item item on m.source_item_id = item.label_item_code
on m.source_id = label.label_code inner join clb_label label on item.label_id = label.id
left join clb_label_item item on label.id = item.label_id where m.subject_id = #{subjectId} and m.type = 12
where m.subject_id = #{subjectId} and m.type = 6
union
select label.label_code, label.label_name, item.label_item_code, item.label_item_name
from subject_info_source_map m on s.id = m.subject_id
left join clb_label_item item
on m.source_id = item.label_item_code
left join clb_label label on item.label_id = label.id
where m.subject_id = #{subjectId} and m.type = 7
</select> </select>
<select id="labelInfoByType" resultMap="labelMap"> <select id="labelInfoByType" resultMap="labelMap">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论