ThirdImportTemplateUtils.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.shkpr.service.alambizplugin.commtools;
  2. import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
  3. import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
  4. import com.shkpr.service.alambizplugin.dto.GisMetadataLayerTemplate;
  5. import com.shkpr.service.alambizplugin.dto.GisMetadataPropertyTemplate;
  6. import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApply;
  7. import org.apache.commons.lang3.StringUtils;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.Objects;
  11. /**
  12. * 第三方导入模版工具类
  13. *
  14. * @author 欧阳劲驰
  15. * @since 1.0.0
  16. */
  17. public class ThirdImportTemplateUtils {
  18. /**
  19. * 获取图层模版
  20. *
  21. * @param data 数据
  22. * @param layerTemplates 图层模版
  23. * @param kind 数据类型
  24. * @return 图层模版
  25. */
  26. public static GisMetadataLayerTemplate getLayerTemplate(Map<String, String> data
  27. , List<GisMetadataLayerTemplate> layerTemplates, String kind) {
  28. //图层文件key
  29. String layKey = null;
  30. if (Objects.equals(kind, GisMetadataDefine.TYPE_KINE.POINT))
  31. layKey = GisSurveyExcelDefine.FILE.POINT_LAYER;
  32. if (Objects.equals(kind, GisMetadataDefine.TYPE_KINE.LINE))
  33. layKey = GisSurveyExcelDefine.FILE.LINE_LAYER;
  34. if (layKey == null) return null;
  35. //过滤对应模版
  36. String finalLayKey = layKey;
  37. return layerTemplates.stream()
  38. .filter(template -> StringUtils.isNotBlank(template.getName())
  39. && Objects.equals(template.getName(), data.get(finalLayKey))
  40. && Objects.equals(template.getKind(), kind)
  41. )
  42. .findFirst().orElse(null);
  43. }
  44. /**
  45. * 获取图层模版
  46. *
  47. * @param data 数据
  48. * @param layerTemplates 图层模版
  49. * @return 图层模版
  50. */
  51. public static GisMetadataLayerTemplate getLayerTemplate(GisSurveyLayerApply data, List<GisMetadataLayerTemplate> layerTemplates) {
  52. if (StringUtils.isBlank(data.getLayer()) || StringUtils.isBlank(data.getKind())) return null;
  53. //过滤对应模版
  54. return layerTemplates.stream()
  55. .filter(template -> StringUtils.isNotBlank(template.getName())
  56. && Objects.equals(template.getKey(), data.getLayer())
  57. && Objects.equals(template.getKind(), data.getKind())
  58. )
  59. .findFirst().orElse(null);
  60. }
  61. /**
  62. * 获取属性模版
  63. *
  64. * @param data 数据
  65. * @param layerTemplates 图层模版集合
  66. * @param kind 数据类型
  67. * @param propertyKey 属性模版key
  68. * @return 点号
  69. */
  70. public static GisMetadataPropertyTemplate getPropertyTemplate(Map<String, String> data
  71. , List<GisMetadataLayerTemplate> layerTemplates
  72. , String kind, String propertyKey) {
  73. //提取图层模版
  74. GisMetadataLayerTemplate layerTemplate = getLayerTemplate(data, layerTemplates, kind);
  75. if (layerTemplate == null) return null;
  76. //提取点号模版
  77. return layerTemplate.getPropertyTemplates().stream()
  78. .filter(template -> Objects.equals(propertyKey, template.getKey()))
  79. .findFirst().orElse(null);
  80. }
  81. /**
  82. * 获取属性模版
  83. *
  84. * @param layerTemplate 图层模版
  85. * @param propertyKey 属性模版key
  86. * @return 点号
  87. */
  88. public static GisMetadataPropertyTemplate getPropertyTemplate(GisMetadataLayerTemplate layerTemplate, String propertyKey) {
  89. //提取点号模版
  90. return layerTemplate.getPropertyTemplates().stream()
  91. .filter(template -> Objects.equals(propertyKey, template.getKey()))
  92. .findFirst().orElse(null);
  93. }
  94. /**
  95. * 获取值
  96. *
  97. * @param data 数据
  98. * @param propertyTemplate 属性模版
  99. * @return 点号
  100. */
  101. public static String getValue(Map<String, String> data, GisMetadataPropertyTemplate propertyTemplate) {
  102. //排除空模版
  103. if (propertyTemplate == null || StringUtils.isBlank(propertyTemplate.getName())) return null;
  104. //获取点号
  105. return data.get(propertyTemplate.getName());
  106. }
  107. /**
  108. * 获取值
  109. *
  110. * @param data 数据
  111. * @param layerTemplate 图层模版
  112. * @param propertyKey 属性模版key
  113. * @return 点号
  114. */
  115. public static String getValue(Map<String, String> data, GisMetadataLayerTemplate layerTemplate
  116. , String propertyKey) {
  117. //排除空模版
  118. if (layerTemplate == null) return null;
  119. //提取点号模版
  120. GisMetadataPropertyTemplate propertyTemplate = layerTemplate.getPropertyTemplates().stream()
  121. .filter(template -> Objects.equals(propertyKey, template.getKey()))
  122. .findFirst().orElse(null);
  123. if (propertyTemplate == null || StringUtils.isBlank(propertyTemplate.getName())) return null;
  124. //获取点号
  125. return data.get(propertyTemplate.getName());
  126. }
  127. /**
  128. * 获取值
  129. *
  130. * @param data 数据
  131. * @param layerTemplates 图层模版集合
  132. * @param kind 数据类型
  133. * @param propertyKey 属性模版key
  134. * @return 点号
  135. */
  136. public static String getValue(Map<String, String> data, List<GisMetadataLayerTemplate> layerTemplates
  137. , String kind, String propertyKey) {
  138. //提取图层模版
  139. GisMetadataLayerTemplate layerTemplate = getLayerTemplate(data, layerTemplates, kind);
  140. return getValue(data, layerTemplate, propertyKey);
  141. }
  142. }