diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java index cb246fcf2b..c75eb30ea1 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberController.java @@ -1,11 +1,20 @@ package com.epmet.modules.partymember.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; @@ -16,12 +25,15 @@ import com.epmet.modules.partymember.service.IcPartyMemberService; 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.IcPartyMemberResultDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; import java.util.List; -import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; /** @@ -30,6 +42,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-05-17 */ +@Slf4j @RestController @RequestMapping("icPartyMember") public class IcPartyMemberController { @@ -74,10 +87,44 @@ public class IcPartyMemberController { return new Result(); } - @GetMapping("export") - public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { - List list = icPartyMemberService.list(params); - ExcelUtils.exportExcelToTarget(response, null, list, IcPartyMemberExcel.class); + @NoRepeatSubmit + @PostMapping("export") + public void export(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberFromDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + + ExcelWriter excelWriter = null; + AtomicInteger i = new AtomicInteger(1); + try { + String fileName = "党员管理.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyMemberExcel.class).build(); + PageData page = null; + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + do { + page = icPartyMemberService.page(tokenDto, formDTO); + List list = ConvertUtils.sourceToTarget(page.getList(), IcPartyMemberExcel.class); + list.forEach(item -> { + item.setIndex(i.getAndIncrement()); + }); + excelWriter.write(list, writeSheet); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (CollectionUtils.isNotEmpty(page.getList()) && page.getList().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 result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } } @PostMapping("icPartyMemberSync") diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java index 73a0a6e1d5..98b1ab122e 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberExcel.java @@ -1,111 +1,84 @@ package com.epmet.modules.partymember.excel; -import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; import lombok.Data; -import java.util.Date; - /** * 数字平台党员信息表 * * @author generator generator@elink-cn.com * @since v1.0.0 2022-05-17 */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) @Data public class IcPartyMemberExcel { - @Excel(name = "唯一标识") - private String id; - - @Excel(name = "客户Id customer.id") - private String customerId; - - @Excel(name = "党组织的所有上级ID,没有上级时为0") - private String orgPids; - - @Excel(name = "行政组织 机关ID") - private String agencyId; - - @Excel(name = "行政组织 机关ID") - private String agencyPids; - - @Excel(name = "对应的ic_resi_user主表Id") - private String icResiUser; + @ColumnWidth(10) + @ExcelProperty(value = "序号",order = 1) + private Integer index; - @Excel(name = "姓名") + @ColumnWidth(20) + @ExcelProperty(value = "姓名",order = 2) private String name; - @Excel(name = "手机号") - private String mobile; - - @Excel(name = "身份证号") + @ColumnWidth(20) + @ExcelProperty(value = "身份证号",order = 3) private String idCard; - @Excel(name = "地址") - private String address; + @ColumnWidth(20) + @ExcelProperty(value = "手机号",order = 4) + private String mobile; - @Excel(name = "入党时间") + @ColumnWidth(20) + @ExcelProperty(value = "入党时间",order = 5) private String rdsj; - @Excel(name = "所属支部") + @ColumnWidth(20) + @ExcelProperty(value = "所属党组织",order = 6) private String sszb; - @Excel(name = "是否流动党员") + @ColumnWidth(20) + @ExcelProperty(value = "流动党员",order = 7) private String isLd; - @Excel(name = "流动党员活动证号") + @ColumnWidth(20) + @ExcelProperty(value = "流动党员证号",order = 8) private String ldzh; - @Excel(name = "职务") + @ColumnWidth(20) + @ExcelProperty(value = "职务",order = 9) private String partyZw; - @Excel(name = "是否退休") - private String isTx; + @ColumnWidth(20) + @ExcelProperty(value = "地址",order = 10) + private String address; - @Excel(name = "是否党员中心户") - private String isDyzxh; + @ColumnWidth(20) + @ExcelProperty(value = "是否缴费",order = 11) + private String isPay; - @Excel(name = "是否免学习0否,1是") - private String isMxx; + @ColumnWidth(20) + @ExcelProperty(value = "最近一次缴纳党费时间",order = 12) + private String payDate; - @Excel(name = "文化程度【字典表】") + @ColumnWidth(20) + @ExcelProperty(value = "文化程度",order = 13) private String culture; - @Excel(name = "备注") - private String remark; - - @Excel(name = "预留字段1") - private String field1; - - @Excel(name = "预留字段2") - private String field2; - - @Excel(name = "预留字段3") - private String field3; - - @Excel(name = "预留字段4") - private String field4; - - @Excel(name = "预留字段5") - private String field5; + @ColumnWidth(20) + @ExcelProperty(value = "量化积分",order = 14) + private String point; - @Excel(name = "删除标识 0.未删除 1.已删除") - private Integer delFlag; + @ColumnWidth(20) + @ExcelProperty(value = "志愿者类别",order = 15) + private String volunteerCategory; - @Excel(name = "乐观锁") - private Integer revision; - - @Excel(name = "创建人") - private String createdBy; - - @Excel(name = "创建时间") - private Date createdTime; - - @Excel(name = "更新人") - private String updatedBy; - - @Excel(name = "更新时间") - private Date updatedTime; + @ColumnWidth(20) + @ExcelProperty(value = "备注",order = 16) + private String remark; } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java index 01f7ce2ab8..26feebf48f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVolunteerPolyServiceImpl.java @@ -304,7 +304,7 @@ public class IcVolunteerPolyServiceImpl extends BaseServiceImpl volunteerList = icResiUserDao.getVolunteerList(customerId, null); + List volunteerList = icResiUserDao.getVolunteerList(customerId, userId); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IcVolunteerPolyEntity::getCustomerId, customerId); wrapper.eq(IcVolunteerPolyEntity::getIcResiUser, userId);