Browse Source

人员类别分析列表

dev
yinzuomei 4 years ago
parent
commit
4e6ec478d0
  1. 42
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java
  2. 33
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java
  3. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java
  4. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java
  5. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java
  6. 63
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java
  7. 29
      epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml

42
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;
}

33
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;
}

14
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<IcUserChangeRecordResultDTO>().ok(icUserChangeRecordService.list(formDTO));
}
/**
* 人员类别分析
* @param formDTO
* @return
*/
// /epmetuser/icuserchangerecord/category-analysis-list
@PostMapping("category-analysis-list")
public Result<PageData<IcUsercategoryAnalysisResultDTO>> categoryAnalysisList(@RequestBody IcUsercategoryAnalysisFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,IcUsercategoryAnalysisFormDTO.AddUserShowGroup.class,IcUsercategoryAnalysisFormDTO.AddUserInternalGroup.class);
return new Result<PageData<IcUsercategoryAnalysisResultDTO>>().ok(icUserChangeRecordService.categoryAnalysisList(formDTO));
}
}

4
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<IcUserChangeRecordEntity>
* @Description 查询居民变更记录
**/
List<IcUserChangeRecordDTO> getList(@Param("icUserId") String icUserId);
List<IcUsercategoryAnalysisResultDTO> categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO);
}

10
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<IcUserChangeRecor
* @Description 基础信息变更记录
**/
IcUserChangeRecordResultDTO list(IcResiUserChangeRecordFormDTO formDTO);
/**
* 人员类别分析
* @param formDTO
* @return
*/
PageData<IcUsercategoryAnalysisResultDTO> categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO);
}

63
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<IcUserChangeRecordDao, IcUserChangeRecordEntity> implements IcUserChangeRecordService {
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
/**
* @Author sun
@ -55,4 +75,47 @@ public class IcUserChangeRecordServiceImpl extends BaseServiceImpl<IcUserChangeR
return resultDTO;
}
/**
* 人员类别分析
*
* @param formDTO
* @return
*/
@Override
public PageData<IcUsercategoryAnalysisResultDTO> categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO) {
formDTO.setEndDate(formDTO.getDateId());
String monthId = formDTO.getDateId().substring(NumConstant.ZERO, NumConstant.SIX);
formDTO.setStartDate(monthId.concat("01"));
PageInfo<IcUsercategoryAnalysisResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(),
formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.categoryAnalysisList(formDTO));
List<IcUsercategoryAnalysisResultDTO> list = pageInfo.getList();
if (!CollectionUtils.isEmpty(list)) {
//获取网格信息
Set<String> gridIds = list.stream().map(IcUsercategoryAnalysisResultDTO::getGridId).collect(Collectors.toSet());
Result<List<AllGridsByUserIdResultDTO>> gridInfoRes = govOrgOpenFeignClient.getGridListByGridIds(new ArrayList<>(gridIds));
List<AllGridsByUserIdResultDTO> gridInfoList = gridInfoRes.success() && !org.apache.commons.collections4.CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>();
Map<String, AllGridsByUserIdResultDTO> gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity()));
//获取楼栋信息
Set<String> buildingIds = list.stream().map(IcUsercategoryAnalysisResultDTO::getBuildingId).collect(Collectors.toSet());
Result<List<BuildingResultDTO>> buildRes = govOrgOpenFeignClient.buildingListByIds(new ArrayList<>(buildingIds));
List<BuildingResultDTO> buildInfoList = buildRes.success() && !org.apache.commons.collections4.CollectionUtils.isEmpty(buildRes.getData()) ? buildRes.getData() : new ArrayList<>();
Map<String, BuildingResultDTO> 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());
}
}

29
epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml

@ -26,4 +26,33 @@
ORDER BY change_time DESC, type ASC
</select>
<select id="categoryAnalysisList" resultType="com.epmet.dto.result.IcUsercategoryAnalysisResultDTO" parameterType="com.epmet.dto.form.IcUsercategoryAnalysisFormDTO">
select
d.IC_USER_ID as icUserId,
r.IC_USER_NAME as name,
d.CREATED_TIME as changeTime,
d.TYPE as type,
d.TYPE_NAME as typeName,
d.GRID_ID as gridId,
d.BUILDING_ID as buildingId,
d.`VALUE` as value,
d.FIELD_NAME as fieldName
from ic_user_change_detailed d
left join ic_user_change_record r
on(d.IC_USER_CHANGE_RECORD_ID=r.id and r.DEL_FLAG='0')
where d.DEL_FLAG='0'
and d.FIELD_NAME=#{categoryKey}
<if test="orgType != null and orgType !=''">
<if test="orgType == 'agency'">
and (d.AGENCY_ID=#{orgId} or d.pids like concat('%',#{orgId},'%'))
</if>
<if test="orgType == 'grid'">
and d.GRID_ID=#{orgId}
</if>
</if>
<![CDATA[ AND DATE_FORMAT( d.CREATED_TIME, '%Y%m%d' ) >= #{startDate} ]]>
<![CDATA[ AND DATE_FORMAT( d.CREATED_TIME, '%Y%m%d' ) <= #{endDate} ]]>
order by d.CREATED_TIME asc,d.id asc
</select>
</mapper>
Loading…
Cancel
Save