diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java
index 4da050970e..0bd54027fa 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java
@@ -7,6 +7,7 @@ public class GridMemberDataAnalysisResultDTO {
private String gridId;
private String staffId;
+ private String mobile;
private String staffName;
private String orgName;
//private String gridName;
diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml
index 06f591c6c0..b26bfa373b 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml
@@ -82,6 +82,26 @@
2.0.0
compile
+
+
+ com.alibaba
+ easyexcel
+ 3.0.3
+
+
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
index 97c9c4429e..6cb9704c5f 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
@@ -1,5 +1,6 @@
package com.epmet.dataaggre.controller;
+import com.alibaba.excel.EasyExcel;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
@@ -223,4 +224,55 @@ public class GovOrgController {
return new Result().ok(page);
}
+ /**
+ * pc 工作端,网格员巡查统计,导出excel
+ * @param input
+ * @return
+ */
+ @PostMapping("pcwork/gridmember-analysis/export")
+ public Result exportGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input) {
+ //ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class);
+ //
+ //String agencyId = input.getAgencyId();
+ //Date startTime = input.getStartTime();
+ //Date endTime = input.getEndTime();
+ //
+ //int pageNo = 0;
+ //int pageSize = 1000;
+ //
+ //PageData page;
+ //do {
+ // page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime);
+ // List pageList = page.getList();
+ //
+ // EasyExcel
+ //
+ //
+ //} while (page.getList().size() == pageSize);
+
+ return null;
+ }
+
+ /**
+ * 网格员数据分析excel导出bean
+ */
+ public class GridMemberDataAnalysisExcelExportBean {
+ private String staffName;
+ private String orgName;
+
+ // 项目议题等
+ private Integer projectCount;
+ private Integer issueToProjectCount;
+ private Integer closedIssueCount;
+ private Integer projectResponseCount;
+ private Integer projectTransferCount;
+ private Integer projectClosedCount;
+
+ // 巡查
+ private int patrolTimes;
+ private int totalTime;
+ private int patrolRoutineWorkTimes;
+ }
+
+
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
index 6979f5d8b4..a1509063c1 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
@@ -6,6 +6,7 @@ import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO;
import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO;
import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO;
import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO;
+import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.UserBaseInfoDTO;
@@ -167,4 +168,11 @@ public interface EpmetUserService {
* @author sun
*/
List getHomeUserList(String homeId, String icUserId);
+
+ /**
+ * 使用staffId批量查询staff信息
+ * @param userIdsPart
+ * @return
+ */
+ List listStaffsByIds(List userIdsPart);
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
index c38bf062a9..815b196c51 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
@@ -735,5 +735,11 @@ public class EpmetUserServiceImpl implements EpmetUserService {
return icResiUserDao.getHomeUserList(homeId, icUserId);
}
+ @Override
+ public List listStaffsByIds(List userIds) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.in(CustomerStaffEntity::getUserId, userIds);
+ return customerStaffDao.selectList(query);
+ }
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java
index 48f1a811b7..7b2e56ff2f 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java
@@ -9,9 +9,11 @@ import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dataaggre.dto.epmetuser.result.StaffPatrolRecordDailyResultDTO;
import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
+import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import com.epmet.dataaggre.service.AggreGridService;
import com.epmet.dataaggre.service.datastats.DataStatsService;
+import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.github.pagehelper.PageInfo;
@@ -20,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
@Service
public class AggreGridServiceImpl implements AggreGridService {
@@ -33,6 +37,9 @@ public class AggreGridServiceImpl implements AggreGridService {
@Autowired
private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService;
+ @Autowired
+ private EpmetUserService epmetUserService;
+
@Override
public List getGridMemberDataAnalysis(
List gridIds,
@@ -100,6 +107,19 @@ public class AggreGridServiceImpl implements AggreGridService {
List> userIdsParts = Lists.partition(userIds, partSize);
for (List userIdsPart : userIdsParts) {
+
+ // 批量查询出用户信息
+ List staffInfos = epmetUserService.listStaffsByIds(userIdsPart);
+ //Map staffIdAndStaffInfo = staffInfos.stream().collect(Collectors.toMap((s) -> s.getUserId(), Function.identity()));
+ for (CustomerStaffEntity staffInfo : staffInfos) {
+ Map gridAndData = structedData.get(staffInfo.getUserId());
+ if (gridAndData != null) {
+ gridAndData.forEach((k, v) -> v.setMobile(staffInfo.getMobile()));
+ }
+ }
+
+
+ // 批量查询出巡查信息
List patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, userIdsPart, startDateID, endDateID);
for (StaffPatrolRecordDailyResultDTO d : patrolDatas) {
Map gridAndData = structedData.get(d.getStaffId());