Browse Source

社区及账号登录,导出

dev
yinzuomei 2 years ago
parent
commit
b35a699620
  1. 13
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/yt/CommunityLoginResultDTO.java
  2. 53
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java

13
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/yt/CommunityLoginResultDTO.java

@ -1,5 +1,8 @@
package com.epmet.dto.result.yt;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
@ -12,26 +15,36 @@ public class CommunityLoginResultDTO {
/**
* 组织id
*/
@ExcelIgnore
private String agencyId;
/**
* 组织名称
*/
@ColumnWidth(20)
@ExcelProperty(value = "社区名称")
private String agencyName;
/**
* 组织级别社区级community 街道:street, 区县级: district, 市级: city 省级:province
*/
@ExcelIgnore
private String agencyLevel;
/**
* 所属街道名称
*/
@ColumnWidth(20)
@ExcelProperty(value = "所属街道")
private String streetName;
/**
* 所属区县名称
*/
@ColumnWidth(20)
@ExcelProperty(value = "所属区县")
private String districtName;
/**
* 登录次数
*/
@ColumnWidth(20)
@ExcelProperty(value = "登录次数")
private Integer count;
}

53
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffLoginLogController.java

@ -1,12 +1,21 @@
package com.epmet.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.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.epmet.commons.tools.annotation.LoginUser;
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.DateUtils;
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.dto.form.yt.CommunityLoginFormDTO;
import com.epmet.dto.form.yt.CountActivityFormDTO;
import com.epmet.dto.form.yt.LoginLogCountByLevelFormDTO;
@ -16,6 +25,7 @@ import com.epmet.dto.result.yt.LoginLogCountByLevelResultDTO;
import com.epmet.excel.yt.AccountActivityExcel;
import com.epmet.excel.yt.AccountInactivityExcel;
import com.epmet.service.StaffLoginLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -24,6 +34,8 @@ import org.springframework.web.bind.annotation.RestController;
import com.epmet.dto.result.yt.AccountActivityInfo;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
@ -33,6 +45,7 @@ import java.util.List;
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-04-04
*/
@Slf4j
@RestController
@RequestMapping("staffLoginLog")
public class StaffLoginLogController {
@ -62,6 +75,46 @@ public class StaffLoginLogController {
return new Result<PageData<CommunityLoginResultDTO>>().ok(staffLoginLogService.pageCommunityCount(formDTO));
}
/**
* 下级社区账号登录次数排名
*
* @return
*/
@PostMapping("community-count-export")
public void communityCount(HttpServletResponse response, @RequestBody CommunityLoginFormDTO formDTO) throws Exception {
ExcelWriter excelWriter = null;
formDTO.setPageNo(NumConstant.ONE);
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
try {
String fileName = "社区级账号登录情况" + DateUtils.format(new Date()) + ".xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), CommunityLoginResultDTO.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
PageData<CommunityLoginResultDTO> data = null;
List<CommunityLoginResultDTO> list = null;
do {
// 默认查询本组织及下级
data = staffLoginLogService.pageCommunityCount(formDTO);
list = ConvertUtils.sourceToTarget(data.getList(), CommunityLoginResultDTO.class);
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("社区级账号登录情况export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
/**
* 柱状图下级组织账号登录次数汇总
*

Loading…
Cancel
Save