From ac0c96dfe040212fd14fe5c608433ad5c5d2edc6 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 5 Jan 2022 16:22:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=8E=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 29 ------------------- .../PatrolRoutineWorkController.java | 11 ------- 2 files changed, 40 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 224e480e9c..0000000000 --- a/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -# Created by .ignore support plugin (hsz.mobi) -### Java template -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -.idea/ -*.iml -target/ - diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java index c24db708c6..5297d84c2a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java @@ -81,19 +81,8 @@ public class PatrolRoutineWorkController { @PostMapping("pcwork/list/export") public void pcWorkListExport(@RequestBody PcWorkListFormDTO formDTO, HttpServletResponse response) throws Exception { -// formDTO.setIsPage(false); ValidatorUtils.validateEntity(formDTO, PcWorkListFormDTO.PcWorkListForm.class); gridUserWorkService.pcWorkListExport(formDTO,response); -// ExcelUtils.exportExcelToTarget(response, null, resultDTO.getList(), PcWorkListExport.class); - - } - - public String getPcWorkListExportName(PcWorkListFormDTO formDTO){ - String result = "例行工作列表"; - if (StringUtils.isNotBlank(formDTO.getStartTime())){ - - } - return result; } } From 646f89c402ee759c4a654bef876849781758b09c Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 5 Jan 2022 16:53:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=B8=B8=E9=87=8F=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java index 5d0aa60d4f..642bf1be8e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java @@ -276,7 +276,7 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl { w1.getChildren().forEach(w2 -> { if (c.equals(w2.getId())){ - result.add(w1.getName() + "-" + w2.getName()); + result.add(w1.getName() + StrConstant.HYPHEN + w2.getName()); } }); }); From 9d552606f2269bf53fd700f6d3486855772a11c2 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 6 Jan 2022 00:08:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.=E7=BD=91?= =?UTF-8?q?=E6=A0=BC=E5=91=98=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=EF=BC=8C?= =?UTF-8?q?=E5=85=A5=E5=8F=82agencyId->orgId=20=E6=96=B0=E5=A2=9E=EF=BC=9A?= =?UTF-8?q?=201.=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A5=E4=BD=9C=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=EF=BC=8Cexcel=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/GridMemberDataAnalysisFromDTO.java | 5 +- .../data-aggregator-server/pom.xml | 14 +- ...GridMemberDataAnalysisExcelExportBean.java | 55 +++++++ .../controller/GovOrgController.java | 153 ++++++++++-------- .../FactGridMemberStatisticsDailyDao.java | 2 + .../StatsStaffPatrolRecordDailyDao.java | 1 + .../dataaggre/service/AggreGridService.java | 20 ++- .../service/datastats/DataStatsService.java | 9 +- .../datastats/impl/DataStatsServiceImpl.java | 14 +- .../StatsStaffPatrolRecordDailyService.java | 2 +- ...tatsStaffPatrolRecordDailyServiceImpl.java | 4 +- .../service/impl/AggreGridServiceImpl.java | 29 +++- .../FactGridMemberStatisticsDailyDao.xml | 22 ++- .../StatsStaffPatrolRecordDailyDao.xml | 12 +- 14 files changed, 248 insertions(+), 94 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/beans/GridMemberDataAnalysisExcelExportBean.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridMemberDataAnalysisFromDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridMemberDataAnalysisFromDTO.java index ca0ee068eb..95397af9c6 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridMemberDataAnalysisFromDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridMemberDataAnalysisFromDTO.java @@ -25,7 +25,10 @@ public class GridMemberDataAnalysisFromDTO { private Integer pageSize = 10; @NotBlank(message = "请选择组织", groups = { listGridMemberDatas4PcWork.class }) - private String agencyId; + private String orgId; + + @NotBlank(message = "请选择组织类型", groups = { listGridMemberDatas4PcWork.class }) + private String orgType; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index b26bfa373b..abe5cf4780 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -82,12 +82,16 @@ 2.0.0 compile - + + cglib + cglib + 3.1 + com.alibaba easyexcel 3.0.3 - + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/beans/GridMemberDataAnalysisExcelExportBean.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/beans/GridMemberDataAnalysisExcelExportBean.java new file mode 100644 index 0000000000..c8ce22756f --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/beans/GridMemberDataAnalysisExcelExportBean.java @@ -0,0 +1,55 @@ +package com.epmet.dataaggre.beans; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +/** + * 网格员数据分析excel导出bean + */ +@Getter +@Setter +@EqualsAndHashCode +@ColumnWidth(20) +public class GridMemberDataAnalysisExcelExportBean { + @ExcelProperty(value = {"姓名"}) + private String staffName; + + @ExcelProperty(value = {"手机号"}) + private String mobile; + + @ExcelProperty(value = {"所属网格"}) + private String orgName; + + // 项目议题等 + @ExcelProperty(value = {"项目数"}) + private Integer projectCount; + + @ExcelProperty(value = {"议题转项目数"}) + private Integer issueToProjectCount; + + @ExcelProperty(value = {"议题关闭数"}) + private Integer closedIssueCount; + + @ExcelProperty(value = {"项目事件响应数"}) + private Integer projectResponseCount; + + @ExcelProperty(value = {"项目事件吹哨数"}) + private Integer projectTransferCount; + + @ExcelProperty(value = {"项目事件结案数"}) + private Integer projectClosedCount; + + // 巡查 + @ExcelProperty(value = {"巡查次数"}) + private int patrolTimes; + + @ExcelProperty(value = {"巡查时长"}) + private int totalTime; + + @ExcelProperty(value = {"例行工作次数"}) + private int patrolRoutineWorkTimes; +} \ No newline at end of file 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 58a065b164..2101914c08 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 @@ -2,44 +2,48 @@ package com.epmet.dataaggre.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; -import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; 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.validator.ValidatorUtils; -import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; +import com.epmet.dataaggre.beans.GridMemberDataAnalysisExcelExportBean; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; -import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.govorg.GovOrgService; -import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; -import javax.validation.constraints.NotBlank; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; import java.io.IOException; +import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; /** * @Author zxc @@ -244,13 +248,14 @@ public class GovOrgController { public Result getGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input) { ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class); - String agencyId = input.getAgencyId(); + String orgId = input.getOrgId(); Date startTime = input.getStartTime(); Date endTime = input.getEndTime(); Integer pageNo = input.getPageNo(); Integer pageSize = input.getPageSize(); + String orgType = input.getOrgType(); - PageData page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime); + PageData page = aggreGridService.getGridMemberDataAnalysis4PcWork(orgId, orgType, pageNo, pageSize, startTime, endTime, true); return new Result().ok(page); } @@ -260,80 +265,96 @@ public class GovOrgController { * @return */ @PostMapping("pcwork/gridmember-analysis/export") - public Result exportGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input) { + public void exportGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input, HttpServletResponse response) { ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class); - String agencyId = input.getAgencyId(); + String orgId = input.getOrgId(); Date startTime = input.getStartTime(); Date endTime = input.getEndTime(); + String orgType = input.getOrgType(); - int pageNo = 0; - int pageSize = 1000; - + // 缓存路径 String tempFileName = UUID.randomUUID().toString().concat(".xlsx"); + Path tempFilePath = gridMemberStatsExcelExportDir.resolve(tempFileName); + log.info("工作统计excel文件下载路径:{}", tempFilePath.toString()); - ExcelWriter excelWriter = EasyExcel.write(tempFileName, GridMemberDataAnalysisExcelExportBean.class).build(); - // 这里注意 如果同一个sheet只要创建一次 - WriteSheet writeSheet = EasyExcel.writerSheet("模板").build(); - - PageData page; - do { - page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime); - List pageList = page.getList(); - - List exportBeans = ConvertUtils.sourceToTarget(pageList, GridMemberDataAnalysisExcelExportBean.class); - - excelWriter.write(exportBeans, writeSheet); - + ExcelWriter excelWriter = null; - } while (page.getList().size() == pageSize); - - return null; - } - - /** - * 网格员数据分析excel导出bean - */ - @Data - public class GridMemberDataAnalysisExcelExportBean { - @ExcelProperty("姓名") - private String staffName; + // 组织名称 + AtomicReference orgName = new AtomicReference<>(""); - @ExcelProperty("手机号") - private String mobile; + if ("grid".equals(orgType)) { + CustomerGridDTO gridInfo = govOrgService.getGridInfo(orgId); + Optional.ofNullable(gridInfo).ifPresent((g) -> orgName.set(g.getGridName())); + } else if ("agency".equals(orgType)) { + CustomerAgencyEntity agencyInfo = govOrgService.getAgencyInfo(orgId); + Optional.ofNullable(agencyInfo).ifPresent((a) -> orgName.set(a.getOrganizationName())); + } - @ExcelProperty("所属网格") - private String orgName; + // sheet名 + String sheetName = getSheetName(orgName.get(), startTime, endTime); - // 项目议题等 - @ExcelProperty("项目数") - private Integer projectCount; + // 分页导出到缓存excel + try { + excelWriter = EasyExcel.write(tempFilePath.toString(), GridMemberDataAnalysisExcelExportBean.class).build(); + // 这里注意 如果同一个sheet只要创建一次 + WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build(); - @ExcelProperty("议题转项目数") - private Integer issueToProjectCount; + PageData page; - @ExcelProperty("议题关闭数") - private Integer closedIssueCount; + int pageNo = 0; + int pageSize = 1000; - @ExcelProperty("项目事件响应数") - private Integer projectResponseCount; + do { + page = aggreGridService.getGridMemberDataAnalysis4PcWork(orgId, orgType, pageNo, pageSize, startTime, endTime, false); + List pageList = page.getList(); - @ExcelProperty("项目事件吹哨数") - private Integer projectTransferCount; + List exportBeans = ConvertUtils.sourceToTarget(pageList, GridMemberDataAnalysisExcelExportBean.class); - @ExcelProperty("项目事件结案数") - private Integer projectClosedCount; + excelWriter.write(exportBeans, writeSheet); - // 巡查 - @ExcelProperty("巡查次数") - private int patrolTimes; + } while (page.getList().size() == pageSize); - @ExcelProperty("巡查时长") - private int totalTime; + } catch (Exception e) { + e.printStackTrace(); + log.error("【PC工作端网格员数据统计导出】生成excel失败:{}", ExceptionUtils.getErrorStackTrace(e)); + } finally { + // 关闭流 + Optional.ofNullable(excelWriter).ifPresent((i) -> i.finish()); + } - @ExcelProperty("例行工作次数") - private int patrolRoutineWorkTimes; + // 开始下载缓存excel到客户端,然后删除缓存文件 + try { + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(sheetName.concat(".xlsx"), "UTF-8")); + + IOUtils.copy(new FileInputStream(tempFilePath.toString()), response.getOutputStream()); + } catch (Exception e) { + log.error(ExceptionUtils.getErrorStackTrace(e)); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "【下载工作统计信息】下载失败"); + } finally { + try { + Files.delete(tempFilePath); + } catch (IOException e) { + log.error(ExceptionUtils.getErrorStackTrace(e)); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "【下载工作统计信息】删除缓存文件失败"); + } + } } - + private String getSheetName(String orgName, Date startTime, Date endTime) { + StringBuilder sb = new StringBuilder(orgName); + String s = orgName; + if (startTime == null && endTime != null) { + sb.append("截止").append(DateUtils.format(endTime, DateUtils.DATE_PATTERN)); + } else if (startTime != null && endTime != null) { + sb.append(DateUtils.format(startTime, DateUtils.DATE_PATTERN)) + .append("至") + .append(DateUtils.format(endTime, DateUtils.DATE_PATTERN)) + .append("区间新增值"); + } + sb.append("的工作统计"); + return sb.toString(); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java index 435d92a2f3..b1e8284a74 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java @@ -60,6 +60,7 @@ public interface FactGridMemberStatisticsDailyDao extends BaseDao listGridMemberDataStatsAccumulate(@Param("pids") String pids, + @Param("gridId") String gridId, @Param("endDateID") String endDateID); /** @@ -70,6 +71,7 @@ public interface FactGridMemberStatisticsDailyDao extends BaseDao listGridMemberDataStatsIncr(@Param("pids") String pids, + @Param("gridId") String gridId, @Param("startDateID") String startDateID, @Param("endDateID") String endDateID); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java index d64a52ac27..49c101c018 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java @@ -61,6 +61,7 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao listStaffPatrolRecordDailyAnalysis(@Param("gridPids") String gridPids, + @Param("gridId") String gridId, @Param("userIds") List userIds, @Param("startDateId") String startDateID, @Param("endDateID") String endDateID); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/AggreGridService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/AggreGridService.java index 7c18dbd819..85a447a88c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/AggreGridService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/AggreGridService.java @@ -2,6 +2,7 @@ package com.epmet.dataaggre.service; import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import com.sun.org.apache.xpath.internal.operations.Bool; import java.util.Date; import java.util.List; @@ -18,16 +19,29 @@ public interface AggreGridService { * @author wxz * @date 2021.07.05 11:17 */ - List getGridMemberDataAnalysis(List gridIds, String searchedStaffName, String currStaffId, String month, String sort, Integer pageNo, Integer pageSize); + List getGridMemberDataAnalysis(List gridIds, + String searchedStaffName, + String currStaffId, + String month, + String sort, + Integer pageNo, + Integer pageSize); /** * 网格员巡查统计查询 pcwork端 - * @param agencyId + * @param orgId 组织id + * @param orgType 组织类型:agency,grid * @param pageNo * @param pageSize * @param startTime * @param endTime * @return */ - PageData getGridMemberDataAnalysis4PcWork(String agencyId, Integer pageNo, Integer pageSize, Date startTime, Date endTime); + PageData getGridMemberDataAnalysis4PcWork(String orgId, + String orgType, + Integer pageNo, + Integer pageSize, + Date startTime, + Date endTime, + Boolean needCount); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 2fe6e6de53..3d21ac929d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -269,7 +269,14 @@ public interface DataStatsService { * @param pageSize * @param startDateID 查询起始时间(匹配统计表的dateId列) * @param endDateID 查询结束时间(匹配统计表的dateId列) + * @param needCount 是否需要查询Count,分页查询需要,导出excel不需要 * @return */ - List getGridMemberIssueProjectStats4PcWork(String pids, Integer pageNo, Integer pageSize, String startDateID, String endDateID); + List getGridMemberIssueProjectStats4PcWork(String pids, + String gridId, + Integer pageNo, + Integer pageSize, + String startDateID, + String endDateID, + Boolean needCount); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index 25a7b37875..224f55f61c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -2150,18 +2150,24 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve } @Override - public List getGridMemberIssueProjectStats4PcWork(String pids, Integer pageNo, Integer pageSize, String startDateID, String endDateID) { + public List getGridMemberIssueProjectStats4PcWork(String pids, + String gridId, + Integer pageNo, + Integer pageSize, + String startDateID, + String endDateID, + Boolean needCount) { boolean isStartDateIdBlank = StringUtils.isBlank(startDateID); boolean isEndDateIdBlank = StringUtils.isBlank(endDateID); if (isStartDateIdBlank && !isEndDateIdBlank) { // 查询截止时间的累计值,直接查询表里的total即可 - PageHelper.startPage(pageNo, pageSize); - return factGridMemberStatisticsDailyDao.listGridMemberDataStatsAccumulate(pids, endDateID); + PageHelper.startPage(pageNo, pageSize, needCount); + return factGridMemberStatisticsDailyDao.listGridMemberDataStatsAccumulate(pids, gridId, endDateID); } else if (!isStartDateIdBlank && !isEndDateIdBlank) { // 查询时间段内的增量,需要使用表中的增量列计算 - return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, startDateID, endDateID); + return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, gridId, startDateID, endDateID); } else { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "【pcwork查询网格员数据统计列表】传入时间条件有误"); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java index 8a625b0e72..4bd0b91d93 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java @@ -57,5 +57,5 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService listStaffPatrolRecordDailyAnalysis(String gridPids, List userIds, String startDateID, String endDateID); + List listStaffPatrolRecordDailyAnalysis(String gridPids, String gridId, List userIds, String startDateID, String endDateID); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java index 7fd617cee3..610bdcd81c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java @@ -49,7 +49,7 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl listStaffPatrolRecordDailyAnalysis(String gridPids, List userIds, String startDateID, String endDateID) { - return baseDao.listStaffPatrolRecordDailyAnalysis(gridPids, userIds, startDateID, endDateID); + public List listStaffPatrolRecordDailyAnalysis(String gridPids, String gridId, List userIds, String startDateID, String endDateID) { + return baseDao.listStaffPatrolRecordDailyAnalysis(gridPids, gridId, userIds, startDateID, endDateID); } } 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 7b2e56ff2f..dcf258d270 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 @@ -65,17 +65,32 @@ public class AggreGridServiceImpl implements AggreGridService { } @Override - public PageData getGridMemberDataAnalysis4PcWork(String agencyId, Integer pageNo, Integer pageSize, Date startTime, Date endTime) { + public PageData getGridMemberDataAnalysis4PcWork(String orgId, + String orgType, + Integer pageNo, + Integer pageSize, + Date startTime, + Date endTime, + Boolean needCount) { // 计算出开始dateId和结束endId String startDateID = DateUtils.format(startTime, DateUtils.DATE_PATTERN_YYYYMMDD); String endDateID = DateUtils.format(endTime, DateUtils.DATE_PATTERN_YYYYMMDD); - // 拿到组织pids,含自身 - String pids = getPidsByAgencyId(agencyId); + // 根据orgType判断是使用agency的pids还是直接使用gridId作为条件 + String pids = null; + String gridId = null; + + if ("grid".equals(orgType)) { + gridId = orgId; + } else if ("agency".equals(orgType)) { + pids = getPidsByAgencyId(orgId); + } else { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织类型不支持"); + } // 一.查询网格员数据统计相关信息 - List datas = dataStatsService.getGridMemberIssueProjectStats4PcWork(pids, pageNo, pageSize, startDateID, endDateID); + List datas = dataStatsService.getGridMemberIssueProjectStats4PcWork(pids, gridId, pageNo, pageSize, startDateID, endDateID, needCount); long total = new PageInfo<>(datas).getTotal(); // 二.匹配用户巡查,例行工作数据 @@ -120,7 +135,7 @@ public class AggreGridServiceImpl implements AggreGridService { // 批量查询出巡查信息 - List patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, userIdsPart, startDateID, endDateID); + List patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, gridId, userIdsPart, startDateID, endDateID); for (StaffPatrolRecordDailyResultDTO d : patrolDatas) { Map gridAndData = structedData.get(d.getStaffId()); @@ -135,7 +150,7 @@ public class AggreGridServiceImpl implements AggreGridService { } } - return new PageData(datas, total); + return new PageData<>(datas, total); } /** @@ -148,7 +163,7 @@ public class AggreGridServiceImpl implements AggreGridService { if (agencyInfo == null) { String errorMsg = "【网格员数据统计查询pcwork】查询组织信息返回为null"; - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorMsg, errorMsg); } String pidsAndAgencyIdPath = agencyInfo.getPids().concat(":").concat(agencyId); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml index 474e0ea8a9..4a5c0e7578 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml @@ -152,9 +152,16 @@ member.CLOSED_ISSUE_COUNT project_closed_count from fact_grid_member_statistics_daily member inner join ( - select max(gms.DATE_ID) dateId from fact_grid_member_statistics_daily gms where gms.DATE_ID ${endDateID} and gms.DEL_FLAG = '0' + select max(gms.DATE_ID) dateId from fact_grid_member_statistics_daily gms where gms.DATE_ID #{endDateID} and gms.DEL_FLAG = '0' ) dim on (member.DATE_ID = dim.dateId) - where member.PIDS like CONCAT(#{pids}, '%') and member.DEL_FLAG = '0' + where + member.DEL_FLAG = '0' + + AND member.PIDS like CONCAT(#{pids}, '%') + + + AND member.GRID_ID = #{gridId} + order by convert(member.staff_name using gbk) asc, member.GRID_ID asc @@ -170,10 +177,17 @@ sum(member.project_transfer_incr) project_transfer_count, sum(member.project_closed_incr) project_closed_count from fact_grid_member_statistics_daily member - where member.PIDS like CONCAT(#{pids}, '%') + where + member.DEL_FLAG = '0' + + AND member.PIDS like CONCAT(#{pids}, '%') + + + AND member.GRID_ID = #{gridId} + + and member.DATE_ID >= #{startDateID} and member.DATE_ID #{endDateID} - and member.DEL_FLAG = '0' group by member.grid_id, member.staff_id, member.STAFF_NAME diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml index 82ce39afc2..d95a39d0a4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml @@ -66,12 +66,20 @@ sum(ROUTINE_WORK_COUNT) as patrol_routine_work_times from stats_staff_patrol_record_daily sprd where - sprd.GRID_PIDS like CONCAT(#{gridPids}, '%') + sprd.DEL_FLAG = '0' + + and sprd.GRID_ID=#{gridId} + + + and sprd.GRID_PIDS like CONCAT(#{gridPids}, '%') + and sprd.STAFF_ID in #{userId} - and sprd.DATE_ID >= #{startDateId} + + and sprd.DATE_ID >= #{startDateId} + and sprd.DATE_ID #{endDateID} group by sprd.STAFF_ID,