diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffPatrolRecordDailyResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffPatrolRecordDailyResultDTO.java new file mode 100644 index 0000000000..be6f619fcc --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffPatrolRecordDailyResultDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import lombok.Data; + +/** + * @ClassName StaffPatrolRecordDailyResultDTO + * @Description 工作人员巡查记录按日统计,查询结果 + * @Author wangxianzhang + * @Date 2022/1/4 4:08 下午 + */ +@Data +public class StaffPatrolRecordDailyResultDTO { + + private String staffId; + private String gridId; + + private int patrolTimes; + private int totalTime; + private int patrolRoutineWorkTimes; + +} 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 1803db4c96..59be0d83c3 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 @@ -3,12 +3,14 @@ package com.epmet.dataaggre.dto.govorg.form; import lombok.Data; import javax.validation.constraints.NotBlank; +import java.util.Date; import java.util.List; @Data public class GridMemberDataAnalysisFromDTO { public interface listGridMemberDatas {} + public interface listGridMemberDatas4PcWork {} private List gridIds; @@ -19,4 +21,9 @@ public class GridMemberDataAnalysisFromDTO { private String sort; private Integer pageNo = 1; private Integer pageSize = 10; + + @NotBlank(message = "请选择组织", groups = { listGridMemberDatas4PcWork.class }) + private String agencyId; + private Date startTime; + private Date endTime; } 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 b431cfafab..4da050970e 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 @@ -9,7 +9,9 @@ public class GridMemberDataAnalysisResultDTO { private String staffId; private String staffName; private String orgName; + //private String gridName; + // 项目议题等 private Integer projectCount; private Integer issueToProjectCount; private Integer closedIssueCount; @@ -17,4 +19,9 @@ public class GridMemberDataAnalysisResultDTO { 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/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 14500cc2ab..97c9c4429e 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 @@ -5,6 +5,7 @@ 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.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.Result; @@ -23,7 +24,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import javax.validation.constraints.NotBlank; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -201,4 +204,23 @@ public class GovOrgController { return new Result().ok(govOrgService.getGridInfo(gridId)); } + /** + * pc 工作端,网格员巡查统计 + * @param input + * @return + */ + @PostMapping("pcwork/gridmember-analysis") + public Result getGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input) { + ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class); + + String agencyId = input.getAgencyId(); + Date startTime = input.getStartTime(); + Date endTime = input.getEndTime(); + Integer pageNo = input.getPageNo(); + Integer pageSize = input.getPageSize(); + + PageData page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime); + return new Result().ok(page); + } + } 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 a8ea0bcc94..435d92a2f3 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 @@ -52,4 +52,24 @@ public interface FactGridMemberStatisticsDailyDao extends BaseDao listGridMemberDataStatsAccumulate(@Param("pids") String pids, + @Param("endDateID") String endDateID); + + /** + * 按照时间段查询网格员数据统计增量值 + * @param pids + * @param startDateID + * @param endDateID + * @return + */ + List listGridMemberDataStatsIncr(@Param("pids") String pids, + @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 8be4c4c34e..d64a52ac27 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 @@ -22,6 +22,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; import com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; +import com.epmet.dataaggre.dto.epmetuser.result.StaffPatrolRecordDailyResultDTO; import com.epmet.dataaggre.entity.epmetuser.StatsStaffPatrolRecordDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -51,4 +52,16 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao patrolList(CustomerDataManageFormDTO formDTO); + + /** + * 工作人员巡查记录,按日统计,查询 + * @param userIds + * @param startDateID + * @param endDateID + * @return + */ + List listStaffPatrolRecordDailyAnalysis(@Param("gridPids") String gridPids, + @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 3702bbb319..7c18dbd819 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 @@ -1,7 +1,9 @@ package com.epmet.dataaggre.service; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import java.util.Date; import java.util.List; /** @@ -17,4 +19,15 @@ public interface AggreGridService { * @date 2021.07.05 11:17 */ List getGridMemberDataAnalysis(List gridIds, String searchedStaffName, String currStaffId, String month, String sort, Integer pageNo, Integer pageSize); + + /** + * 网格员巡查统计查询 pcwork端 + * @param agencyId + * @param pageNo + * @param pageSize + * @param startTime + * @param endTime + * @return + */ + PageData getGridMemberDataAnalysis4PcWork(String agencyId, Integer pageNo, Integer pageSize, Date startTime, Date endTime); } 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 de584839e2..2fe6e6de53 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 @@ -13,6 +13,7 @@ import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import javax.servlet.http.HttpServletResponse; import java.text.ParseException; +import java.util.Date; import java.util.List; /** @@ -260,4 +261,15 @@ public interface DataStatsService { * @author sun */ List getProjectMonthIncr(ProjectTotalFormDTO formDTO); + + /** + * 查询网格员项目统计数据4 pcwork + * @param pids 组织PIDS + * @param pageNo + * @param pageSize + * @param startDateID 查询起始时间(匹配统计表的dateId列) + * @param endDateID 查询结束时间(匹配统计表的dateId列) + * @return + */ + List getGridMemberIssueProjectStats4PcWork(String pids, Integer pageNo, Integer pageSize, String startDateID, String endDateID); } 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 ac426b81d7..25a7b37875 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 @@ -3,9 +3,12 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.enums.OrgLevelEnum; -import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.utils.ConvertUtils; + import com.epmet.commons.tools.enums.OrgLevelEnum; + import com.epmet.commons.tools.exception.EpmetErrorCode; + import com.epmet.commons.tools.exception.EpmetException; + import com.epmet.commons.tools.exception.RenException; + import com.epmet.commons.tools.feign.ResultDataResolver; + import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.dataaggre.constant.DataSourceConstant; @@ -29,12 +32,16 @@ import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; -import com.epmet.dataaggre.excel.CustomerDataManageExcel; + import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; + import com.epmet.dataaggre.excel.CustomerDataManageExcel; import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; -import com.epmet.dataaggre.service.opercrm.CustomerRelation; -import com.github.pagehelper.PageHelper; + import com.epmet.dataaggre.service.govorg.GovOrgService; + import com.epmet.dataaggre.service.opercrm.CustomerRelation; + import com.epmet.dto.CustomerAgencyDTO; + import com.epmet.feign.GovOrgOpenFeignClient; + import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -59,7 +66,7 @@ import java.util.stream.Collectors; @Service @DataSource(DataSourceConstant.DATA_STATISTICAL) @Slf4j -public class DataStatsServiceImpl implements DataStatsService { +public class DataStatsServiceImpl implements DataStatsService, ResultDataResolver { @Autowired private DataStatsDao dataStatsDao; @Autowired @@ -71,7 +78,8 @@ public class DataStatsServiceImpl implements DataStatsService { private FactGridMemberStatisticsDailyDao factGridMemberStatisticsDailyDao; @Autowired private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; - + @Autowired + private GovOrgService govOrgService; /** * @Param formDTO @@ -2141,5 +2149,21 @@ public class DataStatsServiceImpl implements DataStatsService { return dataStatsDao.getProjectMonthIncr(formDTO); } - + @Override + public List getGridMemberIssueProjectStats4PcWork(String pids, Integer pageNo, Integer pageSize, String startDateID, String endDateID) { + + boolean isStartDateIdBlank = StringUtils.isBlank(startDateID); + boolean isEndDateIdBlank = StringUtils.isBlank(endDateID); + + if (isStartDateIdBlank && !isEndDateIdBlank) { + // 查询截止时间的累计值,直接查询表里的total即可 + PageHelper.startPage(pageNo, pageSize); + return factGridMemberStatisticsDailyDao.listGridMemberDataStatsAccumulate(pids, endDateID); + } else if (!isStartDateIdBlank && !isEndDateIdBlank) { + // 查询时间段内的增量,需要使用表中的增量列计算 + return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, 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 70afc1e944..8a625b0e72 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 @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; import com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; +import com.epmet.dataaggre.dto.epmetuser.result.StaffPatrolRecordDailyResultDTO; import com.epmet.dataaggre.entity.epmetuser.StatsStaffPatrolRecordDailyEntity; import java.util.List; @@ -47,4 +48,14 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService patrolList(CustomerDataManageFormDTO formDTO); + + /** + * 查询工作人员巡查记录按日统计 + * @param gridPids 记录所属的网格的pids + * @param userIds + * @param startDateID + * @param endDateID + * @return + */ + List listStaffPatrolRecordDailyAnalysis(String gridPids, 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 ccfe71e399..7fd617cee3 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 @@ -7,6 +7,7 @@ import com.epmet.dataaggre.dao.epmetuser.StatsStaffPatrolRecordDailyDao; import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; import com.epmet.dataaggre.dto.datastats.result.CustomerDataManageResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; +import com.epmet.dataaggre.dto.epmetuser.result.StaffPatrolRecordDailyResultDTO; import com.epmet.dataaggre.entity.epmetuser.StatsStaffPatrolRecordDailyEntity; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import lombok.extern.slf4j.Slf4j; @@ -47,4 +48,8 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl listStaffPatrolRecordDailyAnalysis(String gridPids, List userIds, String startDateID, String endDateID) { + return baseDao.listStaffPatrolRecordDailyAnalysis(gridPids, 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 d2fc60ad35..48f1a811b7 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 @@ -1,19 +1,25 @@ package com.epmet.dataaggre.service.impl; +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.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +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.govorg.CustomerAgencyEntity; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.datastats.DataStatsService; +import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import com.epmet.dataaggre.service.govorg.GovOrgService; -import org.apache.commons.collections4.CollectionUtils; +import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import java.util.*; @Service public class AggreGridServiceImpl implements AggreGridService { @@ -24,6 +30,9 @@ public class AggreGridServiceImpl implements AggreGridService { @Autowired private DataStatsService dataStatsService; + @Autowired + private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; + @Override public List getGridMemberDataAnalysis( List gridIds, @@ -48,4 +57,85 @@ public class AggreGridServiceImpl implements AggreGridService { return records; } + @Override + public PageData getGridMemberDataAnalysis4PcWork(String agencyId, Integer pageNo, Integer pageSize, Date startTime, Date endTime) { + + // 计算出开始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); + + // 一.查询网格员数据统计相关信息 + List datas = dataStatsService.getGridMemberIssueProjectStats4PcWork(pids, pageNo, pageSize, startDateID, endDateID); + long total = new PageInfo<>(datas).getTotal(); + + // 二.匹配用户巡查,例行工作数据 + int partSize = 100; + + // 将数据列表结构化 > + HashMap> structedData = new HashMap<>(); + + for (GridMemberDataAnalysisResultDTO data : datas) { + // 填充gridName + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(data.getGridId()); + Optional.ofNullable(gridInfo).ifPresent((d) -> data.setOrgName(d.getGridName())); + + // 生成结构化map + Map gridAndData = structedData.get(data.getStaffId()); + if (gridAndData == null) { + HashMap gat = new HashMap<>(); + gat.put(data.getGridId(), data); + structedData.put(data.getStaffId(), gat); + } else { + Map gat = structedData.get(data.getStaffId()); + gat.put(data.getGridId(), data); + } + } + + ArrayList userIds = new ArrayList<>(structedData.keySet()); + + // 分片 + List> userIdsParts = Lists.partition(userIds, partSize); + + for (List userIdsPart : userIdsParts) { + List patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, userIdsPart, startDateID, endDateID); + for (StaffPatrolRecordDailyResultDTO d : patrolDatas) { + Map gridAndData = structedData.get(d.getStaffId()); + + if (gridAndData != null) { + GridMemberDataAnalysisResultDTO data = gridAndData.get(d.getGridId()); + if (data != null) { + data.setPatrolTimes(d.getPatrolTimes()); + data.setTotalTime(d.getTotalTime()); + data.setPatrolRoutineWorkTimes(d.getPatrolRoutineWorkTimes()); + } + } + } + } + + return new PageData(datas, total); + } + + /** + * 使用agencyId,获取pids(agencyPids:agencyId) + * @param agencyId + * @return + */ + private String getPidsByAgencyId(String agencyId) { + CustomerAgencyEntity agencyInfo = govOrgService.getAgencyInfo(agencyId); + + if (agencyInfo == null) { + String errorMsg = "【网格员数据统计查询pcwork】查询组织信息返回为null"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } + + String pidsAndAgencyIdPath = agencyInfo.getPids().concat(":").concat(agencyId); + if (pidsAndAgencyIdPath.startsWith(":")) { + pidsAndAgencyIdPath = pidsAndAgencyIdPath.replaceFirst(":", ""); + } + + return pidsAndAgencyIdPath; + } } 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 ffec0be996..09d1304d35 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 @@ -131,5 +131,54 @@ and member.DEL_FLAG = 0 + + + + \ No newline at end of file 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 e77b01af94..82ce39afc2 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 @@ -57,4 +57,25 @@ GROUP BY t.grid_id, t.staffId + +