+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dto.govproject;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 居民报事表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-08-03
+ */
+@Data
+public class ResiEventDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ private String projectId;
+
+ private String reportUserId;
+
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java
index 38335e8223..07588e5e3c 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/CategoryProjectFormDTO.java
@@ -33,6 +33,11 @@ public class CategoryProjectFormDTO implements Serializable {
private Integer pageSize = 20;
//是否分页(是:true 否:false)
private Boolean isPage = true;
+ //明天的dateId值
+ private String toDateId;
+ private String customerId;
+ private List categoreCodeList;
+
public interface Category extends CustomerClientShowGroup {
}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java
index b6cd54a88c..33199b3854 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/CategoryProjectResultDTO.java
@@ -1,5 +1,6 @@
package com.epmet.dataaggre.dto.govproject.result;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@@ -26,7 +27,7 @@ public class CategoryProjectResultDTO implements Serializable {
private String projectId;
//项目编码[目前没这个功能 默认为空]
private String projectCode = "";
- //一级分类Id集合
+ //一级分类Code集合
private List categoryCodes;
//一级分类名称集合
private List categoryNames;
@@ -42,10 +43,14 @@ public class CategoryProjectResultDTO implements Serializable {
private String title;
//转项目时间
private String time;
- //当前人员是否处理:未处理unhandled,已处理handle
- private String isHandle;
//小程序居民端话题或事件创建人【立项项目此值为空】
private String userId;
+ //分类对应的所有上级,英文逗号隔开【目前分类只有两级,所以这个字段值其实就是一类的id值】
+ @JsonIgnore
+ private String categoryPids;
+ //二级分类code
+ @JsonIgnore
+ private String categoryCode;
}
}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java
index c8c895e549..9d2bedab75 100644
--- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectStatusListResultDTO.java
@@ -24,5 +24,7 @@ public class ProjectStatusListResultDTO implements Serializable {
private Integer longitude;
//纬度
private Integer dimension;
+ //项目标题
+ private String title;
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
index 3039785f12..3d70bf2b96 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
@@ -102,8 +102,9 @@ public class GovProjectController {
* @author sun
*/
@PostMapping("categoryprojectlist")
- public Result categoryProjectList(@RequestBody CategoryProjectFormDTO formDTO) {
+ public Result categoryProjectList(@LoginUser TokenDto tokenDto, @RequestBody CategoryProjectFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, CategoryProjectFormDTO.Category.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result().ok(govProjectService.categoryProjectList(formDTO));
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java
index 6727a2d2d4..17d16fd72d 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java
@@ -80,5 +80,5 @@ public interface IssueDao extends BaseDao {
* @Description 查询客户下分类信息
* @author sun
**/
- List getCategoryList(@Param("customerId") String customerId);
+ List getCategoryList(@Param("customerId") String customerId, @Param("level") String level, @Param("isDisable") String isDisable);
}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
index 2a433d58d7..05071b61e5 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
@@ -18,14 +18,14 @@
package com.epmet.dataaggre.dao.govproject;
import com.epmet.commons.mybatis.dao.BaseDao;
-import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govproject.ProjectDTO;
+import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO;
+import com.epmet.dataaggre.dto.govproject.ResiEventDTO;
import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO;
+import com.epmet.dataaggre.dto.govproject.form.CategoryProjectFormDTO;
import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO;
-import com.epmet.dataaggre.dto.govproject.result.ProjectDistributionResultDTO;
-import com.epmet.dataaggre.dto.govproject.result.ProjectInfoDTO;
-import com.epmet.dataaggre.dto.govproject.result.ProjectStatusListResultDTO;
+import com.epmet.dataaggre.dto.govproject.result.*;
import com.epmet.dataaggre.entity.govproject.ProjectEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -81,4 +81,27 @@ public interface ProjectDao extends BaseDao {
List getProjectStatusList(ProjectTotalFormDTO formDTO);
List selectProjectIssueCategory(@Param("issueIds") List issueIds);
+
+ /**
+ * @Description 查询组织截止某一天的某个分类下的项目列表
+ * @author sun
+ */
+ List categoryProjectList(CategoryProjectFormDTO formDTO);
+
+ /**
+ * @Description 查询项目对应的所有分类信息
+ * @author sun
+ */
+ List getCategoryList(@Param("projectIds") List projectIds);
+
+ /**
+ * @Description 查询来源事件的项目居民端创建人信息
+ * @author sun
+ */
+ List getEventList(@Param("projectIds") List projectIds);
+ /**
+ * @Description 查询来源话题的项目居民端创建人信息
+ * @author sun
+ */
+ List getTopicUser(@Param("projectIds") List projectIds);
}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java
index 65e768ccf5..3e87ea18d3 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java
@@ -48,8 +48,8 @@ public interface GovIssueService {
List selectShiftProjectIssueList(String customerId,String gridId,Integer pageNo,Integer pageSize);
/**
- * @Description 查询客户下一级分类信息
+ * @Description 查询客户下分类信息
* @author sun
**/
- List categoryList(String customerId);
+ List categoryList(String customerId, String level, String isDisable);
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java
index db987e0b5c..5556d2d3f0 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java
@@ -329,8 +329,8 @@ public class GovIssueServiceImpl implements GovIssueService {
* @author sun
**/
@Override
- public List categoryList(String customerId) {
- return issueDao.getCategoryList(customerId);
+ public List categoryList(String customerId, String level, String isDisable) {
+ return issueDao.getCategoryList(customerId, level, isDisable);
}
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
index 1b665e2888..21c18f8ba2 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
@@ -15,7 +15,10 @@ import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO;
import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
+import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.dto.govproject.ProjectDTO;
+import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO;
+import com.epmet.dataaggre.dto.govproject.ResiEventDTO;
import com.epmet.dataaggre.dto.govproject.form.*;
import com.epmet.dataaggre.dto.govproject.result.*;
import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO;
@@ -28,6 +31,8 @@ import com.epmet.dataaggre.service.resigroup.ResiGroupService;
import com.epmet.dto.form.TimestampIntervalFormDTO;
import com.epmet.dto.form.WorkMinuteFormDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -330,7 +335,7 @@ public class GovProjectServiceImpl implements GovProjectService {
@Override
public List projectStatusList(ProjectTotalFormDTO formDTO) {
//所选日期后一天的dateId值
- formDTO.setYeDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", 1));
+ formDTO.setToDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", 1));
//1.查询组织下截止到dateId的某个状态的项目列表
List resultList = projectDao.getProjectStatusList(formDTO);
return resultList;
@@ -344,7 +349,7 @@ public class GovProjectServiceImpl implements GovProjectService {
public List projectCategoryList(ProjectCategoryTotalFormDTO formDTO) {
List resultList = new ArrayList<>();
//1.查询客户下一级分类信息
- List categoryList = govIssueService.categoryList(formDTO.getCustomerId());
+ List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), "1", "enable");
//2.按dateId查询组织下一级分类项目总数
List list = evaluationIndexService.projectCategoryList(formDTO);
@@ -372,7 +377,71 @@ public class GovProjectServiceImpl implements GovProjectService {
*/
@Override
public CategoryProjectResultDTO categoryProjectList(CategoryProjectFormDTO formDTO) {
- return null;
+ CategoryProjectResultDTO resultDTO = new CategoryProjectResultDTO();
+ //所选日期后一天的dateId值
+ formDTO.setToDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", 1));
+ //1.查询客户下分类信息
+ List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null);
+ List categoreCodeList = categoryList.stream().map(ca -> formDTO.getCategoryCode().equals(ca.getParentCategoryCode()) ? ca.getCategoryCode() : "").collect(Collectors.toList());
+ formDTO.setCategoreCodeList(categoreCodeList);
+
+ //2.查询组织及下级截止某一天的某个一级分类下的项目列表
+ PageInfo result =
+ PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> projectDao.categoryProjectList(formDTO));
+ if (org.springframework.util.CollectionUtils.isEmpty(result.getList())) {
+ return resultDTO;
+ }
+ resultDTO.setTotal((int) result.getTotal());
+
+ //3.查询已有项目列表涉及的所有分类信息【一个项目存在多个一级分类下的二级分类】
+ List projectIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getProjectId).collect(Collectors.toList());
+ List list = projectDao.getCategoryList(projectIds);
+
+ //4.查询网格信息【楼院小组类项目、上报事件且上报给网格的项目才存在网格Id】
+ List gridIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getGridId).collect(Collectors.toList());
+ gridIds = gridIds.stream().distinct().collect(Collectors.toList());
+ List gridList = govOrgService.gridListByIds(gridIds);
+
+ //5.查询来源议题、事件的项目居民端创建人userId
+ List eventUser = projectDao.getEventList(projectIds);
+ List topicUser = projectDao.getTopicUser(projectIds);
+
+ //5.封装数据
+ result.getList().forEach(re -> {
+ //项目涉及网格信息
+ gridList.forEach(g -> {
+ if (StringUtils.isNotBlank(re.getGridId()) && re.getGridId().equals(g.getGridId())) {
+ re.setGridName(g.getName());
+ }
+ });
+ //项目涉及分类信息【一个项目涉及多个一级分类】
+ List caId = new ArrayList<>();
+ List caCode = new ArrayList<>();
+ list.forEach(ca -> {
+ if (ca.getProjectId().equals(re.getProjectId())) {
+ caId.add(ca.getCategoryPids());
+ caCode.add(ca.getCategoryCode());
+ }
+ });
+ List caName = new ArrayList<>();
+ categoryList.forEach(ca -> caId.stream().filter(li -> ca.getId().equals(li)).forEach(s -> caName.add(ca.getCategoryName())));
+ re.setCategoryCodes(caCode);
+ re.setCategoryNames(caName);
+ //项目来源话题、事件的创建人信息
+ eventUser.forEach(ev -> {
+ if (re.getProjectId().equals(ev.getProjectId())) {
+ re.setUserId(ev.getReportUserId());
+ }
+ });
+ topicUser.forEach(to -> {
+ if (re.getProjectId().equals(to.getProjectId())) {
+ re.setUserId(to.getUserId());
+ }
+ });
+ });
+
+ resultDTO.setList(result.getList());
+ return resultDTO;
}
/**
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml
index 239e846aa9..90ecda4b20 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml
@@ -131,8 +131,12 @@
FROM issue_project_category_dict
WHERE del_flag = 0
AND customer_id = #{customerId}
- AND category_type = '1'
- AND is_disable = 'enable'
+
+ AND category_type = #{level}
+
+
+ AND is_disable = #{isDisable}
+
ORDER BY category_code
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml
index fde243eafa..60350c7a1e 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml
@@ -22,7 +22,8 @@
cg.grid_name,
CONCAT(ca.organization_name,'-',cg.grid_name)
) AS 'gridName',
- cg.customer_id AS 'customerId'
+ cg.customer_id AS 'customerId',
+ cg.grid_name AS 'name'
FROM
customer_grid cg
INNER JOIN customer_agency ca ON cg.pid = ca.id
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
index fd2b6e44e1..cec83dea7f 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
@@ -163,17 +163,87 @@
origin "origin",
`status` "status",
locate_longitude "longitude",
- locate_dimension dimension
+ locate_dimension dimension,
+ title title
FROM
project
WHERE
del_flag = '0'
- AND agency_id = #{agencyId}
+ AND org_id_path LIKE CONCAT('%', #{agencyId}, '%')
AND `status` = #{status}
- AND created_time DATE_FORMAT(#{dateId}, '%Y-%m-%d')
+ AND created_time DATE_FORMAT(#{toDateId}, '%Y-%m-%d')
ORDER BY created_time DESC
+
+
+
+
+
+
+
+