diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberPatrolListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberPatrolListFormDTO.java new file mode 100644 index 0000000000..a7ffd9dc56 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberPatrolListFormDTO.java @@ -0,0 +1,43 @@ +package com.epmet.dataaggre.dto.epmetuser.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 对外接口--网格员排名-巡查记录-接口入参 + * @Auth sun + */ +@Data +public class GridMemberPatrolListFormDTO implements Serializable { + + private static final long serialVersionUID = -3381286960911634231L; + /** + * 组织id + */ + @NotBlank(message = "组织Id不能为空", groups = GridMemberPatrolListFormDTO.Member.class) + private String agencyId; + /** + * 维度Id(月:202108;年:2021) + */ + @NotBlank(message = "维度Id不能为空", groups = GridMemberPatrolListFormDTO.Member.class) + private String dimId; + /** + * 维度类型(月:month;年:year) + */ + @NotBlank(message = "维度类型不能为空", groups = GridMemberPatrolListFormDTO.Member.class) + private String dimType; + /** + * 排序字段(上报事件:project巡查时长:patrolTime处理件数:dealEvent) + */ + private String sort = "project"; + //按条件查询数据的最大日维度Id + private String dateId; + + public interface Member extends CustomerClientShowGroup {} +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/GridMemberPatrolListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/GridMemberPatrolListResultDTO.java new file mode 100644 index 0000000000..9a2035680d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/GridMemberPatrolListResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 对外接口--网格员排名-巡查记录-接口返参 + * @Auth sun + */ +@Data +public class GridMemberPatrolListResultDTO implements Serializable { + private static final long serialVersionUID = 7129564173128153335L; + + //工作人员用户id + private String staffId = ""; + //真名 + private String staffName = ""; + //上报事件(项目)数 + private Integer reportProjectCount = 0; + //巡查总时长【单位:分钟】 + private Integer patrolTotalTime = 0; + //处理件数(议题转项目数+议题关闭数+项目响应数+项目吹哨数+项目结案数) + private Integer eventCount = 0; + @JsonIgnore + private String dateId; + @JsonIgnore + private Integer timeNum; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java index 506048dbd4..300f242c41 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java @@ -8,10 +8,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; 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.epmetuser.form.OpenStaffDetailFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; +import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.excel.StaffPatrollExcel; @@ -218,4 +215,18 @@ public class EpmetUserController { ExcelUtils.exportExcelToTarget(response, null, resultDTOS, StaffPatrollExcel.class); } + /** + * @Param formDTO + * @Description 对外接口--网格员排名-巡查记录 + * @author sun + */ + @PostMapping("gridmemberpatrollist") + public Result> gridMemberPatrolList(@RequestBody GridMemberPatrolListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, GridMemberPatrolListFormDTO.Member.class); + if(!"month".equals(formDTO.getDimType())&&!"year".equals(formDTO.getDimType())){ + throw new RenException("参数错误,维度类型参数值错误"); + } + return new Result>().ok(epmetUserService.gridMemberPatrolList(formDTO)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index e9772bf321..9cf5a3a6e1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -21,6 +21,8 @@ import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; @@ -300,4 +302,10 @@ public interface DataStatsDao { * @return */ TotalAndIncrResultDTO getAgencySumGroup(@Param("agencyList") List agencyList, @Param("dateId") String dateId); + + /** + * @Description 查询当前组织及下级所有网格员维度对应最大dated数据 + * @author sun + */ + List selectGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java index 36385a7cbd..a18928719c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java @@ -19,6 +19,7 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO; import com.epmet.dataaggre.entity.epmetuser.StaffPatrolRecordEntity; @@ -53,4 +54,10 @@ public interface StaffPatrolRecordDao extends BaseDao { * @author sun */ StaffListResultDTO selectPersonalPatrolList(@Param("staffId") String staffId); + + /** + * @Description 按维度汇总当前组织及下级网格员巡查数据 + * @author sun + */ + List gridMemberPatrol(GridMemberPatrolListFormDTO formDTO); } 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 8d0cb5fa76..d4756648a0 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 @@ -3,6 +3,8 @@ package com.epmet.dataaggre.service.datastats; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; @@ -221,4 +223,10 @@ public interface DataStatsService { * @date 2021/8/12 2:23 下午 */ UserAndGroupTotalResultDTO getUserAndGroupTotal(BaseDataFormDTO formDTO); + + /** + * @Description 查询当前组织及下级所有网格员维度对应最大dated数据 + * @author sun + */ + List getGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO); } 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 6a8896618d..cfe7943085 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 @@ -12,7 +12,9 @@ import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; -import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; + import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; + import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; + import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO; import com.epmet.dataaggre.dto.evaluationindex.ScreenGovernRankDataDailyDTO; @@ -1830,4 +1832,13 @@ public class DataStatsServiceImpl implements DataStatsService { return result; } + /** + * @Description 查询当前组织及下级所有网格员维度对应最大dated数据 + * @author sun + */ + @Override + public List getGirdMemberPatrol(GridMemberPatrolListFormDTO formDTO) { + return dataStatsDao.selectGirdMemberPatrol(formDTO); + } + } 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 e1941c1c08..6d25c65b48 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 @@ -1,9 +1,6 @@ package com.epmet.dataaggre.service.epmetuser; -import com.epmet.dataaggre.dto.epmetuser.form.OpenStaffDetailFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; +import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; @@ -96,4 +93,11 @@ public interface EpmetUserService { * @date 2021/8/3 15:09 */ UserEventLogoResultDTO mentionMeEvent(String userId); + + /** + * @Param formDTO + * @Description 对外接口--网格员排名-巡查记录 + * @author sun + */ + List gridMemberPatrolList(GridMemberPatrolListFormDTO formDTO); } 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 32bce002dc..cabda43539 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 @@ -9,15 +9,13 @@ import com.epmet.dataaggre.dao.epmetuser.*; import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolRecordDTO; -import com.epmet.dataaggre.dto.epmetuser.form.OpenStaffDetailFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; +import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; +import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; @@ -61,6 +59,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private ResiUserBadgeDao resiUserBadgeDao; @Autowired private GovProjectService govProjectService; + @Autowired + private DataStatsService dataStatsService; /** * @Description 根据UserIds查询 @@ -424,5 +424,46 @@ public class EpmetUserServiceImpl implements EpmetUserService { return resultDTO; } + /** + * @Param formDTO + * @Description 对外接口--网格员排名-巡查记录 + * @author sun + */ + @Override + public List gridMemberPatrolList(GridMemberPatrolListFormDTO formDTO) { + //1.查询当前组织及下级所有网格员维度对应最大dated数据【例查询2021年8月数据,则是查询8月对应的最大daeId那天的网格员数据】 + List resultList = dataStatsService.getGirdMemberPatrol(formDTO); + if (CollectionUtils.isEmpty(resultList)) { + return new ArrayList<>(); + } + + //2.按维度汇总当前组织及下级网格员巡查数据 + //【如果查询当前月或本年度数据,则需要排除最大dateId的数据,因为上边查的统计数据只有t-1的,巡查数据是t的,避免多计算了当天的巡查项目数和时长数】 + formDTO.setDateId(resultList.get(0).getDateId()); + List patrolList = staffPatrolRecordDao.gridMemberPatrol(formDTO); + + //3.以统计数据为准封装结果数据 + resultList.forEach(re -> patrolList.stream().filter(l -> re.getStaffId().equals(l.getStaffId())).forEach(s -> { + re.setReportProjectCount(s.getReportProjectCount()); + re.setPatrolTotalTime((s.getTimeNum() > NumConstant.ZERO ? s.getTimeNum() / 60 : 0)); + })); + + //4.按排序字段排序并返回 + Collections.sort(resultList, new Comparator() { + @Override + public int compare(GridMemberPatrolListResultDTO o1, GridMemberPatrolListResultDTO o2) { + if ("patrolTime".equals(formDTO.getSort())) { + return o2.getPatrolTotalTime().compareTo(o1.getPatrolTotalTime()); + } else if ("dealEvent".equals(formDTO.getSort())) { + return o2.getEventCount().compareTo(o1.getEventCount()); + } else { + return o2.getReportProjectCount().compareTo(o1.getReportProjectCount()); + } + } + }); + + return resultList; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 5a563a5e4b..9f99415f2b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -767,4 +767,34 @@ + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml index 9f0fd1fe74..fb4ad95459 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml @@ -120,4 +120,24 @@ AND ssp.staff_id = #{staffId} + + diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/user/result/GridManagerListGeneralResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/user/result/GridManagerListGeneralResultDTO.java new file mode 100644 index 0000000000..bb7e6c781a --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/user/result/GridManagerListGeneralResultDTO.java @@ -0,0 +1,94 @@ +package com.epmet.user.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/6/7 2:57 下午 + * @DESC + */ +@Data +public class GridManagerListGeneralResultDTO implements Serializable { + + private static final long serialVersionUID = -2770911125810373090L; + + /** + * 工作人员id + */ + private String staffId; + + /** + * 工作人员手机号 + */ + private String mobile; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 网格ID + */ + private String gridId; + + /** + * 正在巡查:patrolling;否则返回空字符串 + */ + private String status; + + /** + * 网格名称,最多显示上两级 + */ + private String gridName; + + /** + * 姓名 + */ + private String staffName; + + /** + * 巡查时长 + */ + private Integer patrolDuration; + + /** + * 巡查次数 + */ + private Integer patrolCount; + + /** + * 中心点位 + */ + @JsonIgnore + private String centerMark; + + /** + * 经纬度赋值状态 + */ + @JsonIgnore + private Boolean llStatus; + + public GridManagerListGeneralResultDTO() { + this.staffId = ""; + this.longitude = ""; + this.latitude = ""; + this.gridId = ""; + this.status = ""; + this.gridName = ""; + this.staffName = ""; + this.centerMark = ""; + this.llStatus = false; + this.patrolDuration = NumConstant.ZERO; + this.patrolCount = NumConstant.ZERO; + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/StaffPatrolDetailController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/StaffPatrolDetailController.java index e20e1e7d5c..f01e9dbe77 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/StaffPatrolDetailController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/user/StaffPatrolDetailController.java @@ -11,6 +11,7 @@ import com.epmet.user.result.GridManagerListResultDTO; import com.epmet.dto.result.PatrolTrackResultDTO; import com.epmet.dto.result.RecordListResultDTO; import com.epmet.dto.result.PatrolCountResultDTO; +import com.epmet.user.result.GridManagerListGeneralResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -77,4 +78,16 @@ public class StaffPatrolDetailController { return new Result().ok(staffPatrolService.patrolCount(formDTO)); } + /** + * @Description 网格员分布 + * @Param formDTO + * @author zxc + * @date 2021/8/25 3:00 下午 + */ + @PostMapping("gridmanagerlistgeneral") + public Result> gridManagerListGeneral(@RequestBody GridManagerListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, GridManagerListFormDTO.GridManagerListForm.class); + return new Result>().ok(staffPatrolService.gridManagerListGeneral(formDTO)); + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/StaffPatrolDetailService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/StaffPatrolDetailService.java index 95fc1eb064..8bc7a6c4b6 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/StaffPatrolDetailService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/StaffPatrolDetailService.java @@ -8,6 +8,7 @@ import com.epmet.user.result.GridManagerListResultDTO; import com.epmet.dto.result.PatrolTrackResultDTO; import com.epmet.dto.result.RecordListResultDTO; import com.epmet.dto.result.PatrolCountResultDTO; +import com.epmet.user.result.GridManagerListGeneralResultDTO; import java.util.List; @@ -27,6 +28,14 @@ public interface StaffPatrolDetailService{ */ List gridManagerList(GridManagerListFormDTO formDTO); + /** + * @Description 网格员分布 + * @Param formDTO + * @author zxc + * @date 2021/8/25 3:00 下午 + */ + List gridManagerListGeneral(GridManagerListFormDTO formDTO); + /** * @Description 002、查看巡查记录 * @Param formDTO diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/StaffPatrolDetailServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/StaffPatrolDetailServiceImpl.java index 6f01a162ac..adec1862e9 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/StaffPatrolDetailServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/user/impl/StaffPatrolDetailServiceImpl.java @@ -3,7 +3,6 @@ package com.epmet.datareport.service.user.impl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.datareport.constant.PatrolConstant; import com.epmet.datareport.dao.user.StaffPatrolDetailDao; @@ -19,6 +18,7 @@ import com.epmet.dto.form.RecordListFormDTO; import com.epmet.dto.form.PatrolCountFormDTO; import com.epmet.user.result.GridManagerListResultDTO; import com.epmet.dto.result.PatrolCountResultDTO; +import com.epmet.user.result.GridManagerListGeneralResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -136,6 +136,34 @@ public class StaffPatrolDetailServiceImpl implements StaffPatrolDetailService { return result; } + /** + * @Description 网格员分布 + * @Param formDTO + * @author zxc + * @date 2021/8/25 3:00 下午 + */ + @Override + public List gridManagerListGeneral(GridManagerListFormDTO formDTO) { + List resultTwo = this.gridManagerList(formDTO); + List result = ConvertUtils.sourceToTarget(resultTwo, GridManagerListGeneralResultDTO.class); + Result> listResult = epmetUserOpenFeignClient.patrolInfo(formDTO.getAgencyId()); + if (!listResult.success()){ + throw new RenException("查询巡查次数和时长失败"); + } + List data = listResult.getData(); + if (!CollectionUtils.isEmpty(data)){ + result.forEach(r -> { + data.forEach(d -> { + if (r.getGridId().equals(d.getGridId()) && r.getStaffId().equals(d.getStaffId())){ + r.setPatrolCount(d.getPatrolCount()); + r.setPatrolDuration(d.getPatrolDuration()); + } + }); + }); + } + return result; + } + /** * @Description 根据中心点位截取经纬度 * @Param centMark diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml index f0e65a8bd1..3e058e209a 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerAgencyDao.xml @@ -341,7 +341,7 @@ AND cg.AREA_CODE LIKE CONCAT(#{areaCode},'%') - AND cg.ALL_PARENT_IDS LIKE CONCAT(#{agencyId}, '%') + AND cg.ALL_PARENT_IDS LIKE CONCAT('%',#{agencyId}, '%') diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolYuShanResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolYuShanResultDTO.java new file mode 100644 index 0000000000..73e75b5587 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolYuShanResultDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/8/25 3:50 下午 + * @DESC + */ +@Data +public class PatrolYuShanResultDTO implements Serializable { + + private static final long serialVersionUID = -54918706294182026L; + + private String staffId; + + private String gridId; + + /** + * 巡查时长 + */ + private Integer patrolDuration; + + /** + * 巡查次数 + */ + private Integer patrolCount; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index d764eb993a..73299cd989 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -623,4 +623,13 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/statsstaffpatrolrecorddaily/patrolcount") Result patrolCount(@RequestBody PatrolCountFormDTO formDTO); + + /** + * @Description 查询巡查次数和时长 + * @Param agencyId + * @author zxc + * @date 2021/8/25 3:59 下午 + */ + @PostMapping("/epmetuser/statsstaffpatrolrecorddaily/patrolinfo") + Result> patrolInfo(@RequestParam("agencyId")String agencyId); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index ea37ce19af..819afe571f 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -437,4 +437,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result patrolCount(PatrolCountFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "patrolCount", formDTO); } + + @Override + public Result> patrolInfo(String agencyId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "patrolInfo", agencyId); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java index be2943f19d..06bfa933d2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java @@ -2,12 +2,15 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.result.PatrolYuShanResultDTO; import com.epmet.service.StatsStaffPatrolRecordDailyService; import com.epmet.dto.form.PatrolCountFormDTO; import com.epmet.dto.result.PatrolCountResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * [天]工作人员巡查记录统计 @@ -33,4 +36,15 @@ public class StatsStaffPatrolRecordDailyController { ValidatorUtils.validateEntity(formDTO, PatrolCountFormDTO.PatrolCountForm.class); return new Result().ok(statsStaffPatrolRecordDailyService.patrolCount(formDTO)); } + + /** + * @Description 查询巡查次数和时长 + * @Param agencyId + * @author zxc + * @date 2021/8/25 4:02 下午 + */ + @PostMapping("patrolinfo") + public Result> patrolInfo(@RequestParam("agencyId")String agencyId){ + return new Result>().ok(statsStaffPatrolRecordDailyService.patrolInfo(agencyId)); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java index 58779caaa0..b937e41f31 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.PatrolYuShanResultDTO; import com.epmet.dto.result.SelectPatrolCountResultDTO; import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; import org.apache.ibatis.annotations.Mapper; @@ -71,5 +72,13 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao selectPatrolCount(@Param("agencyId")String agencyId, @Param("dateId")String dateId); + + /** + * @Description 查询巡查次数和时长 + * @Param agencyId + * @author zxc + * @date 2021/8/25 4:02 下午 + */ + List patrolInfo(@Param("agencyId")String agencyId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java index a73d0ac373..9458dcc86f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java @@ -1,10 +1,13 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.result.PatrolYuShanResultDTO; import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; import com.epmet.dto.form.PatrolCountFormDTO; import com.epmet.dto.result.PatrolCountResultDTO; +import java.util.List; + /** * [天]工作人员巡查记录统计 * @@ -21,4 +24,12 @@ public interface StatsStaffPatrolRecordDailyService extends BaseService patrolInfo(String agencyId); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java index 5f54160a06..4d2913cd43 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.PatrolConstant; import com.epmet.dao.StatsStaffPatrolRecordDailyDao; +import com.epmet.dto.result.PatrolYuShanResultDTO; import com.epmet.dto.result.SelectPatrolCountResultDTO; import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; import com.epmet.service.StatsStaffPatrolRecordDailyService; @@ -45,4 +46,15 @@ public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl patrolInfo(String agencyId) { + return baseDao.patrolInfo(agencyId); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml index a93e2f1740..f1ae028345 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml @@ -52,4 +52,17 @@ ORDER BY STAFF_ID DESC) t GROUP BY t.STATUS + + + \ No newline at end of file