Browse Source

项目数据抽取到大屏 设置直接立项的 联系人及电话 其他待调整;修改 获取网格员的条件

dev
jianjun 4 years ago
parent
commit
3de74d7681
  1. 9
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java
  2. 56
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java
  3. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java
  4. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java
  5. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java
  6. 35
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java
  7. 19
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

9
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java

@ -17,11 +17,11 @@
package com.epmet.dto.screen;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 中央区-项目数据
@ -54,6 +54,11 @@ public class ScreenProjectDataDTO implements Serializable {
*/
private String orgId;
/**
* 来源议题issue组织agency
*/
private String origin;
/**
* 上级组织Id
*/

56
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java

@ -22,97 +22,97 @@ import java.util.Set;
public interface UserDao {
/**
* @Description 查询注册用户的总量与增量
* @param
* @return
* @Description 查询注册用户的总量与增量
* @author wangc
* @date 2020.06.18 18:50
**/
CommonTotalAndIncCountResultDTO selectResiTotalAndIncrByLevel(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate")Date targetDate);
**/
CommonTotalAndIncCountResultDTO selectResiTotalAndIncrByLevel(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询党员的总量与增量
* @param
* @return
* @Description 查询党员的总量与增量
* @author wangc
* @date 2020.06.18 18:50
**/
CommonTotalAndIncCountResultDTO selectPartyTotalAndIncr(@Param("userIds") List<String> userIds, @Param("incrUserIds") List<String> incrUserIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询热心居民的总量与增量
* @param
* @return
* @Description 查询热心居民的总量与增量
* @author wangc
* @date 2020.06.18 18:50
**/
CommonTotalAndIncCountResultDTO selectWarmTotalAndIncr(@Param("userIds") List<String> userIds, @Param("incrUserIds") List<String> incrUserIds, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询指定网格范围下单位时间内新增的注册用户Id
* @param
* @return
* @Description 查询指定网格范围下单位时间内新增的注册用户Id
* @author wangc
* @date 2020.06.18 18:50
**/
List<String> selectIncrUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询指定网格范围下截至指定位时间累计的注册用户Id
* @param
* @return
* @Description 查询指定网格范围下截至指定位时间累计的注册用户Id
* @author wangc
* @date 2020.06.18 18:50
**/
List<String> selectTotalUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询指定时间范围内网格新增的注册/参与用户Id
* @param
* @return
* @Description 查询指定时间范围内网格新增的注册/参与用户Id
* @author wangc
* @date 2020.06.18 18:50
**/
List<String> selectIncrUserIdsWithinTimeRange(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("startDate")Date startDate,@Param("endDate")Date endDate);
List<String> selectIncrUserIdsWithinTimeRange(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* @Description 查询指定时间范围内注册/参与用户增量
* @param
* @return
* @Description 查询指定时间范围内注册/参与用户增量
* @author wangc
* @date 2020.06.18 18:50
**/
Integer selectResiIncrWithinTimeRange(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("startDate")Date startDate,@Param("endDate")Date endDate);
Integer selectResiIncrWithinTimeRange(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* @Description 查询指定时间范围内党员的增量
* @param
* @return
* @Description 查询指定时间范围内党员的增量
* @author wangc
* @date 2020.06.18 18:50
**/
Integer selectPartyIncrWithinTimeRange(@Param("incrUserIds")List<String> incrUserIds,@Param("startDate")Date startDate,@Param("endDate")Date endDate);
Integer selectPartyIncrWithinTimeRange(@Param("incrUserIds") List<String> incrUserIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* @Description 查询指定时间范围内热心居民的增量
* @param
* @return
* @Description 查询指定时间范围内热心居民的增量
* @author wangc
* @date 2020.06.18 18:50
**/
Integer selectWarmIncrWithinTimeRange(@Param("incrUserIds")List<String> incrUserIds,@Param("gridIds") Set<String> gridIds,@Param("startDate")Date startDate,@Param("endDate")Date endDate);
Integer selectWarmIncrWithinTimeRange(@Param("incrUserIds") List<String> incrUserIds, @Param("gridIds") Set<String> gridIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* @Description 查询用户是不是党员
* @param userIds
* @Description 查询用户是不是党员
* @author zxc
* @date 2020/9/15 4:23 下午
*/
List<UserPartyResultDTO> selectUserIsParty(@Param("userIds") List<String> userIds);
List<String> selectPartymembersByCustomerId(@Param("customerId")String customerId);
List<String> selectPartymembersByCustomerId(@Param("customerId") String customerId);
List<GridHeartedFormDTO> selectWarmHeartedByCustomerId(@Param("customerId")String customerId);
List<GridHeartedFormDTO> selectWarmHeartedByCustomerId(@Param("customerId") String customerId);
/**
* @param customerId
@ -125,22 +125,22 @@ public interface UserDao {
List<String> selectGridRegUserIds(@Param("customerId") String customerId, @Param("gridId") String gridId);
/**
* @Description 获取客户下的网格注册居民
* @param customerId
* @return
* @Description 获取客户下的网格注册居民
* @author wangc
* @date 2020.09.25 13:54
**/
List<ScreenPartyUserRankDataEntity> selectRegisteredUserByCustomerId(@Param("customerId") String customerId);
/**
* @Description 获取大屏项目相关信息 联系人
* @param list
* @param userIdList
* @return java.util.List<com.epmet.dto.screen.ScreenProjectDataDTO>
* @Description 获取大屏项目相关信息 联系人
* @author wangc
* @date 2021.03.08 17:16
*/
List<ScreenProjectDataDTO> selectScreenProjectData(@Param("list") List<ScreenProjectDataDTO> list);
List<ScreenProjectDataDTO> selectScreenProjectData(@Param("list") List<String> userIdList);
/**
* 根据工作员用户id, 返回这些人当中多少个网格员
@ -148,6 +148,16 @@ public interface UserDao {
* @param staffIds
* @return int
*/
int selectGridManagerTotal(@Param("customerId")String customerId,@Param("staffIds")List<String> staffIds);
int selectGridManagerTotal(@Param("customerId") String customerId, @Param("staffIds") List<String> staffIds);
/**
* desc: 根据Id获取工作人员 昵称及手机号
*
* @param staffUserIdList
* @return java.util.List<com.epmet.dto.screen.ScreenProjectDataDTO>
* @author LiuJanJun
* @date 2021/6/8 5:21 下午
*/
List<ScreenProjectDataDTO> selectStaffInfo(@Param("list") List<String> staffUserIdList);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/project/ProjectEntity.java

@ -46,7 +46,7 @@ public class ProjectEntity extends BaseEpmetEntity {
private String agencyId;
/**
* 来源议题issue
* 来源议题issue组织agency
*/
private String origin;

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.service.evaluationindex.extract.toscreen.impl;
import com.epmet.constant.ProjectConstant;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.screen.ScreenProjectImgDataDTO;
import com.epmet.dto.screen.ScreenProjectProcessAttachmentDTO;
@ -81,11 +82,19 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic
nature.getId())).map(projectInfo -> {
meta.setProjectCreateTime(projectInfo.getCreatedTime());
meta.setProjectTitle(projectInfo.getTitle());
meta.setOrigin(projectInfo.getOrigin());
//直接立项的话 项目内容是项目背景
if (ProjectConstant.PROJECT_ORIGIN_AGENCY.equals(projectInfo.getOrigin())){
meta.setProjectContent(projectInfo.getBackGround());
meta.setLinkName(projectInfo.getCreatedBy());
}
return meta;
})).collect(Collectors.toList());
}
//设置项目经纬度和项目内容
topicService.fillScreenProjectData(metaData);
//metaData = Optional.ofNullable(topicService.getScreenProjectData(metaData)).orElse(metaData);
//设置联系人及电话
userService.fillScreenProjectData(metaData);
//metaData = Optional.ofNullable(userService.getScreenProjectData(metaData)).orElse(metaData);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java

@ -84,7 +84,7 @@ public interface UserService {
* @author wangc
* @date 2021.03.08 17:16
*/
List<ScreenProjectDataDTO> fillScreenProjectData(List<ScreenProjectDataDTO> list);
void fillScreenProjectData(List<ScreenProjectDataDTO> list);
/**
* 返回每个组织或者每个网格下的网格员数量

35
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java

@ -4,6 +4,7 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.ExtractConstant;
import com.epmet.constant.ProjectConstant;
import com.epmet.dao.user.UserDao;
import com.epmet.dto.AgencySubTreeDto;
import com.epmet.dto.extract.form.GridHeartedFormDTO;
@ -744,16 +745,38 @@ public class UserServiceImpl implements UserService {
* @date 2021.03.08 17:16
*/
@Override
public List<ScreenProjectDataDTO> fillScreenProjectData(List<ScreenProjectDataDTO> list) {
List<ScreenProjectDataDTO> collection = userDao.selectScreenProjectData(list);
if(!CollectionUtils.isEmpty(collection)){
list = list.stream().flatMap(target -> collection.stream().filter(res -> StringUtils.equals(target.getLinkName(),res.getTopicId()))
public void fillScreenProjectData(List<ScreenProjectDataDTO> list) {
List<String> topicUserIdList = list.stream().filter(o -> ProjectConstant.PROJECT_ORIGIN_ISSUE.equals(o.getOrigin()))
.map(ScreenProjectDataDTO::getLinkName).distinct().collect(Collectors.toList());
if (CollectionUtils.isEmpty(topicUserIdList)){
return;
}
List<ScreenProjectDataDTO> collection = userDao.selectScreenProjectData(topicUserIdList);
Map<String, ScreenProjectDataDTO> topicUserMap = collection.stream().collect(Collectors.toMap(ScreenProjectDataDTO::getTopicId,o->o,(o1,o2)->o1));
/* if(!CollectionUtils.isEmpty(collection)){
list.stream().flatMap(target -> collection.stream().filter(res -> StringUtils.equals(target.getLinkName(),res.getTopicId()))
.map(merge -> {
target.setLinkName(merge.getLinkName());
target.setLinkMobile(merge.getLinkMobile());
return target;})).collect(Collectors.toList());
return target;}));
}*/
List<String> staffUserIdList = list.stream().filter(o -> ProjectConstant.PROJECT_ORIGIN_AGENCY.equals(o.getOrigin()))
.map(ScreenProjectDataDTO::getLinkName).distinct().collect(Collectors.toList());
if (CollectionUtils.isEmpty(topicUserIdList)){
return;
}
return collection;
List<ScreenProjectDataDTO> staffList = userDao.selectStaffInfo(staffUserIdList);
Map<String, ScreenProjectDataDTO> collect = staffList.stream().collect(Collectors.toMap(ScreenProjectDataDTO::getId,o->o,(o1,o2)->o1));
list.forEach(project->{
ScreenProjectDataDTO userDTO = collect.get(project.getLinkName());
if (userDTO == null){
userDTO = topicUserMap.get(project.getLinkName());
}
if (userDTO != null){
project.setLinkName(userDTO.getLinkName());
project.setLinkMobile(userDTO.getLinkMobile());
}
});
}
/**

19
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

@ -528,8 +528,8 @@
user_base_info
WHERE
del_flag = '0'
<foreach collection="list" item="project" open="AND (" separator=" OR " close=")">
user_id = #{project.linkName}
<foreach collection="list" item="userId" open="AND (" separator=" OR " close=")">
user_id = #{userId}
</foreach>
</select>
@ -550,11 +550,24 @@
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
AND m.ROLE_KEY = 'grid_manager'
AND m.ROLE_KEY = 'grid_member'
)
AND sr.STAFF_ID in
<foreach collection="staffIds" item="staffId" open="(" close=")" separator=",">
#{staffId}
</foreach>
</select>
<select id="selectStaffInfo" resultType="com.epmet.dto.screen.ScreenProjectDataDTO">
SELECT
USER_ID as ID,
REAL_NAME AS linkName,
MOBILE AS linkMobile
FROM
customer_staff
WHERE
del_flag = '0'
<foreach collection="list" item="userId" open="AND (" separator=" OR " close=")">
user_id = #{userId}
</foreach>
</select>
</mapper>

Loading…
Cancel
Save