Browse Source

Merge remote-tracking branch 'origin/dev_five_coverage' into dev_five_coverage

master
yinzuomei 3 years ago
parent
commit
82a08f54d9
  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. 10
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  4. 9
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
  5. 69
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/coverage/AnalysisResourceCategoriesResult.java
  6. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java
  7. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java
  8. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java
  9. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java
  10. 72
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java
  11. 5
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java
  12. 1
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.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", "公共服务"), PUBLIC_SERVICE("public_service", "公共服务"),
RESI("resi", "居民"), RESI("resi", "居民"),
PARTY_UNIT("party_unit", "联建单位"), PARTY_UNIT("party_unit", "联建单位"),
VOLUNTEER("volunteer", "志愿者"),
GROUP_RENT("group_rent", "群租房"), GROUP_RENT("group_rent", "群租房"),
EVENT("event", "事件(包括难点堵点)"); EVENT("event", "事件(包括难点堵点)");

10
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -766,6 +766,16 @@ public class RedisKeys {
return rootPrefix.concat("gov:access:nav:"); return rootPrefix.concat("gov:access:nav:");
} }
/**
* Desc: 新五大图层获取菜单缓存key
* @param
* @author zxc
* @date 2022/7/27 13:42
*/
public static String getCustomerMenuListFiveCoverage() {
return rootPrefix.concat("customer:govMenu:");
}
/** /**
* 如果是省列表epmet:areacode:parentCode:0 * 如果是省列表epmet:areacode:parentCode:0
* 山东省的下一级epmet:areacode:parentCode:37 * 山东省的下一级epmet:areacode:parentCode:37

9
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java

@ -375,6 +375,15 @@ public class RedisUtils {
return redisTemplate.opsForSet().add(key,value); return redisTemplate.opsForSet().add(key,value);
} }
public void listAdd(String key,Object value){
redisTemplate.opsForList().rightPush(key,value);
}
public Object listGetAll(String key,Integer start, Integer end){
List<Object> result = redisTemplate.opsForList().range(key, start, end);
return result;
}
/** /**
* @Description 获取 zset 中带score的集合 * @Description 获取 zset 中带score的集合
* @param key * @param key

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.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; 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.CoverageAnalisisDataListFormDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO;
@ -72,4 +73,14 @@ public class CoverageController {
return new Result<CoverageHomeSearchResultDTO>().ok(coverageService.coverageHomeSearch(formDTO)); 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; package com.epmet.dataaggre.service;
import com.epmet.commons.tools.page.PageData; 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.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO; import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO;
@ -31,4 +32,9 @@ public interface CoverageService {
*/ */
CoverageHomeSearchResultDTO coverageHomeSearch(CoverageHomeSearchFormDTO formDTO); 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 * @return
*/ */
IcCoverageCategoryDictEntity selectByCategoryKey(String categoryKey); 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); query.ge(IcHouseEntity::getResiNumber, resiNumberBiggerThan);
return query; 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; package com.epmet.dataaggre.service.impl;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; 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.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache;
import com.epmet.commons.tools.utils.EpmetRequestHolder; 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.epmetuser.result.IcResiInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; 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 org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
@ -53,6 +58,9 @@ public class CoverageServiceImpl implements CoverageService {
@Autowired @Autowired
private GovProjectService govProjectService; private GovProjectService govProjectService;
@Autowired
private GovOrgCoverageService govOrgCoverageService;
/** /**
* 场所类型常量 * 场所类型常量
*/ */
@ -452,4 +460,68 @@ public class CoverageServiceImpl implements CoverageService {
} }
return new String[]{longitude, latitude}; 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;
}
} }

5
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java

@ -78,6 +78,11 @@ public class GovCustomerMenuRedis {
redisUtils.deleteByPattern(key); redisUtils.deleteByPattern(key);
} }
public void delAllCustomerMenuFiveCoverage(String customerId){
String key = RedisKeys.getCustomerMenuListFiveCoverage().concat(customerId);
redisUtils.delete(key);
}
private boolean checkParam(String customerId, Integer type) { private boolean checkParam(String customerId, Integer type) {
if (StringUtils.isBlank(customerId) || type == null){ if (StringUtils.isBlank(customerId) || type == null){
log.warn("checkParam fail, param is null"); log.warn("checkParam fail, param is null");

1
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovCustomerMenuServiceImpl.java

@ -115,6 +115,7 @@ public class GovCustomerMenuServiceImpl extends BaseServiceImpl<GovCustomerMenuD
entity.setCustomerId(customerId); entity.setCustomerId(customerId);
entity.setTableId(formDTO.getTableId()); entity.setTableId(formDTO.getTableId());
entities.add(entity); entities.add(entity);
govCustomerMenuRedis.delAllCustomerMenuFiveCoverage(customerId);
} }
insertBatch(entities); insertBatch(entities);
} }

Loading…
Cancel
Save