Browse Source

Merge remote-tracking branch 'remotes/origin/dev'

dev
jianjun 4 years ago
parent
commit
64861d2761
  1. 39
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/ThreadDispatcherConfig.java
  2. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java
  3. 3
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
  4. 3
      epmet-gateway/src/main/java/com/epmet/GatewayApplication.java
  5. 27
      epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiExportBaseInfoData.java
  6. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  7. 82
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  8. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java
  9. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  10. 44
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  11. 20
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java
  12. 30
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

39
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/ThreadDispatcherConfig.java

@ -0,0 +1,39 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
package com.epmet.commons.tools.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.RequestContextFilter;
import org.springframework.web.servlet.DispatcherServlet;
import javax.annotation.PostConstruct;
/**
* DESC:设置线程继承属性为true便于子线程获取到父线程的request,两个都设置为了保险
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Configuration
public class ThreadDispatcherConfig {
@Autowired
RequestContextFilter requestContextFilter;
@Autowired
DispatcherServlet dispatcherServlet;
@PostConstruct
public void init() {
// 设置线程继承属性为true,便于子线程获取到父线程的request,两个都设置为了保险。
requestContextFilter.setThreadContextInheritable(true);
dispatcherServlet.setThreadContextInheritable(true);
}
}

3
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java

@ -171,4 +171,7 @@ public interface Constant {
* 被禁用标识 * 被禁用标识
* */ * */
String DISABLE = "disable"; String DISABLE = "disable";
String OPITON_SOURCE_REMOTE = "remote";
String OPITON_SOURCE_LOCAL = "local";
} }

3
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java

@ -107,4 +107,7 @@ public interface StrConstant {
* 积分规则修改的头 * 积分规则修改的头
*/ */
String POINT_CHANGE_HEAD = "修改了%s规则,"; String POINT_CHANGE_HEAD = "修改了%s规则,";
String YES = "是";
String NO = "否";
} }

3
epmet-gateway/src/main/java/com/epmet/GatewayApplication.java

@ -10,6 +10,7 @@ package com.epmet;
import com.epmet.commons.tools.aspect.ServletExceptionHandler; import com.epmet.commons.tools.aspect.ServletExceptionHandler;
import com.epmet.commons.tools.config.RedissonConfig; import com.epmet.commons.tools.config.RedissonConfig;
import com.epmet.commons.tools.config.ThreadDispatcherConfig;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@ -27,7 +28,7 @@ import org.springframework.context.annotation.FilterType;
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableFeignClients @EnableFeignClients
//@ServletComponentScan //@ServletComponentScan
@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ServletExceptionHandler.class})) @ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ThreadDispatcherConfig.class, ServletExceptionHandler.class}))
public class GatewayApplication { public class GatewayApplication {
public static void main(String[] args) { public static void main(String[] args) {

27
epmet-user/epmet-user-server/src/main/java/com/epmet/bean/ResiExportBaseInfoData.java

@ -0,0 +1,27 @@
package com.epmet.bean;
import lombok.Data;
import java.io.Serializable;
/**
* desc导出居民信息 基础信息 给其他sheet使用
*/
@Data
public class ResiExportBaseInfoData implements Serializable {
private static final long serialVersionUID = 1L;
private String GRID_ID;
private String VILLAGE_ID;
private String BUILD_ID;
private String UNIT_ID;
private String HOME_ID;
private String IS_BDHJ;
private String NAME;
private String MOBILE;
private String GENDER;
private String ID_CARD;
private String BIRTHDAY;
private String CONTACTS;
private String CONTACTS_MOBILE;
}

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

@ -24,6 +24,7 @@ import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg;
import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
@ -301,6 +302,7 @@ public class IcResiUserController {
@RequestMapping(value = "/exportExcel") @RequestMapping(value = "/exportExcel")
public void exportExcelByEasyExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { public void exportExcelByEasyExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception {
//tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02");
long startM = System.currentTimeMillis();
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId());
String staffOrgPath = null; String staffOrgPath = null;
if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) {
@ -330,7 +332,7 @@ public class IcResiUserController {
map.putIfAbsent(tableName,exportItem); map.putIfAbsent(tableName,exportItem);
String columnName = item.getColumnName().concat(item.getColumnNum() == NumConstant.ZERO ? StrConstant.EPMETY_STR : item.getColumnNum().toString()); String columnName = item.getColumnName().concat(item.getColumnNum() == NumConstant.ZERO ? StrConstant.EPMETY_STR : item.getColumnNum().toString());
exportItem.getItemMap().put(columnName,item); exportItem.getItemMap().put(columnName,item);
if (item.getOptionSourceType().equals("remote")&&item.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){ if (Constant.OPITON_SOURCE_REMOTE.equals(item.getOptionSourceType())&&item.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
//多个参数 //多个参数
String[] paramArr = item.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK); String[] paramArr = item.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
Arrays.stream(paramArr).forEach(o->{ Arrays.stream(paramArr).forEach(o->{
@ -354,7 +356,7 @@ public class IcResiUserController {
.collect(Collectors.toList()); .collect(Collectors.toList());
List<Map<String, Object>> resiResultList = null; List<Map<String, Object>> resiResultList = null;
pageFormDTO.setPageSize(NumConstant.TEN_THOUSAND); pageFormDTO.setPageSize(NumConstant.ONE_THOUSAND);
for (IcResiUserTableEnum tableEnum : resiTableList) { for (IcResiUserTableEnum tableEnum : resiTableList) {
String tableName = tableEnum.getTableName(); String tableName = tableEnum.getTableName();
pageFormDTO.setPageNo(NumConstant.ONE); pageFormDTO.setPageNo(NumConstant.ONE);
@ -382,6 +384,7 @@ public class IcResiUserController {
if (excelWriter != null){ if (excelWriter != null){
excelWriter.finish(); excelWriter.finish();
} }
log.info("exportExcelByEasyExcel resi info cost time:{}s",(System.currentTimeMillis()-startM)/NumConstant.ONE_THOUSAND);
} }
} }

82
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -27,6 +27,7 @@ import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -65,109 +66,111 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* 查询主表 * 查询主表
* *
* @param icResiUserId * @param icResiUserId
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author yinzuomei * @author yinzuomei
* @date 2021/10/28 11:20 上午 * @date 2021/10/28 11:20 上午
*/ */
List<Map<String, Object>> selectListMapById(@Param("customerId") String customerId, List<Map<String, Object>> selectListMapById(@Param("customerId") String customerId,
@Param("icResiUserId")String icResiUserId); @Param("icResiUserId") String icResiUserId);
/** /**
* 根据ic_resi_user.id去查询各个子表记录动态传入表名 * 根据ic_resi_user.id去查询各个子表记录动态传入表名
* *
* @param icResiUserId * @param icResiUserId
* @param subTableName * @param subTableName
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author yinzuomei * @author yinzuomei
* @date 2021/10/28 11:19 上午 * @date 2021/10/28 11:19 上午
*/ */
List<Map<String, Object>> selectSubTableRecords(@Param("customerId")String customerId, List<Map<String, Object>> selectSubTableRecords(@Param("customerId") String customerId,
@Param("icResiUserId") String icResiUserId, @Param("icResiUserId") String icResiUserId,
@Param("subTableName") String subTableName); @Param("subTableName") String subTableName);
int updateToDel(String icResiUserId); int updateToDel(String icResiUserId);
int updateSubTableToDel(@Param("subTalbeName") String subTalbeName, @Param("icResiUserId")String icResiUserId); int updateSubTableToDel(@Param("subTalbeName") String subTalbeName, @Param("icResiUserId") String icResiUserId);
/** /**
* 接口名称 * 接口名称
* *
* @param customerId 客户id * @param customerId 客户id
* @param resultTableName 获取哪个表的数据 * @param resultTableName 获取哪个表的数据
* @param conditions 前端传入的查询入参 * @param conditions 前端传入的查询入参
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author yinzuomei * @author yinzuomei
* @date 2021/11/2 10:35 上午 * @date 2021/11/2 10:35 上午
*/ */
List<Map<String,Object>> dynamicQuery(@Param("customerId")String customerId, List<Map<String, Object>> dynamicQuery(@Param("customerId") String customerId,
@Param("resultTableName")String resultTableName, @Param("resultTableName") String resultTableName,
@Param("conditions") List<ResiUserQueryValueDTO> conditions, @Param("conditions") List<ResiUserQueryValueDTO> conditions,
@Param("subTables") List<String> subTables, @Param("subTables") List<String> subTables,
@Param("currentStaffAgencyId")String currentStaffAgencyId, @Param("currentStaffAgencyId") String currentStaffAgencyId,
@Param("staffOrgPath")String staffOrgPath); @Param("staffOrgPath") String staffOrgPath);
/** /**
* @Description 查询个人信息
* @param userId * @param userId
* @Description 查询个人信息
* @author zxc * @author zxc
* @date 2021/11/3 10:28 上午 * @date 2021/11/3 10:28 上午
*/ */
PersonDataResultDTO personData(@Param("userId") String userId); PersonDataResultDTO personData(@Param("userId") String userId);
/** /**
* @Description 根据名字组织查询人
* @param name * @param name
* @param agencyId * @param agencyId
* @Description 根据名字组织查询人
* @author zxc * @author zxc
* @date 2021/11/3 2:05 下午 * @date 2021/11/3 2:05 下午
*/ */
List<SearchByNameResultDTO> searchByName(@Param("name")String name, @Param("agencyId")String agencyId,@Param("pageNo")Integer pageNo); List<SearchByNameResultDTO> searchByName(@Param("name") String name, @Param("agencyId") String agencyId, @Param("pageNo") Integer pageNo);
Set<String> selectUserDemandCode(String icResiUserId); Set<String> selectUserDemandCode(String icResiUserId);
String selectCategoryNames(@Param("customerId") String customerId,@Param("codeSet") Set<String> codeSet);
String selectCategoryNames(@Param("customerId") String customerId, @Param("codeSet") Set<String> codeSet);
@MapKey("HOME_ID") @MapKey("HOME_ID")
Map<String, Map<String, String>> getHomeUserCategoryCount(@Param("buildId") String buildId); Map<String, Map<String, String>> getHomeUserCategoryCount(@Param("buildId") String buildId);
/** /**
* @Description 根据userId查询志愿者
* @param userId * @param userId
* @Description 根据userId查询志愿者
* @author zxc * @author zxc
* @date 2021/11/5 5:44 下午 * @date 2021/11/5 5:44 下午
*/ */
List<String> selectVolunteerByUserId(@Param("userId")String userId); List<String> selectVolunteerByUserId(@Param("userId") String userId);
/** /**
* @Description 查询人员类别
* @param columns * @param columns
* @Description 查询人员类别
* @author zxc * @author zxc
* @date 2021/11/8 1:50 下午 * @date 2021/11/8 1:50 下午
*/ */
Map<String,String> selectPersonType(@Param("columns")List<String> columns,@Param("customerId")String customerId, Map<String, String> selectPersonType(@Param("columns") List<String> columns, @Param("customerId") String customerId,
@Param("tableName")String tableName,@Param("userId")String userId); @Param("tableName") String tableName, @Param("userId") String userId);
/** /**
* @Author sun * @Author sun
* @Description 查询居民信息 * @Description 查询居民信息
**/ **/
IcResiUserDTO getResiUser(IcResiUserDTO dto); IcResiUserDTO getResiUser(IcResiUserDTO dto);
/** /**
*
* @param agencyId * @param agencyId
* @param gridId * @param gridId
* @param name * @param name
* @return * @return
*/ */
List<DemandUserResDTO> selectDemandUsers(@Param("agencyId") String agencyId, List<DemandUserResDTO> selectDemandUsers(@Param("agencyId") String agencyId,
@Param("gridId")String gridId, @Param("gridId") String gridId,
@Param("name")String name); @Param("name") String name);
IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId, IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId,
@Param("idNum")String idNum, @Param("idNum") String idNum,
@Param("icResiUserId")String icResiUserId); @Param("icResiUserId") String icResiUserId);
/** /**
* 获取居民名称家属名称和id * 获取居民名称家属名称和id
*
* @param isResiUserId * @param isResiUserId
* @return * @return
*/ */
@ -184,6 +187,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/** /**
* 组织内党员年龄范围统计 * 组织内党员年龄范围统计
*
* @Param orgType * @Param orgType
* @Param orgId * @Param orgId
* @Return {@link List< OptionDataResultDTO>} * @Return {@link List< OptionDataResultDTO>}
@ -194,6 +198,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/** /**
* 获取年龄范围内党员列表 * 获取年龄范围内党员列表
*
* @Param orgType * @Param orgType
* @Param orgId * @Param orgId
* @Param min * @Param min
@ -208,6 +213,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/** /**
* 党员文化程度统计 * 党员文化程度统计
*
* @Param orgType * @Param orgType
* @Param orgId * @Param orgId
* @Return {@link List< OptionDataResultDTO>} * @Return {@link List< OptionDataResultDTO>}
@ -218,6 +224,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/** /**
* 按教育程度获取党员列表 * 按教育程度获取党员列表
*
* @Param orgType * @Param orgType
* @Param orgId * @Param orgId
* @Param code * @Param code
@ -226,7 +233,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @Date 2021/12/10 17:24 * @Date 2021/12/10 17:24
*/ */
List<PartyMemberEducationResultDTO> getPartyMemberEducationList(@Param("orgType") String orgType, @Param("orgId") String orgId, List<PartyMemberEducationResultDTO> getPartyMemberEducationList(@Param("orgType") String orgType, @Param("orgId") String orgId,
@Param("code") String code); @Param("code") String code);
List<VolunteerDistributionResultDTO.Distribution> listIcResiInfosByUserIds(@Param("userIds") List<String> userIds); List<VolunteerDistributionResultDTO.Distribution> listIcResiInfosByUserIds(@Param("userIds") List<String> userIds);
@ -239,4 +246,19 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<String> icUserCustomerIds(); List<String> icUserCustomerIds();
List<Map<String, String>> getIcUserList(@Param("customerId") String customerId, @Param("columns")List<String> columns); List<Map<String, String>> getIcUserList(@Param("customerId") String customerId, @Param("columns")List<String> columns);
/**
* desc: 获取数据分析列中的 各类居民数据
*
* @param customerId
* @param tableName
* @param columnList
* @param id 非必填 leve有值时 必填
* @param level 非必填
* @return java.util.Map<java.lang.String,java.math.BigDecimal> 字段名数量
* @author LiuJanJun
* @date 2022/2/12 3:03 下午
*/
Map<String, BigDecimal> getDataAnalyseCount(@Param("customerId") String customerId, @Param("tableName") String tableName,
@Param("columnList") List<String> columnList, @Param("id") String id, @Param("level") String level);
} }

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java

@ -48,7 +48,7 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
@Param("buildingIdList") List<String> buildingIdList, @Param("buildingIdList") List<String> buildingIdList,
@Param("tableName") String tableName, @Param("tableName") String tableName,
@Param("columnName") String columnName); @Param("columnName") String columnName);
@Deprecated
Integer countListByLevelAndCol( Integer countListByLevelAndCol(
@Param("customerId") String customerId, @Param("customerId") String customerId,
@Param("tableName") String tableName, @Param("tableName") String tableName,

3
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -15,6 +15,7 @@ import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.feign.ResultDataResolver;
@ -516,7 +517,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
} catch (Exception e) { } catch (Exception e) {
String errorMsg; String errorMsg;
if (e instanceof RenException) { if (e instanceof RenException | e instanceof EpmetException) {
errorMsg = e.getMessage(); errorMsg = e.getMessage();
} else { } else {
errorMsg = "未知系统错误"; errorMsg = "未知系统错误";

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

@ -20,11 +20,9 @@ package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.bean.ResiExportBaseInfoData;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.*;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.form.DictListFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.DictListResultDTO;
@ -69,6 +67,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -77,6 +76,8 @@ import java.math.RoundingMode;
import java.sql.Date; import java.sql.Date;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -114,6 +115,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
private IcUserChangeDetailedService icUserChangeDetailedService; private IcUserChangeDetailedService icUserChangeDetailedService;
@Autowired @Autowired
private IcUserTransferRecordService icUserTransferRecordService; private IcUserTransferRecordService icUserTransferRecordService;
@Autowired
private RedisTemplate redisTemplate;
private QueryWrapper<IcResiUserEntity> getWrapper(Map<String, Object> params){ private QueryWrapper<IcResiUserEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP); String id = (String)params.get(FieldConstant.ID_HUMP);
@ -881,7 +884,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Page<Map<String, Object>> mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getPageFlag()).doSelectPage(() -> { Page<Map<String, Object>> mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getPageFlag()).doSelectPage(() -> {
this.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), baseTableName, pageFormDTO.getConditions(), currentStaffAgencyId, staffOrgPath); this.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), baseTableName, pageFormDTO.getConditions(), currentStaffAgencyId, staffOrgPath);
}); });
mapListPage.getResult().stream().filter(Objects::nonNull).forEach(resiUser -> { mapListPage.getResult().parallelStream().filter(Objects::nonNull).forEach(resiUser -> {
String resiId = null; String resiId = null;
//获取用户Id //获取用户Id
if (IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) { if (IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) {
@ -905,28 +908,33 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}); });
//当前条数据原始的id值 resiUser //当前条数据原始的id值 resiUser
Map<String,Object> originalConditionMap = new HashMap<>(); Map<String,Object> originalConditionMap = new ConcurrentHashMap<>();
for (FormItemResult e : formItemMap.getItemMap().values()) { formItemMap.getItemMap().values().parallelStream().forEach(e->{
String columnName = getColumnName(e); String columnName = getColumnName(e);
Object temp = resiUser.get(columnName); Object temp = resiUser.get(columnName);
String vauleStr = temp == null ? StrConstant.EPMETY_STR : temp.toString(); String vauleStr = temp == null ? StrConstant.EPMETY_STR : temp.toString();
originalConditionMap.putIfAbsent(columnName,vauleStr); originalConditionMap.putIfAbsent(columnName,vauleStr);
if ("remote".equals(e.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { if (Constant.OPITON_SOURCE_REMOTE.equals(e.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) {
putRemoteValue(formItemMap.getRemoteItemConditionMap().get(e.getItemId()), currentStaffAgencyId, resiUser,originalConditionMap, e, columnName, vauleStr); putRemoteValue(formItemMap.getRemoteItemConditionMap().get(e.getItemId()), currentStaffAgencyId, resiUser,originalConditionMap, e, columnName, vauleStr);
} else { } else {
putOptionValue(resiUser, e, columnName, vauleStr); putOptionValue(resiUser, e, columnName, vauleStr);
} }
});
} if (IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) {
if (!IcResiUserConstant.IC_RESI_USER.equals(baseTableName)) { //把人放入redis缓存 便于后面的sheet使用基础信息
Map<String,Object> o = redisUtils.hGetAll(RedisKeys.getExportResiBaseInfoKey(resiId)); ResiExportBaseInfoData infoData = ConvertUtils.mapToEntity(resiUser, ResiExportBaseInfoData.class);
if (o != null){ redisTemplate.opsForValue().set(RedisKeys.getExportResiBaseInfoKey(resiId), infoData,RedisUtils.MINUTE_THIRTY_EXPIRE, TimeUnit.SECONDS);
resiUser.putAll(o); } else {
ResiExportBaseInfoData temp = (ResiExportBaseInfoData) redisTemplate.opsForValue().get(RedisKeys.getExportResiBaseInfoKey(resiId));
if (temp != null){
try {
resiUser.putAll(ConvertUtils.entityToMap(temp));
} catch (Exception e) {
log.error("entityToMap exception,temp:{}",temp);
}
} }
return;
} }
//把人放入redis缓存 便于后面的sheet使用基础信息
redisUtils.hMSet(RedisKeys.getExportResiBaseInfoKey(resiId),resiUser,RedisUtils.MINUTE_THIRTY_EXPIRE);
}); });
remoteOptionCacheMap.clear(); remoteOptionCacheMap.clear();
return mapListPage.getResult(); return mapListPage.getResult();
@ -966,7 +974,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Map<String, String> remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); Map<String, String> remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query");
if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) {
remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? "是" : "否")); remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO));
} else if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) { } else if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) {
remoteOptions.forEach((label, value) -> { remoteOptions.forEach((label, value) -> {
if (vauleStr.equals(value)) { if (vauleStr.equals(value)) {
@ -986,7 +994,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
switch (itemTypeEnum) { switch (itemTypeEnum) {
case CHECKBOX: case CHECKBOX:
e.getOptions().forEach(optionDTO -> { e.getOptions().forEach(optionDTO -> {
map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? "是" : "否"); map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? StrConstant.YES : StrConstant.NO);
}); });
break; break;
case SELECT: case SELECT:

20
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java

@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -189,6 +190,20 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
List<IcResiCategoryStatsConfigDTO> icResiCategoryStatsConfigDTOList = statsResult.getData(); List<IcResiCategoryStatsConfigDTO> icResiCategoryStatsConfigDTOList = statsResult.getData();
//获取tableName 和columnName //获取tableName 和columnName
List<IcStatsResiResultDTO> result = new ArrayList<>(); List<IcStatsResiResultDTO> result = new ArrayList<>();
//tableName List<columnName>
Map<String,List<String>> paramMap = new HashMap<>();
icResiCategoryStatsConfigDTOList.forEach(config->{
List<String> list = paramMap.getOrDefault(config.getTableName(), new ArrayList<>());
list.add(config.getColumnName());
paramMap.put(config.getTableName(),list);
});
Map<String,Map<String, BigDecimal>> tableColumnCountMap = new HashMap<>();
paramMap.forEach((tableName,columnList) ->{
Map<String, BigDecimal> countMap = icResiUserDao.getDataAnalyseCount(customerId,tableName,columnList, id,level);
if (countMap != null){
tableColumnCountMap.put(tableName,countMap);
}
});
icResiCategoryStatsConfigDTOList.forEach(item->{ icResiCategoryStatsConfigDTOList.forEach(item->{
IcStatsResiResultDTO resultDTO = new IcStatsResiResultDTO(); IcStatsResiResultDTO resultDTO = new IcStatsResiResultDTO();
resultDTO.setId(item.getId()); resultDTO.setId(item.getId());
@ -197,8 +212,9 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
resultDTO.setHouseShowIcon(item.getHouseShowIcon()); resultDTO.setHouseShowIcon(item.getHouseShowIcon());
resultDTO.setManagementIcon(item.getManagementIcon()); resultDTO.setManagementIcon(item.getManagementIcon());
//根据id ,level 获取count //根据id ,level 获取count
Integer count = icStatsResiWarnDao.countListByLevelAndCol(customerId,item.getTableName(),item.getColumnName(),id,level); //Integer count = icStatsResiWarnDao.countListByLevelAndCol(customerId,item.getTableName(),item.getColumnName(),id,level);
resultDTO.setCount(count); Map<String, BigDecimal> orDefault = tableColumnCountMap.getOrDefault(item.getTableName(), new HashMap<>());
resultDTO.setCount(orDefault.getOrDefault(item.getColumnName(), NumConstant.ZERO_DECIMAL).intValue());
result.add(resultDTO); result.add(resultDTO);
}); });
return result; return result;

30
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -594,4 +594,34 @@
ORDER BY iru.created_time ASC ORDER BY iru.created_time ASC
</select> </select>
<select id="getDataAnalyseCount" resultType="java.util.Map">
SELECT
<foreach collection="columnList" item="item" separator=",">
sum(case ${item} when '1' then 1 else 0 end) ${item}
</foreach>
FROM ic_resi_user
WHERE 1=1
<if test="level != null and level != ''">
<if test="level=='agency'">
AND (CONCAT(PIDS,':', agency_id) like CONCAT('%',#{id},'%'))
</if>
<if test="level=='grid'">
AND GRID_ID = #{id}
</if>
<if test="level=='neighborHood'">
AND VILLAGE_ID = #{id}
</if>
<if test="level=='building'">
AND BUILD_ID = #{id}
</if>
</if>
AND CUSTOMER_ID = #{customerId}
AND DEL_FLAG = 0
AND `STATUS` = '0'
<if test="tableName!='ic_resi_user'">
and ID in (
select IC_RESI_USER from ${tableName} where ${columnName} = '1' and CUSTOMER_ID = #{customerId} and DEL_FLAG = '0'
)
</if>
</select>
</mapper> </mapper>

Loading…
Cancel
Save