Browse Source

新增:我的-网格员议题项目统计数据

master
wxz 4 years ago
parent
commit
89904c5c26
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  2. 90
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridMemberDataStatsResultDTO.java
  3. 21
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberStatsFormDTO.java
  4. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java
  5. 80
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
  6. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java
  7. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java
  8. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  9. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  10. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java

@ -171,6 +171,7 @@ public enum RequirePermissionEnum {
*/ */
MORE_PATROL_RECORD_LIST("more_patrol_record_list","更多:日志记录:巡查记录:列表","巡查记录列表"), MORE_PATROL_RECORD_LIST("more_patrol_record_list","更多:日志记录:巡查记录:列表","巡查记录列表"),
MORE_SYSTEM_LOG_LIST("MORE_SYSTEM_LOG_LIST","更多:日志记录:系统日志:列表","系统日志列表"), MORE_SYSTEM_LOG_LIST("MORE_SYSTEM_LOG_LIST","更多:日志记录:系统日志:列表","系统日志列表"),
MORE_GRID_MEMBER_STATS_ANALYSIS("more_grid_member_stats_analysis", "更多:网格员数据分析", "更多:网格员数据分析"),
/** /**

90
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/GridMemberDataStatsResultDTO.java

@ -1,90 +0,0 @@
package com.epmet.dataaggre.dto.datastats.result;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GridMemberDataStatsResultDTO {
/**
* yyyyMMdd
*/
private String dateId;
/**
* 月份ID
*/
private String monthId;
/**
* 年度ID
*/
private String yearId;
/**
* 客户ID
*/
private String customerId;
/**
* 组织ID
*/
private String agencyId;
/**
* 网格I
*/
private String gridId;
/**
* 上级ID项目来源Agency的上级组织Id
*/
private String pid;
/**
* 所有agencyId的上级组织ID包含agencyId
*/
private String pids;
/**
* 工作人员ID
*/
private String staffId;
/**
* 工作人员姓名
*/
private String staffName;
/**
* 项目立项数
*/
private Integer projectCount;
/**
* 议题转项目数
*/
private Integer issueToProjectCount;
/**
* 议题关闭数
*/
private Integer closedIssueCount;
/**
* 项目响应数
*/
private Integer projectResponseCount;
/**
* 项目吹哨数
*/
private Integer projectTransferCount;
/**
* 项目结案数
*/
private Integer projectClosedCount;
}

21
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/GridMemberStatsFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dataaggre.dto.epmetuser.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description 网格员相关统计formdto
* @author wxz
* @date 2021.07.05 15:46:23
*/
@Data
public class GridMemberStatsFormDTO {
public interface IssueProjectStats {}
@NotBlank(message = "网格ID不能为空", groups = {IssueProjectStats.class})
private String gridId;
}

1
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridMemberDataAnalysisResultDTO.java

@ -9,6 +9,7 @@ public class GridMemberDataAnalysisResultDTO {
private String staffId; private String staffId;
private String staffName; private String staffName;
private String orgName; private String orgName;
private Integer projectCount; private Integer projectCount;
private Integer issueToProjectCount; private Integer issueToProjectCount;
private Integer closedIssueCount; private Integer closedIssueCount;

80
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java

@ -7,12 +7,15 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.epmetuser.form.GridMemberStatsFormDTO;
import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.PatrolRecordListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolRecordListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -20,7 +23,10 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author zxc * @Author zxc
@ -33,6 +39,9 @@ public class EpmetUserController {
@Autowired @Autowired
private EpmetUserService epmetUserService; private EpmetUserService epmetUserService;
@Autowired
private DataStatsService dataStatsService;
/** /**
* @Param formDTO * @Param formDTO
@ -99,4 +108,75 @@ public class EpmetUserController {
return new Result<List<StaffListResultDTO>>().ok(epmetUserService.staffPatrolList(formDTO)); return new Result<List<StaffListResultDTO>>().ok(epmetUserService.staffPatrolList(formDTO));
} }
/**
* @Description 网格员项目议题统计数据
* @return
* @author wxz
* @date 2021.07.05 15:49
*/
@PostMapping("/gridmember/issueprojectstats")
public Result<List<Map<String, Object>>> getGridMemberIssueProjectStats(@LoginUser TokenDto loginUser, @RequestBody GridMemberStatsFormDTO input) {
ValidatorUtils.validateEntity(input, GridMemberStatsFormDTO.IssueProjectStats.class);
String gridId = input.getGridId();
String userId = loginUser.getUserId();
GridMemberDataAnalysisResultDTO data = dataStatsService.getGridMemberIssueProjectStats(gridId, userId);
List<Map<String, Object>> result = convertToMapList(data);
return new Result<List<Map<String, Object>>>().ok(result);
}
/**
* @Description 将议题项目统计数据转为前端需要的格式
* @return
* @author wxz
* @date 2021.07.05 16:35
*/
private List<Map<String, Object>> convertToMapList(GridMemberDataAnalysisResultDTO data) {
Integer projectCount = data == null ? 0 : data.getProjectCount();
Integer closedIssueCount = data == null ? 0 : data.getClosedIssueCount();
Integer issueToProjectCount = data == null ? 0 : data.getIssueToProjectCount();
Integer projectClosedCount = data == null ? 0 : data.getProjectClosedCount();
Integer projectResponseCount = data == null ? 0 : data.getProjectResponseCount();
Integer projectTransferCount = data == null ? 0 : data.getProjectTransferCount();
HashMap<String, Object> projectCountMap = new HashMap<>();
projectCountMap.put("key", "直接立项数");
projectCountMap.put("value", projectCount);
projectCountMap.put("type", "project");
HashMap<String, Object> closedIssueCountMap = new HashMap<>();
closedIssueCountMap.put("key", "议题转项目数");
closedIssueCountMap.put("value", issueToProjectCount);
closedIssueCountMap.put("type", "project");
HashMap<String, Object> issueClosedCountMap = new HashMap<>();
issueClosedCountMap.put("key", "议题关闭数");
issueClosedCountMap.put("value", closedIssueCount);
issueClosedCountMap.put("type", "issue");
HashMap<String, Object> projectResponseCountMap = new HashMap<>();
projectResponseCountMap.put("key", "项目响应数");
projectResponseCountMap.put("value", projectResponseCount);
projectResponseCountMap.put("type", "project");
HashMap<String, Object> projectTransferCountMap = new HashMap<>();
projectTransferCountMap.put("key", "项目吹哨数");
projectTransferCountMap.put("value", projectTransferCount);
projectTransferCountMap.put("type", "project");
HashMap<String, Object> projectClosedCountMap = new HashMap<>();
projectClosedCountMap.put("key", "项目结案数");
projectClosedCountMap.put("value", projectClosedCount);
projectClosedCountMap.put("type", "project");
ArrayList<Map<String, Object>> maps = new ArrayList<>(6);
maps.add(projectCountMap);
maps.add(closedIssueCountMap);
maps.add(issueClosedCountMap);
maps.add(projectResponseCountMap);
maps.add(projectTransferCountMap);
maps.add(projectClosedCountMap);
return maps;
}
} }

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.controller; package com.epmet.dataaggre.controller;
import com.epmet.commons.tools.annotation.LoginUser; 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.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
@ -78,6 +80,7 @@ public class GovOrgController {
* @date 2021.07.05 11:14 * @date 2021.07.05 11:14
*/ */
@PostMapping("gridmemberdataanalysis") @PostMapping("gridmemberdataanalysis")
@RequirePermission(requirePermission = RequirePermissionEnum.MORE_GRID_MEMBER_STATS_ANALYSIS)
public Result getGridMemberDataAnalysis(@RequestBody GridMemberDataAnalysisFromDTO input) { public Result getGridMemberDataAnalysis(@RequestBody GridMemberDataAnalysisFromDTO input) {
ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas.class); ValidatorUtils.validateEntity(input, GridMemberDataAnalysisFromDTO.listGridMemberDatas.class);

9
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/FactGridMemberStatisticsDailyDao.java

@ -18,7 +18,6 @@
package com.epmet.dataaggre.dao.datastats; package com.epmet.dataaggre.dao.datastats;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.result.GridMemberDataStatsResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.entity.datastats.FactGridMemberStatisticsDailyEntity; import com.epmet.dataaggre.entity.datastats.FactGridMemberStatisticsDailyEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -45,4 +44,12 @@ public interface FactGridMemberStatisticsDailyDao extends BaseDao<FactGridMember
@Param("searchedStaffName") String searchedStaffName, @Param("searchedStaffName") String searchedStaffName,
@Param("month") String month, @Param("month") String month,
@Param("sort") String sort); @Param("sort") String sort);
/**
* @Description 查询网格员议题项目统计数据
* @return
* @author wxz
* @date 2021.07.05 16:17
*/
GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(@Param("gridId") String gridId, @Param("userId") String userId);
} }

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -174,4 +174,12 @@ public interface DataStatsService {
String sort, String sort,
Integer pageNo, Integer pageNo,
Integer pageSize); Integer pageSize);
/**
* @Description 单个网格员议题项目统计数据
* @return
* @author wxz
* @date 2021.07.05 16:05
*/
GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String gridId, String userId);
} }

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.dataaggre.service.datastats.impl; package com.epmet.dataaggre.service.datastats.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
@ -15,6 +16,7 @@ import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO;
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
import com.epmet.dataaggre.entity.datastats.DimGridEntity; import com.epmet.dataaggre.entity.datastats.DimGridEntity;
import com.epmet.dataaggre.entity.datastats.FactGridMemberStatisticsDailyEntity;
import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
@ -1319,4 +1321,9 @@ public class DataStatsServiceImpl implements DataStatsService {
PageHelper.startPage(pageNo, pageSize); PageHelper.startPage(pageNo, pageSize);
return factGridMemberStatisticsDailyDao.listGridMemberDataStats(gridIds, searchedStaffName, month, sort); return factGridMemberStatisticsDailyDao.listGridMemberDataStats(gridIds, searchedStaffName, month, sort);
} }
@Override
public GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String gridId, String userId) {
return factGridMemberStatisticsDailyDao.getGridMemberIssueProjectStats(gridId, userId);
}
} }

43
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml

@ -28,6 +28,37 @@
<result property="updatedBy" column="UPDATED_BY"/> <result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/> <result property="updatedTime" column="UPDATED_TIME"/>
</resultMap> </resultMap>
<sql id="allColumns">
member.id,
member.date_id,
member.month_id,
member.year_id,
member.customer_id,
member.agency_id,
member.grid_id,
member.pid,
member.pids,
member.staff_id,
member.staff_name,
member.project_count,
member.issue_to_project_count,
member.closed_issue_count,
member.project_response_count,
member.project_transfer_count,
member.project_closed_count,
member.project_incr,
member.issue_to_project_incr,
member.closed_issue_incr,
member.project_response_incr,
member.project_transfer_incr,
member.project_closed_incr,
member.del_flag,
member.revision,
member.created_by,
member.created_time,
member.updated_by,
member.updated_time
</sql>
<!--查询网格员统计数据--> <!--查询网格员统计数据-->
<select id="listGridMemberDataStats" <select id="listGridMemberDataStats"
@ -67,5 +98,17 @@
order by ${sort} desc order by ${sort} desc
</select> </select>
<select id="getGridMemberIssueProjectStats"
resultType="com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO">
SELECT
<include refid="allColumns"/>
FROM fact_grid_member_statistics_daily member
WHERE member.GRID_ID = #{gridId}
and member.STAFF_ID = #{userId}
and member.DEL_FLAG = 0
ORDER BY member.CREATED_TIME DESC
LIMIT 1
</select>
</mapper> </mapper>
Loading…
Cancel
Save