Browse Source

数据实时统计列表查询、导出初版

master
syc 3 years ago
parent
commit
f7772549f5
  1. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
  2. 59
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java
  3. 46
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java
  4. 10
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java
  5. 28
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  6. 62
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java
  7. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java
  8. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java
  9. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
  10. 31
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java
  11. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java
  12. 68
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java
  13. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java
  14. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  15. 117
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  16. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  17. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  18. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java
  19. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  20. 24
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java
  21. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java
  22. 29
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java
  23. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml
  24. 40
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml
  25. 44
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml
  26. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
  27. 46
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml

1
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java

@ -38,4 +38,5 @@ public interface DataSourceConstant {
String EPMET_T_DUCK = "epmettduck"; String EPMET_T_DUCK = "epmettduck";
String EPMETTDUCK="epmettduck"; String EPMETTDUCK="epmettduck";
String EPMET_HEART="heart"; String EPMET_HEART="heart";
String RESI_PARTYMEMBER="partymember";
} }

59
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java

@ -0,0 +1,59 @@
package com.epmet.dataaggre.dto.datastats.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @Description 数据统计页面查询-接口入参
*/
@Data
public class NowStatsDataFormDTO implements Serializable {
private static final long serialVersionUID = 6462094914874831738L;
public interface CustomerDataManageForm{}
/**
* 客户ID
*/
@NotBlank(message = "客户ID不能为空",groups = CustomerDataManageForm.class)
private String customerId;
/**
* 组织ID
*/
@NotBlank(message = "组织ID不能为空",groups = CustomerDataManageForm.class)
private String agencyId;
/**
* 区间:Interval 截止:end
*/
@NotBlank(message = "type不能为空",groups = CustomerDataManageForm.class)
private String type;
/**
* 开始时间 精确到秒yyyy-MM-dd HH:mm:ss
*/
private String startTime;
/**
* 结束时间 精确到秒yyyy-MM-dd HH:mm:ss
*/
@NotBlank(message = "结束时间不能为空",groups = CustomerDataManageForm.class)
private String endTime;
//组织或网格Id集合
private List<String> idList;
//数据类型【组织agency 网格grid】
private String dataType;
/**
* desc:是否是导出
*/
private boolean export = false;
}

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

@ -0,0 +1,46 @@
package com.epmet.dataaggre.dto.datastats.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Description 数据统计页面查询-接口返参
*/
@Data
public class NowStatsDataResultDTO {
//组织、网格Id
private String orgId;
//组织、网格名称
private String orgName;
//注册居民数
private Integer resiUserCount = 0;
//注册党员数
private Integer partyMemberCount = 0;
//事件总数
private Integer icEventCount = 0;
//居民上报事件数【小程序端随手拍随时讲】
private Integer resiEventCount = 0;
//平台录入事件数【数字平台录入的事件数】
private Integer pcEventCount = 0;
//项目总数
private Integer projectCount = 0;
//议题转项目数
private Integer issueProjectCount = 0;
//事件立项数
private Integer icEventProjectCount = 0;
//直接立项项目数
private Integer agencyProjectCount = 0;
//组织的pids
private String pids;
//事件来源,0代表居民点 其他代表数字平台
private String sourceType;
//项目来源 issue议题 agency立项 ic_event事件
private String origin;
}

10
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java

@ -44,6 +44,16 @@ public class RegisterRelationDTO implements Serializable {
*/ */
private String customerId; private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/** /**
* 网格Id (customer_grid.id) * 网格Id (customer_grid.id)
*/ */

28
epmet-module/data-aggregator/data-aggregator-server/pom.xml

@ -259,6 +259,13 @@
<datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username> <datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username>
<datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password> <datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://192.168.1.140:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet_resi_partymember_user</datasource.druid.partymember.username>
<datasource.druid.partymember.password>EpmEt-db-UsEr</datasource.druid.partymember.password>
<!-- redis配置 --> <!-- redis配置 -->
<spring.redis.index>0</spring.redis.index> <spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.140</spring.redis.host> <spring.redis.host>192.168.1.140</spring.redis.host>
@ -390,6 +397,13 @@
<datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username> <datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username>
<datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password> <datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://192.168.1.140:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet_resi_partymember_user</datasource.druid.partymember.username>
<datasource.druid.partymember.password>EpmEt-db-UsEr</datasource.druid.partymember.password>
<!-- redis配置 --> <!-- redis配置 -->
<spring.redis.index>0</spring.redis.index> <spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.1.140</spring.redis.host> <spring.redis.host>192.168.1.140</spring.redis.host>
@ -522,6 +536,13 @@
<datasource.druid.heart.username>epmet</datasource.druid.heart.username> <datasource.druid.heart.username>epmet</datasource.druid.heart.username>
<datasource.druid.heart.password>elink@833066</datasource.druid.heart.password> <datasource.druid.heart.password>elink@833066</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://rm-m5ef9t617j6o5eup7.mysql.rds.aliyuncs.com:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet</datasource.druid.partymember.username>
<datasource.druid.partymember.password>elink@833066</datasource.druid.partymember.password>
<!-- redis配置 --> <!-- redis配置 -->
<spring.redis.index>0</spring.redis.index> <spring.redis.index>0</spring.redis.index>
<spring.redis.host>192.168.10.150</spring.redis.host> <spring.redis.host>192.168.10.150</spring.redis.host>
@ -654,6 +675,13 @@
<datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username> <datasource.druid.heart.username>epmet_heart_user</datasource.druid.heart.username>
<datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password> <datasource.druid.heart.password>EpmEt-db-UsEr</datasource.druid.heart.password>
<!--epmet_resi_partymember-->
<datasource.druid.partymember.url>
<![CDATA[jdbc:mysql://rm-m5e3vzs2637224wj9.mysql.rds.aliyuncs.com:3306/epmet_resi_partymember?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.partymember.url>
<datasource.druid.partymember.username>epmet_resi_partymember_user</datasource.druid.partymember.username>
<datasource.druid.partymember.password>EpmEt-db-UsEr</datasource.druid.partymember.password>
<!-- redis配置 --> <!-- redis配置 -->
<spring.redis.index>0</spring.redis.index> <spring.redis.index>0</spring.redis.index>
<spring.redis.host>r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com</spring.redis.host> <spring.redis.host>r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com</spring.redis.host>

62
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java

@ -1,11 +1,25 @@
package com.epmet.dataaggre.controller; package com.epmet.dataaggre.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.annotation.LoginUser;
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.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
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.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*; import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.excel.NowStatsDataExcel;
import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.datastats.DataStatsService;
import lombok.extern.slf4j.Slf4j;
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;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -13,13 +27,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException; import java.text.ParseException;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* @Author sun * @Author sun
* @Description 数据统计服务 * @Description 数据统计服务
*/ */
@Slf4j
@RestController @RestController
@RequestMapping("datastats") @RequestMapping("datastats")
public class DataStatsController { public class DataStatsController {
@ -243,4 +261,48 @@ public class DataStatsController {
return new Result<CustomerDataManageResultDTO>().ok(dataStatsService.operateExport(formDTO)); return new Result<CustomerDataManageResultDTO>().ok(dataStatsService.operateExport(formDTO));
} }
/**
* @Description 数据统计页面查询用户项目事件一些数据的实时统计查询
* 需求数据统计页面查询注册居民数注册党员数事件总数居民上报事件数平台录入事件数项目总数议题转项目数事件立项数立项数
* 可根据组织只选组织查询直属下级数据选择统计类型截止累计值/区间新增值截止累计选择一天区间选择时间段精确到时分秒筛选
* 可点击查看总计可导出打开页面默认选中当前工作人员所在组织页面参考灵山卫-人房信息统计页面
* @author sun
*/
@PostMapping("nowstatsdata")
public Result<List<NowStatsDataResultDTO>> nowStatsData(@RequestBody NowStatsDataFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, NowStatsDataFormDTO.CustomerDataManageForm.class);
formDTO.setExport(false);
return new Result<List<NowStatsDataResultDTO>>().ok(dataStatsService.nowStatsData(formDTO));
}
@PostMapping("nowstatsdataexport")
public void nowStatsDataExport(@RequestBody NowStatsDataFormDTO formDTO, HttpServletResponse response) throws IOException {
formDTO.setExport(true);
ExcelWriter excelWriter = null;
try {
String fileName = "数据统计" + DateUtils.format(new Date()) + ".xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), NowStatsDataExcel.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
List<NowStatsDataResultDTO> data = null;
List<NowStatsDataExcel> list = null;
data = dataStatsService.nowStatsData(formDTO);
list = ConvertUtils.sourceToTarget(data, NowStatsDataExcel.class);
excelWriter.write(list, writeSheet);
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
} }

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java

@ -18,9 +18,13 @@
package com.epmet.dataaggre.dao.epmetuser; package com.epmet.dataaggre.dao.epmetuser;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.entity.epmetuser.RegisterRelationEntity; import com.epmet.dataaggre.entity.epmetuser.RegisterRelationEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 注册关系表 用于统计客户网格的注册居民数 * 注册关系表 用于统计客户网格的注册居民数
* *
@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface RegisterRelationDao extends BaseDao<RegisterRelationEntity> { public interface RegisterRelationDao extends BaseDao<RegisterRelationEntity> {
List<NowStatsDataResultDTO> selectNowResiUser(NowStatsDataFormDTO formDTO);
} }

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.dao.govproject; package com.epmet.dataaggre.dao.govproject;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.EventInfoResultDTO;
import com.epmet.dataaggre.entity.govproject.IcEventEntity; import com.epmet.dataaggre.entity.govproject.IcEventEntity;
@ -25,4 +27,5 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
*/ */
List<EventInfoResultDTO> getEventInfos(CoverageHomeSearchFormDTO formDTO); List<EventInfoResultDTO> getEventInfos(CoverageHomeSearchFormDTO formDTO);
List<NowStatsDataResultDTO> getIcEvent(NowStatsDataFormDTO formDTO);
} }

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java

@ -18,6 +18,8 @@
package com.epmet.dataaggre.dao.govproject; package com.epmet.dataaggre.dao.govproject;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO;
import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO; import com.epmet.dataaggre.dto.govorg.result.OrgCountDTO;
@ -132,4 +134,6 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
List<OrgCountDTO> getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO); List<OrgCountDTO> getMemberClosedProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getAgencyProjectCount(OrgStatisticsFormDTO formDTO); List<OrgCountDTO> getAgencyProjectCount(OrgStatisticsFormDTO formDTO);
List<OrgCountDTO> getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO); List<OrgCountDTO> getAgencyClosedProjectCount(OrgStatisticsFormDTO formDTO);
List<NowStatsDataResultDTO> getNowProject(NowStatsDataFormDTO formDTO);
} }

31
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java

@ -0,0 +1,31 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dataaggre.dao.resipartymember;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ResiPartymemberDao {
List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO);
}

10
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java

@ -40,6 +40,16 @@ public class RegisterRelationEntity extends BaseEpmetEntity {
*/ */
private String customerId; private String customerId;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/** /**
* 网格Id (customer_grid.id) * 网格Id (customer_grid.id)
*/ */

68
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java

@ -0,0 +1,68 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dataaggre.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
@Data
public class NowStatsDataExcel {
//组织、网格名称
@ExcelProperty(value = "组织名称")
@ColumnWidth(25)
private String orgName;
//注册居民数
@ExcelProperty(value = "注册居民数")
@ColumnWidth(20)
private Integer resiUserCount;
//注册党员数
@ExcelProperty(value = "注册党员数")
@ColumnWidth(20)
private Integer partyMemberCount;
//事件总数
@ExcelProperty(value = "事件总数")
@ColumnWidth(20)
private Integer icEventCount;
//居民上报事件数【小程序端随手拍随时讲】
@ExcelProperty(value = "居民上报事件数")
@ColumnWidth(20)
private Integer resiEventCount;
//平台录入事件数【数字平台录入的事件数】
@ExcelProperty(value = "平台录入事件数")
@ColumnWidth(20)
private Integer pcEventCount;
//项目总数
@ExcelProperty(value = "项目总数")
@ColumnWidth(20)
private Integer projectCount;
//议题转项目数
@ExcelProperty(value = "议题转项目数")
@ColumnWidth(20)
private Integer issueProjectCount;
//事件立项数
@ExcelProperty(value = "事件立项数")
@ColumnWidth(20)
private Integer icEventProjectCount;
//直接立项项目数
@ExcelProperty(value = "立项数")
@ColumnWidth(20)
private Integer agencyProjectCount;
}

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java

@ -0,0 +1,12 @@
package com.epmet.dataaggre.service;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import java.util.List;
public interface PartymemberService {
List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO);
}

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

@ -306,4 +306,6 @@ public interface DataStatsService {
Map<String, Integer> getMemberMap(String agencyId); Map<String, Integer> getMemberMap(String agencyId);
PageData<MemberProjectInfoResultDTO> getMemberList(OrgStatisticsFormDTO formDTO); PageData<MemberProjectInfoResultDTO> getMemberList(OrgStatisticsFormDTO formDTO);
List<NowStatsDataResultDTO> nowStatsData(NowStatsDataFormDTO formDTO);
} }

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

@ -40,10 +40,13 @@
import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity;
import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity; import com.epmet.dataaggre.entity.datastats.FactAgencyGovernDailyEntity;
import com.epmet.dataaggre.excel.CustomerDataManageExcel; import com.epmet.dataaggre.excel.CustomerDataManageExcel;
import com.epmet.dataaggre.service.PartymemberService;
import com.epmet.dataaggre.service.datastats.DataStatsService; 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.epmetuser.StatsStaffPatrolRecordDailyService;
import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService;
import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.govproject.GovProjectService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation; import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
@ -86,6 +89,12 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService;
@Autowired @Autowired
private GovOrgService govOrgService; private GovOrgService govOrgService;
@Autowired
private EpmetUserService epmetUserService;
@Autowired
private GovProjectService govProjectService;
@Autowired
private PartymemberService partymemberService;
/** /**
* @Param formDTO * @Param formDTO
@ -2310,4 +2319,112 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
PageInfo<MemberProjectInfoResultDTO> pageInfo = new PageInfo<>(list); PageInfo<MemberProjectInfoResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal()); return new PageData<>(list, pageInfo.getTotal());
} }
@Override
public List<NowStatsDataResultDTO> nowStatsData(NowStatsDataFormDTO formDTO) {
//1.必要参数校验及处理
String startTimeForm = formDTO.getStartTime();
if ("Interval".equals(formDTO.getType()) && StringUtils.isEmpty(startTimeForm)) {
throw new RenException("请选择开始时间或查询累计值");
}
//2.查询组织信息,判断要查询下级是组织还是网格数据
ScreenAgencyOrGridListDTO agencyGrid = indexService.getSubAgencyOrGridList(formDTO.getAgencyId(), formDTO.isExport());
if (null == agencyGrid) {
return new ArrayList<>();
}
//组织或网格Id集合
List<String> idList = agencyGrid.getAgencyGridList().stream().map(ScreenAgencyOrGridListDTO.AgencyGrid::getOrgId).collect(Collectors.toList());
formDTO.setDataType(!OrgLevelEnum.COMMUNITY.getCode().equals(agencyGrid.getLevel()) ? OrgTypeEnum.AGENCY.getCode() : OrgTypeEnum.GRID.getCode());
formDTO.setIdList(idList);
//3.按条件分别查询统计各业务实时数据
//3-1.注册居民、注册党员数
List<NowStatsDataResultDTO> user = epmetUserService.getNowResiUser(formDTO);
List<NowStatsDataResultDTO> party = partymemberService.getNowPart(formDTO);
//3-2.事件总数、居民上报事件数、平台录入事件数
List<NowStatsDataResultDTO> event = govProjectService.getNowIcEvent(formDTO);
//3-3.项目总数、议题转项目数、事件立项数、组织立项数
List<NowStatsDataResultDTO> project = govProjectService.getNowProject(formDTO);
Map<String, NowStatsDataResultDTO> userMap = new HashMap<>();
Map<String, NowStatsDataResultDTO> partyMap = new HashMap<>();
Map<String, NowStatsDataResultDTO> eventMap = new HashMap<>();
Map<String, NowStatsDataResultDTO> projectMap = new HashMap<>();
if ("grid".equals(formDTO.getDataType())) {
userMap = CollectionUtils.isEmpty(user) ? new HashMap<>() : user.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
partyMap = CollectionUtils.isEmpty(party) ? new HashMap<>() : party.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
eventMap = CollectionUtils.isEmpty(event) ? new HashMap<>() : event.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
projectMap = CollectionUtils.isEmpty(project) ? new HashMap<>() : project.stream().collect(Collectors.toMap(NowStatsDataResultDTO::getOrgId, m -> m, (k1, k2) -> k1));
}
//4.封装数据
List<NowStatsDataResultDTO> resultDTOList = new ArrayList<>();
NowStatsDataResultDTO export = new NowStatsDataResultDTO();
export.setOrgName("合计");
for (ScreenAgencyOrGridListDTO.AgencyGrid org : agencyGrid.getAgencyGridList()) {
NowStatsDataResultDTO dto = new NowStatsDataResultDTO();
dto.setOrgId(org.getOrgId());
dto.setOrgName(org.getOrgName());
//网格数据sql已统计好
if ("grid".equals(formDTO.getDataType())) {
if (userMap.containsKey(org.getOrgId())) {
dto.setResiUserCount(userMap.get(org.getOrgId()).getResiUserCount());
}
if (partyMap.containsKey(org.getOrgId())) {
dto.setPartyMemberCount(partyMap.get(org.getOrgId()).getPartyMemberCount());
}
if (eventMap.containsKey(org.getOrgId())) {
dto.setIcEventCount(eventMap.get(org.getOrgId()).getIcEventCount());
dto.setResiEventCount(eventMap.get(org.getOrgId()).getResiEventCount());
dto.setPcEventCount(eventMap.get(org.getOrgId()).getPcEventCount());
}
if (projectMap.containsKey(org.getOrgId())) {
dto.setProjectCount(projectMap.get(org.getOrgId()).getProjectCount());
dto.setIssueProjectCount(projectMap.get(org.getOrgId()).getIssueProjectCount());
dto.setIcEventProjectCount(projectMap.get(org.getOrgId()).getIcEventProjectCount());
dto.setAgencyProjectCount(projectMap.get(org.getOrgId()).getAgencyProjectCount());
}
} else {
//组织数据 需要java计算结果
int resiUserCount = (int) user.stream().filter(u -> u.getPids().contains(org.getOrgId())).count();
dto.setResiUserCount(resiUserCount);
int partyMemberCount = (int) party.stream().filter(p -> p.getPids().contains(org.getOrgId())).count();
dto.setPartyMemberCount(partyMemberCount);
int resiEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && "0".equals(e.getSourceType())).count();
int pcEventCount = (int) event.stream().filter(e -> e.getPids().contains(org.getOrgId()) && !"0".equals(e.getSourceType())).count();
int icEventCount = resiEventCount + pcEventCount;
dto.setIcEventCount(icEventCount);
dto.setResiEventCount(resiEventCount);
dto.setPcEventCount(pcEventCount);
int issueProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "issue".equals(p.getOrigin())).count();
int icEventProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "ic_event".equals(p.getOrigin())).count();
int agencyProjectCount = (int) project.stream().filter(p -> p.getPids().contains(org.getOrgId()) && "agency".equals(p.getOrigin())).count();
int projectCount = issueProjectCount + icEventProjectCount + agencyProjectCount;
dto.setProjectCount(projectCount);
dto.setIssueProjectCount(issueProjectCount);
dto.setIcEventProjectCount(icEventProjectCount);
dto.setAgencyProjectCount(agencyProjectCount);
}
resultDTOList.add(dto);
if (formDTO.isExport()) {
export.setResiUserCount(export.getResiUserCount() + dto.getResiUserCount());
export.setPartyMemberCount(export.getPartyMemberCount() + dto.getPartyMemberCount());
export.setIcEventCount(export.getIcEventCount() + dto.getIcEventCount());
export.setResiEventCount(export.getResiEventCount() + dto.getResiEventCount());
export.setPcEventCount(export.getPcEventCount() + dto.getPcEventCount());
export.setProjectCount(export.getProjectCount() + dto.getProjectCount());
export.setIssueProjectCount(export.getIssueProjectCount() + dto.getIssueProjectCount());
export.setIcEventProjectCount(export.getIcEventProjectCount() + dto.getIcEventProjectCount());
export.setAgencyProjectCount(export.getAgencyProjectCount() + dto.getAgencyProjectCount());
}
}
if (formDTO.isExport()) {
resultDTOList.add(export);
}
return resultDTOList;
}
} }

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.service.epmetuser; package com.epmet.dataaggre.service.epmetuser;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.epmetuser.form.*; import com.epmet.dataaggre.dto.epmetuser.form.*;
import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.epmetuser.result.*;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
@ -236,4 +238,6 @@ public interface EpmetUserService {
Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); Integer countVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory);
List<IcResiUserEntity> listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory); List<IcResiUserEntity> listVolunteers(String customerId, String agencyId, String staffOrgIds, String search, String resiCategory);
List<NowStatsDataResultDTO> getNowResiUser(NowStatsDataFormDTO formDTO);
} }

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java

@ -15,6 +15,8 @@ import com.epmet.constant.BadgeConstant;
import com.epmet.constant.OrgInfoConstant; import com.epmet.constant.OrgInfoConstant;
import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.epmetuser.*; import com.epmet.dataaggre.dao.epmetuser.*;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO;
import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO;
import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO;
@ -90,6 +92,8 @@ public class EpmetUserServiceImpl implements EpmetUserService {
private IcResiUserDao icResiUserDao; private IcResiUserDao icResiUserDao;
@Resource @Resource
private CustomerFootBarService customerFootBarService; private CustomerFootBarService customerFootBarService;
@Resource
private RegisterRelationDao registerRelationDao;
/** /**
* @Description 根据UserIds查询 * @Description 根据UserIds查询
@ -912,4 +916,11 @@ public class EpmetUserServiceImpl implements EpmetUserService {
return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory); return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory);
} }
} }
@Override
public List<NowStatsDataResultDTO> getNowResiUser(NowStatsDataFormDTO formDTO) {
//实时统计组织/网格下小程序端注册居民数
List<NowStatsDataResultDTO> list = registerRelationDao.selectNowResiUser(formDTO);
return list;
}
} }

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java

@ -1,6 +1,8 @@
package com.epmet.dataaggre.service.govproject; package com.epmet.dataaggre.service.govproject;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO; import com.epmet.dataaggre.dto.govorg.form.OrgStatisticsFormDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
@ -180,4 +182,7 @@ public interface GovProjectService {
*/ */
List<EventInfoResultDTO> getEventInfos(CoverageHomeSearchFormDTO formDTO); List<EventInfoResultDTO> getEventInfos(CoverageHomeSearchFormDTO formDTO);
List<NowStatsDataResultDTO> getNowIcEvent(NowStatsDataFormDTO formDTO);
List<NowStatsDataResultDTO> getNowProject(NowStatsDataFormDTO formDTO);
} }

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java

@ -21,8 +21,10 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.govproject.IcEventDao; import com.epmet.dataaggre.dao.govproject.IcEventDao;
import com.epmet.dataaggre.dao.govproject.ProjectDao; import com.epmet.dataaggre.dao.govproject.ProjectDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO;
import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
@ -797,4 +799,14 @@ public class GovProjectServiceImpl implements GovProjectService {
return icEventDao.getEventInfos(formDTO); return icEventDao.getEventInfos(formDTO);
} }
@Override
public List<NowStatsDataResultDTO> getNowIcEvent(NowStatsDataFormDTO formDTO) {
return icEventDao.getIcEvent(formDTO);
}
@Override
public List<NowStatsDataResultDTO> getNowProject(NowStatsDataFormDTO formDTO) {
return projectDao.getNowProject(formDTO);
}
} }

24
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java

@ -0,0 +1,24 @@
package com.epmet.dataaggre.service.impl;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.service.PartymemberService;
import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class PartymemberServiceImpl implements PartymemberService {
@Autowired
private ResiPartymemberService resiPartymemberService;
@Override
public List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO) {
return resiPartymemberService.getNowPart(formDTO);
}
}

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java

@ -0,0 +1,12 @@
package com.epmet.dataaggre.service.resipartymember;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import java.util.List;
public interface ResiPartymemberService {
List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO);
}

29
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java

@ -0,0 +1,29 @@
package com.epmet.dataaggre.service.resipartymember.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.resipartymember.ResiPartymemberDao;
import com.epmet.dataaggre.dto.datastats.form.NowStatsDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.service.resipartymember.ResiPartymemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
@DataSource(DataSourceConstant.RESI_PARTYMEMBER)
public class ResiPartymemberServiceImpl implements ResiPartymemberService {
@Autowired
private ResiPartymemberDao resiPartymemberDao;
@Override
public List<NowStatsDataResultDTO> getNowPart(NowStatsDataFormDTO formDTO) {
return resiPartymemberDao.getNowPart(formDTO);
}
}

5
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml

@ -161,6 +161,11 @@ dynamic:
url: @datasource.druid.heart.url@ url: @datasource.druid.heart.url@
username: @datasource.druid.heart.username@ username: @datasource.druid.heart.username@
password: @datasource.druid.heart.password@ password: @datasource.druid.heart.password@
partymember:
driver-class-name: com.mysql.cj.jdbc.Driver
url: @datasource.druid.partymember.url@
username: @datasource.druid.partymember.username@
password: @datasource.druid.partymember.password@
feign: feign:
hystrix: hystrix:
enabled: true enabled: true

40
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml

@ -3,4 +3,44 @@
<mapper namespace="com.epmet.dataaggre.dao.epmetuser.RegisterRelationDao"> <mapper namespace="com.epmet.dataaggre.dao.epmetuser.RegisterRelationDao">
<select id="selectNowResiUser" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
agency_id_path pids
FROM register_relation
WHERE del_flag = '0'
AND first_register = '1'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
SUM(first_register = '1') resiUserCount
FROM
register_relation
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper> </mapper>

44
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml

@ -27,4 +27,48 @@
AND EVENT_CONTENT LIKE CONCAT('%',#{name},'%') AND EVENT_CONTENT LIKE CONCAT('%',#{name},'%')
</if> </if>
</select> </select>
<select id="getIcEvent" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
grid_pids pids,
source_type sourceType
FROM ic_event
WHERE del_flag = '0'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
COUNT(id) icEventCount,
SUM(source_type = '0') resiEventCount,
SUM(source_type != '0') pcEventCount
FROM
ic_event
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper> </mapper>

43
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

@ -539,4 +539,47 @@
AGENCY_ID AGENCY_ID
</select> </select>
<select id="getNowProject" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
org_id_path pids,
origin origin
FROM project
WHERE del_flag = '0'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
COUNT(id) projectCount,
SUM(origin = 'issue') issueProjectCount,
SUM(origin = 'ic_event') icEventProjectCount,
SUM(origin = 'agency') agencyProjectCount
FROM
project
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper> </mapper>

46
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dataaggre.dao.resipartymember.ResiPartymemberDao">
<select id="getNowPart" resultType="com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO">
<choose>
<when test="dataType != null and dataType == 'agency' ">
SELECT
agency_id orgId,
agency_id_path pids
FROM partymember_register_relation
WHERE del_flag = '0'
AND first_register = '1'
AND customer_id = #{customerId}
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
</when>
<otherwise>
SELECT
grid_id orgId,
SUM(first_register = '1') partyMemberCount
FROM
partymember_register_relation
WHERE
del_flag = '0'
AND customer_id = #{customerId}
<foreach collection="idList" item="id" open="AND grid_id IN (" separator="," close=")">
#{id}
</foreach>
<if test=" null != startTime and startTime != '' ">
AND created_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="null != endTime and endTime != '' ">
AND created_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY grid_id
</otherwise>
</choose>
</select>
</mapper>
Loading…
Cancel
Save