Browse Source

Merge remote-tracking branches 'remotes/origin/dev_bugfix_ljj' and 'remotes/origin/dev_optimize_query' into shibei_master

# Conflicts:
#	epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
#	epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java
#	epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
release
jianjun 4 years ago
parent
commit
a8e540709c
  1. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java
  3. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java
  4. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java
  5. 2
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml
  6. 82
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  7. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java
  8. 57
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java
  9. 30
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java

@ -128,7 +128,7 @@ public interface ProjectProcessDao extends BaseDao<ProjectProcessEntity> {
* @author wangc
* @date 2020.10.23 11:13
*/
List<ProjectOrgPeriodResultDTO> selectProjectOrgPeriodDirectly(@Param("customerId") String customerId, @Param("projectId") String projectId);
List<ProjectOrgPeriodResultDTO> selectProjectOrgPeriodDirectly(@Param("customerId") String customerId, @Param("datetId")String datetId, @Param("projectId") String projectId);
/**
* @param projects

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java

@ -452,7 +452,7 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
@Override
public void extractProjectPeriodData(ExtractOriginFormDTO param) {
List<ProjectOrgPeriodResultDTO> extractData =
projectProcessService.getProjectPeriodDirectly(param.getCustomerId(), param.getObjectId());
projectProcessService.getProjectPeriodDirectly(param.getCustomerId(), param.getDateId(), param.getObjectId());
List<FactOriginProjectOrgPeriodDailyEntity> formattingData = new LinkedList<>();
extractData.forEach(original -> {
FactOriginProjectOrgPeriodDailyEntity dest

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java

@ -112,7 +112,7 @@ public interface ProjectProcessService extends BaseService<ProjectProcessEntity>
* @author wangc
* @date 2020.10.23 09:10
*/
List<ProjectOrgPeriodResultDTO> getProjectPeriodDirectly(String customerId, String projectId);
List<ProjectOrgPeriodResultDTO> getProjectPeriodDirectly(String customerId, String datetId, String projectId);
/**
* 获取办结组织

6
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java

@ -101,15 +101,15 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
* @Description 直接从项目业务改造获取项目节点耗时信息
* @param
* @param customerId
* @param date
* @param datetId
* @param projectId
* @return java.util.List<com.epmet.dto.project.result.ProjectOrgPeriodResultDTO>
* @author wangc
* @date 2020.10.23 09:10
*/
@Override
public List<ProjectOrgPeriodResultDTO> getProjectPeriodDirectly(String customerId, String projectId) {
return baseDao.selectProjectOrgPeriodDirectly(customerId, projectId);
public List<ProjectOrgPeriodResultDTO> getProjectPeriodDirectly(String customerId, String datetId, String projectId) {
return baseDao.selectProjectOrgPeriodDirectly(customerId, datetId, projectId);
}
@Override

2
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml

@ -177,7 +177,7 @@
FROM PROJECT_STAFF staff
INNER JOIN PROJECT_ORG_RELATION relation ON staff.ID = relation.PROJECT_STAFF_ID AND relation.DEL_FLAG = '0'
AND (DATE_FORMAT(FIRST_DEALT_DATE,"%Y%m%d") &gt;= #{datetId} OR DATE_FORMAT(HANDLED_DATE,"%Y%m%d") &gt;= #{datetId} OR DATE_FORMAT(INFORMED_DATE,"%Y%m%d") &gt;= #{datetId})
WHERE staff.DEL_FLAG = '0'
<if test="projectId != null and projectId != ''">
AND staff.PROJECT_ID = #{projectId}

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.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -65,109 +66,111 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* 查询主表
*
* @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
* @date 2021/10/28 11:20 上午
*/
List<Map<String, Object>> selectListMapById(@Param("customerId") String customerId,
@Param("icResiUserId")String icResiUserId);
@Param("icResiUserId") String icResiUserId);
/**
* 根据ic_resi_user.id去查询各个子表记录动态传入表名
*
* @param icResiUserId
* @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
* @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("subTableName") String subTableName);
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 conditions 前端传入的查询入参
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @param conditions 前端传入的查询入参
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author yinzuomei
* @date 2021/11/2 10:35 上午
*/
List<Map<String,Object>> dynamicQuery(@Param("customerId")String customerId,
@Param("resultTableName")String resultTableName,
@Param("conditions") List<ResiUserQueryValueDTO> conditions,
@Param("subTables") List<String> subTables,
@Param("currentStaffAgencyId")String currentStaffAgencyId,
@Param("staffOrgPath")String staffOrgPath);
List<Map<String, Object>> dynamicQuery(@Param("customerId") String customerId,
@Param("resultTableName") String resultTableName,
@Param("conditions") List<ResiUserQueryValueDTO> conditions,
@Param("subTables") List<String> subTables,
@Param("currentStaffAgencyId") String currentStaffAgencyId,
@Param("staffOrgPath") String staffOrgPath);
/**
* @Description 查询个人信息
* @param userId
* @Description 查询个人信息
* @author zxc
* @date 2021/11/3 10:28 上午
*/
PersonDataResultDTO personData(@Param("userId") String userId);
/**
* @Description 根据名字组织查询人
* @param name
* @param agencyId
* @Description 根据名字组织查询人
* @author zxc
* @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);
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")
Map<String, Map<String, String>> getHomeUserCategoryCount(@Param("buildId") String buildId);
/**
* @Description 根据userId查询志愿者
* @param userId
* @Description 根据userId查询志愿者
* @author zxc
* @date 2021/11/5 5:44 下午
*/
List<String> selectVolunteerByUserId(@Param("userId")String userId);
List<String> selectVolunteerByUserId(@Param("userId") String userId);
/**
* @Description 查询人员类别
* @param columns
* @Description 查询人员类别
* @author zxc
* @date 2021/11/8 1:50 下午
*/
Map<String,String> selectPersonType(@Param("columns")List<String> columns,@Param("customerId")String customerId,
@Param("tableName")String tableName,@Param("userId")String userId);
Map<String, String> selectPersonType(@Param("columns") List<String> columns, @Param("customerId") String customerId,
@Param("tableName") String tableName, @Param("userId") String userId);
/**
* @Author sun
* @Description 查询居民信息
**/
IcResiUserDTO getResiUser(IcResiUserDTO dto);
/**
*
* @param agencyId
* @param gridId
* @param name
* @return
*/
List<DemandUserResDTO> selectDemandUsers(@Param("agencyId") String agencyId,
@Param("gridId")String gridId,
@Param("name")String name);
@Param("gridId") String gridId,
@Param("name") String name);
IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId,
@Param("idNum")String idNum,
@Param("icResiUserId")String icResiUserId);
IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId,
@Param("idNum") String idNum,
@Param("icResiUserId") String icResiUserId);
/**
* 获取居民名称家属名称和id
*
* @param isResiUserId
* @return
*/
@ -184,6 +187,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/**
* 组织内党员年龄范围统计
*
* @Param orgType
* @Param orgId
* @Return {@link List< OptionDataResultDTO>}
@ -194,6 +198,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/**
* 获取年龄范围内党员列表
*
* @Param orgType
* @Param orgId
* @Param min
@ -208,6 +213,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/**
* 党员文化程度统计
*
* @Param orgType
* @Param orgId
* @Return {@link List< OptionDataResultDTO>}
@ -218,6 +224,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
/**
* 按教育程度获取党员列表
*
* @Param orgType
* @Param orgId
* @Param code
@ -226,7 +233,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @Date 2021/12/10 17:24
*/
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);
@ -239,4 +246,19 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<String> icUserCustomerIds();
List<Map<String, String>> getIcUserList(@Param("customerId") String customerId);
/**
* 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);
}

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

@ -18,7 +18,6 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcResiCategoryStatsConfigDTO;
import com.epmet.dto.PersonWarnLeftPieDTO;
import com.epmet.dto.result.UserWarnNameListResultDTO;
import com.epmet.entity.IcStatsResiWarnEntity;
@ -39,6 +38,7 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
List<IcStatsResiWarnEntity> selectResiWarnByAgencyId(@Param("customerId") String customerId,@Param("agencyId") String agencyId);
@Deprecated
List<Map<String,String>> userWarnList(@Param("customerId") String customerId,
@Param("buildingIdList") List<String> buildingIdList,
@Param("tableName") String tableName,
@ -48,7 +48,7 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
@Param("buildingIdList") List<String> buildingIdList,
@Param("tableName") String tableName,
@Param("columnName") String columnName);
@Deprecated
Integer countListByLevelAndCol(
@Param("customerId") String customerId,
@Param("tableName") String tableName,
@ -76,4 +76,4 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
List<Map<String,String>> selectCategoryCountByColumn(@Param("columnNames") List<String> columnNames,@Param("agencyId")String agencyId);
}
}

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

@ -2,6 +2,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
@ -9,8 +10,6 @@ import com.epmet.dao.IcResiUserDao;
import com.epmet.dao.IcStatsResiWarnDao;
import com.epmet.dto.IcResiCategoryStatsConfigDTO;
import com.epmet.dto.IcResiCategoryWarnConfigDTO;
import com.epmet.dto.PersonWarnLeftPieDTO;
import com.epmet.dto.form.CategoryCountListFormDTO;
import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO;
import com.epmet.dto.form.StatsResiListFormDTO;
import com.epmet.dto.result.*;
@ -20,6 +19,7 @@ import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcStatsResiWarnService;
import com.epmet.service.StatsResiWarnService;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -159,26 +160,21 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
IcResiCategoryWarnConfigDTO icResiCategoryWarnConfigDTO = warnResult.getData();
//根据buildingID,tableName he columnName获取名字
// List<Map<String, String>> maps = icStatsResiWarnDao.userWarnList(customerId,buildingIdList, icResiCategoryWarnConfigDTO.getTableName(), icResiCategoryWarnConfigDTO.getColumnName());
List<UserWarnNameListResultDTO> dtos = icStatsResiWarnDao.userWarnListDTO(customerId, buildingIdList, icResiCategoryWarnConfigDTO.getTableName(), icResiCategoryWarnConfigDTO.getColumnName());
// result.forEach(item->{
// item.setConfigId(configId);
// List<Map<String, String>> buildingIds = maps.stream().filter(map -> item.getBuildingId().equals(map.get("buildingId"))).collect(Collectors.toList());
// item.setResidentNames(CollectionUtils.isEmpty(buildingIds)?"":buildingIds.get(0).get("residentNames"));
// });
if (!CollectionUtils.isEmpty(dtos)){
Map<String, List<UserWarnNameListResultDTO>> groupByBuild = dtos.stream().collect(Collectors.groupingBy(UserWarnNameListResultDTO::getBuildingId));
result.forEach(item->{
item.setConfigId(configId);
groupByBuild.forEach((k,v) -> {
if (item.getBuildingId().equals(k)){
item.setUserList(v);
}
//限制条数 一栋楼内最多显示1000 即可
PageHelper.startPage(NumConstant.ONE,NumConstant.ONE_THOUSAND,false).doSelectPage(()->{
List<UserWarnNameListResultDTO> dtos = icStatsResiWarnDao.userWarnListDTO(customerId, buildingIdList, icResiCategoryWarnConfigDTO.getTableName(), icResiCategoryWarnConfigDTO.getColumnName());
if (!CollectionUtils.isEmpty(dtos)){
Map<String, List<UserWarnNameListResultDTO>> groupByBuild = dtos.stream().collect(Collectors.groupingBy(UserWarnNameListResultDTO::getBuildingId));
result.forEach(item->{
item.setConfigId(configId);
groupByBuild.forEach((k,v) -> {
if (item.getBuildingId().equals(k)){
item.setUserList(v);
}
});
});
});
}
}
});
return mapResult;
}
@ -194,6 +190,20 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
List<IcResiCategoryStatsConfigDTO> icResiCategoryStatsConfigDTOList = statsResult.getData();
//获取tableName 和columnName
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->{
IcStatsResiResultDTO resultDTO = new IcStatsResiResultDTO();
resultDTO.setId(item.getId());
@ -202,8 +212,9 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
resultDTO.setHouseShowIcon(item.getHouseShowIcon());
resultDTO.setManagementIcon(item.getManagementIcon());
//根据id ,level 获取count
Integer count = icStatsResiWarnDao.countListByLevelAndCol(customerId,item.getTableName(),item.getColumnName(),id,level);
resultDTO.setCount(count);
//Integer count = icStatsResiWarnDao.countListByLevelAndCol(customerId,item.getTableName(),item.getColumnName(),id,level);
Map<String, BigDecimal> orDefault = tableColumnCountMap.getOrDefault(item.getTableName(), new HashMap<>());
resultDTO.setCount(orDefault.getOrDefault(item.getColumnName(), NumConstant.ZERO_DECIMAL).intValue());
result.add(resultDTO);
});
return result;

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

@ -621,4 +621,34 @@
ORDER BY iru.created_time ASC
</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>

Loading…
Cancel
Save