|
@@ -13,6 +13,7 @@ import com.fdkankan.indoor.core.mapper.PoiMapper;
|
|
|
import com.fdkankan.indoor.core.service.DataSetService;
|
|
|
import com.fdkankan.indoor.core.service.PoiService;
|
|
|
import com.fdkankan.indoor.core.service.PoiTypeService;
|
|
|
+import com.fdkankan.indoor.core.service.SiteModelService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
@@ -44,6 +45,9 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
|
|
|
@Autowired
|
|
|
DataSetService dataSetService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ SiteModelService siteModelService;
|
|
|
+
|
|
|
@Override
|
|
|
public void remove(String sceneCode) {
|
|
|
entityMapper.deleteById(sceneCode);
|
|
@@ -71,7 +75,6 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
|
|
|
String originalFilename = file.getOriginalFilename();
|
|
|
String suffix = StrUtil.subAfter(originalFilename, ".", true);
|
|
|
|
|
|
-// String newName = DateUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS");
|
|
|
UUID uuid = UUID.randomUUID();
|
|
|
String newName = "poi-" + uuid + "." + suffix;
|
|
|
|
|
@@ -239,20 +242,20 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
|
|
|
|
|
|
// site_model_entity 必要条件
|
|
|
List<Integer> siteModelIds = param.getSite_model_entity();
|
|
|
+ log.info("输入siteModelIds: {}", siteModelIds);
|
|
|
if (siteModelIds == null) {
|
|
|
return Result.success();
|
|
|
}
|
|
|
- data = data.stream().filter(p -> siteModelIds.contains(p.getSite_model_entity_id())).collect(Collectors.toList());
|
|
|
+ // 2021-10-14 查找本身或者儿子
|
|
|
+ Set<Integer> conditionIds = getSiteModelIds(siteModelIds, sceneCode);
|
|
|
+ log.info("siteModelIds: {}", conditionIds);
|
|
|
+ data = data.stream().filter(p -> conditionIds.contains(p.getSite_model_entity_id())).collect(Collectors.toList());
|
|
|
|
|
|
// Poi_type 非必要条件
|
|
|
List<Integer> poiTypeIds = param.getPoi_type();
|
|
|
if (poiTypeIds != null) {
|
|
|
data = data.stream().filter(p -> poiTypeIds.contains(p.getPoi_type_id())).collect(Collectors.toList());
|
|
|
}
|
|
|
-// data = data.stream().filter(p -> poiTypeIds.contains(p.getPoi_type_id())).collect(Collectors.toList());
|
|
|
-// if (siteModelIds.size() == 0 || poiTypeIds.size() == 0) {
|
|
|
-// return Result.success();
|
|
|
-// }
|
|
|
|
|
|
|
|
|
if (data.size() == 0) {
|
|
@@ -325,6 +328,25 @@ public class PoiServiceImpl extends IBaseServiceImpl implements PoiService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
+ * 2021-10-14
|
|
|
+ * 查找输入的siteModelIds的id(包含本身)和儿子id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Set<Integer> getSiteModelIds(List<Integer> siteModelIds, String sceneCode){
|
|
|
+ HashSet<Integer> set = new HashSet<>();
|
|
|
+ for (Integer siteModelId : siteModelIds) {
|
|
|
+ if (siteModelId == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<Integer> idAndSon = siteModelService.findBySceneCodeAndIdAndSon(sceneCode, siteModelId);
|
|
|
+ // 去重
|
|
|
+ set.addAll(idAndSon);
|
|
|
+ }
|
|
|
+ return set;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
* 计算最小距离
|
|
|
* @param queryJsonData
|
|
|
* @return 获取最小值对象
|