From 4e6ec478d05b759f4e339dddebc4d9b03da8d69c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 18 Jan 2022 18:08:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=B1=BB=E5=88=AB=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/IcUsercategoryAnalysisFormDTO.java | 42 +++++++++++++ .../IcUsercategoryAnalysisResultDTO.java | 33 ++++++++++ .../IcUserChangeRecordController.java | 14 +++++ .../com/epmet/dao/IcUserChangeRecordDao.java | 4 ++ .../service/IcUserChangeRecordService.java | 10 +++ .../impl/IcUserChangeRecordServiceImpl.java | 63 +++++++++++++++++++ .../mapper/IcUserChangeRecordDao.xml | 29 +++++++++ 7 files changed, 195 insertions(+) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java new file mode 100644 index 0000000000..5e448e6ad8 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 数字社区-人员类别分析 入参DTO + * 某个类别的迁入、迁出、新增、类别列表 + */ +@Data +public class IcUsercategoryAnalysisFormDTO implements Serializable { + public interface AddUserInternalGroup {} + public interface AddUserShowGroup extends CustomerClientShowGroup {} + @NotBlank(message = "请选择查看某个人员类别",groups =AddUserShowGroup.class ) + private String categoryKey; + + @NotBlank(message = "dateId不能为空",groups =AddUserInternalGroup.class ) + @Length(min = 8, max = 8,message = "dateId格式:yyyyMMdd",groups =AddUserInternalGroup.class) + private String dateId; + + private String type; + + @NotNull(message = "页码pageNo不能为空",groups =AddUserInternalGroup.class ) + private Integer pageNo; + @NotNull(message = "页量pageSize不能为空",groups =AddUserInternalGroup.class ) + private Integer pageSize; + + @NotBlank(message = "请选择查看某个组织或网格",groups =AddUserShowGroup.class ) + private String orgId; + @NotBlank(message = "orgType不能为空",groups =AddUserInternalGroup.class ) + private String orgType; + + private String startDate; + private String endDate; + +} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java new file mode 100644 index 0000000000..ac3ff1a3b2 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 人员类别分析 + * 列表返参 + */ +@Data +public class IcUsercategoryAnalysisResultDTO implements Serializable { + private static final long serialVersionUID = 8071180665763717817L; + private String icUserId; + private String name; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date changeTime; + private String typeName; + private String type; + private String gridName; + private String address; + + // @JsonIgnore + private String buildingId; + // @JsonIgnore + private String gridId; + // @JsonIgnore + private Integer value; + // @JsonIgnore + private String fieldName; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java index fc11027e8f..5ab2dae1eb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java @@ -17,11 +17,14 @@ package com.epmet.controller; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.IcResiUserChangeRecordFormDTO; import com.epmet.dto.form.IcResiUserTransferFormDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; import com.epmet.dto.result.IcUserChangeRecordResultDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.service.IcUserChangeRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -53,4 +56,15 @@ public class IcUserChangeRecordController { return new Result().ok(icUserChangeRecordService.list(formDTO)); } + /** + * 人员类别分析 + * @param formDTO + * @return + */ + // /epmetuser/icuserchangerecord/category-analysis-list + @PostMapping("category-analysis-list") + public Result> categoryAnalysisList(@RequestBody IcUsercategoryAnalysisFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,IcUsercategoryAnalysisFormDTO.AddUserShowGroup.class,IcUsercategoryAnalysisFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icUserChangeRecordService.categoryAnalysisList(formDTO)); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java index d0079ab6eb..0e82f9564e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java @@ -19,6 +19,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IcUserChangeRecordDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.entity.IcUserChangeRecordEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +41,6 @@ public interface IcUserChangeRecordDao extends BaseDao * @Description 查询居民变更记录 **/ List getList(@Param("icUserId") String icUserId); + + List categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java index 8032331a16..252c5abd94 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java @@ -18,8 +18,11 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; import com.epmet.dto.form.IcResiUserChangeRecordFormDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; import com.epmet.dto.result.IcUserChangeRecordResultDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.entity.IcUserChangeRecordEntity; /** @@ -35,4 +38,11 @@ public interface IcUserChangeRecordService extends BaseService categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java index 4b61577545..9f764e9c05 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java @@ -18,17 +18,34 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcUserChangeRecordDao; import com.epmet.dto.IcUserChangeRecordDTO; import com.epmet.dto.form.IcResiUserChangeRecordFormDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; +import com.epmet.dto.result.AllGridsByUserIdResultDTO; +import com.epmet.dto.result.BuildingResultDTO; import com.epmet.dto.result.IcUserChangeRecordResultDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.entity.IcUserChangeRecordEntity; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.IcUserChangeRecordService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + /** * 居民变更记录表 * @@ -37,6 +54,9 @@ import org.springframework.util.CollectionUtils; */ @Service public class IcUserChangeRecordServiceImpl extends BaseServiceImpl implements IcUserChangeRecordService { + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + /** * @Author sun @@ -55,4 +75,47 @@ public class IcUserChangeRecordServiceImpl extends BaseServiceImpl categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO) { + formDTO.setEndDate(formDTO.getDateId()); + String monthId = formDTO.getDateId().substring(NumConstant.ZERO, NumConstant.SIX); + formDTO.setStartDate(monthId.concat("01")); + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.categoryAnalysisList(formDTO)); + List list = pageInfo.getList(); + if (!CollectionUtils.isEmpty(list)) { + //获取网格信息 + Set gridIds = list.stream().map(IcUsercategoryAnalysisResultDTO::getGridId).collect(Collectors.toSet()); + Result> gridInfoRes = govOrgOpenFeignClient.getGridListByGridIds(new ArrayList<>(gridIds)); + List gridInfoList = gridInfoRes.success() && !org.apache.commons.collections4.CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + //获取楼栋信息 + Set buildingIds = list.stream().map(IcUsercategoryAnalysisResultDTO::getBuildingId).collect(Collectors.toSet()); + Result> buildRes = govOrgOpenFeignClient.buildingListByIds(new ArrayList<>(buildingIds)); + List buildInfoList = buildRes.success() && !org.apache.commons.collections4.CollectionUtils.isEmpty(buildRes.getData()) ? buildRes.getData() : new ArrayList<>(); + Map buildInfoMap = buildInfoList.stream().collect(Collectors.toMap(BuildingResultDTO::getBuildingId, Function.identity())); + list.forEach(resultDto -> { + //赋值小区名+楼栋名 + if (null != buildInfoMap && buildInfoMap.containsKey(resultDto.getBuildingId())) { + resultDto.setAddress(buildInfoMap.get(resultDto.getBuildingId()).getNeighborhoodName().concat(buildInfoMap.get(resultDto.getBuildingId()).getBuildingName())); + } else { + resultDto.setAddress(StrConstant.EPMETY_STR); + } + //赋值XXX-xxx网格名 + if (null != gridInfoMap && gridInfoMap.containsKey(resultDto.getGridId())) { + resultDto.setGridName(gridInfoMap.get(resultDto.getGridId()).getGridName()); + } else { + resultDto.setGridName(StrConstant.EPMETY_STR); + } + }); + } + return new PageData<>(list, pageInfo.getTotal()); + } + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml index 7c606296e0..6ef762b208 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml @@ -26,4 +26,33 @@ ORDER BY change_time DESC, type ASC + + \ No newline at end of file