Browse Source

群众不满

dev_shibei_match
zxc 4 years ago
parent
commit
b6cb2fc5b5
  1. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
  2. 41
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ProjectCategoryDisPoseResultDTO.java
  3. 9
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  4. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  5. 17
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java
  6. 10
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java
  7. 13
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java
  8. 39
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java
  9. 14
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml
  10. 43
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MassesDiscontentFormDTO.java
  11. 62
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MassesDiscontentResultDTO.java
  12. 31
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectScoreResultDTO.java
  13. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
  14. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java
  15. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java
  16. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  17. 12
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java
  18. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java
  19. 102
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java
  20. 15
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml
  21. 14
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  22. 24
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml
  23. 42
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicInfoResultDTO.java
  24. 11
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  25. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  26. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  27. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  28. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  29. 27
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  30. 25
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

4
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java

@ -48,6 +48,10 @@ public interface NumConstant {
int MAX = 99999999;
int EIGHTY_EIGHT = 88;
int EIGHTY = 80;
int NINETY = 90;
int ONE_HUNDRED_AND_EIGHTY = 180;
int THREE_HUNDRED_AND_SIXTY_FIVE = 365;
int SEVENTY_FIVE = 75;
double ZERO_DOT_ZERO = 0.0;

41
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ProjectCategoryDisPoseResultDTO.java

@ -0,0 +1,41 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/5/17 10:36 上午
* @DESC
*/
@Data
public class ProjectCategoryDisPoseResultDTO implements Serializable {
private static final long serialVersionUID = -2434579745274187160L;
/**
* 项目ID
*/
private String projectId;
/**
* 查询传参
*/
private String categoryCode;
/**
* mysql查询接收结果
*/
private String categoryName;
/**
* 反参
*/
private String projectCategory;
/**
* 客户ID
*/
private String customerId;
}

9
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java

@ -309,4 +309,13 @@ public interface GovIssueOpenFeignClient {
**/
@PostMapping(value = "/gov/issue/issue/getissuelist")
Result<List<IssueDTO>> getIssueList(@RequestParam String customerId);
/**
* @Description 查询项目分类标签
* @Param list
* @author zxc
* @date 2021/5/17 1:51 下午
*/
@PostMapping(value = "/gov/issue/issueprojectcategorydict/getprojectcategory")
Result<List<ProjectCategoryDisPoseResultDTO>> getProjectCategory(@RequestBody List<ProjectCategoryDisPoseResultDTO> list);
}

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java

@ -261,4 +261,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
public Result<List<IssueDTO>> getIssueList(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getIssueList", customerId);
}
@Override
public Result<List<ProjectCategoryDisPoseResultDTO>> getProjectCategory(List<ProjectCategoryDisPoseResultDTO> list) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getProjectCategory", list);
}
}

17
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java

@ -32,10 +32,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CategoryTagResultDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.CustomerCategoryResultDTO;
import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IssueProjectCategoryDictEntity;
import com.epmet.excel.IssueProjectCategoryDictExcel;
import com.epmet.project.dto.CustomerCategoryDTO;
@ -268,5 +265,17 @@ public class IssueProjectCategoryDictController {
return new Result<CategoryTagResultDTO>().ok(issueProjectCategoryDictService.getCategoryTagList(formDTO));
}
/**
* @Description 查询项目分类标签
* @Param list
* @author zxc
* @date 2021/5/17 1:51 下午
*/
@PostMapping("getprojectcategory")
public Result<List<ProjectCategoryDisPoseResultDTO>> getProjectCategory(@RequestBody List<ProjectCategoryDisPoseResultDTO> list){
return new Result<List<ProjectCategoryDisPoseResultDTO>>().ok(issueProjectCategoryDictService.getProjectCategory(list));
}
}

10
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java

@ -24,6 +24,7 @@ import com.epmet.dto.form.IsDisableCategoryFormDTO;
import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.CustomerCategoryResultDTO;
import com.epmet.dto.result.ProjectCategoryDisPoseResultDTO;
import com.epmet.entity.IssueProjectCategoryDictEntity;
import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import org.apache.ibatis.annotations.Mapper;
@ -173,4 +174,13 @@ public interface IssueProjectCategoryDictDao extends BaseDao<IssueProjectCategor
* @Author sun
**/
List<IssueProjectCategoryDictDTO> getCategoryList(@Param("customerId") String customerId, @Param("categoryIdList") List<String> categoryIdList);
/**
* @Description 查询项目分类标签
* @Param list
* @author zxc
* @date 2021/5/17 1:51 下午
*/
List<ProjectCategoryDisPoseResultDTO> getProjectCategory(@Param("list") List<ProjectCategoryDisPoseResultDTO> list,@Param("customerId") String customerId);
}

13
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java

@ -22,10 +22,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CategoryTagResultDTO;
import com.epmet.dto.result.CustomerCategoryListResultDTO;
import com.epmet.dto.result.CustomerCategoryResultDTO;
import com.epmet.dto.result.ProjectIssueCategoryResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IssueProjectCategoryDictEntity;
import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import org.springframework.web.bind.annotation.RequestBody;
@ -216,4 +213,12 @@ public interface IssueProjectCategoryDictService extends BaseService<IssueProjec
* @Author sun
**/
CategoryTagResultDTO getCategoryTagList(CategoryTagListFormDTO formDTO);
/**
* @Description 查询项目分类标签
* @Param list
* @author zxc
* @date 2021/5/17 1:51 下午
*/
List<ProjectCategoryDisPoseResultDTO> getProjectCategory(List<ProjectCategoryDisPoseResultDTO> list);
}

39
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java

@ -472,4 +472,43 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssuePr
return resultDTO;
}
/**
* @Description 查询项目分类标签
* @Param list
* @author zxc
* @date 2021/5/17 1:51 下午
*/
@Override
public List<ProjectCategoryDisPoseResultDTO> getProjectCategory(List<ProjectCategoryDisPoseResultDTO> list) {
String customerId = list.get(NumConstant.ZERO).getCustomerId();
List<ProjectCategoryDisPoseResultDTO> projectCategory = baseDao.getProjectCategory(list, customerId);
if (CollectionUtils.isEmpty(projectCategory)){
return new ArrayList<>();
}
List<ProjectCategoryDisPoseResultDTO> result = new ArrayList<>();
Map<String, List<ProjectCategoryDisPoseResultDTO>> groupByProject = projectCategory.stream().collect(Collectors.groupingBy(ProjectCategoryDisPoseResultDTO::getProjectId));
groupByProject.forEach((projectId,categoryList) -> {
ProjectCategoryDisPoseResultDTO p = new ProjectCategoryDisPoseResultDTO();
p.setProjectId(projectId);
p.setProjectCategory(disposeCategory(categoryList));
result.add(p);
});
return result;
}
/**
* @Description 项目分类处理
* @Param list
* @author zxc
* @date 2021/5/17 2:16 下午
*/
public String disposeCategory(List<ProjectCategoryDisPoseResultDTO> list){
String result = "";
if (!CollectionUtils.isEmpty(list)){
list.forEach(l -> {
result.concat(l.getCategoryName()).concat(",");
});
}
return result.substring(NumConstant.ZERO,result.length()-NumConstant.ONE);
}
}

14
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml

@ -230,6 +230,20 @@
sort ASC
</select>
<!-- 查询项目分类标签 -->
<select id="getProjectCategory" resultType="com.epmet.dto.result.ProjectCategoryDisPoseResultDTO">
<foreach collection="list" item="l" separator=" UNION ALL ">
SELECT
#{l.projectId} AS projectId,
CATEGORY_NAME
FROM issue_project_category_dict
WHERE DEL_FLAG = '0'
AND IS_DISABLE = 'enable'
AND CUSTOMER_ID = #{customerId}
AND CATEGORY_CODE = #{l.categoryCode}
</foreach>
</select>
<update id="updateIssueProjectCategoryDict">
UPDATE issue_project_category_dict
SET

43
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MassesDiscontentFormDTO.java

@ -0,0 +1,43 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/5/13 5:16 下午
* @DESC
*/
@Data
public class MassesDiscontentFormDTO implements Serializable {
private static final long serialVersionUID = -9104774532905137856L;
public interface MassesDiscontentForm{}
/**
* 时间区间,三个月threeMonth半年sixMonth一年twelveMonth
* 一个月按照30天三个月90天半年180天一年365天
*/
private String timeSection;
/**
* asc:分数由低到高
* desc:分数由高到低
*/
private String sortType;
/**
* 组织ID
*/
private String agencyId;
@NotNull(message = "pageNo不能为空",groups = MassesDiscontentForm.class)
private Integer pageNo;
@NotNull(message = "pageSize不能为空",groups = MassesDiscontentForm.class)
private Integer pageSize;
}

62
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MassesDiscontentResultDTO.java

@ -0,0 +1,62 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/5/14 9:04 上午
* @DESC
*/
@Data
public class MassesDiscontentResultDTO implements Serializable {
private static final long serialVersionUID = 8954504790464516198L;
/**
* 项目ID
*/
private String projectId;
/**
* 议题ID
*/
private String issueId;
/**
* 话题所在网格
*/
private String gridName;
/**
* 话题图片
*/
private List<String> photos;
/**
* 话题内容
*/
private String topicContent;
/**
* 项目分类标签
*/
private String projectCategory;
/**
* 项目评价分数
*/
@JsonIgnore
private Integer score;
public MassesDiscontentResultDTO() {
this.gridName = "";
this.photos = new ArrayList<>();
this.topicContent = "";
this.projectCategory = "";
}
}

31
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectScoreResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/5/18 1:29 下午
* @DESC
*/
@Data
public class ProjectScoreResultDTO implements Serializable {
private static final long serialVersionUID = 8559486245200043097L;
/**
* 项目ID
*/
private String projectId;
/**
* 项目评价分数
*/
private Integer score;
/**
* 议题ID
*/
private String issueId;
}

14
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java

@ -174,4 +174,18 @@ public interface ProjectConstant {
String NOT_EXIST_PROJECT = "未查询带此项目信息......";
String EXTERNAL_SYSTEM = "third_platform_project_send";
/**
* 三个月六个月12个月
*/
String THREE_MONTH = "threeMonth";
String SIX_MONTH = "sixMonth";
String TWELVE_MONTH = "twelveMonth";
/**
* 排序
*/
String SORT_ASC = "asc";
String SORT_DESC = "desc";
}

14
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java

@ -26,7 +26,9 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.form.MassesDiscontentFormDTO;
import com.epmet.dto.form.ProjectEvaluateScoreFormDTO;
import com.epmet.dto.result.MassesDiscontentResultDTO;
import com.epmet.dto.result.ProjectEvaluateScoreResultDTO;
import com.epmet.excel.ProjectSatisfactionStatisticsExcel;
import com.epmet.service.ProjectSatisfactionStatisticsService;
@ -105,4 +107,16 @@ public class ProjectSatisfactionStatisticsController {
return new Result<ProjectEvaluateScoreResultDTO>().ok(projectSatisfactionStatisticsService.projectEvaluateScore(formDTO));
}
/**
* @Description 群众不满
* @Param formDTO
* @author zxc
* @date 2021/5/14 10:46 上午
*/
@PostMapping("massesdiscontent")
public Result<List<MassesDiscontentResultDTO>> massesDiscontent(@RequestBody MassesDiscontentFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, MassesDiscontentFormDTO.MassesDiscontentForm.class);
return new Result<List<MassesDiscontentResultDTO>>().ok(projectSatisfactionStatisticsService.massesDiscontent(formDTO));
}
}

9
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java

@ -20,6 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ProjectCategoryDTO;
import com.epmet.dto.form.DelCategoryFormDTO;
import com.epmet.dto.result.ProjectCategoryDisPoseResultDTO;
import com.epmet.entity.ProjectCategoryEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -52,4 +53,12 @@ public interface ProjectCategoryDao extends BaseDao<ProjectCategoryEntity> {
* @Author sun
**/
List<ProjectCategoryDTO> selectProjectCategoryList(DelCategoryFormDTO formDTO);
/**
* @Description 根据项目ID查询项目分类
* @Param projectIds
* @author zxc
* @date 2021/5/17 10:47 上午
*/
List<ProjectCategoryDisPoseResultDTO> selectCategoryByIds(@Param("projectIds")List<String> projectIds);
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java

@ -147,4 +147,14 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
@Param("customerId") String customerId);
ProjectInfoDTO queryProjectInfoByProjectId(String projectId);
/**
* @Description 查询时间段内的项目ID
* @Param agencyId
* @Param startDate
* @Param endDate
* @author zxc
* @date 2021/5/14 1:59 下午
*/
List<MassesDiscontentResultDTO> selectProjectIdByTime(@Param("agencyId")String agencyId,@Param("endDate")Integer endDate,@Param("startDate")Integer startDate);
}

12
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java

@ -18,10 +18,14 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.MassesDiscontentResultDTO;
import com.epmet.dto.result.ProjectScoreResultDTO;
import com.epmet.entity.ProjectSatisfactionStatisticsEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 项目满意度调查统计表
*
@ -39,4 +43,12 @@ public interface ProjectSatisfactionStatisticsDao extends BaseDao<ProjectSatisfa
*/
ProjectSatisfactionStatisticsEntity selectInfoByProjectId(@Param("projectId")String projectId);
/**
* @Description 查询评价分数小于xx分的项目
* @Param projectIds
* @author zxc
* @date 2021/5/17 9:59 上午
*/
List<MassesDiscontentResultDTO> selectProjectByScore(@Param("projectIds")List<String> projectIds, @Param("setScore")Integer setScore, @Param("sortType")String sortType);
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java

@ -20,7 +20,9 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.form.MassesDiscontentFormDTO;
import com.epmet.dto.form.ProjectEvaluateScoreFormDTO;
import com.epmet.dto.result.MassesDiscontentResultDTO;
import com.epmet.dto.result.ProjectEvaluateScoreResultDTO;
import com.epmet.entity.ProjectSatisfactionStatisticsEntity;
@ -102,4 +104,12 @@ public interface ProjectSatisfactionStatisticsService extends BaseService<Projec
* @date 2021/5/13 11:18 上午
*/
ProjectEvaluateScoreResultDTO projectEvaluateScore(ProjectEvaluateScoreFormDTO formDTO);
/**
* @Description 群众不满
* @Param formDTO
* @author zxc
* @date 2021/5/14 10:46 上午
*/
List<MassesDiscontentResultDTO> massesDiscontent(MassesDiscontentFormDTO formDTO);
}

102
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java

@ -21,24 +21,42 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ProjectConstant;
import com.epmet.dao.ProjectCategoryDao;
import com.epmet.dao.ProjectDao;
import com.epmet.dao.ProjectSatisfactionStatisticsDao;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.form.MassesDiscontentFormDTO;
import com.epmet.dto.form.ProjectEvaluateScoreFormDTO;
import com.epmet.dto.result.MassesDiscontentResultDTO;
import com.epmet.dto.result.ProjectCategoryDisPoseResultDTO;
import com.epmet.dto.result.ProjectEvaluateScoreResultDTO;
import com.epmet.dto.result.ProjectScoreResultDTO;
import com.epmet.entity.ProjectSatisfactionStatisticsEntity;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.redis.ProjectSatisfactionStatisticsRedis;
import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.service.ProjectSatisfactionStatisticsService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 项目满意度调查统计表
@ -51,6 +69,14 @@ public class ProjectSatisfactionStatisticsServiceImpl extends BaseServiceImpl<Pr
@Autowired
private ProjectSatisfactionStatisticsRedis projectSatisfactionStatisticsRedis;
@Autowired
private ProjectDao projectDao;
@Autowired
private ProjectCategoryDao projectCategoryDao;
@Autowired
private GovIssueOpenFeignClient issueOpenFeignClient;
@Autowired
private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
@Override
public PageData<ProjectSatisfactionStatisticsDTO> page(Map<String, Object> params) {
@ -125,4 +151,80 @@ public class ProjectSatisfactionStatisticsServiceImpl extends BaseServiceImpl<Pr
return new ProjectEvaluateScoreResultDTO((noEvalScore + realEvalScore) / shouldEvaluateCount);
}
/**
* @Description 群众不满
* @Param formDTO
* @author zxc
* @date 2021/5/14 10:46 上午
*/
@Override
public List<MassesDiscontentResultDTO> massesDiscontent(MassesDiscontentFormDTO formDTO) {
List<MassesDiscontentResultDTO> projectIds = projectDao.selectProjectIdByTime(formDTO.getAgencyId(), getDateId("yesterday"), getDateId(formDTO.getTimeSection()));
if (CollectionUtils.isEmpty(projectIds)){
return new ArrayList<>();
}
PageInfo<MassesDiscontentResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectProjectByScore(projectIds.stream().map(m -> m.getProjectId()).collect(Collectors.toList()), NumConstant.SEVENTY_FIVE, formDTO.getSortType()));
List<MassesDiscontentResultDTO> projects = pageInfo.getList();
if (CollectionUtils.isEmpty(projects)){
return new ArrayList<>();
}
List<ProjectCategoryDisPoseResultDTO> projectCategoryDisPoseResultDTOS = projectCategoryDao.selectCategoryByIds(projects.stream().map(m -> m.getProjectId()).collect(Collectors.toList()));
List<ProjectCategoryDisPoseResultDTO> projectCategoryData = new ArrayList<>();
if (!CollectionUtils.isEmpty(projectCategoryDisPoseResultDTOS)){
Result<List<ProjectCategoryDisPoseResultDTO>> projectCategory = issueOpenFeignClient.getProjectCategory(projectCategoryDisPoseResultDTOS);
if (!projectCategory.success()){
throw new RenException("查询项目分类标签失败".concat(projectCategory.getMsg()));
}
projectCategoryData = projectCategory.getData();
}
Result<List<TopicInfoResultDTO>> topicInfos = resiGroupOpenFeignClient.getTopicInfos(projects.stream().map(m -> m.getIssueId()).collect(Collectors.toList()));
if (!topicInfos.success()){
throw new RenException("查询话题信息失败".concat(topicInfos.getMsg()));
}
List<ProjectCategoryDisPoseResultDTO> finalProjectCategoryData = projectCategoryData;
projects.forEach(p -> {
if (!CollectionUtils.isEmpty(finalProjectCategoryData)){
finalProjectCategoryData.forEach(cate -> {
if (p.getProjectId().equals(cate.getProjectId())){
p.setProjectCategory(cate.getProjectCategory());
}
});
}
if (!CollectionUtils.isEmpty(topicInfos.getData())){
topicInfos.getData().forEach(t -> {
if (p.getIssueId().equals(t.getIssueId())){
p.setGridName(t.getGridName());
p.setTopicContent(t.getTopicContent());
p.setPhotos(t.getPhotos());
}
});
}
});
return projects;
}
/**
* @Description 处理时间
* @Param dateType
* @author zxc
* @date 2021/5/18 2:28 下午
*/
public Integer getDateId(String dateType){
String beforeNDay = DateUtils.getBeforeNDay(NumConstant.ONE);
Integer result = Integer.valueOf(beforeNDay);
switch (dateType) {
case ProjectConstant.THREE_MONTH:
result = Integer.valueOf(DateUtils.getBeforeNDay(NumConstant.NINETY));
break;
case ProjectConstant.SIX_MONTH:
result = Integer.valueOf(DateUtils.getBeforeNDay(NumConstant.ONE_HUNDRED_AND_EIGHTY));
break;
case ProjectConstant.TWELVE_MONTH:
result = Integer.valueOf(DateUtils.getBeforeNDay(NumConstant.THREE_HUNDRED_AND_SIXTY_FIVE));
break;
default:
}
return result;
}
}

15
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml

@ -35,4 +35,19 @@
project_id = #{projectId}
</delete>
<!-- 根据项目ID查询项目分类 -->
<select id="selectCategoryByIds" resultType="com.epmet.dto.result.ProjectCategoryDisPoseResultDTO">
SELECT
PROJECT_ID,
CATEGORY_CODE,
CUSTOMER_ID
FROM project_category
WHERE DEL_FLAG = '0'
AND (
<foreach collection="projectIds" item="projectId" separator=" OR ">
PROJECT_ID = #{projectId}
</foreach>
)
</select>
</mapper>

14
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -269,4 +269,18 @@
where P.DEL_FLAG='0'
AND p.id=#{projectId}
</select>
<!-- 查询时间段内的项目ID -->
<select id="selectProjectIdByTime" resultType="com.epmet.dto.result.MassesDiscontentResultDTO">
SELECT
ID AS projectId,
ORIGIN_ID AS issueId
FROM project
WHERE
DEL_FLAG = '0'
AND DATE_FORMAT(CREATED_TIME,'%Y%m%d') >= #{startDate}
AND DATE_FORMAT(CREATED_TIME,'%Y%m%d') <![CDATA[ <= ]]> #{endDate}
AND ORG_ID_PATH LIKE CONCAT('%',#{agencyId},'%')
</select>
</mapper>

24
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml

@ -8,5 +8,29 @@
select * from project_satisfaction_statistics where DEL_FLAG = '0' AND PROJECT_ID = #{projectId}
</select>
<!-- 查询评价分数小于xx分的项目 -->
<select id="selectProjectByScore" resultType="com.epmet.dto.result.MassesDiscontentResultDTO">
select a.* from
(SELECT
s.PROJECT_ID,
p.ORIGIN_ID AS issueId,
IFNULL((((s.SHOULD_EVALUATE_COUNT - s.GOOD_COUNT - s.BAD_COUNT - s.PERFECT_COUNT) * 80 + s.BAD_COUNT * 60 + s.GOOD_COUNT * 80 + s.PERFECT_COUNT * 100 )/ s.SHOULD_EVALUATE_COUNT),0) AS score
FROM project_satisfaction_statistics s
LEFT JOIN project p on p.id = s.PROJECT_ID AND p.DEL_FLAG = '0'
WHERE s.DEL_FLAG = '0'
AND (
<foreach collection="projectIds" item="projectId" separator=" OR ">
s.PROJECT_ID = #{projectId}
</foreach>
)) a
where score <![CDATA[ < ]]> #{setScore}
<if test="sortType == 'desc' ">
ORDER BY score DESC
</if>
<if test="sortType == 'asc' ">
ORDER BY score ASC
</if>
</select>
</mapper>

42
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicInfoResultDTO.java

@ -0,0 +1,42 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/5/17 2:44 下午
* @DESC
*/
@Data
public class TopicInfoResultDTO implements Serializable {
private static final long serialVersionUID = 4068679301595597877L;
/**
* 议题ID
*/
private String issueId;
/**
* 话题所在网格
*/
private String gridName;
/**
* 网格ID
*/
private String gridId;
/**
* 话题图片
*/
private List<String> photos;
/**
* 话题内容
*/
private String topicContent;
}

11
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java

@ -10,6 +10,7 @@ import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.result.*;
import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO;
import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.cloud.openfeign.FeignClient;
@ -253,4 +254,14 @@ public interface ResiGroupOpenFeignClient {
*/
@PostMapping("resi/group/group/groupPointDetail/{groupId}")
Result<GroupPointDetailResultDTO> groupPointDetail(@PathVariable String groupId);
/**
* @Description 查询话题信息
* @Param issueIds
* @author zxc
* @date 2021/5/17 4:19 下午
*/
@PostMapping("resi/group/topic/gettopicinfos")
Result<List<TopicInfoResultDTO>> getTopicInfos(@RequestBody List<String> issueIds);
}

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java

@ -10,6 +10,7 @@ import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.result.*;
import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component;
@ -198,4 +199,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
public Result<GroupPointDetailResultDTO> groupPointDetail(String groupId) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", groupId);
}
@Override
public Result<List<TopicInfoResultDTO>> getTopicInfos(List<String> issueIds) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getTopicInfos", issueIds);
}
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java

@ -485,4 +485,15 @@ public class ResiTopicController {
ValidatorUtils.validateEntity(formDTO, GetPastTopicListV2FormDTO.GetPastTopicListV2Form.class);
return new Result<List<AllMessagesResultDTO>>().ok(topicService.allMessages(formDTO));
}
/**
* @Description 查询话题信息
* @Param issueIds
* @author zxc
* @date 2021/5/17 4:19 下午
*/
@PostMapping("gettopicinfos")
public Result<List<TopicInfoResultDTO>> getTopicInfos(@RequestBody List<String> issueIds){
return new Result<List<TopicInfoResultDTO>>().ok(topicService.getTopicInfos(issueIds));
}
}

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java

@ -224,4 +224,12 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
* @author sun
*/
int upTopicList(@Param("delIdList") List<String> delIdList, @Param("userId") String userId);
/**
* @Description 查询话题信息
* @Param issueIds
* @author zxc
* @date 2021/5/17 4:54 下午
*/
List<TopicInfoResultDTO> getTopicInfos(@Param("issueIds") List<String> issueIds);
}

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java

@ -389,4 +389,12 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @date 2021/4/28 上午10:41
*/
List<AllMessagesResultDTO> allMessages(AllMessagesFormDTO formDTO);
/**
* @Description 查询话题信息
* @Param issueIds
* @author zxc
* @date 2021/5/17 4:19 下午
*/
List<TopicInfoResultDTO> getTopicInfos(List<String> issueIds);
}

27
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -103,6 +103,7 @@ import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.result.CheckTopicPublisherResultDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.*;
import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO;
import com.epmet.send.SendMqMsgUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -2746,6 +2747,32 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
return allMessages;
}
/**
* @Description 查询话题信息
* @Param issueIds
* @author zxc
* @date 2021/5/17 4:19 下午
*/
@Override
public List<TopicInfoResultDTO> getTopicInfos(List<String> issueIds) {
if (CollectionUtils.isEmpty(issueIds)){
return new ArrayList<>();
}
List<TopicInfoResultDTO> topicInfos = baseDao.getTopicInfos(issueIds);
Result<List<AllGridsByUserIdResultDTO>> gridNames = govOrgOpenFeignClient.getGridListByGridIds(topicInfos.stream().map(m -> m.getGridId()).collect(Collectors.toList()));
if (!gridNames.success()){
throw new RenException("查询网格Name失败");
}
topicInfos.forEach(t -> {
gridNames.getData().forEach(g -> {
if (t.getGridId().equals(g.getGridId())){
t.setGridName(g.getGridName());
}
});
});
return topicInfos;
}
}

25
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

@ -606,5 +606,30 @@
</foreach>
</update>
<resultMap id="getTopicInfosMap" type="com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO">
<result property="issueId" column="issueId"/>
<result property="gridId" column="gridId"/>
<result property="topicContent" column="topicContent"/>
<collection property="photos" ofType="java.lang.String">
<result column="imgUrl"/>
</collection>
</resultMap>
<select id="getTopicInfos" resultMap="getTopicInfosMap">
SELECT
t.TOPIC_CONTENT AS topicContent,
g.GRID_ID AS gridId,
ta.ATTACHMENT_URL AS imgUrl,
t.ISSUE_ID AS issueId
FROM resi_topic t
LEFT JOIN resi_group g ON g.ID = t.GROUP_ID AND g.DEL_FLAG = '0'
LEFT JOIN resi_topic_attachment ta ON t.ID = ta.TOPIC_ID AND ta.DEL_FLAG = '0' AND ta.ATTACHMENT_TYPE = 'image' AND (ta.SORT = 0 OR ta.SORT = 1 OR ta.SORT = 2)
WHERE t.DEL_FLAG = '0'
AND (
<foreach collection="issueIds" item="issueId" separator=" OR ">
t.ISSUE_ID = #{issueId}
</foreach>
)
</select>
</mapper>

Loading…
Cancel
Save