123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package com.shkpr.service.alambizplugin.commtools;
- import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
- import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
- import com.shkpr.service.alambizplugin.dto.GisMetadataLayerTemplate;
- import com.shkpr.service.alambizplugin.dto.GisMetadataPropertyTemplate;
- import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApply;
- import org.apache.commons.lang3.StringUtils;
- import java.util.List;
- import java.util.Map;
- import java.util.Objects;
- /**
- * 第三方导入模版工具类
- *
- * @author 欧阳劲驰
- * @since 1.0.0
- */
- public class ThirdImportTemplateUtils {
- /**
- * 获取图层模版
- *
- * @param data 数据
- * @param layerTemplates 图层模版
- * @param kind 数据类型
- * @return 图层模版
- */
- public static GisMetadataLayerTemplate getLayerTemplate(Map<String, String> data
- , List<GisMetadataLayerTemplate> layerTemplates, String kind) {
- //图层文件key
- String layKey = null;
- if (Objects.equals(kind, GisMetadataDefine.TYPE_KINE.POINT))
- layKey = GisSurveyExcelDefine.FILE.POINT_LAYER;
- if (Objects.equals(kind, GisMetadataDefine.TYPE_KINE.LINE))
- layKey = GisSurveyExcelDefine.FILE.LINE_LAYER;
- if (layKey == null) return null;
- //过滤对应模版
- String finalLayKey = layKey;
- return layerTemplates.stream()
- .filter(template -> StringUtils.isNotBlank(template.getName())
- && Objects.equals(template.getName(), data.get(finalLayKey))
- && Objects.equals(template.getKind(), kind)
- )
- .findFirst().orElse(null);
- }
- /**
- * 获取图层模版
- *
- * @param data 数据
- * @param layerTemplates 图层模版
- * @return 图层模版
- */
- public static GisMetadataLayerTemplate getLayerTemplate(GisSurveyLayerApply data, List<GisMetadataLayerTemplate> layerTemplates) {
- if (StringUtils.isBlank(data.getLayer()) || StringUtils.isBlank(data.getKind())) return null;
- //过滤对应模版
- return layerTemplates.stream()
- .filter(template -> StringUtils.isNotBlank(template.getName())
- && Objects.equals(template.getKey(), data.getLayer())
- && Objects.equals(template.getKind(), data.getKind())
- )
- .findFirst().orElse(null);
- }
- /**
- * 获取属性模版
- *
- * @param data 数据
- * @param layerTemplates 图层模版集合
- * @param kind 数据类型
- * @param propertyKey 属性模版key
- * @return 点号
- */
- public static GisMetadataPropertyTemplate getPropertyTemplate(Map<String, String> data
- , List<GisMetadataLayerTemplate> layerTemplates
- , String kind, String propertyKey) {
- //提取图层模版
- GisMetadataLayerTemplate layerTemplate = getLayerTemplate(data, layerTemplates, kind);
- if (layerTemplate == null) return null;
- //提取点号模版
- return layerTemplate.getPropertyTemplates().stream()
- .filter(template -> Objects.equals(propertyKey, template.getKey()))
- .findFirst().orElse(null);
- }
- /**
- * 获取属性模版
- *
- * @param layerTemplate 图层模版
- * @param propertyKey 属性模版key
- * @return 点号
- */
- public static GisMetadataPropertyTemplate getPropertyTemplate(GisMetadataLayerTemplate layerTemplate, String propertyKey) {
- //提取点号模版
- return layerTemplate.getPropertyTemplates().stream()
- .filter(template -> Objects.equals(propertyKey, template.getKey()))
- .findFirst().orElse(null);
- }
- /**
- * 获取值
- *
- * @param data 数据
- * @param propertyTemplate 属性模版
- * @return 点号
- */
- public static String getValue(Map<String, String> data, GisMetadataPropertyTemplate propertyTemplate) {
- //排除空模版
- if (propertyTemplate == null || StringUtils.isBlank(propertyTemplate.getName())) return null;
- //获取点号
- return data.get(propertyTemplate.getName());
- }
- /**
- * 获取值
- *
- * @param data 数据
- * @param layerTemplate 图层模版
- * @param propertyKey 属性模版key
- * @return 点号
- */
- public static String getValue(Map<String, String> data, GisMetadataLayerTemplate layerTemplate
- , String propertyKey) {
- //排除空模版
- if (layerTemplate == null) return null;
- //提取点号模版
- GisMetadataPropertyTemplate propertyTemplate = layerTemplate.getPropertyTemplates().stream()
- .filter(template -> Objects.equals(propertyKey, template.getKey()))
- .findFirst().orElse(null);
- if (propertyTemplate == null || StringUtils.isBlank(propertyTemplate.getName())) return null;
- //获取点号
- return data.get(propertyTemplate.getName());
- }
- /**
- * 获取值
- *
- * @param data 数据
- * @param layerTemplates 图层模版集合
- * @param kind 数据类型
- * @param propertyKey 属性模版key
- * @return 点号
- */
- public static String getValue(Map<String, String> data, List<GisMetadataLayerTemplate> layerTemplates
- , String kind, String propertyKey) {
- //提取图层模版
- GisMetadataLayerTemplate layerTemplate = getLayerTemplate(data, layerTemplates, kind);
- return getValue(data, layerTemplate, propertyKey);
- }
- }
|