Browse Source

烟台党员画像列表,导出

dev
yinzuomei 2 years ago
parent
commit
b9605d967d
  1. 24
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartymemberPortraitResultDTO.java
  2. 119
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java
  3. 5
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java
  4. 2
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java
  5. 64
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java
  6. 48
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml
  7. 1
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberAgeResultDTO.java
  8. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberEducationResultDTO.java

24
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartymemberPortraitResultDTO.java

@ -1,5 +1,8 @@
package com.epmet.resi.partymember.dto.partymember.result;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
@ -9,11 +12,30 @@ import lombok.Data;
*/
@Data
public class PartymemberPortraitResultDTO {
@ExcelIgnore
private String userId;
@ColumnWidth(15)
@ExcelProperty(value = "姓名",order = 1)
private String name;
@ColumnWidth(20)
@ExcelProperty(value = "手机号",order = 2)
private String mobile;
@ColumnWidth(20)
@ExcelProperty(value = "证件号",order = 3)
private String idCard;
@ColumnWidth(15)
@ExcelProperty(value = "年龄",order = 4)
private String age;
@ColumnWidth(15)
@ExcelProperty(value = "学历",order = 5)
private String education;
private String mobile;
@ExcelIgnore
private String icResiUser;
}

119
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java

@ -30,7 +30,6 @@ import com.epmet.dto.form.IcPartyMemberListFormDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.PartyMemberAgeResultDTO;
import com.epmet.dto.result.PartyMemberEducationResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartymemberPortraitResultDTO;
import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity;
import com.epmet.modules.partyOrg.service.IcPartyOrgService;
import com.epmet.modules.partymember.excel.IcPartyMemberExcel;
@ -39,6 +38,7 @@ import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO;
import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberFromDTO;
import com.epmet.resi.partymember.dto.partymember.result.IcPartyInfoResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartymemberPortraitResultDTO;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -57,10 +57,7 @@ import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@ -309,24 +306,116 @@ public class IcPartyMemberController implements ResultDataResolver {
return new Result<PageData<PartyMemberEducationResultDTO>>().ok(icPartyMemberService.getPartyMemberEducationList(formDTO));
}
/**
* 烟台党员画像列表接口将上方两个接口合为一个
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("partymember-portrait-list")
@MaskResponse(fieldNames = {"mobile"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE})
public Result<PageData<PartymemberPortraitResultDTO>> queryPartymemberPortraitList(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberListFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getOrgId())) {
// 当前工作人员所属组织下的,党组织
IcPartyOrgEntity org= icPartyOrgService.getIcPartyOrg(tokenDto.getCustomerId(),tokenDto.getUserId());
if (null == org) {
return new Result<PageData<PartymemberPortraitResultDTO>>().ok(new PageData<>(Collections.emptyList(), 0));
@MaskResponse(fieldNames = {"mobile","idCard"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE,MaskResponse.MASK_TYPE_ID_CARD})
public Result<PageData<PartymemberPortraitResultDTO>> queryPartyMemberPortraitList(@RequestBody IcPartyMemberListFormDTO formDTO) {
return new Result<PageData<PartymemberPortraitResultDTO>>().ok(icPartyMemberService.queryPartyMemberPortraitList(formDTO));
}
formDTO.setOrgId(org.getId());
/**
* 烟台党员画像列表-导出
* @param formDTO
* @return
*/
@NoRepeatSubmit
@PostMapping("partymember-portrait-export")
public void partymemberPortraitExport(@RequestBody IcPartyMemberListFormDTO formDTO, HttpServletResponse response) throws Exception {
ExcelWriter excelWriter = null;
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
formDTO.setIsPage(true);
String fileName=getPartymemberPortraitFileName(formDTO.getCodeType(),formDTO.getCode());
try {
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), PartymemberPortraitResultDTO.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
PageData<PartymemberPortraitResultDTO> data = null;
List<PartymemberPortraitResultDTO> list = null;
do {
data = icPartyMemberService.queryPartyMemberPortraitList(formDTO);
list = data.getList();
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
excelWriter.write(list, writeSheet);
} while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize());
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("党员画像列表导出exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
return new Result<PageData<PartymemberPortraitResultDTO>>().ok(icPartyMemberService.queryPartymemberPortraitList(formDTO));
}
}
/**
* 烟台党员画像列表-导出
* @return 返回导出excel的文件名
*/
private String getPartymemberPortraitFileName(String codeType, String code) {
String name = "党员画像";
if ("age".equals(codeType)) {
switch (code) {
case NumConstant.ZERO_STR:
name = "50岁以下党员信息";
break;
case NumConstant.ONE_STR:
name = "50-59岁党员信息";
break;
case NumConstant.TWO_STR:
name = "60-69岁党员信息";
break;
case NumConstant.THREE_STR:
name = "70-79岁党员信息";
break;
case NumConstant.FOUR_STR:
name = "80岁以上党员信息";
break;
default:
name = "";
break;
}
}else if ("education".equals(codeType)) {
switch (code) {
case NumConstant.ZERO_STR:
name = "小学及文盲党员信息";
break;
case NumConstant.ONE_STR:
name = "初中学历党员信息";
break;
case NumConstant.TWO_STR:
name = "高中学历党员信息";
break;
case NumConstant.THREE_STR:
name = "大专学历党员信息";
break;
case NumConstant.FOUR_STR:
name = "本科学历党员信息";
break;
case NumConstant.FIVE_STR:
name = "硕士学历党员信息";
break;
case NumConstant.SIX_STR:
name = "博士学历党员信息";
break;
default:
name = "党员画像";
break;
}
}
String fileName=name+DateUtils.format(new Date()) + ".xlsx";
return fileName;
}

5
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberDao.java

@ -65,7 +65,10 @@ public interface IcPartyMemberDao extends BaseDao<IcPartyMemberEntity> {
* @params [orgId, code]
* @return java.util.List<com.epmet.dto.result.PartyMemberEducationResultDTO>
*/
List<PartyMemberEducationResultDTO> getPartyMemberEducationList(@Param("agencyId") String agencyId,@Param("orgId") String orgId,@Param("code") String code);
List<PartyMemberEducationResultDTO> getPartyMemberEducationList(@Param("agencyId") String agencyId,
@Param("orgId") String orgId,
@Param("code") String code,
@Param("codeType") String codeType);
/**
* @describe: 党员年龄范围统计

2
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberService.java

@ -157,5 +157,5 @@ public interface IcPartyMemberService extends BaseService<IcPartyMemberEntity> {
* @param formDTO
* @return
*/
PageData<PartymemberPortraitResultDTO> queryPartymemberPortraitList(IcPartyMemberListFormDTO formDTO);
PageData<PartymemberPortraitResultDTO> queryPartyMemberPortraitList(IcPartyMemberListFormDTO formDTO);
}

64
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberServiceImpl.java

@ -451,7 +451,7 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl<IcPartyMemberDao,
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<PartyMemberAgeResultDTO> list = baseDao.getPartyMemberAgeList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode());
PageInfo<PartyMemberAgeResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
return new PageData<>(list, pageInfo.getTotal(),formDTO.getPageSize());
}
List<PartyMemberAgeResultDTO> list = baseDao.getPartyMemberAgeList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode());
return new PageData<>(list, null == list?NumConstant.ZERO:list.size());
@ -461,23 +461,23 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl<IcPartyMemberDao,
public PageData<PartyMemberEducationResultDTO> getPartyMemberEducationList(IcPartyMemberListFormDTO formDTO) {
if (formDTO.getIsPage()) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<PartyMemberEducationResultDTO> list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode());
Result<Map<String, String>> mapResult = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode());
List<PartyMemberEducationResultDTO> list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode(),"education");
PageInfo<PartyMemberEducationResultDTO> pageInfo = new PageInfo<>(list);
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
item.setEducation(null == mapResult.getData().get(item.getEducation()) ? "" : mapResult.getData().get(item.getEducation()));
});
}
return new PageData<>(list, pageInfo.getTotal());
}
List<PartyMemberEducationResultDTO> list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode());
Result<Map<String, String>> mapResult = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode());
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
item.setEducation(null == mapResult.getData().get(item.getEducation()) ? "" : mapResult.getData().get(item.getEducation()));
});
}
// Result<Map<String, String>> mapResult = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode());
// if (CollectionUtils.isNotEmpty(list)) {
// list.forEach(item -> {
// item.setEducation(null == mapResult.getData().get(item.getEducation()) ? "" : mapResult.getData().get(item.getEducation()));
// });
// }
return new PageData<>(list, pageInfo.getTotal(),formDTO.getPageSize());
}
List<PartyMemberEducationResultDTO> list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(),formDTO.getOrgId(), formDTO.getCode(),"education");
// Result<Map<String, String>> mapResult = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.EDUCATION.getCode());
// if (CollectionUtils.isNotEmpty(list)) {
// list.forEach(item -> {
// item.setEducation(null == mapResult.getData().get(item.getEducation()) ? "" : mapResult.getData().get(item.getEducation()));
// });
// }
return new PageData<>(list, null == list?NumConstant.ZERO:list.size());
}
@ -742,8 +742,32 @@ public class IcPartyMemberServiceImpl extends BaseServiceImpl<IcPartyMemberDao,
* @return
*/
@Override
public PageData<PartymemberPortraitResultDTO> queryPartymemberPortraitList(IcPartyMemberListFormDTO formDTO) {
// todo
return null;
public PageData<PartymemberPortraitResultDTO> queryPartyMemberPortraitList(IcPartyMemberListFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getOrgId())) {
// 当前工作人员所属组织下的,党组织
IcPartyOrgEntity org= icPartyOrgService.getIcPartyOrg(EpmetRequestHolder.getLoginUserCustomerId(),EpmetRequestHolder.getLoginUserId());
if (null == org) {
return new PageData<>(Collections.emptyList(), 0, formDTO.getPageSize());
}
formDTO.setOrgId(org.getId());
}
if ("age".equals(formDTO.getCodeType())) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<PartyMemberAgeResultDTO> list = baseDao.getPartyMemberAgeList(formDTO.getAgencyId(), formDTO.getOrgId(), formDTO.getCode());
PageInfo<PartyMemberAgeResultDTO> pageInfo = new PageInfo<>(list);
List<PartymemberPortraitResultDTO> resultDTOList = ConvertUtils.sourceToTarget(list, PartymemberPortraitResultDTO.class);
return new PageData<>(resultDTOList, pageInfo.getTotal(), formDTO.getPageSize());
}
// else if ("education".equals(formDTO.getCodeType())) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<PartyMemberEducationResultDTO> list = baseDao.getPartyMemberEducationList(formDTO.getAgencyId(), formDTO.getOrgId(), formDTO.getCode(),formDTO.getCodeType());
PageInfo<PartyMemberEducationResultDTO> pageInfo = new PageInfo<>(list);
List<PartymemberPortraitResultDTO> resultDTOList = ConvertUtils.sourceToTarget(list, PartymemberPortraitResultDTO.class);
return new PageData<>(resultDTOList, pageInfo.getTotal(), formDTO.getPageSize());
}
}

48
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberDao.xml

@ -164,7 +164,9 @@
NAME,
MOBILE,
age,
IC_RESI_USER
IC_RESI_USER,
ID_CARD,
education
FROM
(
SELECT
@ -172,14 +174,16 @@
NAME,
MOBILE,
age,
CASE
(CASE
WHEN age &lt; 50 THEN '0'
WHEN age &gt;= 50 AND age &lt;= 59 THEN '1'
WHEN age &gt;= 60 AND age &lt;= 69 THEN '2'
WHEN age &gt;= 70 AND age &lt;= 79 THEN '3'
ELSE '4'
END AS ageGroup,
IC_RESI_USER
END )AS ageGroup,
IC_RESI_USER,
ID_CARD,
education
FROM
(
SELECT
@ -187,7 +191,20 @@
NAME,
MOBILE,
YEAR (FROM_DAYS(DATEDIFF(NOW(),SUBSTRING( ID_CARD, 7, 8 )))) AS age,
IC_RESI_USER
IC_RESI_USER,
ID_CARD,
(
case when CULTURE='0' then '小学及文盲'
when CULTURE='1' then '初中'
when CULTURE='2' then '高中'
when CULTURE='3' then '大专'
when CULTURE='4' then '本科'
when CULTURE='5' then '硕士'
when CULTURE='6' then '博士'
when CULTURE='7' then '中专'
else ''
end
)as education
FROM
ic_party_member
WHERE
@ -205,23 +222,38 @@
<if test="null != code and '' != code">
WHERE ageGroup = #{code}
</if>
ORDER BY CONVERT(NAME USING GBK) ASC
ORDER BY ID ASC
</select>
<select id="getPartyMemberEducationList" resultType="com.epmet.dto.result.PartyMemberEducationResultDTO">
SELECT
ID AS "userId",
NAME,
MOBILE,
CULTURE AS education,
ID_CARD,
(
case when CULTURE='0' then '小学及文盲'
when CULTURE='1' then '初中'
when CULTURE='2' then '高中'
when CULTURE='3' then '大专'
when CULTURE='4' then '本科'
when CULTURE='5' then '硕士'
when CULTURE='6' then '博士'
when CULTURE='7' then '中专'
else ''
end
)as education,
YEAR (FROM_DAYS(DATEDIFF(NOW(),SUBSTRING( ID_CARD, 7, 8 )))) AS age,
IC_RESI_USER
FROM
ic_party_member
WHERE
DEL_FLAG = '0'
<if test="null != codeType and 'education' == codeType">
AND CULTURE IS NOT NULL
<if test="null != code and '' != code">
AND CULTURE = #{code}
</if>
</if>
<choose>
<when test='orgId != "" and orgId != null'>
AND (SSZB = #{orgId} OR ORG_PIDS LIKE CONCAT('%',#{orgId},'%'))
@ -230,7 +262,7 @@
AND (AGENCY_ID = #{agencyId} OR AGENCY_PIDS LIKE CONCAT('%',#{agencyId},'%'))
</otherwise>
</choose>
ORDER BY CONVERT(NAME USING GBK) ASC
ORDER BY ID ASC
</select>
<select id="getPartyMemberAgeStatistics"
resultType="com.epmet.commons.tools.dto.result.OptionDataResultDTO">

1
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberAgeResultDTO.java

@ -15,6 +15,7 @@ public class PartyMemberAgeResultDTO implements Serializable {
private String userId;
private String name;
private String idCard;
private String age;
/**

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PartyMemberEducationResultDTO.java

@ -14,7 +14,7 @@ public class PartyMemberEducationResultDTO implements Serializable {
private static final long serialVersionUID = -5042362121277863249L;
private String userId;
private String name;
private String idCard;
/**
* 烟台党员画像列表接口将上方两个接口合为一个
* 在这个dto里增加了age

Loading…
Cancel
Save