Browse Source

Merge branch 'dev_now_stats_syc' of http://git.elinkit.com.cn:7070/r/epmet-cloud

master
wangxianzhang 3 years ago
parent
commit
1bb1734c95
  1. 5
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
  2. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  3. 1
      epmet-gateway/src/main/resources/bootstrap.yml
  4. 1
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/DataSourceConstant.java
  5. 59
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/NowStatsDataFormDTO.java
  6. 46
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/NowStatsDataResultDTO.java
  7. 10
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/RegisterRelationDTO.java
  8. 28
      epmet-module/data-aggregator/data-aggregator-server/pom.xml
  9. 62
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/DataStatsController.java
  10. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/RegisterRelationDao.java
  11. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
  12. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java
  13. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/IcEventDao.java
  14. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
  15. 31
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resipartymember/ResiPartymemberDao.java
  16. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/RegisterRelationEntity.java
  17. 68
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/excel/NowStatsDataExcel.java
  18. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/PartymemberService.java
  19. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  20. 117
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  21. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  22. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  23. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  24. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  25. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java
  26. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  27. 24
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/PartymemberServiceImpl.java
  28. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/ResiPartymemberService.java
  29. 29
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resipartymember/impl/ResiPartymemberServiceImpl.java
  30. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml
  31. 40
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/RegisterRelationDao.xml
  32. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
  33. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml
  34. 44
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/IcEventDao.xml
  35. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
  36. 46
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resipartymember/ResiPartymemberDao.xml
  37. 5
      epmet-module/epmet-job/epmet-job-server/pom.xml
  38. 17
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java
  39. 31
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java
  40. 41
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java
  41. 2
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java
  42. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
  43. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java
  44. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java
  45. 1
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java
  46. 10
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java
  47. 10
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java
  48. 10
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
  49. 71
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java
  50. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java
  51. 25
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java
  52. 22
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java
  53. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  54. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java
  55. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  56. 52
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  57. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

5
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java

@ -143,4 +143,9 @@ public interface ServiceConstant {
* 聚合查询服务
*/
String DATA_AGGREGATOR_SERVER = "data-aggregator-server";
/**
* 插件pli-power服务
*/
String PLI_POWER_SERVER = "pli-power-base-server";
}

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -259,6 +259,7 @@ public enum EpmetErrorCode {
NOT_REGEIST_RESI(8927,"未注册居民"),
UNIT_EXIST_HOUSES_ERROR(8928,"单元下存在房屋,不可修改单元数"),
IC_VACCINE(8929,"已存在相同记录,请去修改原有记录"),
NOT_MATCH_IC_USER_ERROR(8930,"请联系社区工作人员"),
MISMATCH(10086,"人员与房屋信息不匹配,请与工作人员联系。"),

1
epmet-gateway/src/main/resources/bootstrap.yml

@ -502,6 +502,7 @@ epmet:
# 内部认证url白名单(在白名单中的,就不会再校验登录了)
internalAuthUrlsWhiteList:
- /epmetuser/customerstaff/customerlist
- /epmetuser/icresiuser/icUserMatchGrid
- /auth/wechat/**
- /**/druid/**
- /gov/project/project/platformcallback

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 EPMETTDUCK="epmettduck";
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;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 网格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.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配置 -->
<spring.redis.index>13</spring.redis.index>
<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.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配置 -->
<spring.redis.index>13</spring.redis.index>
<spring.redis.host>192.168.1.140</spring.redis.host>
@ -522,6 +536,13 @@
<datasource.druid.heart.username>root</datasource.druid.heart.username>
<datasource.druid.heart.password>Abc@123456</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配置 -->
<spring.redis.index>13</spring.redis.index>
<spring.redis.host>r-m5eh5czgb1nucti6azpd.redis.rds.aliyuncs.com</spring.redis.host>
@ -654,6 +675,13 @@
<datasource.druid.heart.username>epdc</datasource.druid.heart.username>
<datasource.druid.heart.password>Elink@833066</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配置 -->
<spring.redis.index>5</spring.redis.index>
<spring.redis.host>r-m5evpexxjmi6xmsiwj.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;
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.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.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.datastats.form.*;
import com.epmet.dataaggre.dto.datastats.result.*;
import com.epmet.dataaggre.excel.NowStatsDataExcel;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
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 javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
/**
* @Author sun
* @Description 数据统计服务
*/
@Slf4j
@RestController
@RequestMapping("datastats")
public class DataStatsController {
@ -243,4 +261,48 @@ public class DataStatsController {
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;
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 org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 注册关系表 用于统计客户网格的注册居民数
*
@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface RegisterRelationDao extends BaseDao<RegisterRelationEntity> {
List<NowStatsDataResultDTO> selectNowResiUser(NowStatsDataFormDTO formDTO);
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java

@ -18,6 +18,7 @@
package com.epmet.dataaggre.dao.govorg;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO;
import com.epmet.dataaggre.dto.govorg.result.*;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import org.apache.ibatis.annotations.Mapper;
@ -108,4 +109,5 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
List<String> getSubAgencyList(@Param("agencyId") String agencyId);
List<ScreenCustomerAgencyDTO> getSubAgencyListByAgency(@Param("customerId") String customerId, @Param("agencyId") String agencyId);
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java

@ -18,6 +18,7 @@
package com.epmet.dataaggre.dao.govorg;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
@ -84,4 +85,5 @@ public interface CustomerGridDao extends BaseDao<CustomerGridEntity> {
*/
CustomerGridDTO getGridInfo(@Param("gridId") String gridId);
List<ScreenCustomerGridDTO> getSubGridList(@Param("customerId") String customerId, @Param("agencyId") String agencyId);
}

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;
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.result.EventInfoResultDTO;
import com.epmet.dataaggre.entity.govproject.IcEventEntity;
@ -25,4 +27,5 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
*/
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;
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.govorg.form.OrgStatisticsFormDTO;
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> getAgencyProjectCount(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;
/**
* 所属组织机构Id
*/
private String agencyId;
/**
* agencyId的所有上级包含自己
*/
private String agencyIdPath;
/**
* 网格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);
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.FactAgencyGovernDailyEntity;
import com.epmet.dataaggre.excel.CustomerDataManageExcel;
import com.epmet.dataaggre.service.PartymemberService;
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.evaluationindex.EvaluationIndexService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.govproject.GovProjectService;
import com.epmet.dataaggre.service.opercrm.CustomerRelation;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -86,6 +89,12 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService;
@Autowired
private GovOrgService govOrgService;
@Autowired
private EpmetUserService epmetUserService;
@Autowired
private GovProjectService govProjectService;
@Autowired
private PartymemberService partymemberService;
/**
* @Param formDTO
@ -2310,4 +2319,112 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve
PageInfo<MemberProjectInfoResultDTO> pageInfo = new PageInfo<>(list);
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 = govOrgService.getSubAgencyOrGridList(formDTO.getCustomerId(), formDTO.getAgencyId());
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;
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.result.*;
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);
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.dataaggre.constant.DataSourceConstant;
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.FactIcuserCategoryAnalysisDailyDTO;
import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO;
@ -90,6 +92,8 @@ public class EpmetUserServiceImpl implements EpmetUserService {
private IcResiUserDao icResiUserDao;
@Resource
private CustomerFootBarService customerFootBarService;
@Resource
private RegisterRelationDao registerRelationDao;
/**
* @Description 根据UserIds查询
@ -912,4 +916,11 @@ public class EpmetUserServiceImpl implements EpmetUserService {
return icResiUserDao.listVolunteersByCategory(customerId, agencyId, staffOrgIds, search, resiCategory);
}
}
@Override
public List<NowStatsDataResultDTO> getNowResiUser(NowStatsDataFormDTO formDTO) {
//实时统计组织/网格下小程序端注册居民数
List<NowStatsDataResultDTO> list = registerRelationDao.selectNowResiUser(formDTO);
return list;
}
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO;
import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO;
import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO;
import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
@ -289,4 +290,6 @@ public interface GovOrgService {
List<ResourceInfoResultDTO> getEnterpriseInfos(CoverageHomeSearchFormDTO formDTO);
Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO);
ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId);
}

43
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -14,6 +14,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.DingTextBriefNessFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
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.ExceptionUtils;
@ -39,6 +40,9 @@ import com.epmet.dataaggre.dto.epmetuser.result.CustomerStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO;
import com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.*;
import com.epmet.dataaggre.dto.govorg.form.*;
import com.epmet.dataaggre.dto.govorg.result.*;
@ -1467,4 +1471,43 @@ public class GovOrgServiceImpl implements GovOrgService {
public Integer getEnterpriseInfosCount(CoverageHomeSearchFormDTO formDTO) {
return cityManagementDao.getEnterpriseInfosCount(formDTO);
}
@Override
public ScreenAgencyOrGridListDTO getSubAgencyOrGridList(String customerId, String agencyId) {
ScreenAgencyOrGridListDTO resultDTO = new ScreenAgencyOrGridListDTO();
List<ScreenAgencyOrGridListDTO.AgencyGrid> agencyGridList = new ArrayList<>();
//1.查询组织信息
CustomerAgencyEntity dto = customerAgencyDao.selectById(agencyId);
if (dto == null) {
log.error(String.format("组织信息不存在,组织Id->%s", agencyId));
return new ScreenAgencyOrGridListDTO();
}
//2.根据组织级别判断查询直属组织或网格列表
List<ScreenCustomerAgencyDTO> agencyList = new ArrayList<>();
List<ScreenCustomerGridDTO> gridList = new ArrayList<>();
if (!"community".equals(dto.getLevel())) {
//2-1.直属下级组织列表
agencyList = customerAgencyDao.getSubAgencyListByAgency(customerId, agencyId);
agencyList.forEach(gr->{
ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid();
org.setOrgId(gr.getAgencyId());
org.setOrgName(gr.getAgencyName());
agencyGridList.add(org);
});
} else {
//2-2.直属下级网格列表
gridList = customerGridDao.getSubGridList(customerId, agencyId);
gridList.forEach(gr->{
ScreenAgencyOrGridListDTO.AgencyGrid org = new ScreenAgencyOrGridListDTO.AgencyGrid();
org.setOrgId(gr.getGridId());
org.setOrgName(gr.getGridName());
agencyGridList.add(org);
});
}
resultDTO.setLevel(dto.getLevel());
resultDTO.setAgencyGridList(agencyGridList);
return resultDTO;
}
}

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;
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.govorg.form.OrgStatisticsFormDTO;
import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO;
@ -181,4 +183,7 @@ public interface GovProjectService {
*/
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.dao.govproject.IcEventDao;
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.FactAgencyProjectResultDTO;
import com.epmet.dataaggre.dto.datastats.result.NowStatsDataResultDTO;
import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
@ -930,4 +932,14 @@ public class GovProjectServiceImpl implements GovProjectService {
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@
username: @datasource.druid.heart.username@
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:
hystrix:
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">
<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>

17
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml

@ -309,4 +309,21 @@
OR PIDS LIKE CONCAT('%', #{agencyId}, '%'))
</select>
<select id="getSubAgencyListByAgency" resultType="com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerAgencyDTO">
SELECT
customer_id AS customerId,
id AS agencyId,
organization_name AS agencyName,
level AS level,
area_code AS areaCode,
parent_area_code AS parentAreaCode,
pids
FROM
customer_agency
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND pid = #{agencyId}
</select>
</mapper>

15
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml

@ -181,4 +181,19 @@
AND cg.DEL_FLAG = '0'
</select>
<select id="getSubGridList" resultType="com.epmet.dataaggre.dto.evaluationindex.ScreenCustomerGridDTO">
SELECT
customer_id AS customerId,
id AS gridId,
grid_name AS gridName,
pid AS parentAgencyId,
pids AS allParentIds
FROM
customer_grid
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND pid = #{agencyId}
</select>
</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},'%')
</if>
</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>

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

@ -546,4 +546,47 @@
AGENCY_ID
</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>

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>

5
epmet-module/epmet-job/epmet-job-server/pom.xml

@ -43,6 +43,11 @@
<artifactId>epmet-message-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>pli-power-base-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

17
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java

@ -0,0 +1,17 @@
package com.epmet.service;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO;
public interface PliPowerService {
/**
* 访客登出
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/30 10:25
*/
Result visitorLogout(VisitorLogoutFormDTO formDTO);
}

31
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java

@ -0,0 +1,31 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO;
import com.epmet.plugin.power.feign.PliPowerFeignClient;
import com.epmet.service.PliPowerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description
* @ClassName StatsUserServiceImpl
* @Auth wangc
* @Date 2020-06-29 09:41
*/
@Service
public class PliPowerServiceImpl implements PliPowerService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private PliPowerFeignClient pliPowerFeignClient;
@Override
public Result visitorLogout(VisitorLogoutFormDTO formDTO) {
return pliPowerFeignClient.visitorLogout(formDTO);
}
}

41
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java

@ -0,0 +1,41 @@
package com.epmet.task;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.Result;
import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO;
import com.epmet.service.PliPowerService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 访客登出
*
* @author zhy
* @date 2022/5/30 10:23
*/
@Component("pliVisitorLogoutTask")
public class PliVisitorLogoutTask implements ITask {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private PliPowerService pliPowerService;
@Override
public void run(String params) {
logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params);
VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO();
if (StringUtils.isNotBlank(params)) {
formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class);
}
Result result = pliPowerService.visitorLogout(formDTO);
if (result.success()) {
logger.info("VisitorLogoutTask定时任务执行成功");
} else {
logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg());
}
}
}

2
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java

@ -41,4 +41,6 @@ public class StaffListResultDTO implements Serializable {
*/
private String mobile="";
private Boolean staffEnabledStatus = false;
}

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java

@ -325,6 +325,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
sf.setStaffName(stf.getStaffName());
sf.setStaffHeadPhoto(stf.getStaffHeadPhoto());
sf.setGender(stf.getGender());
sf.setStaffEnabledStatus(true);
}
});
//人员角色信息
@ -374,7 +375,8 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
});
});
});
resultDTO.setAgencyStaffList(agencyStaffList);
Map<Boolean, List<StaffListResultDTO>> collect = agencyStaffList.stream().collect(Collectors.groupingBy(StaffListResultDTO::getStaffEnabledStatus));
resultDTO.setAgencyStaffList(CollectionUtils.isNotEmpty(collect.get(true)) ? collect.get(true) : new ArrayList<>());
resultDTO.setDepartmentList(departmentList);
resultDTO.setGridList(gridList);
return resultDTO;

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java

@ -3,6 +3,7 @@ package com.epmet.dto.form;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ -29,6 +30,7 @@ public class ProjectResponseFormDTO implements Serializable {
/**
* 公开答复内容
*/
@NotBlank(message = "公开答复不能为空")
@Length(max = 1000, message = "公开答复不能超过1000个字符")
private String publicReply;
/**

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java

@ -3,6 +3,7 @@ package com.epmet.dto.form;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ -30,6 +31,7 @@ public class ReturnFromDTO implements Serializable {
/**
* 公开答复内容
*/
@NotBlank(message = "公开答复不能为空")
@Length(max = 1000, message = "公开答复不能超过1000个字符")
private String publicReply;
/**

1
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java

@ -22,6 +22,7 @@ public class TransferFormDTO implements Serializable {
@NotBlank(message = "项目人员关联Id不能为空")
private String projectStaffId;
@NotBlank(message = "公开答复不能为空")
@Length(max=1000,message = "公开答复内容不能超过1000位")
private String publicReply;

10
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java

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

10
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java

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

10
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java

@ -5,7 +5,10 @@ import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.NumConstant;
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.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.*;
@ -601,6 +604,13 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
PartymemberRegisterRelationEntity registerRelationEntity = new PartymemberRegisterRelationEntity();
registerRelationEntity.setCustomerId(partyMemberInfoDTO.getCustomerId());
registerRelationEntity.setGridId(partyMemberInfoDTO.getGridId());
//表中新增字段 为其赋值
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(partyMemberInfoDTO.getGridId());
if (null == gridInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败");
}
registerRelationEntity.setAgencyId(gridInfo.getPid());
registerRelationEntity.setAgencyIdPath(gridInfo.getPids());
registerRelationEntity.setUserId(partyMemberInfoDTO.getUserId());
registerRelationEntity.setFirstRegister(1);
registerRelationEntity.setRegister(1);

71
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java

@ -0,0 +1,71 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author zxc
* @DateTime 2022/8/5 15:03
* @DESC
*/
@Data
public class PaCustomerDTO implements Serializable {
/**
* 客户id本主键和oper_crm.customer.id一致
*/
private String id;
/**
* 客户名称默认是根组织名称
*/
private String customerName;
/**
* 是否已经完成客户信息初始化 0未初始化1已初始化
*/
private Integer isInitialize;
/**
* 客户类型 mini 微信小程序客户 app 第三方app客户
*/
private String type;
/**
* 数据来源(dev:开发 test:体验 prod:生产)
*/
private String source;
/**
* 删除标识0.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/RegisterRelationDTO.java

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

25
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/8/5 11:11
* @DESC
*/
@Data
public class IcUserMatchGridFormDTO implements Serializable {
private static final long serialVersionUID = -5252136149475817567L;
public interface IcUserMatchGridForm{}
@NotBlank(message = "idCard不能为空",groups = IcUserMatchGridForm.class)
private String idCard;
@NotBlank(message = "appId不能为空",groups = IcUserMatchGridForm.class)
private String appId;
}

22
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java

@ -0,0 +1,22 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/8/5 11:14
* @DESC
*/
@Data
public class IcUserMatchGridResultDTO implements Serializable {
private static final long serialVersionUID = -3215965796907113918L;
private String gridId;
private String customerId;
private String gridName;
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -1293,5 +1293,17 @@ public class IcResiUserController implements ResultDataResolver {
return new Result<PageData<Map<String, Object>>>().ok(icResiUserService.listResiZhzl(pageFormDTO));
}
/**
* Desc: 居民首次进入小程序可以根据输入身份证信息查询在数字社区居民信息中的网格匹配不成功提示
* @param tokenDto
* @param formDTO
* @author zxc
* @date 2022/8/5 11:17
*/
@PostMapping("icUserMatchGrid")
public Result<IcUserMatchGridResultDTO> icUserMatchGrid(@RequestBody IcUserMatchGridFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, IcUserMatchGridFormDTO.IcUserMatchGridForm.class);
return new Result<IcUserMatchGridResultDTO>().ok(icResiUserService.icUserMatchGrid(formDTO));
}
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/RegisterRelationEntity.java

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

9
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -499,4 +499,13 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @return
*/
PageData<Map<String, Object>> listResiZhzl(IcResiUserPageFormDTO pageFormDTO);
/**
* Desc: 居民首次进入小程序可以根据输入身份证信息查询在数字社区居民信息中的网格匹配不成功提示
* @param formDTO
* @author zxc
* @date 2022/8/5 11:17
*/
IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO);
}

52
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -20,6 +20,7 @@ package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@ -3219,4 +3220,55 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
pageInfo.setList(list);
return new PageData<>(pageInfo.getList(), pageInfo.getTotal());
}
/**
* Desc: 居民首次进入小程序可以根据输入身份证信息查询在数字社区居民信息中的网格匹配不成功提示
* @param formDTO
* @author zxc
* @date 2022/8/5 11:17
*/
@Override
public IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO) {
PaCustomerDTO customerInfo = getCustomerInfo(formDTO.getAppId());
if (null == customerInfo){
throw new EpmetException("根据APPID查询客户信息失败:"+formDTO.getAppId());
}
LambdaQueryWrapper<IcResiUserEntity> qw = new LambdaQueryWrapper<>();
qw.eq(IcResiUserEntity::getCustomerId,customerInfo.getId())
.eq(IcResiUserEntity::getIdCard,formDTO.getIdCard());
IcResiUserEntity icResiUserEntity = baseDao.selectOne(qw);
if (null == icResiUserEntity){
throw new EpmetException(EpmetErrorCode.NOT_MATCH_IC_USER_ERROR.getCode());
}
IcUserMatchGridResultDTO result = new IcUserMatchGridResultDTO();
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(icResiUserEntity.getGridId());
if (null == gridInfo){
throw new EpmetException("查询网格信息失败:"+icResiUserEntity.getGridId());
}
result.setCustomerId(customerInfo.getId());
result.setGridId(icResiUserEntity.getGridId());
result.setGridName(gridInfo.getGridNamePath());
return result;
}
public PaCustomerDTO getCustomerInfo(String appId) {
JSONObject jsonObject = new JSONObject();
String data = HttpClientManager.getInstance().sendPostByJSON("https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/" + appId, JSON.toJSONString(jsonObject)).getData();
logger.info("ThirdLoginServiceImpl.getCustomerInfo:httpclient->url:https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/ ,结果->" + data);
JSONObject toResult = JSON.parseObject(data);
Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class);
if (null != toResult.get("code")) {
mapToResult.setCode(((Integer) toResult.get("code")).intValue());
}
if (!mapToResult.success()) {
logger.error(String.format("根据appId查询客户Id失败,对应appId->" + appId));
throw new RenException(mapToResult.getMsg());
}
Object PublicCustomerResultDTO = mapToResult.getData();
JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString());
Map<String, Object> map = (Map) json.get("customer");
PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class);
logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer);
return customer;
}
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

@ -23,7 +23,11 @@ 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.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.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserConstant;
@ -344,6 +348,13 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
RegisterRelationEntity entity = new RegisterRelationEntity();
entity.setCustomerId(userResiInfoDTO.getCustomerId());
entity.setGridId(userResiInfoDTO.getGridId());
//表中新增字段 为其赋值
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(userResiInfoDTO.getGridId());
if (null == gridInfo) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取网格缓存失败", "获取网格缓存失败");
}
entity.setAgencyId(gridInfo.getPid());
entity.setAgencyIdPath(gridInfo.getPids());
entity.setUserId(userResiInfoDTO.getUserId());
//首次注册用户 (0表示不参与计数 1表示参与计数)
entity.setFirstRegister(NumConstant.ONE_STR);

Loading…
Cancel
Save