diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index 8cdcc9c0a2..2010b316d3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/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; diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ProjectCategoryDisPoseResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ProjectCategoryDisPoseResultDTO.java new file mode 100644 index 0000000000..478c656627 --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 190cbaf2f8..b0e0fef141 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/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> getIssueList(@RequestParam String customerId); + + /** + * @Description 查询项目分类标签 + * @Param list + * @author zxc + * @date 2021/5/17 1:51 下午 + */ + @PostMapping(value = "/gov/issue/issueprojectcategorydict/getprojectcategory") + Result> getProjectCategory(@RequestBody List list); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 67e41d309a..ef83b497e2 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/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> getIssueList(String customerId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getIssueList", customerId); } + + @Override + public Result> getProjectCategory(List list) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getProjectCategory", list); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java index b28f0b352d..4a684d8ef2 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java +++ b/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().ok(issueProjectCategoryDictService.getCategoryTagList(formDTO)); } + + /** + * @Description 查询项目分类标签 + * @Param list + * @author zxc + * @date 2021/5/17 1:51 下午 + */ + @PostMapping("getprojectcategory") + public Result> getProjectCategory(@RequestBody List list){ + return new Result>().ok(issueProjectCategoryDictService.getProjectCategory(list)); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java index f9be70d073..6d2ad46fa8 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java +++ b/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 getCategoryList(@Param("customerId") String customerId, @Param("categoryIdList") List categoryIdList); + + /** + * @Description 查询项目分类标签 + * @Param list + * @author zxc + * @date 2021/5/17 1:51 下午 + */ + List getProjectCategory(@Param("list") List list,@Param("customerId") String customerId); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java index 00ebcc18ca..abd4e63d38 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java +++ b/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 getProjectCategory(List list); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java index 8db5944db0..46bed8859f 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java +++ b/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 getProjectCategory(List list) { + String customerId = list.get(NumConstant.ZERO).getCustomerId(); + List projectCategory = baseDao.getProjectCategory(list, customerId); + if (CollectionUtils.isEmpty(projectCategory)){ + return new ArrayList<>(); + } + List result = new ArrayList<>(); + Map> 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 list){ + String result = ""; + if (!CollectionUtils.isEmpty(list)){ + list.forEach(l -> { + result.concat(l.getCategoryName()).concat(","); + }); + } + return result.substring(NumConstant.ZERO,result.length()-NumConstant.ONE); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index 0d6adbd065..4a7b073b73 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -230,6 +230,20 @@ sort ASC + + + UPDATE issue_project_category_dict SET diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MassesDiscontentFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MassesDiscontentFormDTO.java new file mode 100644 index 0000000000..5a2e934a99 --- /dev/null +++ b/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; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MassesDiscontentResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MassesDiscontentResultDTO.java new file mode 100644 index 0000000000..905dd0be8d --- /dev/null +++ b/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 photos; + + /** + * 话题内容 + */ + private String topicContent; + + /** + * 项目分类标签 + */ + private String projectCategory; + + /** + * 项目评价分数 + */ + @JsonIgnore + private Integer score; + + public MassesDiscontentResultDTO() { + this.gridName = ""; + this.photos = new ArrayList<>(); + this.topicContent = ""; + this.projectCategory = ""; + } +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectScoreResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectScoreResultDTO.java new file mode 100644 index 0000000000..9b2127224b --- /dev/null +++ b/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; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java index 71402799e8..992871d265 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/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"; + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java index 78fed6b459..62fbe24a59 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java +++ b/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().ok(projectSatisfactionStatisticsService.projectEvaluateScore(formDTO)); } + /** + * @Description 群众不满 + * @Param formDTO + * @author zxc + * @date 2021/5/14 10:46 上午 + */ + @PostMapping("massesdiscontent") + public Result> massesDiscontent(@RequestBody MassesDiscontentFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, MassesDiscontentFormDTO.MassesDiscontentForm.class); + return new Result>().ok(projectSatisfactionStatisticsService.massesDiscontent(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java index 247f239261..cc2d336344 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectCategoryDao.java +++ b/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 { * @Author sun **/ List selectProjectCategoryList(DelCategoryFormDTO formDTO); + + /** + * @Description 根据项目ID查询项目分类 + * @Param projectIds + * @author zxc + * @date 2021/5/17 10:47 上午 + */ + List selectCategoryByIds(@Param("projectIds")List projectIds); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 5eccc08f67..ed73518a58 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -147,4 +147,14 @@ public interface ProjectDao extends BaseDao { @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 selectProjectIdByTime(@Param("agencyId")String agencyId,@Param("endDate")Integer endDate,@Param("startDate")Integer startDate); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java index 60a2852e8f..b174075bcd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java +++ b/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 selectProjectByScore(@Param("projectIds")List projectIds, @Param("setScore")Integer setScore, @Param("sortType")String sortType); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java index fa035d53f6..24b4f24b5b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java +++ b/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 massesDiscontent(MassesDiscontentFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java index 222a96644a..ed20dfd167 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java +++ b/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 page(Map params) { @@ -125,4 +151,80 @@ public class ProjectSatisfactionStatisticsServiceImpl extends BaseServiceImpl massesDiscontent(MassesDiscontentFormDTO formDTO) { + List projectIds = projectDao.selectProjectIdByTime(formDTO.getAgencyId(), getDateId("yesterday"), getDateId(formDTO.getTimeSection())); + if (CollectionUtils.isEmpty(projectIds)){ + return new ArrayList<>(); + } + PageInfo 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 projects = pageInfo.getList(); + if (CollectionUtils.isEmpty(projects)){ + return new ArrayList<>(); + } + List projectCategoryDisPoseResultDTOS = projectCategoryDao.selectCategoryByIds(projects.stream().map(m -> m.getProjectId()).collect(Collectors.toList())); + List projectCategoryData = new ArrayList<>(); + if (!CollectionUtils.isEmpty(projectCategoryDisPoseResultDTOS)){ + Result> projectCategory = issueOpenFeignClient.getProjectCategory(projectCategoryDisPoseResultDTOS); + if (!projectCategory.success()){ + throw new RenException("查询项目分类标签失败".concat(projectCategory.getMsg())); + } + projectCategoryData = projectCategory.getData(); + } + Result> topicInfos = resiGroupOpenFeignClient.getTopicInfos(projects.stream().map(m -> m.getIssueId()).collect(Collectors.toList())); + if (!topicInfos.success()){ + throw new RenException("查询话题信息失败".concat(topicInfos.getMsg())); + } + List 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; + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml index 30033c620e..3f9c27f6d2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectCategoryDao.xml @@ -35,4 +35,19 @@ project_id = #{projectId} + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 0a430eab87..4a8c18c125 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/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} + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml index 90be9c1c62..9a194a2db4 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml +++ b/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} + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicInfoResultDTO.java new file mode 100644 index 0000000000..4a2d43ea8e --- /dev/null +++ b/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 photos; + + /** + * 话题内容 + */ + private String topicContent; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 292972c45e..64879dc601 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/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 groupPointDetail(@PathVariable String groupId); + + /** + * @Description 查询话题信息 + * @Param issueIds + * @author zxc + * @date 2021/5/17 4:19 下午 + */ + @PostMapping("resi/group/topic/gettopicinfos") + Result> getTopicInfos(@RequestBody List issueIds); + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 84dee1113d..84d0385b47 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/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 groupPointDetail(String groupId) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", groupId); } + + @Override + public Result> getTopicInfos(List issueIds) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getTopicInfos", issueIds); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index ef4a773ccf..062662457a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/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>().ok(topicService.allMessages(formDTO)); } + + /** + * @Description 查询话题信息 + * @Param issueIds + * @author zxc + * @date 2021/5/17 4:19 下午 + */ + @PostMapping("gettopicinfos") + public Result> getTopicInfos(@RequestBody List issueIds){ + return new Result>().ok(topicService.getTopicInfos(issueIds)); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index abc817659d..88bc4abad0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/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 { * @author sun */ int upTopicList(@Param("delIdList") List delIdList, @Param("userId") String userId); + + /** + * @Description 查询话题信息 + * @Param issueIds + * @author zxc + * @date 2021/5/17 4:54 下午 + */ + List getTopicInfos(@Param("issueIds") List issueIds); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 064255c04c..cf496a8c5b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/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 { * @date 2021/4/28 上午10:41 */ List allMessages(AllMessagesFormDTO formDTO); + + /** + * @Description 查询话题信息 + * @Param issueIds + * @author zxc + * @date 2021/5/17 4:19 下午 + */ + List getTopicInfos(List issueIds); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 6c4ff65b4f..ec51f04815 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/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 getTopicInfos(List issueIds) { + if (CollectionUtils.isEmpty(issueIds)){ + return new ArrayList<>(); + } + List topicInfos = baseDao.getTopicInfos(issueIds); + Result> 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; + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index b5f35a8a7a..d912ca952b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -606,5 +606,30 @@ + + + + + + + + + +