Browse Source

修改:

1.网格员工作统计,入参agencyId->orgId
新增:
1.网格员工作统计,excel导出
dev_shibei_match
wangxianzhang 4 years ago
parent
commit
9d552606f2
  1. 5
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridMemberDataAnalysisFromDTO.java
  2. 14
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  3. 55
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/beans/GridMemberDataAnalysisExcelExportBean.java
  4. 153
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
  5. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java
  6. 1
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StatsStaffPatrolRecordDailyDao.java
  7. 20
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/AggreGridService.java
  8. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  9. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  10. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/StatsStaffPatrolRecordDailyService.java
  11. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/StatsStaffPatrolRecordDailyServiceImpl.java
  12. 29
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java
  13. 22
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml
  14. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StatsStaffPatrolRecordDailyDao.xml

5
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")

14
epmet-module/data-aggregator/data-aggregator-server/pom.xml

@ -82,12 +82,16 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.3</version>
<!--<exclusions>
<exclusions>
<exclusion>
<artifactId>poi</artifactId>
<groupId>org.apache.poi</groupId>
@ -100,7 +104,11 @@
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
</exclusions>-->
<!--<exclusion>
<artifactId>cglib</artifactId>
<groupId>cglib</groupId>
</exclusion>-->
</exclusions>
</dependency>
</dependencies>

55
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;
}

153
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<GridMemberDataAnalysisResultDTO> page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime);
PageData<GridMemberDataAnalysisResultDTO> 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<GridMemberDataAnalysisResultDTO> page;
do {
page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime);
List<GridMemberDataAnalysisResultDTO> pageList = page.getList();
List<GridMemberDataAnalysisExcelExportBean> 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<String> 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<GridMemberDataAnalysisResultDTO> 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<GridMemberDataAnalysisResultDTO> pageList = page.getList();
@ExcelProperty("项目事件吹哨数")
private Integer projectTransferCount;
List<GridMemberDataAnalysisExcelExportBean> 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();
}
}

2
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<FactGridMember
* @return
*/
List<GridMemberDataAnalysisResultDTO> listGridMemberDataStatsAccumulate(@Param("pids") String pids,
@Param("gridId") String gridId,
@Param("endDateID") String endDateID);
/**
@ -70,6 +71,7 @@ public interface FactGridMemberStatisticsDailyDao extends BaseDao<FactGridMember
* @return
*/
List<GridMemberDataAnalysisResultDTO> listGridMemberDataStatsIncr(@Param("pids") String pids,
@Param("gridId") String gridId,
@Param("startDateID") String startDateID,
@Param("endDateID") String endDateID);
}

1
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<StatsStaffPatrol
* @return
*/
List<StaffPatrolRecordDailyResultDTO> listStaffPatrolRecordDailyAnalysis(@Param("gridPids") String gridPids,
@Param("gridId") String gridId,
@Param("userIds") List<String> userIds,
@Param("startDateId") String startDateID,
@Param("endDateID") String endDateID);

20
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<GridMemberDataAnalysisResultDTO> getGridMemberDataAnalysis(List<String> gridIds, String searchedStaffName, String currStaffId, String month, String sort, Integer pageNo, Integer pageSize);
List<GridMemberDataAnalysisResultDTO> getGridMemberDataAnalysis(List<String> 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<GridMemberDataAnalysisResultDTO> getGridMemberDataAnalysis4PcWork(String agencyId, Integer pageNo, Integer pageSize, Date startTime, Date endTime);
PageData<GridMemberDataAnalysisResultDTO> getGridMemberDataAnalysis4PcWork(String orgId,
String orgType,
Integer pageNo,
Integer pageSize,
Date startTime,
Date endTime,
Boolean needCount);
}

9
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<GridMemberDataAnalysisResultDTO> getGridMemberIssueProjectStats4PcWork(String pids, Integer pageNo, Integer pageSize, String startDateID, String endDateID);
List<GridMemberDataAnalysisResultDTO> getGridMemberIssueProjectStats4PcWork(String pids,
String gridId,
Integer pageNo,
Integer pageSize,
String startDateID,
String endDateID,
Boolean needCount);
}

14
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<GridMemberDataAnalysisResultDTO> getGridMemberIssueProjectStats4PcWork(String pids, Integer pageNo, Integer pageSize, String startDateID, String endDateID) {
public List<GridMemberDataAnalysisResultDTO> 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查询网格员数据统计列表】传入时间条件有误");
}

2
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<StatsSta
* @param endDateID
* @return
*/
List<StaffPatrolRecordDailyResultDTO> listStaffPatrolRecordDailyAnalysis(String gridPids, List<String> userIds, String startDateID, String endDateID);
List<StaffPatrolRecordDailyResultDTO> listStaffPatrolRecordDailyAnalysis(String gridPids, String gridId, List<String> userIds, String startDateID, String endDateID);
}

4
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<Stat
}
@Override
public List<StaffPatrolRecordDailyResultDTO> listStaffPatrolRecordDailyAnalysis(String gridPids, List<String> userIds, String startDateID, String endDateID) {
return baseDao.listStaffPatrolRecordDailyAnalysis(gridPids, userIds, startDateID, endDateID);
public List<StaffPatrolRecordDailyResultDTO> listStaffPatrolRecordDailyAnalysis(String gridPids, String gridId, List<String> userIds, String startDateID, String endDateID) {
return baseDao.listStaffPatrolRecordDailyAnalysis(gridPids, gridId, userIds, startDateID, endDateID);
}
}

29
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<GridMemberDataAnalysisResultDTO> getGridMemberDataAnalysis4PcWork(String agencyId, Integer pageNo, Integer pageSize, Date startTime, Date endTime) {
public PageData<GridMemberDataAnalysisResultDTO> 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<GridMemberDataAnalysisResultDTO> datas = dataStatsService.getGridMemberIssueProjectStats4PcWork(pids, pageNo, pageSize, startDateID, endDateID);
List<GridMemberDataAnalysisResultDTO> 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<StaffPatrolRecordDailyResultDTO> patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, userIdsPart, startDateID, endDateID);
List<StaffPatrolRecordDailyResultDTO> patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, gridId, userIdsPart, startDateID, endDateID);
for (StaffPatrolRecordDailyResultDTO d : patrolDatas) {
Map<String, GridMemberDataAnalysisResultDTO> gridAndData = structedData.get(d.getStaffId());
@ -135,7 +150,7 @@ public class AggreGridServiceImpl implements AggreGridService {
}
}
return new PageData<GridMemberDataAnalysisResultDTO>(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);

22
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 <![CDATA[<]]> ${endDateID} and gms.DEL_FLAG = '0'
select max(gms.DATE_ID) dateId from fact_grid_member_statistics_daily gms where gms.DATE_ID <![CDATA[<]]> #{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'
<if test="pids != null and pids != ''">
AND member.PIDS like CONCAT(#{pids}, '%')
</if>
<if test="gridId != null and gridId != ''">
AND member.GRID_ID = #{gridId}
</if>
order by convert(member.staff_name using gbk) asc, member.GRID_ID asc
</select>
@ -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'
<if test="pids != null and pids != ''">
AND member.PIDS like CONCAT(#{pids}, '%')
</if>
<if test="gridId != null and gridId != ''">
AND member.GRID_ID = #{gridId}
</if>
and member.DATE_ID >= #{startDateID}
and member.DATE_ID <![CDATA[<]]> #{endDateID}
and member.DEL_FLAG = '0'
group by member.grid_id,
member.staff_id,
member.STAFF_NAME

12
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'
<if test="gridId != null and gridId != ''">
and sprd.GRID_ID=#{gridId}
</if>
<if test="gridPids != null and gridPids != ''">
and sprd.GRID_PIDS like CONCAT(#{gridPids}, '%')
</if>
and sprd.STAFF_ID in
<foreach collection="userIds" open="(" item="userId" separator="," close=")">
#{userId}
</foreach>
and sprd.DATE_ID >= #{startDateId}
<if test="startDateId != null and startDateId != ''">
and sprd.DATE_ID >= #{startDateId}
</if>
and sprd.DATE_ID <![CDATA[<]]> #{endDateID}
group by
sprd.STAFF_ID,

Loading…
Cancel
Save