Merge pull request #10465 from dataease/pr@dev@refactor_ypy

refactor(视图): 优化同环比日期字段过滤逻辑
This commit is contained in:
Junjun 2024-06-24 15:02:59 +08:00 committed by GitHub
commit e0a75f0379
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 1 deletions

View File

@ -856,6 +856,7 @@ public class ChartViewService {
ChartExtFilterRequest filterRequest = new ChartExtFilterRequest();
BeanUtils.copyBean(filterRequest, request);
filterRequest.setDatasetTableFieldList(new ArrayList<>());
filterRequest.setFilterType(0);
for (String fId : fieldIds) {
DatasetTableField datasetTableField = dataSetTableFieldsService.get(fId);
if (datasetTableField == null) {
@ -881,6 +882,7 @@ public class ChartViewService {
ChartExtFilterRequest filterRequest = new ChartExtFilterRequest();
BeanUtils.copyBean(filterRequest, request);
filterRequest.setFieldId(fId);
filterRequest.setFilterType(0);
DatasetTableField datasetTableField = dataSetTableFieldsService.get(fId);
if (datasetTableField == null) {
@ -921,6 +923,7 @@ public class ChartViewService {
DatasetTableField datasetTableField = dataSetTableFieldsService.get(request.getFieldId());
if (!desensitizationList.keySet().contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) {
request.setDatasetTableField(datasetTableField);
request.setFilterType(2);
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) {
// 设置日期格式以视图字段设置的格式为准先不处理组件的条件因为格式无法统一
if (request.getDatasetTableField() != null) {
@ -1026,6 +1029,7 @@ public class ChartViewService {
tmpFilter.setDatePattern(chartFieldMap.get(tmpField.getId()).getDatePattern());
tmpFilter.setFieldId(tmpField.getId());
tmpFilter.setValue(Collections.singletonList(dimValMap.get(tmpField.getId())));
tmpFilter.setFilterType(1);
extFilterList.add(tmpFilter);
drillFilters.add(tmpFilter);
}
@ -1105,7 +1109,7 @@ public class ChartViewService {
if (StringUtils.isNotEmpty(compareCalc.getType())
&& !StringUtils.equalsIgnoreCase(compareCalc.getType(), "none")) {
if (Arrays.asList(ChartConstants.M_Y).contains(compareCalc.getType())) {
if (StringUtils.equalsIgnoreCase(compareCalc.getField() + "", filterDTO.getFieldId())) {
if (StringUtils.equalsIgnoreCase(compareCalc.getField() + "", filterDTO.getFieldId()) && filterDTO.getFilterType() == 0) {
// -1 year
try {
Calendar calendar = Calendar.getInstance();

View File

@ -36,4 +36,6 @@ public class ChartExtFilterRequest {
private String dateStyle;
@ApiModelProperty("日期格式")
private String datePattern;
@ApiModelProperty("过滤类型")
private int filterType;// 0-过滤组件1-下钻2-联动外部参数
}