From 9823f4948eb7cf1cbea64ac33db6c04514586530 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 31 Dec 2021 17:55:33 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E7=BB=9F=E8=AE=A1=20=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E5=85=88=E6=8C=89=E7=85=A7=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4?= =?UTF-8?q?=20=E5=85=A8=E9=87=8F=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StatsStaffPatrolRecordDailyEntity.java | 5 ++ .../StatsStaffPatrolRecordDailyDTO.java | 5 ++ .../com/epmet/constant/ProjectConstant.java | 1 + .../main/java/com/epmet/dao/user/UserDao.java | 23 +++++---- .../StatsStaffPatrolRecordDailyEntity.java | 5 ++ .../biz/impl/BizDataStatsServiceImpl.java | 47 ++++++++++++------- .../com/epmet/service/user/UserService.java | 11 ++++- .../impl/StatsStaffPatrolServiceImpl.java | 2 + .../service/user/impl/UserServiceImpl.java | 13 +++++ .../user/StatsStaffPatrolRecordDailyDao.xml | 2 + .../main/resources/mapper/user/UserDao.xml | 10 +++- .../dto/result/PatrolRoutineWorkResult.java | 2 + .../StatsStaffPatrolRecordDailyEntity.java | 5 ++ 13 files changed, 103 insertions(+), 28 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StatsStaffPatrolRecordDailyEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StatsStaffPatrolRecordDailyEntity.java index 1c52ad1336..a90d80924a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StatsStaffPatrolRecordDailyEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/StatsStaffPatrolRecordDailyEntity.java @@ -122,4 +122,9 @@ public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { */ private String latestPatrolStatus; + /** + * 例行工作次数 + */ + private Integer routineWorkCount; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java index 64d3eb84e4..1867462ff6 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java @@ -124,6 +124,11 @@ public class StatsStaffPatrolRecordDailyDTO implements Serializable { */ private String latestPatrolStatus; + /** + * 例行工作次数 + */ + private Integer routineWorkCount; + /** * 删除标识 0.未删除 1.已删除 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java index ec417c1c60..1bb5176a49 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -81,6 +81,7 @@ public interface ProjectConstant { * 项目来源于 工作端立项 */ String PROJECT_ORIGIN_AGENCY="agency"; + String PROJECT_ORIGIN_EVENT="resi_event"; /** * 自办 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 584bfdf64c..547cc164b7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -3,6 +3,7 @@ package com.epmet.dao.user; import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; +import com.epmet.dto.result.PatrolRoutineWorkResult; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.stats.form.GmUploadEventFormDTO; import com.epmet.dto.user.form.StaffBaseInfoFormDTO; @@ -35,14 +36,14 @@ public interface UserDao { CommonTotalAndIncCountResultDTO selectResiTotalAndIncrByLevel(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); /** - * @Description 查询注册用户的总量与增量【新方法】 + * @Description 查询注册用户的总量与增量【新方法】 * @Param regOrPartiFlag * @Param gridIds * @Param targetDate * @author zxc * @date 2021/7/27 10:20 上午 */ - List selectResiTotalAndIncrByGridIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate,@Param("startDate")Date startDate); + List selectResiTotalAndIncrByGridIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate, @Param("startDate") Date startDate); /** * @param @@ -54,13 +55,13 @@ public interface UserDao { CommonTotalAndIncCountResultDTO selectPartyTotalAndIncr(@Param("userIds") List userIds, @Param("incrUserIds") List incrUserIds, @Param("targetDate") Date targetDate); /** - * @Description 查询党员的总量与增量【新方法】 + * @Description 查询党员的总量与增量【新方法】 * @Param targetDate * @Param regOrPartiFlag * @author zxc * @date 2021/7/27 5:08 下午 */ - List selectPartyTotalAndIncrNew(@Param("targetDate") Date targetDate,@Param("regOrPartiFlag") String regOrPartiFlag,@Param("startDate") Date startDate); + List selectPartyTotalAndIncrNew(@Param("targetDate") Date targetDate, @Param("regOrPartiFlag") String regOrPartiFlag, @Param("startDate") Date startDate); /** * @param @@ -72,7 +73,7 @@ public interface UserDao { CommonTotalAndIncCountResultDTO selectWarmTotalAndIncr(@Param("userIds") List userIds, @Param("incrUserIds") List incrUserIds, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); /** - * @Description 查询热心居民的总量与增量【新方法】 + * @Description 查询热心居民的总量与增量【新方法】 * @Param userIds 总注册用户 * @Param incrUserIds 增长注册用户 * @Param gridIds 网格IDS @@ -81,7 +82,7 @@ public interface UserDao { * @date 2021/7/27 1:31 下午 */ List selectWarmTotalAndIncrByGrids(@Param("userIds") List userIds, @Param("incrDailyUserIds") List incrDailyUserIds, @Param("gridIds") Set gridIds, - @Param("targetDate") Date targetDate,@Param("startDate") Date startDate,@Param("incrMonthlyUserIds") List incrMonthlyUserIds); + @Param("targetDate") Date targetDate, @Param("startDate") Date startDate, @Param("incrMonthlyUserIds") List incrMonthlyUserIds); /** * @param @@ -102,7 +103,7 @@ public interface UserDao { List selectTotalUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate); /** - * @Description 查询指定网格范围下单位时间内新增的注册用户Id【新方法】 + * @Description 查询指定网格范围下单位时间内新增的注册用户Id【新方法】 * @Param regOrPartiFlag * @Param gridIds * @Param targetDate @@ -110,10 +111,10 @@ public interface UserDao { * @date 2021/7/27 10:41 上午 */ List selectIncrUserIdsByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("targetDate") Date targetDate, - @Param("startDate")Date startDate); + @Param("startDate") Date startDate); /** - * @Description 查询指定网格范围下单位时间内全部的注册用户Id【新方法】 + * @Description 查询指定网格范围下单位时间内全部的注册用户Id【新方法】 * @Param regOrPartiFlag * @Param gridIds * @Param targetDate @@ -141,7 +142,7 @@ public interface UserDao { Integer selectResiIncrWithinTimeRange(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set gridIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate); /** - * @Description 查询指定时间范围内注册/参与用户增量【新方法】 + * @Description 查询指定时间范围内注册/参与用户增量【新方法】 * @Param regOrPartiFlag * @Param gridIds * @Param startDate @@ -266,5 +267,7 @@ public interface UserDao { List getPatrolDetailList(MidPatrolFormDTO formDTO); List filterUserIds(@Param("userIds") List userIds, @Param("roleKey") String roleKey); + + List selectRoutineWorkListByDateId(@Param("customerId") String customerId, @Param("dateId") String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java index 247d87f285..3340819a5b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java @@ -123,5 +123,10 @@ public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { */ private String latestPatrolStatus; + /** + * 例行工作次数 + */ + private Integer routineWorkCount; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index fbeb7a391f..145237ebdd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -8,6 +8,7 @@ import com.epmet.constant.ProjectConstant; import com.epmet.dto.ProjectDTO; import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.result.PatrolRoutineWorkResult; import com.epmet.dto.user.result.CustomerGridStaffDTO; import com.epmet.dto.user.result.CustomerStaffDTO; import com.epmet.dto.user.result.StaffPatrolRecordResult; @@ -128,25 +129,29 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { //获取昨日的立项项目数 List yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), formDTO.getDateId(), ProjectConstant.PROJECT_ORIGIN_AGENCY); + //获取昨日的例行工作数据 + List yesterdayWorkList = userService.selectRoutineWorkListByDateId(formDTO.getCustomerId(), formDTO.getDateId()); + //遍历网格员 设置其 巡查次数 巡查时常 上报项目数 yesterdayPatrolList.forEach(patrolRecord -> { String key = patrolRecord.getGrid().concat(patrolRecord.getStaffId()); StatsStaffPatrolRecordDailyDTO patrolRecordDailyDTO = yesterdayStatsMap.get(key); - if (patrolRecordDailyDTO != null) { - long total = (patrolRecord.getPatrolEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / 1000; - if (patrolRecordDailyDTO.getTotalTime() == null) { - patrolRecordDailyDTO.setTotalTime(NumConstant.ZERO); - } - patrolRecordDailyDTO.setTotalTime(patrolRecordDailyDTO.getTotalTime() + (int) total); - if (patrolRecordDailyDTO.getPatrolTotal() == null) { - patrolRecordDailyDTO.setPatrolTotal(NumConstant.ZERO); - } - patrolRecordDailyDTO.setPatrolTotal(patrolRecordDailyDTO.getPatrolTotal() + NumConstant.ONE); - //如果巡查记录时间小于统计里的最新的时间 则更新 - if (patrolRecordDailyDTO.getLatestPatrolTime() == null || patrolRecordDailyDTO.getLatestPatrolTime().getTime() < patrolRecord.getPatrolStartTime().getTime()) { - patrolRecordDailyDTO.setLatestPatrolTime(patrolRecord.getPatrolStartTime()); - patrolRecordDailyDTO.setLatestPatrolStatus(patrolRecord.getStatus()); - } + if (patrolRecordDailyDTO == null) { + return; + } + long total = (patrolRecord.getPatrolEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / NumConstant.ONE_THOUSAND; + if (patrolRecordDailyDTO.getTotalTime() == null) { + patrolRecordDailyDTO.setTotalTime(NumConstant.ZERO); + } + patrolRecordDailyDTO.setTotalTime(patrolRecordDailyDTO.getTotalTime() + (int) total); + if (patrolRecordDailyDTO.getPatrolTotal() == null) { + patrolRecordDailyDTO.setPatrolTotal(NumConstant.ZERO); + } + patrolRecordDailyDTO.setPatrolTotal(patrolRecordDailyDTO.getPatrolTotal() + NumConstant.ONE); + //如果巡查记录时间小于统计里的最新的时间 则更新 + if (patrolRecordDailyDTO.getLatestPatrolTime() == null || patrolRecordDailyDTO.getLatestPatrolTime().getTime() < patrolRecord.getPatrolStartTime().getTime()) { + patrolRecordDailyDTO.setLatestPatrolTime(patrolRecord.getPatrolStartTime()); + patrolRecordDailyDTO.setLatestPatrolStatus(patrolRecord.getStatus()); } }); //填充项目数 @@ -164,10 +169,19 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { return; } - recordDailyDTO.setReportProjectCount(recordDailyDTO.getReportProjectCount() + 1); + recordDailyDTO.setReportProjectCount(recordDailyDTO.getReportProjectCount() + NumConstant.ONE); } }); }); + yesterdayWorkList.forEach(work->{ + String key = work.getGridId().concat(work.getUserId()); + StatsStaffPatrolRecordDailyDTO patrolRecordDailyDTO = yesterdayStatsMap.get(key); + if (patrolRecordDailyDTO == null){ + return; + } + patrolRecordDailyDTO.setRoutineWorkCount(patrolRecordDailyDTO.getRoutineWorkCount() + NumConstant.ONE); + + }); Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); log.debug("initStaffPatrolStats insert rows:{}", effectRow); @@ -227,6 +241,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { record.setPatrolTotal(NumConstant.ZERO); record.setLatestPatrolStatus("end"); record.setReportProjectCount(NumConstant.ZERO); + record.setRoutineWorkCount(NumConstant.ZERO); record.setSourceType("internal"); record.setSourceCustomerId(record.getCustomerId()); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index 1d0a500b0a..29e5e6d149 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -4,6 +4,7 @@ import com.epmet.dto.AgencySubTreeDto; import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.org.result.OrgStaffDTO; +import com.epmet.dto.result.PatrolRoutineWorkResult; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.stats.form.GmUploadEventFormDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; @@ -146,6 +147,14 @@ public interface UserService { List getPatrolRecordList(MidPatrolFormDTO formDTO); List getPatrolDetailList(MidPatrolFormDTO formDTO); - + List filterUserIds(List userIds, String roleKey); + + /** + * desc:根据客户id和日期获取 例行工作数据 + * @param customerId + * @param dateId + * @return + */ + List selectRoutineWorkListByDateId(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java index b07253b001..97bc67ed86 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java @@ -13,6 +13,7 @@ import com.epmet.service.user.StatsStaffPatrolService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -30,6 +31,7 @@ public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { @Autowired private StatsStaffPatrolRecordDailyDao statsStaffPatrolRecordDailyDao; + @Transactional(rollbackFor = Exception.class) @Override public Integer delAndInsertBatch(StaffPatrolStatsFormDTO formDTO, List insertList) { int delete = statsStaffPatrolRecordDailyDao.deleteInternal(formDTO); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index a2d56125a6..f6c78dbfb0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -13,6 +13,7 @@ import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.org.result.OrgStaffDTO; +import com.epmet.dto.result.PatrolRoutineWorkResult; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.stats.form.GmUploadEventFormDTO; import com.epmet.dto.stats.user.*; @@ -1113,4 +1114,16 @@ public class UserServiceImpl implements UserService { public List filterUserIds(List userIds, String roleKey) { return userDao.filterUserIds(userIds, roleKey); } + + /** + * desc:根据客户id和日期获取 例行工作数据 + * + * @param customerId + * @param dateId + * @return + */ + @Override + public List selectRoutineWorkListByDateId(String customerId, String dateId) { + return userDao.selectRoutineWorkListByDateId(customerId, dateId); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml index 3f6cda5d85..7e00ed10c8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml @@ -23,6 +23,7 @@ REPORT_PROJECT_COUNT, LATEST_PATROL_TIME, LATEST_PATROL_STATUS, + ROUTINE_WORK_COUNT, DEL_FLAG, REVISION, CREATED_BY, @@ -50,6 +51,7 @@ #{item.reportProjectCount}, #{item.latestPatrolTime}, #{item.latestPatrolStatus}, + #{item.routineWorkCount}, '0', 0, 'APP_USER', diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index fa8b19cd6b..6e8e25fefa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -620,7 +620,7 @@ + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java index 5db6d41b24..d0040279cb 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java @@ -25,6 +25,8 @@ public class PatrolRoutineWorkResult implements Serializable { private String title; + private String userId; + /** * 一级工作类型 code */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java index 4f1a18347d..6a2ee8ab04 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java @@ -123,5 +123,10 @@ public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { */ private String latestPatrolStatus; + /** + * 例行工作次数 + */ + private Integer routineWorkCount; + } From 79695ea7e0d3c37d7298941e2f3efdfbe06d437a Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 4 Jan 2022 14:19:24 +0800 Subject: [PATCH 02/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E4=BE=8B=E8=A1=8C?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/PcWorkListFormDTO.java | 41 +++++++ .../epmet/dto/result/PcWorkListResultDTO.java | 107 ++++++++++++++++++ .../PatrolRoutineWorkController.java | 14 +++ .../service/PatrolRoutineWorkService.java | 12 ++ .../impl/PatrolRoutineWorkServiceImpl.java | 13 +++ 5 files changed, 187 insertions(+) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java new file mode 100644 index 0000000000..a946f5a58b --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/1/4 2:00 下午 + * @DESC + */ +@Data +public class PcWorkListFormDTO implements Serializable { + + private static final long serialVersionUID = -3522636529743412120L; + + public interface PcWorkListForm{} + + @NotBlank(message = "staffId不能为空",groups = PcWorkListForm.class) + private String staffId; + + @NotBlank(message = "endTime不能为空",groups = PcWorkListForm.class) + private String endTime; + + private String startTime; + + @NotBlank(message = "agencyId不能为空",groups = PcWorkListForm.class) + private String agencyId; + + @NotBlank(message = "pageSize不能为空",groups = PcWorkListForm.class) + private Integer pageSize; + + @NotBlank(message = "pageNo不能为空",groups = PcWorkListForm.class) + private Integer pageNo; + + /** + * 是否分页,默认分页 + */ + private Boolean isPage = true; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java new file mode 100644 index 0000000000..06a2d26cd5 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java @@ -0,0 +1,107 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/1/4 2:06 下午 + * @DESC + */ +@Data +public class PcWorkListResultDTO implements Serializable { + + private static final long serialVersionUID = -2072009617522409407L; + + private Integer total; + + private List list; + + public PcWorkListResultDTO() { + this.total = NumConstant.ZERO; + this.list = new ArrayList<>(); + } + + @Data + class PcWorkListResult implements Serializable{ + + /** + * 事项名称 + */ + private String title; + + /** + * 事项类型码 + */ + private String workTypeCode; + + /** + * 事项类型名称 + */ + private String workTypeName; + + /** + * 有无异常 + */ + private String isNormal; + + /** + * 发生地点 + */ + private String happenAddress; + + /** + * 发生时间 返回返回格式化字符串,yyyy-MM-dd + */ + private String happenTime; + + /** + * 人员ID + */ + private String staffId; + + /** + * 人员姓名 + */ + private String staffName; + + /** + * 网格id + */ + private String gridId; + + /** + * 网格名字 + */ + private String gridName; + + /** + * 提交日期 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss + */ + private String createdTime; + + /** + * 工作内容 + */ + private String workContent; + + public PcWorkListResult() { + this.title = ""; + this.workTypeCode = ""; + this.workTypeName = ""; + this.isNormal = ""; + this.happenAddress = ""; + this.happenTime = ""; + this.staffId = ""; + this.staffName = ""; + this.gridId = ""; + this.gridName = ""; + this.createdTime = ""; + this.workContent = ""; + } + } +} 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 edcfe9e34f..52f8b2e59f 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 @@ -4,8 +4,10 @@ import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.PatrolRoutineWorkFormDTO; +import com.epmet.dto.form.PcWorkListFormDTO; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.PatrolRoutineWorkResult; +import com.epmet.dto.result.PcWorkListResultDTO; import com.epmet.service.PatrolRoutineWorkService; import com.github.pagehelper.Page; import org.springframework.beans.factory.annotation.Autowired; @@ -56,4 +58,16 @@ public class PatrolRoutineWorkController { return new Result().ok(true); } + /** + * @Description 【网格员工作统计】例行工作列表 + * @param formDTO + * @author zxc + * @date 2022/1/4 2:18 下午 + */ + @PostMapping("pcwork/list") + public Result> pcWorkList(@RequestBody PcWorkListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, PcWorkListFormDTO.PcWorkListForm.class); + return new Result>().ok(gridUserWorkService.pcWorkList(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java index 8ece1a46c9..8b7b69473b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java @@ -19,11 +19,15 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.form.PatrolRoutineWorkFormDTO; +import com.epmet.dto.form.PcWorkListFormDTO; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.PatrolRoutineWorkResult; +import com.epmet.dto.result.PcWorkListResultDTO; import com.epmet.entity.PatrolRoutineWorkEntity; import com.github.pagehelper.Page; +import java.util.List; + /** * 巡查例行工作 * @@ -44,4 +48,12 @@ public interface PatrolRoutineWorkService extends BaseService listPage(PatrolQueryFormDTO formDTO); + + /** + * @Description 【网格员工作统计】例行工作列表 + * @param formDTO + * @author zxc + * @date 2022/1/4 2:18 下午 + */ + List pcWorkList(PcWorkListFormDTO formDTO); } 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 5512389278..97f6b505d8 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 @@ -34,8 +34,10 @@ import com.epmet.dao.PatrolRoutineWorkDao; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.form.CustomerGridFormDTO; import com.epmet.dto.form.PatrolRoutineWorkFormDTO; +import com.epmet.dto.form.PcWorkListFormDTO; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.PatrolRoutineWorkResult; +import com.epmet.dto.result.PcWorkListResultDTO; import com.epmet.entity.PatrolRoutineWorkEntity; import com.epmet.entity.PatrolRoutineWorkTypeEntity; import com.epmet.feign.EpmetAdminOpenFeignClient; @@ -147,6 +149,17 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl baseDao.selectList(formDTO)); } + /** + * @Description 【网格员工作统计】例行工作列表 + * @param formDTO + * @author zxc + * @date 2022/1/4 2:18 下午 + */ + @Override + public List pcWorkList(PcWorkListFormDTO formDTO) { + return null; + } + /** * desc:递归遍历树形结构 构建pids 根节点pids 为空字符串 * From b97dca6629bd3a5a729c113a60675bdf792bd7cc Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 4 Jan 2022 16:40:37 +0800 Subject: [PATCH 03/26] emm --- .../com/epmet/dto/form/PcWorkListFormDTO.java | 14 +++--- .../epmet/dto/result/PcWorkListResultDTO.java | 10 ++--- .../PatrolRoutineWorkController.java | 4 +- .../com/epmet/dao/PatrolRoutineWorkDao.java | 4 ++ .../service/PatrolRoutineWorkService.java | 2 +- .../impl/PatrolRoutineWorkServiceImpl.java | 19 +++++++- .../resources/mapper/PatrolRoutineWorkDao.xml | 45 +++++++++++++++++++ 7 files changed, 83 insertions(+), 15 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java index a946f5a58b..ebccb2c9d3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.form; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -17,7 +18,7 @@ public class PcWorkListFormDTO implements Serializable { public interface PcWorkListForm{} - @NotBlank(message = "staffId不能为空",groups = PcWorkListForm.class) +// @NotBlank(message = "staffId不能为空",groups = PcWorkListForm.class) private String staffId; @NotBlank(message = "endTime不能为空",groups = PcWorkListForm.class) @@ -25,13 +26,16 @@ public class PcWorkListFormDTO implements Serializable { private String startTime; - @NotBlank(message = "agencyId不能为空",groups = PcWorkListForm.class) - private String agencyId; + @NotBlank(message = "orgId不能为空",groups = PcWorkListForm.class) + private String orgId; - @NotBlank(message = "pageSize不能为空",groups = PcWorkListForm.class) + @NotBlank(message = "orgType不能为空",groups = PcWorkListForm.class) + private String orgType; + + @NotNull(message = "pageSize不能为空",groups = PcWorkListForm.class) private Integer pageSize; - @NotBlank(message = "pageNo不能为空",groups = PcWorkListForm.class) + @NotNull(message = "pageNo不能为空",groups = PcWorkListForm.class) private Integer pageNo; /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java index 06a2d26cd5..afc01d60c2 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java @@ -27,7 +27,7 @@ public class PcWorkListResultDTO implements Serializable { } @Data - class PcWorkListResult implements Serializable{ + public static class PcWorkListResult{ /** * 事项名称 @@ -37,12 +37,12 @@ public class PcWorkListResultDTO implements Serializable { /** * 事项类型码 */ - private String workTypeCode; + private List workTypeCode; /** * 事项类型名称 */ - private String workTypeName; + private List workTypeName; /** * 有无异常 @@ -91,8 +91,8 @@ public class PcWorkListResultDTO implements Serializable { public PcWorkListResult() { this.title = ""; - this.workTypeCode = ""; - this.workTypeName = ""; + this.workTypeCode = new ArrayList<>(); + this.workTypeName = new ArrayList<>(); this.isNormal = ""; this.happenAddress = ""; this.happenTime = ""; 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 52f8b2e59f..5de2ecde8b 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 @@ -65,9 +65,9 @@ public class PatrolRoutineWorkController { * @date 2022/1/4 2:18 下午 */ @PostMapping("pcwork/list") - public Result> pcWorkList(@RequestBody PcWorkListFormDTO formDTO){ + public Result pcWorkList(@RequestBody PcWorkListFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, PcWorkListFormDTO.PcWorkListForm.class); - return new Result>().ok(gridUserWorkService.pcWorkList(formDTO)); + return new Result().ok(gridUserWorkService.pcWorkList(formDTO)); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java index 9380056b67..d728cc82e2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java @@ -18,8 +18,10 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.PcWorkListFormDTO; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.PatrolRoutineWorkResult; +import com.epmet.dto.result.PcWorkListResultDTO; import com.epmet.entity.PatrolRoutineWorkEntity; import org.apache.ibatis.annotations.Mapper; @@ -35,4 +37,6 @@ import java.util.List; public interface PatrolRoutineWorkDao extends BaseDao { List selectList(PatrolQueryFormDTO formDTO); + + List pcWorkList(PcWorkListFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java index 8b7b69473b..0eabbc8997 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java @@ -55,5 +55,5 @@ public interface PatrolRoutineWorkService extends BaseService pcWorkList(PcWorkListFormDTO formDTO); + PcWorkListResultDTO pcWorkList(PcWorkListFormDTO formDTO); } 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 97f6b505d8..c44832771c 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 @@ -48,6 +48,7 @@ import com.epmet.service.PatrolRoutineWorkService; import com.epmet.service.PatrolRoutineWorkTypeService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -156,8 +157,22 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl pcWorkList(PcWorkListFormDTO formDTO) { - return null; + public PcWorkListResultDTO pcWorkList(PcWorkListFormDTO formDTO) { + PcWorkListResultDTO result = new PcWorkListResultDTO(); + List list; + if (formDTO.getIsPage()){ + PageInfo listPageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.pcWorkList(formDTO)); + result.setTotal(Integer.valueOf(String.valueOf(listPageInfo.getTotal()))); + list = listPageInfo.getList(); + }else { + list = baseDao.pcWorkList(formDTO); + result.setTotal(list.size()); + } + if (CollectionUtils.isEmpty(list)){ + return result; + } + result.setList(list); + return result; } /** diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml index d4445f2182..48137ecd50 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml @@ -38,5 +38,50 @@ AND m.DEL_FLAG = '0' + + + + + + + + + + + + + + + + From 58cb0cca9b08c2a02d2e910455e9e489a7fd2b9a Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 4 Jan 2022 17:17:34 +0800 Subject: [PATCH 04/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E5=B7=A1=E6=9F=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/patrol/PcworkRecordListFormDTO.java | 53 +++++++++++++++++++ .../dto/result/PcworkRecordListResultDTO.java | 43 +++++++++++++++ .../controller/StaffPatrolController.java | 12 +++++ .../com/epmet/dao/StaffPatrolRecordDao.java | 7 +++ .../service/StaffPatrolRecordService.java | 13 ++--- .../impl/StaffPatrolRecordServiceImpl.java | 35 ++++++++++++ .../resources/mapper/StaffPatrolRecordDao.xml | 33 ++++++++++++ 7 files changed, 190 insertions(+), 6 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PcworkRecordListFormDTO.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PcworkRecordListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PcworkRecordListFormDTO.java new file mode 100644 index 0000000000..6c628edfec --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PcworkRecordListFormDTO.java @@ -0,0 +1,53 @@ +package com.epmet.dto.form.patrol; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 【网格员工作统计】巡查记录列表 + * @Author sun + */ +@Data +public class PcworkRecordListFormDTO implements Serializable { + private static final long serialVersionUID = 9156247659994638103L; + + /** + * 组织或网格Id + */ + @NotBlank(message = "组织Id不能为空", groups = Staff.class) + private String orgId; + /** + * 组织agency 网格grid + */ + @NotBlank(message = "组织类型不能为空", groups = Staff.class) + private String orgType; + /** + * 工作人员Id + */ + private String staffId; + /** + * 开始时间【yyyymmdd】 + */ + private String startTime; + /** + * 结束时间【yyyymmdd】 + */ + @NotBlank(message = "结束时间不能为空",groups = Staff.class) + private String endTime; + /** + * 页码 + * */ + @Min(1) + private Integer pageNo; + /** + * 每页多少条 + * */ + private Integer pageSize = 20; + private Boolean isPage = true; + public interface Staff extends CustomerClientShowGroup {} + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java new file mode 100644 index 0000000000..a7ff4f318d --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java @@ -0,0 +1,43 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 【网格员工作统计】巡查记录列表 + * @Author sun + */ +@Data +public class PcworkRecordListResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + List list = new ArrayList<>(); + private Integer total; + + @Data + public static class StaffPatrol { + //人员ID + private String staffId; + //人员名称 + private String staffName; + //网格ID + private String gridId; + //网格名称 + private String gridName; + //状态(英文key) + private String status; + //状态(中文) + private String statusName; + //巡查开始时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss + private String patrolStartTime; + //巡查结束时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss + private String patrolEndTime; + //巡查时长 xx小时xx分钟 + private String totalTime; + } + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java index dbd32146fa..8d92257c74 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java @@ -8,6 +8,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; +import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; import com.epmet.dto.result.*; import com.epmet.service.StaffPatrolDetailService; import com.epmet.service.StaffPatrolRecordService; @@ -155,4 +156,15 @@ public class StaffPatrolController { return new Result>().ok(staffPatrolRecordService.patrolTrack(formDTO)); } + /** + * @Author sun + * @Description 【网格员工作统计】巡查记录列表 + **/ + @NoRepeatSubmit + @PostMapping("pcwork/record-list") + public Result pcworkRecordList(@RequestBody PcworkRecordListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, PcworkRecordListFormDTO.Staff.class); + return new Result().ok(staffPatrolRecordService.pcworkRecordList(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java index 7ab70be6bf..ac82f07584 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java @@ -19,7 +19,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.RecordListFormDTO; +import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; import com.epmet.dto.result.GridManagerUserListResultDTO; +import com.epmet.dto.result.PcworkRecordListResultDTO; import com.epmet.dto.result.RecordListResultDTO; import com.epmet.entity.StaffPatrolRecordEntity; import org.apache.ibatis.annotations.Mapper; @@ -62,4 +64,9 @@ public interface StaffPatrolRecordDao extends BaseDao { */ List recordList(RecordListFormDTO formDTO); + /** + * @Author sun + * @Description 【网格员工作统计】巡查记录列表 + **/ + List pcworkRecordList(PcworkRecordListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java index 4b54f84c97..a1727a8342 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java @@ -20,12 +20,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.form.*; -import com.epmet.dto.result.PatrolUploadResultDTO; -import com.epmet.dto.result.StaffPatrolInitResultDTO; -import com.epmet.dto.result.StartPatrolResultDTO; -import com.epmet.dto.result.PatrolTrackResultDTO; -import com.epmet.dto.result.RecordListResultDTO; -import com.epmet.dto.result.UserNameAndLLResultDTO; +import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; +import com.epmet.dto.result.*; import com.epmet.entity.StaffPatrolRecordEntity; import java.util.List; @@ -115,4 +111,9 @@ public interface StaffPatrolRecordService extends BaseService patrolTrack(PatrolTrackFormDTO formDTO); + /** + * @Author sun + * @Description 【网格员工作统计】巡查记录列表 + **/ + PcworkRecordListResultDTO pcworkRecordList(PcworkRecordListFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index 69db928e64..860aa91c3d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -20,6 +20,7 @@ import com.epmet.dao.StatsStaffPatrolRecordDailyDao; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.StaffPatrolDetailDTO; import com.epmet.dto.form.*; +import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.StaffPatrolDetailEntity; import com.epmet.entity.StaffPatrolRecordEntity; @@ -31,6 +32,8 @@ import com.epmet.send.SendMqMsgUtil; import com.epmet.service.StaffPatrolDetailService; import com.epmet.service.StaffPatrolRecordService; import com.epmet.util.DimIdGenerator; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -451,4 +454,36 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl(); } + + /** + * @Author sun + * @Description 【网格员工作统计】巡查记录列表 + **/ + @Override + public PcworkRecordListResultDTO pcworkRecordList(PcworkRecordListFormDTO formDTO) { + PcworkRecordListResultDTO resultDTO = new PcworkRecordListResultDTO(); + //1.按条件查询网格员巡查数据 + PageInfo result = + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> staffPatrolRecordDao.pcworkRecordList(formDTO)); + if (org.springframework.util.CollectionUtils.isEmpty(result.getList())) { + return resultDTO; + } + + //2.查询网格信息 + OrgInfoFormDTO org = new OrgInfoFormDTO(); + List orgIds = result.getList().stream().map(PcworkRecordListResultDTO.StaffPatrol::getGridId).collect(Collectors.toList()); + orgIds = orgIds.stream().distinct().collect(Collectors.toList()); + org.setOrgIds(orgIds); + org.setOrgType("grid"); + Result> orgResult = govOrgOpenFeignClient.selectOrgInfo(org); + if (!orgResult.success()) { + throw new RenException("获取网格基础信息失败......"); + } + + //3.封装数据并返回 + result.getList().forEach(r -> orgResult.getData().stream().filter(u -> r.getGridId().equals(u.getOrgId())).forEach(u -> r.setGridName(u.getOrgName()))); + resultDTO.setTotal((int)result.getTotal()); + resultDTO.setList(result.getList()); + return resultDTO; + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml index 2ae77add42..b446fb23b2 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml @@ -75,4 +75,37 @@ GROUP BY recordId + + \ No newline at end of file From 727c6305a1f405ad0c79d0b1a05c4534295905a6 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 4 Jan 2022 17:31:52 +0800 Subject: [PATCH 05/26] emm --- .../impl/PatrolRoutineWorkServiceImpl.java | 32 +++++++++++++++++++ .../resources/mapper/PatrolRoutineWorkDao.xml | 5 ++- 2 files changed, 36 insertions(+), 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 c44832771c..de2027df8e 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 @@ -36,6 +36,7 @@ import com.epmet.dto.form.CustomerGridFormDTO; import com.epmet.dto.form.PatrolRoutineWorkFormDTO; import com.epmet.dto.form.PcWorkListFormDTO; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; +import com.epmet.dto.result.AllGridsByUserIdResultDTO; import com.epmet.dto.result.PatrolRoutineWorkResult; import com.epmet.dto.result.PcWorkListResultDTO; import com.epmet.entity.PatrolRoutineWorkEntity; @@ -60,6 +61,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 巡查例行工作 @@ -171,10 +173,40 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl> workTypeResult = adminOpenFeignClient.dictTree("patrol_work_type"); + if (!workTypeResult.success()){ + throw new EpmetException("查询例行工作分类失败..."); + } + List gridIds = list.stream().map(m -> m.getGridId()).distinct().collect(Collectors.toList()); + Result> gridNamesResult = govOrgOpenFeignClient.getGridListByGridIds(gridIds); + if (!gridNamesResult.success()){ + throw new EpmetException("查询网格名字失败..."); + } + list.forEach(l -> { + l.setWorkTypeName(disposeWorkTypeCode(workTypeResult.getData(),l.getWorkTypeCode())); + gridNamesResult.getData().stream().filter(g -> l.getGridId().equals(g.getGridId())).forEach(g -> l.setGridName(g.getGridName())); + }); result.setList(list); return result; } + public List disposeWorkTypeCode(List workTypeList,List code){ + if (CollectionUtils.isEmpty(code)){ + return new ArrayList<>(); + } + List result = new ArrayList<>(); + code.forEach(c -> { + workTypeList.forEach(w1 -> { + w1.getChildren().forEach(w2 -> { + if (c.equals(w2.getId())){ + result.add(w1.getName() + "-" + w2.getName()); + } + }); + }); + }); + return result; + } + /** * desc:递归遍历树形结构 构建pids 根节点pids 为空字符串 * diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml index 48137ecd50..78cf718131 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml @@ -47,6 +47,7 @@ + @@ -61,8 +62,10 @@ w.USER_ID AS staffId, w.GRID_ID AS gridId, DATE_FORMAT(w.CREATED_TIME,'%Y-%m-%d %H:%i:%s') AS createdTime, - w.WORK_CONTENT AS workContent + w.WORK_CONTENT AS workContent, + s.REAL_NAME AS staffName FROM patrol_routine_work w + INNER JOIN customer_staff s ON (s.USER_ID = w.USER_ID AND s.DEL_FLAG = 0) WHERE w.DEL_FLAG = 0 AND w.USER_ID = #{staffId} From 7c1f10a428eb6c1879153a708ba6da5097fe2a61 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 5 Jan 2022 09:11:32 +0800 Subject: [PATCH 06/26] emm --- .../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 de2027df8e..0859689498 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 @@ -173,7 +173,7 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl> workTypeResult = adminOpenFeignClient.dictTree("patrol_work_type"); + Result> workTypeResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode()); if (!workTypeResult.success()){ throw new EpmetException("查询例行工作分类失败..."); } From 6627e284863e47ab362010ce6b6166c7d53446dd Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 5 Jan 2022 09:33:07 +0800 Subject: [PATCH 07/26] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StaffPatrolRecordServiceImpl.java | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index 860aa91c3d..bcb27c0410 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -1,13 +1,17 @@ package com.epmet.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.rocketmq.messages.StaffPatrolMQMsg; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; @@ -42,9 +46,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -73,6 +75,8 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl orgIds = result.getList().stream().map(PcworkRecordListResultDTO.StaffPatrol::getGridId).collect(Collectors.toList()); - orgIds = orgIds.stream().distinct().collect(Collectors.toList()); - org.setOrgIds(orgIds); - org.setOrgType("grid"); - Result> orgResult = govOrgOpenFeignClient.selectOrgInfo(org); - if (!orgResult.success()) { - throw new RenException("获取网格基础信息失败......"); + //2.查询网格信息并赋值 + Map map = new HashMap<>(); + for (PcworkRecordListResultDTO.StaffPatrol r : result.getList()) { + if (map.containsKey(r.getGridId())) { + r.setGridName(map.get(r.getGridId()).getGridName()); + continue; + } + String redisKey = RedisKeys.getGridInfoKey(r.getGridId()); + Map gridCache = redisUtils.hGetAll(redisKey); + if (gridCache != null && gridCache.size() > 0) { + // 直接取缓存中的 + CustomerGridDTO dto = BeanUtil.mapToBean(gridCache, CustomerGridDTO.class, true); + r.setGridName(dto.getGridName()); + map.put(r.getGridId(), dto); + } else { + CustomerGridFormDTO form = new CustomerGridFormDTO(); + form.setGridId(r.getGridId()); + Result resultGrid = govOrgOpenFeignClient.getGridBaseInfoByGridId(form); + if (!resultGrid.success()) { + throw new RenException("调用org服务获取网格基础信息失败......"); + } + r.setGridName(resultGrid.getData().getGridName()); + map.put(r.getGridId(), resultGrid.getData()); + } } - //3.封装数据并返回 - result.getList().forEach(r -> orgResult.getData().stream().filter(u -> r.getGridId().equals(u.getOrgId())).forEach(u -> r.setGridName(u.getOrgName()))); resultDTO.setTotal((int)result.getTotal()); resultDTO.setList(result.getList()); return resultDTO; From f0d22865c9bd8f9e20fc7ab0d92c018eb2babc00 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 5 Jan 2022 09:40:05 +0800 Subject: [PATCH 08/26] =?UTF-8?q?=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/PatrolRoutineWorkServiceImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 0859689498..e2ff4c439b 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 @@ -190,6 +190,13 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl disposeWorkTypeCode(List workTypeList,List code){ if (CollectionUtils.isEmpty(code)){ return new ArrayList<>(); From 0f496b5b54a73d6fdda1aa218bbfd2d2e56f0b13 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 5 Jan 2022 09:53:08 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=201.PC?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF=E6=9F=A5=E8=AF=A2=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=91=98=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StaffPatrolRecordDailyResultDTO.java | 21 ++++ .../form/GridMemberDataAnalysisFromDTO.java | 7 ++ .../GridMemberDataAnalysisResultDTO.java | 7 ++ .../controller/GovOrgController.java | 22 ++++ .../FactGridMemberStatisticsDailyDao.java | 20 ++++ .../StatsStaffPatrolRecordDailyDao.java | 13 +++ .../dataaggre/service/AggreGridService.java | 13 +++ .../service/datastats/DataStatsService.java | 12 +++ .../datastats/impl/DataStatsServiceImpl.java | 42 ++++++-- .../StatsStaffPatrolRecordDailyService.java | 11 ++ ...tatsStaffPatrolRecordDailyServiceImpl.java | 5 + .../service/impl/AggreGridServiceImpl.java | 102 ++++++++++++++++-- .../FactGridMemberStatisticsDailyDao.xml | 49 +++++++++ .../StatsStaffPatrolRecordDailyDao.xml | 21 ++++ 14 files changed, 330 insertions(+), 15 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffPatrolRecordDailyResultDTO.java 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 + + From c0bc7a7a8f0f0475619eaa95f172578a2e6ed1a7 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 5 Jan 2022 10:48:09 +0800 Subject: [PATCH 10/26] =?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=A1=E6=9F=A5=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?mobile=E7=9A=84=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GridMemberDataAnalysisResultDTO.java | 1 + .../data-aggregator-server/pom.xml | 20 +++++++ .../controller/GovOrgController.java | 52 +++++++++++++++++++ .../service/epmetuser/EpmetUserService.java | 8 +++ .../epmetuser/impl/EpmetUserServiceImpl.java | 6 +++ .../service/impl/AggreGridServiceImpl.java | 20 +++++++ 6 files changed, 107 insertions(+) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java index 4da050970e..0bd54027fa 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java @@ -7,6 +7,7 @@ public class GridMemberDataAnalysisResultDTO { private String gridId; private String staffId; + private String mobile; private String staffName; private String orgName; //private String gridName; diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index 06f591c6c0..b26bfa373b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -82,6 +82,26 @@ 2.0.0 compile + + + com.alibaba + easyexcel + 3.0.3 + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 97c9c4429e..6cb9704c5f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.controller; +import com.alibaba.excel.EasyExcel; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; @@ -223,4 +224,55 @@ public class GovOrgController { return new Result().ok(page); } + /** + * pc 工作端,网格员巡查统计,导出excel + * @param input + * @return + */ + @PostMapping("pcwork/gridmember-analysis/export") + public Result exportGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input) { + //ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class); + // + //String agencyId = input.getAgencyId(); + //Date startTime = input.getStartTime(); + //Date endTime = input.getEndTime(); + // + //int pageNo = 0; + //int pageSize = 1000; + // + //PageData page; + //do { + // page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime); + // List pageList = page.getList(); + // + // EasyExcel + // + // + //} while (page.getList().size() == pageSize); + + return null; + } + + /** + * 网格员数据分析excel导出bean + */ + public class GridMemberDataAnalysisExcelExportBean { + private String staffName; + private String orgName; + + // 项目议题等 + private Integer projectCount; + private Integer issueToProjectCount; + private Integer closedIssueCount; + private Integer projectResponseCount; + private Integer projectTransferCount; + private Integer projectClosedCount; + + // 巡查 + private int patrolTimes; + private int totalTime; + private int patrolRoutineWorkTimes; + } + + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 6979f5d8b4..a1509063c1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -6,6 +6,7 @@ import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; @@ -167,4 +168,11 @@ public interface EpmetUserService { * @author sun */ List getHomeUserList(String homeId, String icUserId); + + /** + * 使用staffId批量查询staff信息 + * @param userIdsPart + * @return + */ + List listStaffsByIds(List userIdsPart); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index c38bf062a9..815b196c51 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -735,5 +735,11 @@ public class EpmetUserServiceImpl implements EpmetUserService { return icResiUserDao.getHomeUserList(homeId, icUserId); } + @Override + public List listStaffsByIds(List userIds) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.in(CustomerStaffEntity::getUserId, userIds); + return customerStaffDao.selectList(query); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java index 48f1a811b7..7b2e56ff2f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/AggreGridServiceImpl.java @@ -9,9 +9,11 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dataaggre.dto.epmetuser.result.StaffPatrolRecordDailyResultDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; +import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.datastats.DataStatsService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StatsStaffPatrolRecordDailyService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.github.pagehelper.PageInfo; @@ -20,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; @Service public class AggreGridServiceImpl implements AggreGridService { @@ -33,6 +37,9 @@ public class AggreGridServiceImpl implements AggreGridService { @Autowired private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; + @Autowired + private EpmetUserService epmetUserService; + @Override public List getGridMemberDataAnalysis( List gridIds, @@ -100,6 +107,19 @@ public class AggreGridServiceImpl implements AggreGridService { List> userIdsParts = Lists.partition(userIds, partSize); for (List userIdsPart : userIdsParts) { + + // 批量查询出用户信息 + List staffInfos = epmetUserService.listStaffsByIds(userIdsPart); + //Map staffIdAndStaffInfo = staffInfos.stream().collect(Collectors.toMap((s) -> s.getUserId(), Function.identity())); + for (CustomerStaffEntity staffInfo : staffInfos) { + Map gridAndData = structedData.get(staffInfo.getUserId()); + if (gridAndData != null) { + gridAndData.forEach((k, v) -> v.setMobile(staffInfo.getMobile())); + } + } + + + // 批量查询出巡查信息 List patrolDatas = statsStaffPatrolRecordDailyService.listStaffPatrolRecordDailyAnalysis(pids, userIdsPart, startDateID, endDateID); for (StaffPatrolRecordDailyResultDTO d : patrolDatas) { Map gridAndData = structedData.get(d.getStaffId()); From ecba660e2a68bb43f5912c1b4fafc823a6d054b8 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 5 Jan 2022 11:32:39 +0800 Subject: [PATCH 11/26] =?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=A1=E6=9F=A5=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?sql=E9=94=99=E8=AF=AF=EF=BC=8C=E6=9B=B4=E6=94=B9=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=85=A5=E5=8F=82=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/GridMemberDataAnalysisFromDTO.java | 8 ++ .../controller/GovOrgController.java | 97 +++++++++++++++---- .../FactGridMemberStatisticsDailyDao.xml | 2 +- 3 files changed, 88 insertions(+), 19 deletions(-) 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 59be0d83c3..ca0ee068eb 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 @@ -1,6 +1,8 @@ package com.epmet.dataaggre.dto.govorg.form; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import java.util.Date; @@ -24,6 +26,12 @@ public class GridMemberDataAnalysisFromDTO { @NotBlank(message = "请选择组织", groups = { listGridMemberDatas4PcWork.class }) private String agencyId; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") private Date startTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") private Date endTime; } 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 6cb9704c5f..58a065b164 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -1,6 +1,9 @@ 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; @@ -9,6 +12,7 @@ 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.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; @@ -20,15 +24,22 @@ 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.lang3.StringUtils; 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.io.IOException; +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; /** * @Author zxc @@ -36,6 +47,7 @@ import java.util.List; */ @RestController @RequestMapping("org") +@Slf4j public class GovOrgController { @Autowired @@ -47,6 +59,24 @@ public class GovOrgController { @Autowired private AggreGridService aggreGridService; + /** + * 导出路径 + */ + private Path gridMemberStatsExcelExportDir; + + { + // 初始化目录 + String home = System.getProperty("user.home"); + Path importDir = Paths.get(home, "epmet_files", "grid_member_stats_excel_export"); + if (Files.notExists(importDir)) { + try { + Files.createDirectories(importDir); + } catch (IOException e) { + log.error("创建导出暂存目录失败"); + } + } + gridMemberStatsExcelExportDir = importDir; + } /** * @param tokenDTO @@ -231,24 +261,32 @@ public class GovOrgController { */ @PostMapping("pcwork/gridmember-analysis/export") public Result exportGridMemberAnalysis4PcWork(@RequestBody GridMemberDataAnalysisFromDTO input) { - //ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class); - // - //String agencyId = input.getAgencyId(); - //Date startTime = input.getStartTime(); - //Date endTime = input.getEndTime(); - // - //int pageNo = 0; - //int pageSize = 1000; - // - //PageData page; - //do { - // page = aggreGridService.getGridMemberDataAnalysis4PcWork(agencyId, pageNo, pageSize, startTime, endTime); - // List pageList = page.getList(); - // - // EasyExcel - // - // - //} while (page.getList().size() == pageSize); + ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas4PcWork.class); + + String agencyId = input.getAgencyId(); + Date startTime = input.getStartTime(); + Date endTime = input.getEndTime(); + + int pageNo = 0; + int pageSize = 1000; + + String tempFileName = UUID.randomUUID().toString().concat(".xlsx"); + + 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); + + + } while (page.getList().size() == pageSize); return null; } @@ -256,21 +294,44 @@ public class GovOrgController { /** * 网格员数据分析excel导出bean */ + @Data public class GridMemberDataAnalysisExcelExportBean { + @ExcelProperty("姓名") private String staffName; + + @ExcelProperty("手机号") + private String mobile; + + @ExcelProperty("所属网格") private String orgName; // 项目议题等 + @ExcelProperty("项目数") private Integer projectCount; + + @ExcelProperty("议题转项目数") private Integer issueToProjectCount; + + @ExcelProperty("议题关闭数") private Integer closedIssueCount; + + @ExcelProperty("项目事件响应数") private Integer projectResponseCount; + + @ExcelProperty("项目事件吹哨数") private Integer projectTransferCount; + + @ExcelProperty("项目事件结案数") private Integer projectClosedCount; // 巡查 + @ExcelProperty("巡查次数") private int patrolTimes; + + @ExcelProperty("巡查时长") private int totalTime; + + @ExcelProperty("例行工作次数") private int patrolRoutineWorkTimes; } 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 09d1304d35..474e0ea8a9 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 @@ -176,7 +176,7 @@ and member.DEL_FLAG = '0' group by member.grid_id, member.staff_id, - member.STAFF_NAME, + member.STAFF_NAME order by convert(member.staff_name using gbk) asc, member.GRID_ID asc From 175d775b37a366c9e512b37ba3f550222dc9544c Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 5 Jan 2022 14:02:25 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PatrolRoutineWorkController.java | 26 +++++++++ .../com/epmet/excel/PcWorkListExport.java | 57 +++++++++++++++++++ .../service/PatrolRoutineWorkService.java | 2 + .../impl/PatrolRoutineWorkServiceImpl.java | 34 +++++++++++ 4 files changed, 119 insertions(+) create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java 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 5de2ecde8b..c24db708c6 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 @@ -1,6 +1,10 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.PatrolRoutineWorkFormDTO; @@ -8,16 +12,21 @@ import com.epmet.dto.form.PcWorkListFormDTO; import com.epmet.dto.form.patrol.PatrolQueryFormDTO; import com.epmet.dto.result.PatrolRoutineWorkResult; import com.epmet.dto.result.PcWorkListResultDTO; +import com.epmet.excel.PcWorkListExport; import com.epmet.service.PatrolRoutineWorkService; import com.github.pagehelper.Page; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; import java.util.List; +import static io.netty.handler.codec.smtp.SmtpRequests.data; + /** * 例行工作 * @@ -70,4 +79,21 @@ public class PatrolRoutineWorkController { return new Result().ok(gridUserWorkService.pcWorkList(formDTO)); } + @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; + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java new file mode 100644 index 0000000000..7d1633cf13 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java @@ -0,0 +1,57 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/1/5 10:00 上午 + * @DESC + */ +@Getter +@Setter +@EqualsAndHashCode +public class PcWorkListExport { + + @ExcelProperty("事项名称") + private String title; + + @ExcelProperty("事项类型码") + private String workTypeCode; + + @ExcelProperty("事项类型名称") + private String workTypeName; + + @ExcelProperty("有无异常") + private String isNormal; + + @ExcelProperty("发生地点") + private String happenAddress; + + @ExcelProperty("发生时间") + private String happenTime; + + @ExcelProperty("人员ID") + private String staffId; + + @ExcelProperty("人员姓名") + private String staffName; + + @ExcelProperty("网格ID") + private String gridId; + + @ExcelProperty("网格名字") + private String gridName; + + @ExcelProperty("提交日期") + private String createdTime; + + @ExcelProperty("工作内容") + private String workContent; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java index 0eabbc8997..5af4a1300a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java @@ -26,6 +26,7 @@ import com.epmet.dto.result.PcWorkListResultDTO; import com.epmet.entity.PatrolRoutineWorkEntity; import com.github.pagehelper.Page; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -56,4 +57,5 @@ public interface PatrolRoutineWorkService extends BaseService data = ConvertUtils.sourceToTarget(pcWorkList(formDTO).getList(), PcWorkListExport.class); + num = data.size(); + excelWriter.write(data, writeSheet); + pageNo++; + }while (num > NumConstant.ZERO && num.compareTo(pageSize) == NumConstant.ZERO); + + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + /** * @Description 处理 workTypeName * @param workTypeList From d2d7421268ccdd3f85bea612383987c51a3f19ad Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 5 Jan 2022 14:19:14 +0800 Subject: [PATCH 13/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/IssueProjectCategoryDictDTO.java | 5 +- .../epmet/feign/GovIssueOpenFeignClient.java | 18 ++++--- .../GovIssueOpenFeignClientFallBack.java | 14 +++++ .../IssueProjectCategoryDictController.java | 13 ++++- .../dao/IssueProjectCategoryDictDao.java | 9 ++++ .../IssueProjectCategoryDictService.java | 3 +- .../IssueProjectCategoryDictServiceImpl.java | 15 ++++++ .../mapper/IssueProjectCategoryDictDao.xml | 18 ++++++- .../epmet/dto/form/ApprovaledListFromDTO.java | 27 ++++++++++ .../dto/result/ApprovaledListResultDTO.java | 28 ++++++++++ .../controller/ProjectTraceController.java | 17 ++++++ .../main/java/com/epmet/dao/ProjectDao.java | 11 ++++ .../epmet/service/ProjectCategoryService.java | 10 ++++ .../com/epmet/service/ProjectService.java | 10 ++++ .../epmet/service/ProjectTraceService.java | 11 ++++ .../impl/ProjectCategoryServiceImpl.java | 27 ++++++++-- .../service/impl/ProjectServiceImpl.java | 18 +++++++ .../service/impl/ProjectTraceServiceImpl.java | 52 ++++++++++++++++++- .../src/main/resources/mapper/ProjectDao.xml | 25 +++++++++ 19 files changed, 313 insertions(+), 18 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ApprovaledListResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java index 83920372a1..b89917e0d7 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java @@ -17,9 +17,10 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -67,7 +68,7 @@ public class IssueProjectCategoryDictDTO implements Serializable { * 分类名称 */ private String categoryName; - + private String parentCategoryName; /** * 分类类别1,2,3,4.... */ diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 8a0233b46f..5ebed6c49e 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -4,9 +4,6 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.IssueApplicationDTO; -import com.epmet.dto.IssueDTO; -import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -25,10 +22,7 @@ import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO; import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @@ -372,4 +366,14 @@ public interface GovIssueOpenFeignClient { **/ @PostMapping(value = "/gov/issue/issueprojectcategorydict/getcategorylist") Result> getCategoryList(@RequestBody IssueProjectCategoryDictListFormDTO formDTO); + + /** + * 获取项目分类名 + * @Param customerId + * @Return {@link Result< Map< String, String>>} + * @Author zhaoqifeng + * @Date 2022/1/5 10:16 + */ + @PostMapping("/gov/issue/issueprojectcategorydict/categoryMap/{customerId}") + Result> getCategoryMap(@PathVariable("customerId") String customerId); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 5e59dc20fe..ae87c2cd6b 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -305,4 +305,18 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> getCategoryList(IssueProjectCategoryDictListFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryList", formDTO); } + + /** + * 获取项目分类名 + * + * @param customerId + * @Param customerId + * @Return {@link Result< Map< String, String>>} + * @Author zhaoqifeng + * @Date 2022/1/5 10:16 + */ + @Override + public Result> getCategoryMap(String customerId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryMap", customerId); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java index f77f9ce9d9..51b04c93f3 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java @@ -33,7 +33,6 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IssueProjectCategoryDictDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.entity.IssueProjectCategoryDictEntity; import com.epmet.excel.IssueProjectCategoryDictExcel; import com.epmet.project.dto.CustomerCategoryDTO; import com.epmet.project.dto.result.ProjectCategoryDictResultDTO; @@ -288,5 +287,17 @@ public class IssueProjectCategoryDictController { return new Result>().ok(issueProjectCategoryDictService.selectCategoryOneLevelListByCustomerId(tokenDto.getCustomerId())); } + /** + * 获取项目分类名 + * @Param customerId + * @Return {@link Result< Map< String, String>>} + * @Author zhaoqifeng + * @Date 2022/1/5 10:16 + */ + @PostMapping("categoryMap/{customerId}") + public Result> getCategoryMap(@PathVariable("customerId") String customerId) { + return new Result>().ok(issueProjectCategoryDictService.getCategoryMap(customerId)); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java index 50a93b4bef..4259265dac 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java @@ -192,4 +192,13 @@ public interface IssueProjectCategoryDictDao extends BaseDao selectCategoryOneLevelListByCustomerId(@Param("customerId")String customerId); + /** + * @Description 获取客户下分类 + * @Param customerId + * @Return {@link List< IssueProjectCategoryDictDTO>} + * @Author zhaoqifeng + * @Date 2022/1/5 10:45 + */ + List getCategoryByCustomer(@Param("customerId") String customerId); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java index 292e6449d8..204fba3743 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java @@ -25,7 +25,6 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IssueProjectCategoryDictEntity; import com.epmet.project.dto.result.ProjectCategoryDictResultDTO; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; @@ -230,4 +229,6 @@ public interface IssueProjectCategoryDictService extends BaseService selectCategoryOneLevelListByCustomerId(String customerId); + Map getCategoryMap(String customerId); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java index 28a7192afb..08adcb5860 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; @@ -507,6 +508,20 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl getCategoryMap(String customerId) { + List list = baseDao.getCategoryByCustomer(customerId); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + list.forEach(item -> { + if(StringUtils.isNotBlank(item.getParentCategoryName())) { + item.setCategoryName(item.getParentCategoryName().concat(StrConstant.HYPHEN).concat(item.getCategoryName())); + } + }); + return list.stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getCategoryCode, IssueProjectCategoryDictDTO::getCategoryName)); + } + /** * @Description 项目分类处理 * @Param list diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index 06c1fc0000..6c38707498 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -41,7 +41,7 @@ ORDER BY sort ASC - SELECT ID, PID, @@ -292,4 +292,20 @@ WHERE customer_id = #{customerId} AND id = #{id} AND DEL_FLAG = '0' + + diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java new file mode 100644 index 0000000000..1e0977ee0d --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/4 14:49 + */ +@NoArgsConstructor +@Data +public class ApprovaledListFromDTO implements Serializable { + + private static final long serialVersionUID = 5700160700676332579L; + private String customerId; + @NotBlank(message = "组织id不能为空") + private String agencyId; + private String startTime; + private String endTime; + private String staffId; + private Integer pageSize = 1; + private Integer pageNo = 20; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ApprovaledListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ApprovaledListResultDTO.java new file mode 100644 index 0000000000..97f2efd601 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ApprovaledListResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/4 14:58 + */ +@NoArgsConstructor +@Data +public class ApprovaledListResultDTO implements Serializable { + + private static final long serialVersionUID = 5118030421632653558L; + private String projectId; + private String title; + private String projectCategory; + private String locateAddress; + private String happenTime; + private String staffId; + private String staffName; + private String gridId; + private String gridName; + private String createdTime; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index f40e6c3de8..027ee1cf62 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -3,6 +3,7 @@ package com.epmet.controller; 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.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -380,5 +381,21 @@ public class ProjectTraceController { ValidatorUtils.validateEntity(formDTO,EventToProjectFormDTO.ApprovalCategory.class,EventToProjectFormDTO.AddUserInternalGroup.class); return new Result().ok(projectTraceService.eventToProject(formDTO)); } + + /** + * 【网格员工作统计】项目列表 + * + * @Param formDTO + * @Return {@link Result< PageData< ApprovaledListResultDTO>>} + * @Author zhaoqifeng + * @Date 2022/1/4 15:32 + */ + @PostMapping("approvaled-list") + public Result> approvaledList(@LoginUser TokenDto tokenDto, @RequestBody ApprovaledListFromDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + formDTO.setCustomerId(tokenDto.getCustomerId()); + PageData result = projectTraceService.approvaledList(formDTO); + return new Result>().ok(result); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 0f91019b54..673acf371e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -267,4 +267,15 @@ public interface ProjectDao extends BaseDao { */ List selectProjectCountByOrg(List orgIds,@Param("startDate")String startDate,@Param("endDate")String endDate); + /** + * 网格员立项 + * @Param agencyId + * @Param staffId + * @Param startTime + * @Param endTime + * @Return {@link List< ApprovaledListResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/4 16:45 + */ + List getGridMemberProjectList(@Param("agencyId") String agencyId, @Param("staffId") String staffId, @Param("startTime") String startTime, @Param("endTime") String endTime); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java index 4d66d39dd0..9ae8a7fdee 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java @@ -28,6 +28,7 @@ import com.epmet.entity.ProjectCategoryEntity; import java.util.List; import java.util.Map; +import java.util.Set; /** * 项目所属分类表 @@ -126,4 +127,13 @@ public interface ProjectCategoryService extends BaseService getProjectCategoryService(String projectId); + + /** + * @Description 获取项目分类列表 + * @Param projectIds + * @Return {@link Map< String, Set< String>>} + * @Author zhaoqifeng + * @Date 2022/1/5 9:50 + */ + Map> getProjectCategoryMap(List projectIds); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index dff8e9d30e..920234017b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -357,4 +357,14 @@ public interface ProjectService extends BaseService { * @return */ TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO); + + /** + * 【网格员工作统计】项目列表 + * + * @Param formDTO + * @Return {@link PageData< ApprovaledListResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/4 16:27 + */ + PageData approvaledList(ApprovaledListFromDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index 620f9577fc..eb25d072a4 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -1,5 +1,6 @@ package com.epmet.service; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -183,4 +184,14 @@ public interface ProjectTraceService { * @date 2021/8/5 15:38 */ EventToProjectResultDTO eventToProject(EventToProjectFormDTO formDTO); + + /** + * 【网格员工作统计】项目列表 + * + * @Param formDTO + * @Return {@link PageData< ApprovaledListResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/4 15:33 + */ + PageData approvaledList(ApprovaledListFromDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java index ac0a279fb9..91d609d8e2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -39,15 +40,14 @@ import com.epmet.entity.ProjectEntity; import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.redis.ProjectCategoryRedis; import com.epmet.service.ProjectCategoryService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 项目所属分类表 @@ -225,4 +225,23 @@ public class ProjectCategoryServiceImpl extends BaseServiceImpl>} + * @Author zhaoqifeng + * @Date 2022/1/5 9:50 + */ + @Override + public Map> getProjectCategoryMap(List projectIds) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectCategoryEntity::getProjectId, projectIds); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.groupingBy(ProjectCategoryEntity::getProjectId, Collectors.mapping(ProjectCategoryEntity::getCategoryCode, Collectors.toSet()))); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 7c72732c7c..6d43baee54 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -3045,6 +3045,24 @@ public class ProjectServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2022/1/4 16:27 + */ + @Override + public PageData approvaledList(ApprovaledListFromDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getGridMemberProjectList(formDTO.getAgencyId(), formDTO.getStaffId(), + formDTO.getStartTime(), formDTO.getEndTime()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + /** * @Description 区间项目分类数量处理 * 查询的是时间段内的分类项目数,查询的时间 是传入一个日期,拼上时间,在进行比较大小 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 1150ecc9f5..174f64a673 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -5,10 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.OrgTypeEnum; 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.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; @@ -33,14 +38,14 @@ import com.epmet.feign.*; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -882,6 +887,49 @@ public class ProjectTraceServiceImpl implements ProjectTraceS return resultDTO; } + /** + * 【网格员工作统计】项目列表 + * + * @param formDTO + * @Param formDTO + * @Return {@link PageData < ApprovaledListResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/4 15:33 + */ + @Override + public PageData approvaledList(ApprovaledListFromDTO formDTO) { + //获取项目列表 + PageData result = projectService.approvaledList(formDTO); + //获取项目分类 + Result> categoryMapResult = govIssueOpenFeignClient.getCategoryMap(formDTO.getCustomerId()); + if (!categoryMapResult.success()) { + throw new EpmetException(categoryMapResult.getCode(),categoryMapResult.getMsg()); + } + Map categoryMap = categoryMapResult.getData(); + if(CollectionUtils.isNotEmpty(result.getList())) { + List projectIds = result.getList().stream().map(ApprovaledListResultDTO::getProjectId).collect(Collectors.toList()); + Map> projectCategory = projectCategoryService.getProjectCategoryMap(projectIds); + result.getList().forEach(item -> { + //工作人员姓名 + CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), item.getStaffId()); + item.setStaffName(staff.getRealName()); + //项目分类 + Set categoryList = projectCategory.get(item.getProjectCategory()); + if (null != categoryList) { + List categoryNames = new ArrayList<>(); + categoryList.forEach(category -> { + if (StringUtils.isNotBlank(categoryMap.get(category))) { + categoryNames.add(categoryMap.get(category)); + } + } ); + item.setProjectCategory(StringUtils.join(categoryNames.toArray(), StrConstant.SEMICOLON)); + } + }); + + } + return result; + } + private List queryStaffListRes(List staffList,String currentUserId) { List staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList()); staffIdList.add(currentUserId); diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index a43a05d0b8..f0d6166741 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -483,4 +483,29 @@ AND DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') #{endDate} + \ No newline at end of file From 8e36fd2841bb5995a295654716bea68fb4e61c4b Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 5 Jan 2022 14:43:36 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E8=AE=B0=E5=BD=95=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StaffPatrolController.java | 25 +++++++ .../epmet/excel/StaffPatrolRecordExcel.java | 71 +++++++++++++++++++ .../service/StaffPatrolRecordService.java | 4 ++ .../impl/StaffPatrolRecordServiceImpl.java | 41 +++++++++++ 4 files changed, 141 insertions(+) create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java index 8d92257c74..e8f37f0a2e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java @@ -1,23 +1,37 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillWrapper; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; import com.epmet.dto.result.*; +import com.epmet.excel.StaffPatrolRecordExcel; import com.epmet.service.StaffPatrolDetailService; import com.epmet.service.StaffPatrolRecordService; +import com.epmet.util.TestFileUtil; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; import java.util.List; /** @@ -167,4 +181,15 @@ public class StaffPatrolController { return new Result().ok(staffPatrolRecordService.pcworkRecordList(formDTO)); } + /** + * @Author sun + * @Description 【网格员工作统计】巡查记录列表导出 + **/ + @NoRepeatSubmit + @PostMapping("pcwork/record-list/export") + public void pcworkRecordListExport(HttpServletResponse response, @RequestBody PcworkRecordListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, PcworkRecordListFormDTO.Staff.class); + staffPatrolRecordService.pcworkRecordListExport(response, formDTO); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java new file mode 100644 index 0000000000..7ac5a9eed9 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java @@ -0,0 +1,71 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +/** + * @Description 【网格员工作统计】巡查记录列表导出 + * @Author sun + */ +@Getter +@Setter +@EqualsAndHashCode +public class StaffPatrolRecordExcel { + + @ExcelProperty("人员ID") + private String staffId; + + @ExcelProperty("人员名称") + private String staffName; + + @ExcelProperty("网格ID") + private String gridId; + + @ExcelProperty("网格名称") + private String gridName; + + @ExcelProperty("状态(英文key)") + private String status; + + @ExcelProperty("状态(中文)") + private String statusName; + + @DateTimeFormat("yyyy年MM月dd日") + @ExcelProperty("巡查开始时间") + private String patrolStartTime; + + @DateTimeFormat("yyyy年MM月dd日") + @ExcelProperty("巡查结束时间") + private String patrolEndTime; + + @ExcelProperty("巡查时长") + private String totalTime; + + @ExcelIgnore + private String aa; + + + + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java index a1727a8342..c5819aa58b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java @@ -24,6 +24,7 @@ import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.StaffPatrolRecordEntity; +import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -116,4 +117,7 @@ public interface StaffPatrolRecordService extends BaseService list = staffPatrolRecordDao.pcworkRecordList(formDTO); + List data = ConvertUtils.sourceToTarget(list, StaffPatrolRecordExcel.class); + excelWriter.write(data, writeSheet); + num = data.size(); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (num == formDTO.getPageSize()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } From fd7e7237f2a8217cd598a55c8e122b7bcb06499e Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 5 Jan 2022 14:50:14 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/ProjectTraceController.java | 2 +- .../java/com/epmet/service/impl/ProjectTraceServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index 027ee1cf62..f7d44f5f94 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -390,7 +390,7 @@ public class ProjectTraceController { * @Author zhaoqifeng * @Date 2022/1/4 15:32 */ - @PostMapping("approvaled-list") + @PostMapping("pcwork/approvaled-list") public Result> approvaledList(@LoginUser TokenDto tokenDto, @RequestBody ApprovaledListFromDTO formDTO) { ValidatorUtils.validateEntity(formDTO); formDTO.setCustomerId(tokenDto.getCustomerId()); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 174f64a673..76aab37e9c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -914,7 +914,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), item.getStaffId()); item.setStaffName(staff.getRealName()); //项目分类 - Set categoryList = projectCategory.get(item.getProjectCategory()); + Set categoryList = projectCategory.get(item.getProjectId()); if (null != categoryList) { List categoryNames = new ArrayList<>(); categoryList.forEach(category -> { From 67468af4c28f142d3c66476fade08dc0fe5d3b0f Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 5 Jan 2022 15:21:21 +0800 Subject: [PATCH 16/26] emm --- .../epmet/dto/result/PcWorkListResultDTO.java | 2 + .../com/epmet/excel/PcWorkListExport.java | 16 +++++- .../impl/PatrolRoutineWorkServiceImpl.java | 50 ++++++++++++++++--- 3 files changed, 60 insertions(+), 8 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java index afc01d60c2..13e8562e2e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java @@ -49,6 +49,8 @@ public class PcWorkListResultDTO implements Serializable { */ private String isNormal; + private String workTypeNames; + /** * 发生地点 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java index 7d1633cf13..12199212a6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java @@ -1,7 +1,9 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.Getter; @@ -20,38 +22,50 @@ import java.util.List; public class PcWorkListExport { @ExcelProperty("事项名称") + @ColumnWidth(20) private String title; @ExcelProperty("事项类型码") + @ColumnWidth(20) + @ExcelIgnore private String workTypeCode; @ExcelProperty("事项类型名称") - private String workTypeName; + @ColumnWidth(40) + private String workTypeNames; @ExcelProperty("有无异常") private String isNormal; @ExcelProperty("发生地点") + @ColumnWidth(20) private String happenAddress; @ExcelProperty("发生时间") + @ColumnWidth(20) private String happenTime; @ExcelProperty("人员ID") + @ExcelIgnore private String staffId; @ExcelProperty("人员姓名") + @ColumnWidth(20) private String staffName; @ExcelProperty("网格ID") + @ExcelIgnore private String gridId; @ExcelProperty("网格名字") + @ColumnWidth(20) private String gridName; @ExcelProperty("提交日期") + @ColumnWidth(30) private String createdTime; @ExcelProperty("工作内容") + @ColumnWidth(60) private String workContent; } 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 e66783f9c8..5d0aa60d4f 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 @@ -27,8 +27,12 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.DictTreeResultDTO; import com.epmet.commons.tools.enums.DictTypeEnum; +import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ExcelUtils; @@ -63,6 +67,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; +import java.beans.Encoder; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -198,25 +204,30 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl data = ConvertUtils.sourceToTarget(pcWorkList(formDTO).getList(), PcWorkListExport.class); + List dtos = pcWorkList(formDTO).getList(); + dtos.forEach(d -> { + d.setWorkTypeNames(d.getWorkTypeName().toString()); + }); + List data = ConvertUtils.sourceToTarget(dtos, PcWorkListExport.class); num = data.size(); excelWriter.write(data, writeSheet); pageNo++; }while (num > NumConstant.ZERO && num.compareTo(pageSize) == NumConstant.ZERO); - } finally { if (excelWriter != null) { excelWriter.finish(); @@ -224,6 +235,31 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl Date: Wed, 5 Jan 2022 15:27:36 +0800 Subject: [PATCH 17/26] =?UTF-8?q?=E7=A7=92=E5=8F=98=E5=B0=8F=E6=97=B6?= =?UTF-8?q?=E5=88=86=E9=92=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/PcworkRecordListResultDTO.java | 11 ++++++++-- .../epmet/excel/StaffPatrolRecordExcel.java | 20 +++++++++++++++---- .../impl/StaffPatrolRecordServiceImpl.java | 18 ++++++++++++----- .../resources/mapper/StaffPatrolRecordDao.xml | 2 +- 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java index a7ff4f318d..88a9661478 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java @@ -1,9 +1,12 @@ package com.epmet.dto.result; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -33,11 +36,15 @@ public class PcworkRecordListResultDTO implements Serializable { //状态(中文) private String statusName; //巡查开始时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss - private String patrolStartTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date patrolStartTime; //巡查结束时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss - private String patrolEndTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date patrolEndTime; //巡查时长 xx小时xx分钟 private String totalTime; + @JsonIgnore + private Integer totalTimeNum; } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java index 7ac5a9eed9..1542e379be 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java @@ -20,10 +20,13 @@ package com.epmet.excel; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; +import java.util.Date; + /** * @Description 【网格员工作统计】巡查记录列表导出 * @Author sun @@ -34,36 +37,45 @@ import lombok.Setter; public class StaffPatrolRecordExcel { @ExcelProperty("人员ID") + @ExcelIgnore private String staffId; @ExcelProperty("人员名称") + @ColumnWidth(15) private String staffName; @ExcelProperty("网格ID") + @ExcelIgnore private String gridId; @ExcelProperty("网格名称") + @ColumnWidth(20) private String gridName; @ExcelProperty("状态(英文key)") + @ExcelIgnore private String status; - @ExcelProperty("状态(中文)") + @ExcelProperty("状态") + @ColumnWidth(18) private String statusName; @DateTimeFormat("yyyy年MM月dd日") @ExcelProperty("巡查开始时间") - private String patrolStartTime; + @ColumnWidth(20) + private Date patrolStartTime; @DateTimeFormat("yyyy年MM月dd日") @ExcelProperty("巡查结束时间") - private String patrolEndTime; + @ColumnWidth(20) + private Date patrolEndTime; @ExcelProperty("巡查时长") + @ColumnWidth(20) private String totalTime; @ExcelIgnore - private String aa; + private Integer totalTimeNum;; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index f65c7be3e4..51e56157ba 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -506,6 +506,12 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl 0 ? minutes / 60 + "小时" : "") + (minutes % 60 > 0 ? minutes % 60 + "分钟" : "0分钟"); + r.setTotalTime(patrolDuration); + } //3.封装数据并返回 resultDTO.setTotal((int)result.getTotal()); @@ -524,13 +530,15 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl list = staffPatrolRecordDao.pcworkRecordList(formDTO); - List data = ConvertUtils.sourceToTarget(list, StaffPatrolRecordExcel.class); + PcworkRecordListResultDTO dto = pcworkRecordList(formDTO); + List data = ConvertUtils.sourceToTarget(dto.getList(), StaffPatrolRecordExcel.class); + WriteSheet writeSheet = EasyExcel.writerSheet(formDTO.getPageNo(), "sheet" + formDTO.getPageNo()).build(); + writeSheet.setClazz(StaffPatrolRecordExcel.class); excelWriter.write(data, writeSheet); num = data.size(); formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml index b446fb23b2..fc1364a397 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml @@ -84,7 +84,7 @@ if(spr.`status`='patrolling', '巡查中', if(spr.is_hand_end=0, '结束巡查(系统自动)', '结束巡查'))statusName, spr.patrol_start_time patrolStartTime, spr.patrol_end_time patrolEndTime, - spr.total_time totalTime + spr.total_time totalTimeNum FROM staff_patrol_record spr LEFT JOIN customer_staff cs ON spr.staff_id = cs.user_id From f2661fee752d2abc0dd02b24db580464be59f074 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 5 Jan 2022 15:41:09 +0800 Subject: [PATCH 18/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-project/gov-project-server/pom.xml | 19 ++++++++ .../controller/ProjectTraceController.java | 17 +++++++ .../com/epmet/excel/ApprovaledListExcel.java | 29 ++++++++++++ .../epmet/service/ProjectTraceService.java | 11 +++++ .../service/impl/ProjectTraceServiceImpl.java | 46 +++++++++++++++++-- 5 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index c04583b7d5..4acd534d5b 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -65,6 +65,25 @@ 4.3 compile + + com.alibaba + easyexcel + 3.0.3 + + + poi + org.apache.poi + + + poi-ooxml + org.apache.poi + + + poi-ooxml-schemas + org.apache.poi + + + io.github.openfeign diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java index f7d44f5f94..66074acfa2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -397,5 +398,21 @@ public class ProjectTraceController { PageData result = projectTraceService.approvaledList(formDTO); return new Result>().ok(result); } + + /** + * 【网格员工作统计】项目列表 导出 + * + * @Param tokenDto + * @Param formDTO + * @Return + * @Author zhaoqifeng + * @Date 2022/1/5 14:58 + */ + @PostMapping("pcwork/approvaled-list/export") + public void approvaledListExport(HttpServletResponse response, @LoginUser TokenDto tokenDto, @RequestBody ApprovaledListFromDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + formDTO.setCustomerId(tokenDto.getCustomerId()); + projectTraceService.approvaledListExport(response, formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java new file mode 100644 index 0000000000..ef08b3cc39 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java @@ -0,0 +1,29 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/5 15:00 + */ +@Getter +@Setter +@EqualsAndHashCode +public class ApprovaledListExcel { + @ExcelProperty("项目事件标题") + private String title; + @ExcelProperty("项目事件类别") + private String projectCategory; + @ExcelProperty("发生地点") + private String locateAddress; + @ExcelProperty("发生日期") + private String happenTime; + @ExcelProperty("网格员") + private String staffName; + @ExcelProperty("提交日期") + private String createdTime; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java index eb25d072a4..133711aea9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -194,4 +195,14 @@ public interface ProjectTraceService { * @Date 2022/1/4 15:33 */ PageData approvaledList(ApprovaledListFromDTO formDTO); + + /** + * 【网格员工作统计】项目列表导出 + * + * @Param formDTO + * @Return {@link PageData< ApprovaledListResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/4 15:33 + */ + void approvaledListExport(HttpServletResponse response, ApprovaledListFromDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 76aab37e9c..d9cffa07c0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -1,5 +1,8 @@ package com.epmet.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; @@ -19,10 +22,7 @@ import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; 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.IpUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.utils.ScanContentUtils; +import com.epmet.commons.tools.utils.*; import com.epmet.constant.*; import com.epmet.dao.ProjectOrgRelationDao; import com.epmet.dao.ProjectProcessAttachmentDao; @@ -34,6 +34,7 @@ import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.*; +import com.epmet.excel.ApprovaledListExcel; import com.epmet.feign.*; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.*; @@ -50,6 +51,7 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; @@ -930,6 +932,42 @@ public class ProjectTraceServiceImpl implements ProjectTraceS return result; } + /** + * 【网格员工作统计】项目列表导出 + * + * @param formDTO + * @Param formDTO + * @Return {@link PageData< ApprovaledListResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/4 15:33 + */ + @Override + public void approvaledListExport(HttpServletResponse response, ApprovaledListFromDTO formDTO) { + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.ONE_THOUSAND); + ExcelWriter excelWriter = null; + try { + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("直接立项记录.xlsx", response)).build(); + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + writeSheet.setClazz(ApprovaledListExcel.class); + Integer num; + //一千条一循环分批写入 + do { + List list = approvaledList(formDTO).getList(); + List data = ConvertUtils.sourceToTarget(list, ApprovaledListExcel.class); + excelWriter.write(data, writeSheet); + num = data.size(); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + } while (num > NumConstant.ZERO && num.compareTo(formDTO.getPageSize()) == NumConstant.ZERO); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + private List queryStaffListRes(List staffList,String currentUserId) { List staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList()); staffIdList.add(currentUserId); 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 19/26] =?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 20/26] =?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 21/26] =?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, From fb8b5af36287fb2333f08b68698f28a5351aa968 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 6 Jan 2022 09:11:57 +0800 Subject: [PATCH 22/26] =?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=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=EF=BC=8C=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=B8=BA=E5=8C=85=E5=90=ABendTime=EF=BC=9B=E6=94=BE?= =?UTF-8?q?=E5=BC=83=E4=BD=BF=E7=94=A8=E5=85=A8=E9=87=8F=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=8C=E6=94=B9=E7=94=A8sum(=E5=A2=9E?= =?UTF-8?q?=E9=87=8F)=E6=96=B9=E5=BC=8F=E7=BB=9F=E8=AE=A1=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E9=98=B2=E6=AD=A2=E6=BC=8F=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datastats/impl/DataStatsServiceImpl.java | 28 ++++++++++--------- .../FactGridMemberStatisticsDailyDao.xml | 9 ++++-- .../StatsStaffPatrolRecordDailyDao.xml | 2 +- 3 files changed, 22 insertions(+), 17 deletions(-) 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 224f55f61c..5055a01925 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 @@ -2158,18 +2158,20 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve String endDateID, Boolean needCount) { - boolean isStartDateIdBlank = StringUtils.isBlank(startDateID); - boolean isEndDateIdBlank = StringUtils.isBlank(endDateID); - - if (isStartDateIdBlank && !isEndDateIdBlank) { - // 查询截止时间的累计值,直接查询表里的total即可 - PageHelper.startPage(pageNo, pageSize, needCount); - return factGridMemberStatisticsDailyDao.listGridMemberDataStatsAccumulate(pids, gridId, endDateID); - } else if (!isStartDateIdBlank && !isEndDateIdBlank) { - // 查询时间段内的增量,需要使用表中的增量列计算 - return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, gridId, startDateID, endDateID); - } else { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "【pcwork查询网格员数据统计列表】传入时间条件有误"); - } + //boolean isStartDateIdBlank = StringUtils.isBlank(startDateID); + //boolean isEndDateIdBlank = StringUtils.isBlank(endDateID); + // + //if (isStartDateIdBlank && !isEndDateIdBlank) { + // // 查询截止时间的累计值,直接查询表里的total即可 + // PageHelper.startPage(pageNo, pageSize, needCount); + // return factGridMemberStatisticsDailyDao.listGridMemberDataStatsAccumulate(pids, gridId, endDateID); + //} else if (!isStartDateIdBlank && !isEndDateIdBlank) { + // // 查询时间段内的增量,需要使用表中的增量列计算 + // return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, gridId, startDateID, endDateID); + //} else { + // throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "【pcwork查询网格员数据统计列表】传入时间条件有误"); + //} + + return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, gridId, startDateID, endDateID); } } 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 4a5c0e7578..4d3426a048 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 @@ -185,9 +185,12 @@ AND member.GRID_ID = #{gridId} - - and member.DATE_ID >= #{startDateID} - and member.DATE_ID #{endDateID} + + and member.DATE_ID >= #{startDateID} + + + and member.DATE_ID #{endDateID} + 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 d95a39d0a4..2d0845dbf0 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 @@ -80,7 +80,7 @@ and sprd.DATE_ID >= #{startDateId} - and sprd.DATE_ID #{endDateID} + and sprd.DATE_ID #{endDateID} group by sprd.STAFF_ID, sprd.GRID_ID From d504ebd1642cd825495f353c25197f70fb239b95 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 6 Jan 2022 09:26:32 +0800 Subject: [PATCH 23/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/ProjectDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index f0d6166741..dd1d3cc4bd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -501,10 +501,10 @@ AND CREATED_BY = #{staffId} - AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) >= #{startTime} + AND DATE_FORMAT( CREATED_TIME, '%Y%m%d' ) >= #{startTime} - AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) <= #{endTime} + AND DATE_FORMAT( CREATED_TIME, '%Y%m%d' ) <= #{endTime} ORDER BY CREATED_TIME DESC From fc8dccb286d38ce169885cea1d01ce7e8e6e5b1f Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 6 Jan 2022 09:28:54 +0800 Subject: [PATCH 24/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=EF=BC=9AyyyyMMdd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/govorg/form/GridMemberDataAnalysisFromDTO.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 95397af9c6..a546b2d436 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 @@ -30,11 +30,11 @@ public class GridMemberDataAnalysisFromDTO { @NotBlank(message = "请选择组织类型", groups = { listGridMemberDatas4PcWork.class }) private String orgType; - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyyMMdd") + @JsonFormat(pattern = "yyyyMMdd") private Date startTime; - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyyMMdd") + @JsonFormat(pattern = "yyyyMMdd") private Date endTime; } From 0ba51f8ff2f049fb2627b79d8ea4e966e89ca5cc Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 6 Jan 2022 09:53:21 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E3=80=90=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=9F=E8=AE=A1=E3=80=91=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/form/ApprovaledListFromDTO.java | 3 ++- .../java/com/epmet/service/impl/ProjectServiceImpl.java | 9 ++++++++- .../com/epmet/service/impl/ProjectTraceServiceImpl.java | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java index 1e0977ee0d..652dd2533f 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java @@ -18,7 +18,8 @@ public class ApprovaledListFromDTO implements Serializable { private static final long serialVersionUID = 5700160700676332579L; private String customerId; @NotBlank(message = "组织id不能为空") - private String agencyId; + private String orgId; + private String orgType; private String startTime; private String endTime; private String staffId; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 6d43baee54..7a6c70946c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -3056,8 +3056,15 @@ public class ProjectServiceImpl extends BaseServiceImpl approvaledList(ApprovaledListFromDTO formDTO) { + if (StringUtils.isNotBlank(formDTO.getStaffId()) && ProjectConstant.ORG_TYPE_GRID.equals(formDTO.getOrgType())) { + CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staff) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "获取工作人员信息失败"); + } + formDTO.setOrgId(staff.getAgencyId()); + } PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); - List list = baseDao.getGridMemberProjectList(formDTO.getAgencyId(), formDTO.getStaffId(), + List list = baseDao.getGridMemberProjectList(formDTO.getOrgId(), formDTO.getStaffId(), formDTO.getStartTime(), formDTO.getEndTime()); PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index d9cffa07c0..6afcb3419e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -914,6 +914,9 @@ public class ProjectTraceServiceImpl implements ProjectTraceS result.getList().forEach(item -> { //工作人员姓名 CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), item.getStaffId()); + if (null == staff) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "获取工作人员信息失败"); + } item.setStaffName(staff.getRealName()); //项目分类 Set categoryList = projectCategory.get(item.getProjectId()); From 1abf21dd9d0db09eada3761330536163093a523a Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 6 Jan 2022 10:49:49 +0800 Subject: [PATCH 26/26] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/StaffPatrolRecordDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml index fc1364a397..43196d50a0 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml @@ -91,7 +91,7 @@ WHERE spr.del_flag = '0' - AND spr.agency_id = #{orgId} + AND spr.grid_pids LIKE CONCAT('%', #{orgId}, '%') AND spr.grid = #{orgId}