Browse Source

【图层】完成查询右侧菜单接口

master
wangxianzhang 3 years ago
parent
commit
6b5c09b3cb
  1. 47
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java
  2. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java
  3. 69
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java
  4. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java
  5. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java
  6. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java
  7. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java
  8. 72
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java

47
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoverageEnums.java

@ -0,0 +1,47 @@
package com.epmet.commons.tools.enums;
/**
* 图层枚举
*/
public enum CoverageEnums {
ZHZL("zhzl", "综合治理图层", 1),
YJCL("yjcl", "应急处置资源", 2),
AQSC("aqsc", "安全生产资源", 2),
CSGL("csgl", "城市管理资源", 2),
GGFW("ggfw", "公共服务资源", 2);
private String coverageType;
private String coverageName;
/** 位置,1:左侧,2,右侧**/
private Integer position;
CoverageEnums(String coverageType, String coverageName, Integer position) {
this.coverageType = coverageType;
this.coverageName = coverageName;
this.position = position;
}
public static CoverageEnums getEnum(String coverageType) {
CoverageEnums[] values = CoverageEnums.values();
for (CoverageEnums value : values) {
if (value.getCoverageType().equals(coverageType)) {
return value;
}
}
return null;
}
public String getCoverageType() {
return coverageType;
}
public String getCoverageName() {
return coverageName;
}
public Integer getPosition() {
return position;
}
}

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java

@ -14,6 +14,7 @@ public enum CoveragePlaceTypeEnum {
PUBLIC_SERVICE("public_service", "公共服务"),
RESI("resi", "居民"),
PARTY_UNIT("party_unit", "联建单位"),
VOLUNTEER("volunteer", "志愿者"),
GROUP_RENT("group_rent", "群租房"),
EVENT("event", "事件(包括难点堵点)");

69
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java

@ -0,0 +1,69 @@
package com.epmet.dataaggre.dto.coverage;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* 五大图层-可视化-右侧分类树列表
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AnalysisResourceCategoriesResult {
/**
* 图层类型
*/
private String coverageType;
/**
* 图层名称
*/
private String coverageName;
/**
* 个数
*/
private Integer count;
/**
* 没有placeTypeInAnalysis直接属于图层的
*/
private List<Category> categories = new ArrayList<>();
/**
* 场所类型有placeTypeInAnalysis不直接属于图层的
*/
private List<PlaceType> placeTypesInAnalysis = new ArrayList<>();
/**
* 分类
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Category {
private String categoryKey;
private String categoryName;
private String coverageType;
private String placeType;
private Integer count = 0;
}
/**
* 场所类型
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class PlaceType {
private String placeType;
private String placeTypeName;
private Integer count = 0;
private List<Category> categories;
}
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.enums.ZhzlResiCategoryEnum;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult;
import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListFormDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO;
@ -72,4 +73,14 @@ public class CoverageController {
return new Result<CoverageHomeSearchResultDTO>().ok(coverageService.coverageHomeSearch(formDTO));
}
/**
* 五大图层-可视化-右侧分类树列表
* @return
*/
@PostMapping("analysis/resourceCategories")
public Result<List<AnalysisResourceCategoriesResult>> listAnalysisResourceCategories() {
List<AnalysisResourceCategoriesResult> r = coverageService.listAnalysisResourceCategories();
return new Result<List<AnalysisResourceCategoriesResult>>().ok(r);
}
}

6
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java

@ -1,6 +1,7 @@
package com.epmet.dataaggre.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO;
@ -31,4 +32,9 @@ public interface CoverageService {
*/
CoverageHomeSearchResultDTO coverageHomeSearch(CoverageHomeSearchFormDTO formDTO);
/**
* 五大图层-可视化-右侧分类树列表
* @return
*/
List<AnalysisResourceCategoriesResult> listAnalysisResourceCategories();
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java

@ -137,4 +137,6 @@ public interface GovOrgCoverageService {
* @return
*/
IcCoverageCategoryDictEntity selectByCategoryKey(String categoryKey);
List<IcCoverageCategoryDictEntity> listCoverageCategoryEntities(String coverageType);
}

9
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java

@ -324,4 +324,13 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService {
query.ge(IcHouseEntity::getResiNumber, resiNumberBiggerThan);
return query;
}
@Override
public List<IcCoverageCategoryDictEntity> listCoverageCategoryEntities(String coverageType) {
LambdaQueryWrapper<IcCoverageCategoryDictEntity> query = new LambdaQueryWrapper<>();
query.eq(IcCoverageCategoryDictEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId());
query.eq(IcCoverageCategoryDictEntity::getCoverageType, coverageType);
query.orderByAsc(IcCoverageCategoryDictEntity::getSort);
return coverageCategoryDictDao.selectList(query);
}
}

72
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java

@ -1,12 +1,15 @@
package com.epmet.dataaggre.service.impl;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.CoverageEnums;
import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult;
import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO;
@ -30,8 +33,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@Slf4j
@ -53,6 +58,9 @@ public class CoverageServiceImpl implements CoverageService {
@Autowired
private GovProjectService govProjectService;
@Autowired
private GovOrgCoverageService govOrgCoverageService;
/**
* 场所类型常量
*/
@ -452,4 +460,68 @@ public class CoverageServiceImpl implements CoverageService {
}
return new String[]{longitude, latitude};
}
/**
* 五大图层-可视化-右侧分类树列表
* @return
*/
@Override
public List<AnalysisResourceCategoriesResult> listAnalysisResourceCategories() {
//结果集
ArrayList<AnalysisResourceCategoriesResult> results = new ArrayList<>();
// 1.查询categoryDict表得到基础数据,每个图层循环一次
for (CoverageEnums coverage : CoverageEnums.values()) {
// 只要右边的
if (!coverage.getPosition().equals(Integer.valueOf(2))) {
continue;
}
AnalysisResourceCategoriesResult categoriesOfThisCoverage = new AnalysisResourceCategoriesResult();
HashMap<String, AnalysisResourceCategoriesResult.PlaceType> placeTypeMap = new HashMap<>();
List<IcCoverageCategoryDictEntity> categoryDictEntities = govOrgCoverageService.listCoverageCategoryEntities(coverage.getCoverageType());
// 2.根据menuUrl过滤 todo
// 2.计算各类数量 todo
// 3.对上一步得到的数据进行分组,使用PLACE_TYPE_IN_ANALYSIS分组,然后放入placeType,这一列为空的说明不分组,直接属于coverage
categoryDictEntities.forEach(c -> {
if (StringUtils.isBlank(c.getPlaceTypeInAnalysis())) {
// 没有placetype的
categoriesOfThisCoverage.getCategories()
.add(new AnalysisResourceCategoriesResult.Category(c.getCategoryKey(), c.getCategoryName(),
c.getCoverageType(), c.getPlaceType(), 0));
} else {
// 有placetype的
AnalysisResourceCategoriesResult.PlaceType placeType = placeTypeMap.get(c.getPlaceTypeInAnalysis());
if (placeType == null) {
placeType = new AnalysisResourceCategoriesResult.PlaceType(
c.getPlaceTypeInAnalysis(), CoveragePlaceTypeEnum.getEnum(c.getPlaceTypeInAnalysis()).getName(), 0, new ArrayList<>());
placeTypeMap.put(c.getPlaceTypeInAnalysis(), placeType);
}
placeType.getCategories().add(new AnalysisResourceCategoriesResult.Category(c.getCategoryKey(),
c.getCategoryName(), c.getCoverageType(), c.getPlaceType(), 0));
placeType.setCount(placeType.getCount() + 0); // todo 0改为category的count
}
});
AtomicReference<Integer> total = new AtomicReference<>(0);
placeTypeMap.forEach((placeTypeKey, placeType) -> {
categoriesOfThisCoverage.getPlaceTypesInAnalysis().add(placeType);
total.updateAndGet(v -> v + placeType.getCount());
});
categoriesOfThisCoverage.setCoverageType(coverage.getCoverageType());
categoriesOfThisCoverage.setCoverageName(CoverageEnums.getEnum(coverage.getCoverageType()).getCoverageName());
categoriesOfThisCoverage.setCount(total.get());
results.add(categoriesOfThisCoverage);
}
return results;
}
}
Loading…
Cancel
Save