Browse Source

城市管理事件

master
yinzuomei 3 years ago
parent
commit
1f9e1c21c8
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
  2. 3
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java
  3. 9
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java
  4. 15
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java
  5. 19
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java
  6. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java
  7. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java
  8. 97
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java

@ -110,4 +110,6 @@ public interface StrConstant {
String YES = "是"; String YES = "是";
String NO = "否"; String NO = "否";
String ELLIPSIS="......";
} }

3
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java

@ -14,4 +14,7 @@ public interface OrgConstant {
String GRID_ID="GRID_ID"; String GRID_ID="GRID_ID";
String GENDER="GENDER"; String GENDER="GENDER";
String HOUSE_TYPE_KEY="HOUSE_TYPE"; String HOUSE_TYPE_KEY="HOUSE_TYPE";
String AGENCY_ID="agencyId";
String AGENC_PATH="agencyPath";
} }

9
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java

@ -9,7 +9,16 @@ import java.util.List;
*/ */
@Data @Data
public class CoverageAnalisisDataListFormDTO { public class CoverageAnalisisDataListFormDTO {
/**
* 目前都是组织id
*/
private String orgId;
/**
* agency
* grid
*/
private String orgType;
/** /**
* 图层类型列表 * 图层类型列表
*/ */

15
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java

@ -15,15 +15,18 @@ import java.util.List;
public class CoverageAnalisisDataListLeftFormDTO { public class CoverageAnalisisDataListLeftFormDTO {
public interface ShowGroup extends CustomerClientShowGroup { public interface ShowGroup extends CustomerClientShowGroup {
} }
/** /**
* * 目前都是组织id
*/ */
@NotBlank(message = "组织不能为空", groups = ShowGroup.class) @NotBlank(message = "组织不能为空", groups = ShowGroup.class)
private String orgId; private String orgId;
/**
* agency
* grid
*/
@NotBlank(message = "组织类型不能为空", groups = ShowGroup.class) @NotBlank(message = "组织类型不能为空", groups = ShowGroup.class)
private String orgType; private String orgType;
/** /**
* 图层类型列表 * 图层类型列表
*/ */
@ -34,12 +37,8 @@ public class CoverageAnalisisDataListLeftFormDTO {
*/ */
private List<String> categoryKeys; private List<String> categoryKeys;
// 以下3个参数固定
private Integer pageNo = 1;
private Integer pageSize = 20;
private Boolean isPage = false;
private String customerId; private String customerId;
private String staffId; private String staffId;
} }

19
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java

@ -1,8 +1,10 @@
package com.epmet.dataaggre.dto.govorg.result; package com.epmet.dataaggre.dto.govorg.result;
import com.epmet.commons.tools.constant.StrConstant;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@ -40,4 +42,21 @@ public class CoverageAnalisisDataListResultDTO {
*/ */
private String longitude; private String longitude;
/**
* 经度,纬度120.38862649282282,36.07138835989835
*/
private String longLat;
public CoverageAnalisisDataListResultDTO(String id, String categoryKey, String categoryName, String placeType, String content, String latitude, String longitude) {
this.id=id;
this.categoryKey=categoryKey;
this.categoryName=categoryName;
this.placeType=placeType;
this.content=content;
this.latitude=latitude;
this.longitude=longitude;
if(StringUtils.isNotBlank(latitude)&&StringUtils.isNotBlank(longitude)){
this.longLat=longitude.concat(StrConstant.COMMA).concat(latitude);
}
}
} }

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

@ -5,6 +5,7 @@ import com.epmet.commons.tools.dto.result.ZhzlCategorySelectDTO;
import com.epmet.commons.tools.enums.ZhzlResiCategoryEnum; 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.EpmetRequestHolder;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult;
import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult;
@ -42,13 +43,16 @@ public class CoverageController {
*/ */
@RequestMapping("dataList") @RequestMapping("dataList")
public Result<PageData<CoverageAnalisisDataListResultDTO>> dataList(@RequestBody CoverageAnalisisDataListFormDTO input) { public Result<PageData<CoverageAnalisisDataListResultDTO>> dataList(@RequestBody CoverageAnalisisDataListFormDTO input) {
// 获取跟组织的坐标
String customerId = EpmetRequestHolder.getLoginUserCustomerId();
String staffId = EpmetRequestHolder.getLoginUserId();
List<String> coverageTypes = input.getCoverageTypes(); List<String> coverageTypes = input.getCoverageTypes();
List<String> categoryKeys = input.getCategoryKeys(); List<String> categoryKeys = input.getCategoryKeys();
if (CollectionUtils.isEmpty(coverageTypes)) { if (CollectionUtils.isEmpty(coverageTypes)) {
return new Result().ok(new PageData<>(new ArrayList<>(), 0)); return new Result().ok(new PageData<>(new ArrayList<>(), 0));
} }
PageData<CoverageAnalisisDataListResultDTO> page = coverageService.analysisDataList(coverageTypes, categoryKeys, PageData<CoverageAnalisisDataListResultDTO> page = coverageService.analysisDataList(customerId,staffId,input.getOrgId(),input.getOrgType(),coverageTypes, categoryKeys,
input.getSearch(), input.getPageNo(), input.getPageSize(), input.getIsPage()); input.getSearch(), input.getPageNo(), input.getPageSize(), input.getIsPage());
return new Result<PageData<CoverageAnalisisDataListResultDTO>>().ok(page); return new Result<PageData<CoverageAnalisisDataListResultDTO>>().ok(page);
} }
@ -106,7 +110,7 @@ public class CoverageController {
public Result<PageData<CoverageAnalisisDataListResultDTOV2>> dataListLeft(@LoginUser TokenDto tokenDto, @RequestBody CoverageAnalisisDataListLeftFormDTO formDTO) { public Result<PageData<CoverageAnalisisDataListResultDTOV2>> dataListLeft(@LoginUser TokenDto tokenDto, @RequestBody CoverageAnalisisDataListLeftFormDTO formDTO) {
List<String> coverageTypes = formDTO.getCoverageTypes(); List<String> coverageTypes = formDTO.getCoverageTypes();
List<String> categoryKeys = formDTO.getCategoryKeys(); List<String> categoryKeys = formDTO.getCategoryKeys();
if (CollectionUtils.isEmpty(coverageTypes)) { if (CollectionUtils.isEmpty(coverageTypes)||CollectionUtils.isEmpty(categoryKeys)) {
return new Result().ok(new PageData<>(new ArrayList<>(), 0)); return new Result().ok(new PageData<>(new ArrayList<>(), 0));
} }
formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setCustomerId(tokenDto.getCustomerId());

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

@ -24,7 +24,8 @@ public interface CoverageService {
* @param pageSize 页面大小 * @param pageSize 页面大小
* @return * @return
*/ */
PageData<CoverageAnalisisDataListResultDTO> analysisDataList(List<String> coverageTypes, List<String> categoryKeys, PageData<CoverageAnalisisDataListResultDTO> analysisDataList(String customerId,String staffId,String orgId,String orgType,
List<String> coverageTypes, List<String> categoryKeys,
String search, Integer pageNo, Integer pageSize, Boolean isPage); String search, Integer pageNo, Integer pageSize, Boolean isPage);
/** /**

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

@ -1,14 +1,19 @@
package com.epmet.dataaggre.service.impl; package com.epmet.dataaggre.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
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.CoverageEnums;
import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; 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.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
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.constant.OrgConstant;
import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult;
import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult;
import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO;
@ -33,6 +38,7 @@ import com.epmet.dataaggre.service.heart.HeartService;
import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService; import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -97,12 +103,11 @@ public class CoverageServiceImpl implements CoverageService {
* @return * @return
*/ */
@Override @Override
public PageData<CoverageAnalisisDataListResultDTO> analysisDataList(List<String> coverageTypes, List<String> categoryKeys, public PageData<CoverageAnalisisDataListResultDTO> analysisDataList(String customerId,String staffId,String orgId,String orgType,
List<String> coverageTypes, List<String> categoryKeys,
String search, Integer pageNo, Integer pageSize, Boolean isPage) { String search, Integer pageNo, Integer pageSize, Boolean isPage) {
// 获取跟组织的坐标 // 获取跟组织的坐标
String customerId = EpmetRequestHolder.getLoginUserCustomerId();
String staffId = EpmetRequestHolder.getLoginUserId();
CustomerAgencyEntity rootAgency = govOrgService.getRootAgencyByCustomerId(customerId); CustomerAgencyEntity rootAgency = govOrgService.getRootAgencyByCustomerId(customerId);
// 1.根据categoryKeys分类key列表,查询他们和图层时间的关系,映射为一个map // 1.根据categoryKeys分类key列表,查询他们和图层时间的关系,映射为一个map
@ -122,15 +127,9 @@ public class CoverageServiceImpl implements CoverageService {
} }
// 2.循环coverageTypes,使用key到map中查询(为了顺序),得到categoryKeys列表之后,根据实际情况做相应的查询 // 2.循环coverageTypes,使用key到map中查询(为了顺序),得到categoryKeys列表之后,根据实际情况做相应的查询
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); Map<String,String> agencyMap=getStaffPidsFromStaffInfo(customerId,staffId,orgId,orgType);
String agencyPath = agencyMap.get(OrgConstant.AGENC_PATH);
if (staffInfo == null) { String agencyId = agencyMap.get(OrgConstant.AGENCY_ID);
String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId();
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg);
}
String staffPids = getStaffPidsFromStaffInfo(staffInfo);
String agencyId = staffInfo.getAgencyId();
// 分页不太好分,先查出所有的数据,然后partation()吧 // 分页不太好分,先查出所有的数据,然后partation()吧
int start = (pageNo - 1) * pageSize; int start = (pageNo - 1) * pageSize;
@ -158,7 +157,7 @@ public class CoverageServiceImpl implements CoverageService {
} }
for (GovOrgCoverageService.CategoryCoverageMapping e : ccm) { for (GovOrgCoverageService.CategoryCoverageMapping e : ccm) {
Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(),
e.getCategoryKey(), search); e.getCategoryKey(), search);
lastTotalCount = totalCount; lastTotalCount = totalCount;
totalCount += tempCount; totalCount += tempCount;
@ -167,7 +166,7 @@ public class CoverageServiceImpl implements CoverageService {
// 不分页,查询所有 // 不分页,查询所有
// 检索数据 // 检索数据
List<CoverageAnalisisDataListResultDTO> dataSegment = doDataListSearch( List<CoverageAnalisisDataListResultDTO> dataSegment = doDataListSearch(
EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(),
e.getCategoryKey(), search, null, null, isPage, rootAgency); e.getCategoryKey(), search, null, null, isPage, rootAgency);
rls.addAll(dataSegment); rls.addAll(dataSegment);
continue; continue;
@ -189,7 +188,7 @@ public class CoverageServiceImpl implements CoverageService {
// 检索数据 // 检索数据
List<CoverageAnalisisDataListResultDTO> dataSegment = doDataListSearch( List<CoverageAnalisisDataListResultDTO> dataSegment = doDataListSearch(
EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(),
e.getCategoryKey(), search, 1, end, isPage, rootAgency); e.getCategoryKey(), search, 1, end, isPage, rootAgency);
if (firstTimeDataAppear) { if (firstTimeDataAppear) {
@ -239,6 +238,41 @@ public class CoverageServiceImpl implements CoverageService {
} }
} }
private Map<String, String> getStaffPidsFromStaffInfo(String customerId, String staffId, String orgId, String orgType) {
Map<String, String> map = new HashMap<>();
String agencyPath = StrConstant.EPMETY_STR;
String agencyId = StrConstant.EPMETY_STR;
if (StringUtils.isBlank(orgId)) {
// 默认查询的是当前登录用户所属组织及下级
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId);
if (staffInfo == null) {
String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId();
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg);
}
// staffPids
agencyPath = getStaffPidsFromStaffInfo(staffInfo);
agencyId = staffInfo.getAgencyId();
} else {
// 根据传入的组织id来
if (OrgConstant.AGENCY.equals(orgType)) {
AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(orgId);
if (agencyInfoCache == null) {
String msg = "查询组织缓存信息异常。orgId:" + orgId;
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg);
}
agencyId = orgId;
if (StringUtils.isNotBlank(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache)) {
agencyPath = agencyInfoCache.getPids().concat(":").concat(agencyId);
} else {
agencyPath = orgId;
}
}
}
map.put(OrgConstant.AGENCY_ID, agencyId);
map.put(OrgConstant.AGENC_PATH, agencyPath);
return map;
}
/** /**
* 计算数据条数 * 计算数据条数
* @param customerId * @param customerId
@ -346,7 +380,8 @@ public class CoverageServiceImpl implements CoverageService {
return icEventEntities.stream() return icEventEntities.stream()
.map(e -> new CoverageAnalisisDataListResultDTO( .map(e -> new CoverageAnalisisDataListResultDTO(
e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? e.getName() : null, e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType,
e.getEventContent().length() < 51 ? e.getEventContent() : e.getEventContent().substring(NumConstant.ZERO, NumConstant.FIFTY).concat(StrConstant.ELLIPSIS),
e.getLatitude(), e.getLongitude())) e.getLatitude(), e.getLongitude()))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -601,9 +636,31 @@ public class CoverageServiceImpl implements CoverageService {
*/ */
@Override @Override
public PageData<CoverageAnalisisDataListResultDTOV2> dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO) { public PageData<CoverageAnalisisDataListResultDTOV2> dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO) {
//todo PageData<CoverageAnalisisDataListResultDTO> page = analysisDataList(formDTO.getCustomerId(), formDTO.getStaffId(), formDTO.getOrgId(), formDTO.getOrgType(),
formDTO.getCoverageTypes(), formDTO.getCategoryKeys(),
StrConstant.EPMETY_STR,// 搜索关键词 默认空字符串
return null; NumConstant.ONE,
NumConstant.TWENTY,
false // 不分页
);
List<CoverageAnalisisDataListResultDTOV2> list = new ArrayList<>();
if (CollectionUtils.isNotEmpty(page.getList())) {
Map<String, List<CoverageAnalisisDataListResultDTO>> group = page.getList().stream().collect(Collectors.groupingBy(CoverageAnalisisDataListResultDTO::getLongLat));
if (MapUtils.isNotEmpty(group)) {
for (Map.Entry<String, List<CoverageAnalisisDataListResultDTO>> entry : group.entrySet()) {
if (CollectionUtils.isEmpty(entry.getValue())) {
continue;
}
CoverageAnalisisDataListResultDTOV2 res = new CoverageAnalisisDataListResultDTOV2();
res.setLatitude(entry.getValue().get(NumConstant.ZERO).getLatitude());
res.setLongitude(entry.getValue().get(NumConstant.ZERO).getLongitude());
res.setDataList(entry.getValue());
list.add(res);
}
}
}
// int totalCount = CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO;//这个是实际返回的几个坐标点
// page.getTotal()是多少条业务数据
return new PageData<>(list, page.getTotal());
} }
} }
Loading…
Cancel
Save