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..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,9 +7,12 @@ public class GridMemberDataAnalysisResultDTO { private String gridId; private String staffId; + private String mobile; private String staffName; private String orgName; + //private String gridName; + // 项目议题等 private Integer projectCount; private Integer issueToProjectCount; private Integer closedIssueCount; @@ -17,4 +20,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/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 14500cc2ab..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,10 +1,12 @@ 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; 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 +25,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 +205,74 @@ 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); + } + + /** + * 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/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/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/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/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/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..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 @@ -1,18 +1,28 @@ 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.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 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.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -24,6 +34,12 @@ public class AggreGridServiceImpl implements AggreGridService { @Autowired private DataStatsService dataStatsService; + @Autowired + private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; + + @Autowired + private EpmetUserService epmetUserService; + @Override public List getGridMemberDataAnalysis( List gridIds, @@ -48,4 +64,98 @@ 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 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()); + + 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 + + diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java index 5824a1a9cc..dcf083d507 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java @@ -67,10 +67,6 @@ public class IndexController { //area_code升级,新增此参数 monthBarchartFormDTO.setCustomerId(customerId); ValidatorUtils.validateEntity(monthBarchartFormDTO, MonthBarchartFormDTO.MonthBarchart.class); - String monthId = monthBarchartFormDTO.getMonthId(); - if ("202212".equals(monthId)){ - monthBarchartFormDTO.setMonthId("202112"); - } return new Result().ok(indexService.monthBarchart(monthBarchartFormDTO)); } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActDetailResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActDetailResultDTO.java index 4ee734f45e..a232ebdf33 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActDetailResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActDetailResultDTO.java @@ -175,4 +175,25 @@ public class ResiActDetailResultDTO implements Serializable { * 取消活动的时间(yyyy-MM-dd HH:mm) */ private String cancelTime; + + /** + * 活动类型爱心活动heart 联建活动party + */ + private String actType; + + /** + * 联建单位 + */ + private String unitId; + private String unitName; + /** + * 活动目标 + */ + private String target; + + /** + * 服务事项 + */ + private String serviceMatter; + private String serviceMatterName; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActInfoResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActInfoResultDTO.java index c842cef5e4..01d783e0bd 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActInfoResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActInfoResultDTO.java @@ -87,4 +87,9 @@ public class ResiActInfoResultDTO implements Serializable { *用户报名状态(no_signed_up: 未报名,signed_up: 已报名) */ private String signupFlag; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiInProgressActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiInProgressActResultDTO.java index b6905711fe..055e35663d 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiInProgressActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiInProgressActResultDTO.java @@ -41,4 +41,9 @@ public class ResiInProgressActResultDTO implements Serializable { * 标题 */ private String title; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLatestActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLatestActResultDTO.java index 1bf6b8124e..c0a4aadbf0 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLatestActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLatestActResultDTO.java @@ -82,4 +82,9 @@ public class ResiLatestActResultDTO implements Serializable { * 活动状态:(报名中:signing_up;已报满:enough;截止报名: end_sign_up; 已开始: in_progress;) */ private String actCurrentState; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLookBackActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLookBackActResultDTO.java index fc7d7d39e7..986bcb06c5 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLookBackActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiLookBackActResultDTO.java @@ -66,4 +66,9 @@ public class ResiLookBackActResultDTO implements Serializable { * 活动状态:(已结束:finished;) */ private String actCurrentState; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiMyActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiMyActResultDTO.java index b477f6d513..5eb0d2b8a4 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiMyActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiMyActResultDTO.java @@ -82,4 +82,9 @@ public class ResiMyActResultDTO implements Serializable { * 活动当前状态(审核中auditing,审核通过passed,审核不通过refused,已结束canceld) */ private String actCurrentState; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/CanceledActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/CanceledActResultDTO.java index 17e21fc678..89b1374c03 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/CanceledActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/CanceledActResultDTO.java @@ -57,4 +57,8 @@ public class CanceledActResultDTO implements Serializable { * 活动地点 */ private String actAddress; + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/FinishedActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/FinishedActResultDTO.java index a908287e24..113d5dc46e 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/FinishedActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/FinishedActResultDTO.java @@ -58,4 +58,9 @@ public class FinishedActResultDTO implements Serializable { * 活动地点 */ private String actAddress; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/InProgressActResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/InProgressActResultDTO.java index 7f0d214f70..eae286055b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/InProgressActResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/InProgressActResultDTO.java @@ -82,4 +82,9 @@ public class InProgressActResultDTO implements Serializable { * 活动地点 */ private String actAddress; + + /** + * 活动类型 爱心活动heart 联建活动party + */ + private String actType; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActConstant.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActConstant.java index 9855cee625..ce1d187bf2 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActConstant.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActConstant.java @@ -169,4 +169,9 @@ public interface ActConstant { * 活动类型-联建活动 */ String PARTY = "party"; + + /** + * 服务事项code + */ + String SERVICE_MATTER_CODE = "1010"; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java index eb2cd42af7..983c4834a2 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.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; @@ -33,12 +34,17 @@ import com.epmet.dao.ActInfoDao; import com.epmet.dao.ActUserRelationDao; import com.epmet.dao.HeartUserInfoDao; import com.epmet.dto.ActInfoDTO; +import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.demand.SubCodeFormDTO; import com.epmet.dto.form.resi.*; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.resi.*; import com.epmet.entity.ActInfoEntity; import com.epmet.entity.ActUserRelationEntity; import com.epmet.service.ActInfoService; import com.epmet.service.ActUserRelationService; +import com.epmet.service.IcPartyUnitService; +import com.epmet.service.IcResiDemandDictService; import com.epmet.utils.CaculateDistance; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; @@ -47,7 +53,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * 活动信息 @@ -68,6 +76,10 @@ public class ActInfoServiceImpl extends BaseServiceImpl page(Map params) { @@ -245,6 +257,20 @@ public class ActInfoServiceImpl extends BaseServiceImpl categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + detailResultDTO.setServiceMatterName(categoryMap.get(detailResultDTO.getServiceMatter())); + } + if (StringUtils.isNotBlank(detailResultDTO.getUnitId())) { + //获取单位名称 + IcPartyUnitDTO unitDTO = icPartyUnitService.get(detailResultDTO.getUnitId()); + detailResultDTO.setUnitName(null != unitDTO ? unitDTO.getUnitName() : StrConstant.EPMETY_STR); + } return new Result().ok(detailResultDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java index a54b43cce2..e113d72019 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java @@ -103,10 +103,7 @@ public class WorkActServiceImpl implements WorkActService { @Resource private IcPartyUnitService icPartyUnitService; - /** - * 服务事项code - */ - private static final String SERVICE_MATTER_CODE = "1010"; + /** * @author yinzuomei @@ -787,7 +784,7 @@ public class WorkActServiceImpl implements WorkActService { //获取服务事项 SubCodeFormDTO codeFormDTO = new SubCodeFormDTO(); codeFormDTO.setCustomerId(customerId); - codeFormDTO.setParentCategoryCode(SERVICE_MATTER_CODE); + codeFormDTO.setParentCategoryCode(ActConstant.SERVICE_MATTER_CODE); Map categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); canceledActDetailResultDTO.setServiceMatterName(categoryMap.get(canceledActDetailResultDTO.getServiceMatter())); } @@ -845,7 +842,7 @@ public class WorkActServiceImpl implements WorkActService { //获取服务事项 SubCodeFormDTO codeFormDTO = new SubCodeFormDTO(); codeFormDTO.setCustomerId(formDTO.getCustomerId()); - codeFormDTO.setParentCategoryCode(SERVICE_MATTER_CODE); + codeFormDTO.setParentCategoryCode(ActConstant.SERVICE_MATTER_CODE); Map categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); resultDTO.setServiceMatterName(categoryMap.get(resultDTO.getServiceMatter())); } @@ -926,7 +923,7 @@ public class WorkActServiceImpl implements WorkActService { //获取服务事项 SubCodeFormDTO codeFormDTO = new SubCodeFormDTO(); codeFormDTO.setCustomerId(customerId); - codeFormDTO.setParentCategoryCode(SERVICE_MATTER_CODE); + codeFormDTO.setParentCategoryCode(ActConstant.SERVICE_MATTER_CODE); Map categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); resultDTO.setServiceMatterName(categoryMap.get(resultDTO.getServiceMatter())); } @@ -1322,7 +1319,7 @@ public class WorkActServiceImpl implements WorkActService { //获取服务事项 SubCodeFormDTO codeFormDTO = new SubCodeFormDTO(); codeFormDTO.setCustomerId(customerId); - codeFormDTO.setParentCategoryCode(SERVICE_MATTER_CODE); + codeFormDTO.setParentCategoryCode(ActConstant.SERVICE_MATTER_CODE); Map categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); resultDTO.setServiceMatterName(categoryMap.get(resultDTO.getServiceMatter())); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml index 796fe5cd93..f06e68a08f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml @@ -63,7 +63,8 @@ i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 'signing_up' AS actCurrentState, -- 活动状态:报名中,未报满 - IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag + IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag, + i.ACT_TYPE as actType FROM act_info i LEFT JOIN act_user_relation u ON i.ID = u.ACT_ID AND U.DEL_FLAG = '0' AND u.`STATUS` != 'refused' AND u.`STATUS` != 'canceled' AND u.USER_ID = #{userId} LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID @@ -89,7 +90,8 @@ i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 'enough' AS actCurrentState, -- 活动状态:报名中,已报满 - IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag + IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag, + i.ACT_TYPE as actType FROM act_info i LEFT JOIN act_user_relation u ON i.ID = u.ACT_ID AND U.DEL_FLAG = '0' AND u.`STATUS` != 'refused' AND u.`STATUS` != 'canceled' AND u.USER_ID = #{userId} LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID @@ -116,7 +118,8 @@ i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 'end_sign_up' AS actCurrentState, -- 活动状态:未开始 - IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag + IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag, + i.ACT_TYPE as actType FROM act_info i LEFT JOIN act_user_relation u ON i.ID = u.ACT_ID AND U.DEL_FLAG = '0' AND u.`STATUS` != 'refused' AND u.`STATUS` != 'canceled' AND u.USER_ID = #{userId} LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID @@ -142,7 +145,8 @@ i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 'in_progress' AS actCurrentState, -- 活动状态:进行中 - IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag + IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag, + i.ACT_TYPE as actType FROM act_info i LEFT JOIN act_user_relation u ON i.ID = u.ACT_ID AND U.DEL_FLAG = '0' AND u.`STATUS` != 'refused' AND u.`STATUS` != 'canceled' AND u.USER_ID = #{userId} LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID @@ -173,7 +177,8 @@ when i.ACT_STATUS = 'canceled' then 'canceled' end as actCurrentState, -- 活动状态:已结束、已取消 - IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag + IF(u.USER_ID = #{userId},'signed_up','no_signed_up') as signupFlag, + i.ACT_TYPE as actType FROM act_info i LEFT JOIN act_user_relation u ON i.ID = u.ACT_ID AND U.DEL_FLAG = '0' AND u.`STATUS` != 'refused' AND u.`STATUS` != 'canceled' AND u.USER_ID = #{userId} LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID @@ -197,7 +202,8 @@ i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0)) i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 - 'auditing' AS actCurrentState -- 活动状态 + 'auditing' AS actCurrentState, -- 活动状态 + i.act_type as actType FROM act_user_relation u LEFT JOIN act_info i ON i.ID = u.ACT_ID LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID WHERE i.DEL_FLAG = '0' @@ -222,7 +228,8 @@ i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0)) i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 - 'passed' AS actCurrentState -- 活动状态 + 'passed' AS actCurrentState, -- 活动状态 + i.act_type as actType FROM act_user_relation u LEFT JOIN act_info i ON i.ID = u.ACT_ID LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID WHERE i.DEL_FLAG = '0' @@ -247,7 +254,8 @@ i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0)) i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 - 'refused' AS actCurrentState -- 活动状态 + 'refused' AS actCurrentState, -- 活动状态 + i.act_type as actType FROM act_user_relation u LEFT JOIN act_info i ON i.ID = u.ACT_ID LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID WHERE i.DEL_FLAG = '0' @@ -272,7 +280,8 @@ i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0)) i.ACT_QUOTA actQuota, IFNULL(c.signupNum, 0) signupNum, -- 已报名人数 - 'canceld' AS actCurrentState -- 活动状态 + 'canceld' AS actCurrentState, -- 活动状态 + i.act_type as actType FROM act_user_relation u LEFT JOIN act_info i ON i.ID = u.ACT_ID LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID WHERE i.DEL_FLAG = '0' @@ -309,7 +318,8 @@ then 'end_sign_up' when NOW() then 'in_progress' - end as actCurrentState + end as actCurrentState, + i.act_type as actType FROM act_info i LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID WHERE i.DEL_FLAG = '0' @@ -329,7 +339,8 @@ '您报名的活动即将开始' ELSE '活动进行中' - END title + END title, + i.act_type as actType FROM act_info i LEFT JOIN act_user_relation r ON i.ID = r.ACT_ID WHERE i.DEL_FLAG = '0' AND r.DEL_FLAG = '0' @@ -349,7 +360,8 @@ a.actStartTime, a.actEndTime, a.actAddress, - a.actCurrentState + a.actCurrentState, + a.actType FROM( SELECT i.ID actId, @@ -360,7 +372,8 @@ DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime, i.ACT_ADDRESS actAddress, 'finished' actCurrentState, - i.CREATED_TIME + i.CREATED_TIME, + i.ACT_TYPE as actType FROM act_info i LEFT JOIN act_live_rec r ON r.ACT_ID = i.ID AND r.DEL_FLAG = '0' WHERE i.DEL_FLAG = '0' @@ -432,7 +445,10 @@ IF(aur.SIGN_IN_FLAG = 'signed_in', true , false ) as isSignUp, -- 是否已签到(true已签到,false未签到) i.ACT_STATUS actStatus, i.CANCEL_REASON cancelReason, - DATE_FORMAT(i.CANCEL_TIME,'%Y-%m-%d %H:%i') cancelTime + DATE_FORMAT(i.CANCEL_TIME,'%Y-%m-%d %H:%i') cancelTime, + i.UNIT_ID AS unitId, + i.SERVICE_MATTER AS serviceMatter, + i.TARGET AS target FROM act_info i LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID @@ -516,7 +532,8 @@ ) AS signedUp, ai.SIGN_UP_END_TIME as signUpEndTime, ai.SIGN_UP_START_TIME as signUpStartTime, - ai.ACT_ADDRESS as actAddress + ai.ACT_ADDRESS as actAddress, + ai.act_type as actType FROM act_info ai WHERE @@ -537,7 +554,8 @@ ai.ACT_END_TIME AS actEndTime, ai.CANCEL_TIME AS cancelTime, ai.CANCEL_REASON AS cancelReason, - ai.ACT_ADDRESS as actAddress + ai.ACT_ADDRESS as actAddress, + ai.act_type as actType FROM act_info ai WHERE @@ -559,7 +577,8 @@ ai.ACT_END_TIME AS actEndTime, ai.ACTUAL_START_TIME as actualStartTime, ai.ACTUAL_END_TIME as actualEndTime, - ai.ACT_ADDRESS as actAddress + ai.ACT_ADDRESS as actAddress, + ai.act_type as actType FROM act_info ai WHERE 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..ebccb2c9d3 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PcWorkListFormDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +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 = "orgId不能为空",groups = PcWorkListForm.class) + private String orgId; + + @NotBlank(message = "orgType不能为空",groups = PcWorkListForm.class) + private String orgType; + + @NotNull(message = "pageSize不能为空",groups = PcWorkListForm.class) + private Integer pageSize; + + @NotNull(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/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/PcWorkListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java new file mode 100644 index 0000000000..afc01d60c2 --- /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 + public static class PcWorkListResult{ + + /** + * 事项名称 + */ + private String title; + + /** + * 事项类型码 + */ + private List workTypeCode; + + /** + * 事项类型名称 + */ + private List 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 = new ArrayList<>(); + this.workTypeName = new ArrayList<>(); + 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-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/PatrolRoutineWorkController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java index edcfe9e34f..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 @@ -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/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/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/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/PatrolRoutineWorkService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java index 8ece1a46c9..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 @@ -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 下午 + */ + PcWorkListResultDTO pcWorkList(PcWorkListFormDTO formDTO); } 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/PatrolRoutineWorkServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java index 5512389278..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 @@ -34,8 +34,11 @@ 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.AllGridsByUserIdResultDTO; 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; @@ -46,6 +49,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; @@ -57,6 +61,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 巡查例行工作 @@ -147,6 +152,68 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl baseDao.selectList(formDTO)); } + /** + * @Description 【网格员工作统计】例行工作列表 + * @param formDTO + * @author zxc + * @date 2022/1/4 2:18 下午 + */ + @Override + 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> workTypeResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode()); + 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; + } + + /** + * @Description 处理 workTypeName + * @param workTypeList + * @param code + * @author zxc + * @date 2022/1/5 9:27 上午 + */ + 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/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index 69db928e64..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; @@ -20,6 +24,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 +36,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; @@ -39,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; /** @@ -70,6 +75,8 @@ 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.查询网格信息并赋值 + 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.封装数据并返回 + resultDTO.setTotal((int)result.getTotal()); + resultDTO.setList(result.getList()); + return resultDTO; + } } 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..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 @@ -38,5 +38,53 @@ AND m.DEL_FLAG = '0' + + + + + + + + + + + + + + + + + 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