diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java index bb8d12f49c..6d7e1124dd 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java @@ -1,6 +1,8 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.form.DictListFormDTO; +import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.CorsConfigResultDTO; @@ -8,6 +10,7 @@ import com.epmet.feign.fallback.EpmetAdminOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; @@ -84,4 +87,7 @@ public interface EpmetAdminOpenFeignClient { */ @PostMapping("/sys/dict/data/dictmap/{dictType}") Result> dictMap(@PathVariable("dictType") String dictType); + + @PostMapping("/sys/dict/data/dictlist") + Result> dictList(@RequestBody DictListFormDTO formDTO); } diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java index 139514d1f5..6c16e8f3ae 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java @@ -1,6 +1,8 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.form.DictListFormDTO; +import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; @@ -46,4 +48,9 @@ public class EpmetAdminOpenFeignClientFallback implements EpmetAdminOpenFeignCli public Result> dictMap(String dictType) { return ModuleUtils.feignConError(ServiceConstant.EPMET_ADMIN_SERVER, "dictMap", dictType); } + + @Override + public Result> dictList(DictListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_ADMIN_SERVER, "dictList", formDTO); + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionDataResultDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionDataResultDTO.java new file mode 100644 index 0000000000..78f77a850b --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionDataResultDTO.java @@ -0,0 +1,18 @@ +package com.epmet.commons.tools.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/8 14:50 + */ +@Data +public class OptionDataResultDTO implements Serializable { + private static final long serialVersionUID = 416877704759019210L; + private String label; + private String value; + private String code; +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java index 9ffd3efccb..8c42570bc3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java @@ -18,4 +18,5 @@ public class OptionResultDTO implements Serializable { private String pValue; private String sysDictDataId; private List children; + private Boolean usableFlag; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 05e6c7668e..0f70c9ecbd 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -163,6 +163,7 @@ public enum EpmetErrorCode { EXISTS_SAME_PHONE_ERROR(8529, "%s存在重复"), COMMUNITY_SELF_ORGANIZATION_LIST_REPART_ERROR(8530, "%s社区自组织名称已存在"), + MATTER_NAME_EXISTS_APPOINTMENT_ERROR(8532, "存在重复预约事项"), // 该错误不会提示给前端,只是后端传输错误信息用。 ACCESS_SQL_FILTER_MISSION_ARGS(8701, "缺少生成权限过滤SQL所需参数"), diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java index f25721539f..571195cd86 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java @@ -24,8 +24,12 @@ public class GridsInfoListResultDTO implements Serializable { private String gridId; /** - * 网格名称 + * 组织-网格名称 */ private String gridName; + /** + * 网格名称 + */ + private String name; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventDTO.java new file mode 100644 index 0000000000..4f0e39c907 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ResiEventDTO.java @@ -0,0 +1,45 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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/form/ProjectAnalysisFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java index 1cf8e85373..d3d1a0e9a8 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java @@ -18,9 +18,6 @@ import java.util.List; @Data public class ProjectAnalysisFormDTO implements Serializable { private static final long serialVersionUID = -8515172319313536407L; - //日期yyyymmdd - @NotBlank(message = "日维度ID不能为空", groups = {Analysis.class}) - private String dateId; //小程序话题或事件发起人Id @NotBlank(message = "话题或事件发起人Id不能为空", groups = {Analysis.class}) private String userId; @@ -28,6 +25,8 @@ public class ProjectAnalysisFormDTO implements Serializable { @NotNull(message = "分类Code集合不能为空", groups = {Analysis.class}) private List categoryCodeList; + private String customerId; + public interface Analysis 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..0d5b2f2707 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,8 +1,10 @@ package com.epmet.dataaggre.dto.govproject.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; /** @@ -26,26 +28,30 @@ public class CategoryProjectResultDTO implements Serializable { private String projectId; //项目编码[目前没这个功能 默认为空] private String projectCode = ""; - //一级分类Id集合 - private List categoryCodes; + //一级分类Code集合 + private List categoryCodes = new ArrayList<>(); //一级分类名称集合 - private List categoryNames; + private List categoryNames = new ArrayList<>(); //来源:议题issue 项目立项:agency 事件:resi_event【控制电机查看时里边三个按钮的显示】 private String origin; - //网格Id[立项项目此值为空] - private String gridId; - //网格名[立项项目此值为空] - private String gridName; + //网格Id[上报给组织的事件、直接立项的项目此值为空] + private String gridId = ""; + //网格名[上报给组织的事件、直接立项的项目此值为空] + private String gridName = ""; //状态:待处理 pending,已结案closed private String status; //标题 private String title; //转项目时间 private String time; - //当前人员是否处理:未处理unhandled,已处理handle - private String isHandle; //小程序居民端话题或事件创建人【立项项目此值为空】 - private String userId; + 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/ProjectAnalysisResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java index 62a949a3d2..2601c26a63 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java @@ -3,6 +3,8 @@ package com.epmet.dataaggre.dto.govproject.result; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * @Description 赋能平台【项目处理分析】研判分析-接口返参 @@ -12,23 +14,50 @@ import java.io.Serializable; public class ProjectAnalysisResultDTO implements Serializable { private static final long serialVersionUID = 6188316867855643263L; - //组织Id - private String agencyId; - //日期yyyymmdd - private String dateId; - //项目总数 - private Integer projectTotal = 0; - //较昨日数 - private Integer dateIncr = 0; - //较上月数 - private Integer monthIncr = 0; - //未结案项目数 - private Integer pendingTotal = 0; - //为结案项目占比 xx% - private String pendingRatio = "0%"; - //已结案项目数 - private Integer closedTotal = 0; - //已结案项目占比 - private String closedRatio = "0%"; + //小程序居民Id + private String userId; + //负能平台居民Id + private String icUserId; + //负能平台居民名称 + private String icUserName; + //家庭里人员集合 + private List homeUserList = new ArrayList<>(); + //楼院小组下分类项目列表 + private List groupProjectList = new ArrayList<>(); + //事件上报下分类项目列表 + private List eventProjectList = new ArrayList<>(); + + @Data + public static class Home { + //家庭Id + private String homeId; + //居民Id + private String icUserId; + //居民姓名 + private String icUserName; + + } + + @Data + public static class Category { + //一级分类Id + private String categoryCode; + //一级分类名称 + private String categoryName; + //分类下项目列表【创建时间倒序】 + private List projectList = new ArrayList<>(); + + + } + + @Data + public static class Project { + //项目Id + private String projectId; + //项目标题 + private String title; + //状态:待处理 pending,结案closed + private String status; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java new file mode 100644 index 0000000000..f7846c3354 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author sun + * @dscription + */ +@NoArgsConstructor +@Data +public class ProjectCategoryResultDTO implements Serializable { + + private static final long serialVersionUID = 3217246702883400582L; + /** + * 项目ID + */ + private String projectId; + /** + * 项目标题 + */ + private String title; + /** + * 项目状态 + */ + private String status; + /** + * 二级分类Code + */ + private String categoryCode; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java index fabbad4ddf..69e247e5d8 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java @@ -18,6 +18,8 @@ public class ProjectCategoryTotalResultDTO implements Serializable { private String categoryCode; //一级分类名称 private String categoryName; + //一级分类颜色 + private String colour = ""; //分类下项目总数 private Integer total = 0; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java index ade71720ed..037d54f845 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectMonthIncrResultDTO.java @@ -13,7 +13,7 @@ public class ProjectMonthIncrResultDTO implements Serializable { private static final long serialVersionUID = 6188316867855643263L; //横坐标值 - private Integer value; + private Integer value = 0; //横坐标 private String type; 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..81ef72e7b0 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 @@ -17,12 +17,14 @@ public class ProjectStatusListResultDTO implements Serializable { //项目Id private String projectId; //来源:议题issue 项目立项:agency 事件:resi_event - private Integer origin; + private String origin; //状态:待处理 pending,结案closed - private Integer status; + private String status; //经度 - private Integer longitude; + private String longitude; //纬度 - private Integer dimension; + private String 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/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java new file mode 100644 index 0000000000..1e34921a43 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java @@ -0,0 +1,49 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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.dao.epmetuser; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; +import com.epmet.dto.IcResiUserDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 用户基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-26 + */ +@Mapper +public interface IcResiUserDao extends BaseDao { + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + IcResiUserDTO getIcResiUser(@Param("idCard") String idCard, @Param("customerId") String customerId); + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + List getHomeUserList(@Param("homeId") String homeId, @Param("icUserId") String icUserId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java index 805657fc11..0ac5f211fc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java @@ -20,6 +20,7 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; import com.epmet.dataaggre.entity.epmetuser.UserBaseInfoEntity; +import com.epmet.dto.UserBaseInfoDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -50,4 +51,9 @@ public interface UserBaseInfoDao extends BaseDao { */ List selectUserIdByCustomerId(@Param("userIds") List userIds); + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + List getUserBaseList(@Param("userId") String userId); } \ No newline at end of file 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..ee44c3cee8 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,15 +18,16 @@ 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 com.epmet.dto.ProjectCategoryDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -81,4 +82,37 @@ 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); + + /** + * @Description 根据项目来源查询不同分类不同创建人下的分类项目 + * @author sun + */ + List getProjectCategoryList(@Param("customerId") String customerId, + @Param("secondCodeList") List secondCodeList, + @Param("userIds") List userIds, + @Param("origin") String origin); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java new file mode 100644 index 0000000000..e40441101d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java @@ -0,0 +1,493 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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.entity.epmetuser; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-26 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_resi_user") +public class IcResiUserEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * + */ + private String agencyId; + + /** + * + */ + private String pids; + + /** + * 网格ID + */ + private String gridId; + + /** + * 所属小区ID + */ + private String villageId; + + /** + * 所属楼宇Id + */ + private String buildId; + + /** + * 单元id + */ + private String unitId; + + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 是否本地户籍 + */ + private String isBdhj; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 出生日期 + */ + private String birthday; + + /** + * 备注 + */ + private String remarks; + + /** + * 联系人 + */ + private String contacts; + + /** + * 联系人电话 + */ + private String contactsMobile; + + /** + * 九小场所url + */ + private String ninePlace; + + /** + * 是否党员 + */ + private String isParty; + + /** + * 是否低保户 + */ + private String isDbh; + + /** + * 是否保障房 + */ + private String isEnsureHouse; + + /** + * 是否失业 + */ + private String isUnemployed; + + /** + * 是否育龄妇女 + */ + private String isYlfn; + + /** + * 是否退役军人 + */ + private String isVeterans; + + /** + * 是否统战人员 + */ + private String isUnitedFront; + + /** + * 是否信访人员 + */ + private String isXfry; + + /** + * 是否志愿者 + */ + private String isVolunteer; + + /** + * 是否老年人 + */ + private String isOldPeople; + + /** + * 是否空巢 + */ + private String isKc; + + /** + * 是否失独 + */ + private String isSd; + + /** + * 是否失能 + */ + private String isSn; + + /** + * 是否失智 + */ + private String isSz; + + /** + * 是否残疾 + */ + private String isCj; + + /** + * 是否大病 + */ + private String isDb; + + /** + * 是否慢病 + */ + private String isMb; + + /** + * 是否特殊人群 + */ + private String isSpecial; + + /** + * 文化程度【字典表】 + */ + private String culture; + + /** + * 文化程度备注 + */ + private String cultureRemakes; + + /** + * 特长【字典表】 + */ + private String specialSkill; + + /** + * 兴趣爱好 + */ + private String hobby; + + /** + * 兴趣爱好备注 + */ + private String hobbyRemakes; + + /** + * 宗教信仰 + */ + private String faith; + + /** + * 宗教信仰备注 + */ + private String faithRemakes; + + /** + * 残疾类别【字典表】 + */ + private String cjlb; + + /** + * 残疾登记(状况)【字典表】 + */ + private String cjzk; + + /** + * 残疾证号 + */ + private String cjzh; + + /** + * 残疾说明 + */ + private String cjsm; + + /** + * 有无监护人【yes no】 + */ + private String ynJdr; + + /** + * 有无技能特长【yes no】 + */ + private String ynJntc; + + /** + * 有无劳动能力 + */ + private String ynLdnl; + + /** + * 有无非义务教育阶段助学【yes no】 + */ + private String ynFywjyjdzx; + + /** + * 所患大病 + */ + private String shdb; + + /** + * 患大病时间 + */ + private String dbsj; + + /** + * 所患慢性病 + */ + private String shmxb; + + /** + * 患慢性病时间 + */ + private String mxbsj; + + /** + * 是否参保 + */ + private String isCb; + + /** + * 自付金额 + */ + private String zfje; + + /** + * 救助金额 + */ + private String jzje; + + /** + * 救助时间[yyyy-MM-dd] + */ + private String jzsj; + + /** + * 享受救助明细序号 + */ + private String jzmxxh; + + /** + * 健康信息备注 + */ + private String healthRemakes; + + /** + * 工作单位 + */ + private String gzdw; + + /** + * 职业 + */ + private String zy; + + /** + * 离退休时间 + */ + private String ltxsj; + + /** + * 工作信息备注 + */ + private String workRemake; + + /** + * 退休金额 + */ + private String txje; + + /** + * 月收入 + */ + private String ysr; + + /** + * 籍贯 + */ + private String jg; + + /** + * 户籍所在地 + */ + private String hjszd; + + /** + * 现居住地 + */ + private String xjzd; + + /** + * 人户情况 + */ + private String rhzk; + + /** + * 居住信息备注 + */ + private String jzxxRemakes; + + /** + * 民族【字典表】 + */ + private String mz; + + /** + * 与户主关系【字典表】 + */ + private String yhzgx; + + /** + * 居住情况【字典表】 + */ + private String jzqk; + + /** + * 婚姻状况【字典表】 + */ + private String hyzk; + + /** + * 配偶情况【字典表】 + */ + private String poqk; + + /** + * 有无赡养人 + */ + private String ynSyr; + + /** + * 与赡养人关系【字典表】 + */ + private String ysyrgx; + + /** + * 赡养人电话 + */ + private String syrMobile; + + /** + * 家庭信息备注 + */ + private String jtxxRemakes; + + /** + * 预留字段1 + */ + private String field1; + + /** + * 预留字段2 + */ + private String field2; + + /** + * 预留字段3 + */ + private String field3; + + /** + * 预留字段4 + */ + private String field4; + + /** + * 预留字段5 + */ + private String field5; + + /** + * 预留字段6 + */ + private String field6; + + /** + * 预留字段7 + */ + private String field7; + + /** + * 预留字段8 + */ + private String field8; + + /** + * 预留字段9 + */ + private String field9; + + /** + * 预留字段10 + */ + private String field10; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 9718ae57b2..8b898f8765 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -5,6 +5,9 @@ import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import java.util.List; @@ -147,4 +150,21 @@ public interface EpmetUserService { */ StaffDetailV2FormDTO selectByStaffId(String staffId); + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + List getUserBaseList(String userId); + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + IcResiUserDTO getIcResiUser(String idNum, String customerId); + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + List getHomeUserList(String homeId, String icUserId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 50221188f9..ac6ee4a24e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -26,6 +26,7 @@ import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO; import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; @@ -36,6 +37,8 @@ import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.StaffRoleResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -79,6 +82,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private DataStatsService dataStatsService; @Resource private GovStaffRoleDao govStaffRoleDao; + @Resource + private IcResiUserDao icResiUserDao; /** * @Description 根据UserIds查询 @@ -702,5 +707,32 @@ public class EpmetUserServiceImpl implements EpmetUserService { return result; } + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + @Override + public List getUserBaseList(String userId) { + return userBaseInfoDao.getUserBaseList(userId); + } + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + @Override + public IcResiUserDTO getIcResiUser(String idNum, String customerId) { + return icResiUserDao.getIcResiUser(idNum, customerId); + } + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + @Override + public List getHomeUserList(String homeId, String icUserId) { + return icResiUserDao.getHomeUserList(homeId, icUserId); + } + } 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..0bb46ba328 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,19 +15,27 @@ 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; import com.epmet.dataaggre.service.datastats.DataStatsService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govissue.GovIssueService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; 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; @@ -60,6 +68,8 @@ public class GovProjectServiceImpl implements GovProjectService { private DataStatsService dataStatsService; @Autowired private EvaluationIndexService evaluationIndexService; + @Autowired + private EpmetUserService epmetUserService; /** * @Description 查询项目信息 @@ -281,6 +291,9 @@ public class GovProjectServiceImpl implements GovProjectService { result.setPendingRatio(l.getPendingRatio()); result.setClosedTotal(l.getClosedTotal()); result.setClosedRatio(l.getClosedRatio()); + //默认较昨日较上个月增长值就是当前日期的数据 + result.setDateIncr(l.getProjectTotal()); + result.setMonthIncr(l.getProjectTotal()); } if (formDTO.getYeDateId().equals(l.getDateId())) { result.setDateIncr(result.getProjectTotal() - l.getProjectTotal()); @@ -330,7 +343,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,24 +357,39 @@ 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); //3.封装数据并返回 - categoryList.forEach(ca -> { + //有数据的排在前边,没数据的按分类顺序排在后边 + Map map = new HashMap<>(); + list.forEach(l -> { ProjectCategoryTotalResultDTO dto = new ProjectCategoryTotalResultDTO(); dto.setAgencyId(formDTO.getAgencyId()); - dto.setCategoryCode(ca.getCategoryCode()); - dto.setCategoryName(ca.getCategoryName()); - list.forEach(l -> { + dto.setTotal(l.getTotal()); + categoryList.forEach(ca -> { if (ca.getCategoryCode().equals(l.getCategoryCode())) { - dto.setTotal(l.getTotal()); + dto.setCategoryCode(ca.getCategoryCode()); + dto.setCategoryName(ca.getCategoryName()); + dto.setColour(ca.getColour()); } }); + map.put(l.getCategoryCode(), l.getCategoryCode()); resultList.add(dto); }); + categoryList.forEach(ca -> { + if (!map.containsKey(ca.getCategoryCode())) { + ProjectCategoryTotalResultDTO dto = new ProjectCategoryTotalResultDTO(); + dto.setAgencyId(formDTO.getAgencyId()); + dto.setCategoryCode(ca.getCategoryCode()); + dto.setCategoryName(ca.getCategoryName()); + dto.setColour(ca.getColour()); + resultList.add(dto); + map.put(ca.getCategoryCode(), ca.getCategoryCode()); + } + }); return resultList; } @@ -372,7 +400,75 @@ 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().filter(ca -> ca.getParentCategoryCode().equals(formDTO.getCategoryCode())).map(m -> m.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()); + } + }); + //项目涉及分类信息【一个项目涉及多个一级分类】 + //一级分类Id + List caId = new ArrayList<>(); + list.forEach(ca -> { + if (ca.getProjectId().equals(re.getProjectId())) { + caId.add(ca.getCategoryPids()); + } + }); + //一级分类名称、code集合 + List caName = new ArrayList<>(); + List caCode = new ArrayList<>(); + categoryList.forEach(ca -> caId.stream().filter(li -> ca.getId().equals(li)).forEach(s -> { + caName.add(ca.getCategoryName()); + caCode.add(ca.getCategoryCode()); + })); + re.setCategoryNames(caName); + re.setCategoryCodes(caCode); + //项目来源话题、事件的创建人信息 + 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; } /** @@ -381,7 +477,89 @@ public class GovProjectServiceImpl implements GovProjectService { */ @Override public ProjectAnalysisResultDTO projectAnalysis(ProjectAnalysisFormDTO formDTO) { - return null; + ProjectAnalysisResultDTO resultDTO = new ProjectAnalysisResultDTO(); + resultDTO.setUserId(formDTO.getUserId()); + //1.查询userId的身份证号在小程序用户中存在的多个userId值 + List userList = epmetUserService.getUserBaseList(formDTO.getUserId()); + List userIds = userList.stream().map(UserBaseInfoDTO::getUserId).collect(Collectors.toList()); + + //2.查询对应负能平台用户家庭信息 + if (!org.springframework.util.CollectionUtils.isEmpty(userList)) { + //2-1.根据身份证号查询负能平台用户信息 + IcResiUserDTO icResiUserDTO = epmetUserService.getIcResiUser(userList.get(0).getIdNum(), formDTO.getCustomerId()); + resultDTO.setIcUserId(icResiUserDTO.getId()); + resultDTO.setIcUserName(icResiUserDTO.getName()); + if (null != icResiUserDTO) { + //2-2.查询人员的家庭成员数据 + List homeList = epmetUserService.getHomeUserList(icResiUserDTO.getHomeId(), icResiUserDTO.getId()); + resultDTO.setHomeUserList(homeList); + } + } + if (org.springframework.util.CollectionUtils.isEmpty(userIds)) { + userIds = new ArrayList<>(); + userIds.add(formDTO.getUserId()); + } + + //3.查询一级分类数据 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null); + List secondCodeList = formDTO.getCategoryCodeList().stream().flatMap(code -> categoryList.stream().filter(ca -> code.equals(ca.getParentCategoryCode())).map(second -> { + return second.getCategoryCode(); + })).collect(Collectors.toList()); + + //4.根据userId集合和二级分类Code集合查询来源楼院小组的项目 + List groupList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "issue"); + + //5.根据userId集合和二级分类Code集合查询来源事件上报的项目 + List eventList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "resiEvent"); + + //6.封装数据 + //楼院小组下分类项目列表 + List groupProjectList = new ArrayList<>(); + //事件上报下分类项目列表 + List eventProjectList = new ArrayList<>(); + formDTO.getCategoryCodeList().forEach(code -> { + //一级分类code下的二级分类code集合 + Map secondCodeMap = new HashMap<>(); + //来源楼院小组的分类及项目列表 + ProjectAnalysisResultDTO.Category groupCa = new ProjectAnalysisResultDTO.Category(); + List groupPrList = new ArrayList<>(); + //来源事件上报的分类及项目列表 + ProjectAnalysisResultDTO.Category eventCa = new ProjectAnalysisResultDTO.Category(); + List eventPrList = new ArrayList<>(); + categoryList.forEach(ca -> { + groupCa.setCategoryCode(code); + eventCa.setCategoryCode(code); + if (code.equals(ca.getCategoryCode())) { + groupCa.setCategoryName(ca.getCategoryName()); + eventCa.setCategoryName(ca.getCategoryName()); + } + if (code.equals(ca.getParentCategoryCode())) { + secondCodeMap.put(ca.getCategoryCode(), ca.getCategoryCode()); + } + }); + //当前分类下来源楼院小组的项目 + groupList.forEach(gr -> { + if (secondCodeMap.containsKey(gr.getCategoryCode())) { + ProjectAnalysisResultDTO.Project project = ConvertUtils.sourceToTarget(gr, ProjectAnalysisResultDTO.Project.class); + groupPrList.add(project); + } + }); + groupCa.setProjectList(groupPrList); + groupProjectList.add(groupCa); + //当前分类下来源事件上报的项目 + eventList.forEach(gr -> { + if (secondCodeMap.containsKey(gr.getCategoryCode())) { + ProjectAnalysisResultDTO.Project project = ConvertUtils.sourceToTarget(gr, ProjectAnalysisResultDTO.Project.class); + eventPrList.add(project); + } + }); + eventCa.setProjectList(eventPrList); + eventProjectList.add(eventCa); + }); + + resultDTO.setGroupProjectList(groupProjectList); + resultDTO.setEventProjectList(eventProjectList); + return resultDTO; } /** diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml new file mode 100644 index 0000000000..c28d81375c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml index 1ce45a28d8..195e586292 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml @@ -38,4 +38,15 @@ ) + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml index 117e6c537b..c3b45aba0d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/evaluationindex/EvaluationIndexDao.xml @@ -193,6 +193,7 @@ `level` = '1' AND org_id = #{agencyId} AND date_id = #{dateId} + ORDER BY project_total DESC 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/govorg/CustomerStaffAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml index 4016ac6385..ee8caafc3e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml @@ -27,7 +27,7 @@ ca.level, ca.area_code, ca.parent_area_code, - ( CASE WHEN ca.longitude is THEN + ( CASE WHEN ca.longitude is null THEN ( SELECT longitude FROM customer_agency WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id) ORDER BY pid ASC LIMIT 1 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..29ccb588ad 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 @@ -158,22 +158,92 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml index 763dcd98df..c2e54e14ae 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml @@ -28,7 +28,7 @@ resultType="com.epmet.dataaggre.dto.resigroup.result.UserTopicResDTO"> SELECT rt.id as topicId, - rt.TOPIC_CONTENT as topicContent, + IFNULL(rt.TOPIC_CONTENT,'语音话题') as topicContent, rt.SHIFT_ISSUE as shiftIssue, IFNULL(rt.ISSUE_ID,'') AS issueId, rt.CREATED_TIME as releaseTime @@ -39,5 +39,6 @@ rt.CREATED_BY = #{epmetUserId} + order by rt.CREATED_TIME desc \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java index fc0d7555e3..a8c770f8e9 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java @@ -69,7 +69,7 @@ public class IcPartyActivityDTO implements Serializable { */ @NotBlank(message = "服务事项不能为空",groups = AddGroup.class) private String serviceMatter; - + private String serviceMatterName; /** * 活动标题 */ @@ -97,7 +97,7 @@ public class IcPartyActivityDTO implements Serializable { * 活动时间 */ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date activityTime; /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java index 40ac5563ac..1f108568e1 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; @@ -16,6 +17,7 @@ import java.util.Date; @Data public class PartyActivityFormDTO implements Serializable { private static final long serialVersionUID = -2510068555703677L; + @NotBlank(message = "组织Id不能为空" ) private String agencyId; private String unitId; private String title; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandOptionFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandOptionFormDTO.java new file mode 100644 index 0000000000..64d77d5788 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandOptionFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form.demand; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class DemandOptionFormDTO implements Serializable { + private static final long serialVersionUID = -5335277881919236426L; + + public interface AddUserInternalGroup { + } + + @NotBlank(message = "token获取客户id不能为空", groups = AddUserInternalGroup.class) + private String customerId; + @NotBlank(message = "查询条件和查看居民详情:query;新增或修改居民信息:addorupdate", groups = AddUserInternalGroup.class) + private String purpose; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java new file mode 100644 index 0000000000..d40ed7cb8a --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.form.demand; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + + +/** + * 需求研判分析 入参DTO + */ +@Data +public class DemandResearchAnalysisFormDTO implements Serializable { + private static final long serialVersionUID = 3528172570410679765L; + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "firstCategoryCode不能为空",groups = AddUserInternalGroup.class) + private String firstCategoryCode; + + @NotBlank(message = "isResiUserId不能为空",groups = AddUserInternalGroup.class) + private String icResiUserId; + + private List epmetUserIdList; + + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java new file mode 100644 index 0000000000..9add161aca --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java @@ -0,0 +1,52 @@ +package com.epmet.dto.form.demand; + + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 数据分析-服务措施分析-分页查询接口入参 + */ +@Data +public class PageListAnalysisFormDTO implements Serializable { + private static final long serialVersionUID = 4993949289966075260L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotNull(message = "页码不能为空", groups = AddUserInternalGroup.class) + private Integer pageNo; + + @NotNull(message = "每页数量不能为空", groups = AddUserInternalGroup.class) + private Integer pageSize; + + @NotBlank(message = "先选择组织或网格", groups = AddUserShowGroup.class) + private String orgId; + @NotBlank(message = "组织或网格的上级", groups = AddUserShowGroup.class) + private String pid; + @NotBlank(message = "orgType=grid或者agency,不能为空", groups = AddUserInternalGroup.class) + private String orgType; + + @NotBlank(message = "分类编码不能为空", groups = AddUserInternalGroup.class) + private String categoryCode; + @NotBlank(message = "上报时间起始日期不能为空,格式yyyyMMdd", groups = AddUserInternalGroup.class) + private String startDateId; + @NotBlank(message = "上报时间截止日期不能为空,格式yyyyMMdd", groups = AddUserInternalGroup.class) + private String endDateId; + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; + /** + * orgType=agency时pid拼接上orgId + */ + private String gridPids; + + private Boolean pageFlag; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ActivityStatisticsDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ActivityStatisticsDTO.java new file mode 100644 index 0000000000..a941c3eb8f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/ActivityStatisticsDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/9 16:05 + */ +@Data +public class ActivityStatisticsDTO implements Serializable { + private String unitCount; + private String activityCount; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitDistributionResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitDistributionResultDTO.java new file mode 100644 index 0000000000..e8ef54c842 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PartyUnitDistributionResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/12/9 10:05 + */ +@Data +public class PartyUnitDistributionResultDTO implements Serializable { + private static final long serialVersionUID = -4066938451623510159L; + private String id; + private String name; + private String type; + private String longitude; + private String latitude; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecExcelResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecExcelResultDTO.java new file mode 100644 index 0000000000..15f02110b4 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecExcelResultDTO.java @@ -0,0 +1,52 @@ +package com.epmet.dto.result.demand; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class DemandRecExcelResultDTO implements Serializable { + + private static final long serialVersionUID = -1110606022410166621L; + + @Excel(name = "状态", width = 15) + private String statusName; + + @Excel(name = "所属网格", width = 40) + private String gridName; + + @Excel(name = "需求类型", width = 40) + private String categoryName; + + @Excel(name = "需求内容", width = 40) + private String content; + + @Excel(name = "上报类型", width = 40) + private String reportTypeName; + + @Excel(name = "上报人", width = 20) + private String reportUserName; + + @Excel(name = "上报时间", width = 25,format ="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date reportTime; + + @Excel(name = "需求人", width = 20) + private String demandUserName; + + /** + * 尹作梅(志愿者) + * XXX(社会组织) + * XXX(社区自组织) + * XXX(区域化党建单位) + */ + @Excel(name = "服务方", width = 15) + private String serviceShowName; + + @Excel(name = "服务时间", width = 25,format ="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wantServiceTime; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java new file mode 100644 index 0000000000..b8d6dae615 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.result.demand; + +import com.epmet.dto.result.HouseUserDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 数据分析-个人档案-需求详情,研判分析 + */ +@Data +public class DemandResearchAnalysisResultDTO implements Serializable { + private static final long serialVersionUID = -1024304149893118204L; + /** + * 居民信息及家属列表 + */ + private String icResiUserId; + private String icUserName; + private String houseId; + private List houseUserList; + + + private List demandList; + /** + * 入参中给的,再返回去 + */ + private List epmetUserIdList; +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java index a17609835d..5071fd8710 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java @@ -29,6 +29,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyActivityExcel; import com.epmet.service.IcPartyActivityService; import org.apache.commons.collections4.CollectionUtils; @@ -117,4 +118,24 @@ public class IcPartyActivityController { public Result importData(@LoginUser TokenDto tokenDto, HttpServletResponse response, @RequestPart("file") MultipartFile file) throws IOException { return icPartyActivityService.importData(tokenDto, response, file); } + + /** + * @Description 联建活动分类统计 + * @Param formDTO + * @Return {@link Result< List< OptionDTO>>} + * @Author zhaoqifeng + * @Date 2021/12/9 16:20 + */ + @PostMapping("statistics") + public Result> statistics(@RequestBody PartyActivityFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(icPartyActivityService.statistics(formDTO)); + } + + @PostMapping("activitylist") + public Result> activityList(@LoginUser TokenDto tokenDto, @RequestBody PartyActivityFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + PageData page = icPartyActivityService.getActivityList(tokenDto, formDTO); + return new Result>().ok(page); + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index ec06c3bf5f..359e6b3657 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -19,6 +19,7 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; @@ -28,8 +29,10 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyUnitExcel; import com.epmet.service.IcPartyUnitService; @@ -150,4 +153,30 @@ public class IcPartyUnitController { public Result importData(@LoginUser TokenDto tokenDto, HttpServletResponse response, @RequestPart("file") MultipartFile file) throws IOException { return icPartyUnitService.importData(tokenDto, response, file); } + + /** + * @Description 按类型统计单位数量 + * @Param dto + * @Return {@link Result< List< OptionDataResultDTO>>} + * @Author zhaoqifeng + * @Date 2021/12/8 14:52 + */ + @PostMapping("typestatistics") + public Result> typeStatistics(@RequestBody PartyActivityFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(icPartyUnitService.typeStatistics(formDTO)); + } + + /** + * @Description 联建单位分布 + * @Param formDTO + * @Return {@link Result< List< PartyUnitDistributionResultDTO>>} + * @Author zhaoqifeng + * @Date 2021/12/9 10:11 + */ + @PostMapping("distribution") + public Result> distribution(@RequestBody PartyActivityFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(icPartyUnitService.distribution(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java index 2b225c73dc..565a7a8423 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java @@ -132,6 +132,19 @@ public class IcResiDemandDictController { return new Result>().ok(icResiDemandDictService.getDemandOptions(tokenDto.getCustomerId())); } + /** + * 服务措施管理界面, + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("option-service") + public Result> getDemandOptionsV2(@LoginUser TokenDto tokenDto,@RequestBody DemandOptionFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,DemandOptionFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icResiDemandDictService.getDemandOptionsV2(formDTO)); + } /** * 居民信息列表需要展示分类名称,单独开出来这个接口,供user查询 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java index 9ce587e7b3..666243eee0 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java @@ -20,21 +20,22 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.UserDemandConstant; import com.epmet.dto.form.demand.*; -import com.epmet.dto.result.demand.DemandRecResultDTO; -import com.epmet.dto.result.demand.IcResiUserReportDemandRes; -import com.epmet.dto.result.demand.OptionDTO; +import com.epmet.dto.result.demand.*; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -210,7 +211,50 @@ public class IcUserDemandRecController { } + /** + * 数据分析-个人档案-需求详情,研判分析 + * + * @param formDTO + * @return + */ + @PostMapping("demand-research-analysis") + public Result queryDemandResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody DemandResearchAnalysisFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, DemandResearchAnalysisFormDTO.AddUserInternalGroup.class); + return new Result().ok(icUserDemandRecService.queryDemandResearchAnalysis(formDTO)); + } + /** + * 数分析-服务措施分析-分页查询 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("pagelist-analysis") + public Result> pageListAnalysis(@LoginUser TokenDto tokenDto,@RequestBody PageListAnalysisFormDTO formDTO){ + formDTO.setPageFlag(true); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,PageListAnalysisFormDTO.AddUserShowGroup.class,PageListAnalysisFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icUserDemandRecService.pageListAnalysis(formDTO)); + } - + /** + * 数据分析-服务措施分析-导出 + * @param response + * @param tokenDto + * @param formDTO + * @throws Exception + */ + @PostMapping("analysis-export") + public Result analysisExport(HttpServletResponse response,@LoginUser TokenDto tokenDto, @RequestBody PageListAnalysisFormDTO formDTO)throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setPageFlag(false); + PageData res=icUserDemandRecService.pageListAnalysis(formDTO); + if (!CollectionUtils.isEmpty(res.getList())) { + ExcelUtils.exportExcelToTarget(response, null, res.getList(), DemandRecExcelResultDTO.class); + return new Result(); + } + return new Result(); + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java index c596572fee..bb7e41c2ed 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyActivityDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.result.ActivityStatisticsDTO; import com.epmet.entity.IcPartyActivityEntity; import org.apache.ibatis.annotations.Mapper; @@ -29,5 +31,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcPartyActivityDao extends BaseDao { + + /** + * @Description 联建活动统计 + * @Param formDTO + * @Return {@link ActivityStatisticsDTO} + * @Author zhaoqifeng + * @Date 2021/12/9 16:06 + */ + ActivityStatisticsDTO getStatistics(PartyActivityFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java index caf1f6336c..e287499c48 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.apache.ibatis.annotations.Mapper; @@ -43,4 +45,22 @@ public interface IcPartyUnitDao extends BaseDao { List selectListByAgencyId(@Param("agencyIds") List agencyIds, @Param("unitName") String unitName, @Param("customerId")String customerId); + + /** + * 单位分类统计 + * @Param agencyId + * @Return {@link java.util.List} + * @Author zhaoqifeng + * @Date 2021/12/8 15:25 + */ + List getTypeStatistics(@Param("agencyId")String agencyId); + + /** + * @Description 联建单位分布 + * @Param agencyId + * @Return {@link List< PartyUnitDistributionResultDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 14:24 + */ + List getDistribution(@Param("agencyId")String agencyId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java index ed09bfd858..211ab20e8d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java @@ -36,8 +36,8 @@ import java.util.Set; */ @Mapper public interface IcResiDemandDictDao extends BaseDao { - List selectDemandOptions(@Param("customerId") String customerId); - List selectChildDemands(@Param("customerId")String customerId, @Param("parentCode") String parentCode); + List selectDemandOptions(@Param("customerId") String customerId,@Param("usableFlagFormValue") String usableFlagFormValue); + List selectChildDemands(@Param("customerId")String customerId, @Param("parentCode") String parentCode,@Param("usableFlagFormValue") String usableFlagFormValue); String selectCategoryNames(@Param("customerId") String customerId,@Param("codeSet") Set codeSet); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java index a06f831778..aa7c3c68c1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.demand.IcResiUserDemandFromDTO; +import com.epmet.dto.form.demand.PageListAnalysisFormDTO; import com.epmet.dto.form.demand.UserDemandPageFormDTO; import com.epmet.dto.result.demand.DemandRecResultDTO; import com.epmet.dto.result.demand.IcResiUserReportDemandRes; @@ -56,4 +57,12 @@ public interface IcUserDemandRecDao extends BaseDao { * @return */ DemandRecResultDTO selectDemandRecDetail(@Param("customerId") String customerId, @Param("demandRecId") String demandRecId); + + /** + * 数分析-服务措施分析-分页查询 + * + * @param formDTO + * @return + */ + List pageListAnalysis(PageListAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java index dc0ca8b8a9..c3931bbd0b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.form.PartyActivityFormDTO; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyActivityEntity; import org.springframework.web.multipart.MultipartFile; @@ -98,4 +99,22 @@ public interface IcPartyActivityService extends BaseService} + * @Author zhaoqifeng + * @Date 2021/12/9 14:55 + */ + List statistics(PartyActivityFormDTO formDTO); + + /** + * 联建活动统计列表 + * @Param formDTO + * @Return {@link PageData< IcPartyActivityDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 16:24 + */ + PageData getActivityList(TokenDto tokenDto, PartyActivityFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 8106d724fe..ebb876072a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -18,12 +18,15 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.springframework.web.multipart.MultipartFile; @@ -120,4 +123,22 @@ public interface IcPartyUnitService extends BaseService { * @Date 2021/11/29 11:01 */ Result importData(TokenDto tokenDto, HttpServletResponse response, MultipartFile file) throws IOException; + + /** + * @Description 按类型统计单位数量 + * @Param formDTO + * @Return {@link List< OptionDataResultDTO>} + * @Author zhaoqifeng + * @Date 2021/12/8 14:56 + */ + List typeStatistics(PartyActivityFormDTO formDTO); + + /** + * 联建单位分布 + * @Param formDTO + * @Return {@link List< PartyUnitDistributionResultDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 10:10 + */ + List distribution(PartyActivityFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java index ce9c4741a7..12cbaf7dad 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java @@ -86,6 +86,7 @@ public interface IcResiDemandDictService extends BaseService getDemandOptions(String customerId); + List getDemandOptionsV2(DemandOptionFormDTO formDTO); /** * 居民信息列表需要展示分类名称,单独开出来这个接口,供user查询 * @param formDTO diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index e3b719615e..685261ec33 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcUserDemandRecDTO; import com.epmet.dto.form.demand.*; import com.epmet.dto.result.demand.DemandRecResultDTO; +import com.epmet.dto.result.demand.DemandResearchAnalysisResultDTO; import com.epmet.dto.result.demand.IcResiUserReportDemandRes; import com.epmet.entity.IcUserDemandRecEntity; @@ -144,4 +145,20 @@ public interface IcUserDemandRecService extends BaseService pageListAnalysis(PageListAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java index 213dacc377..cd80f55b72 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java @@ -36,6 +36,7 @@ import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.IcPartyUnitDTO; import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.demand.SubCodeFormDTO; +import com.epmet.dto.result.ActivityStatisticsDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyActivityEntity; import com.epmet.excel.IcPartyActivityImportExcel; @@ -149,7 +150,13 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + IcPartyActivityDTO dto = ConvertUtils.sourceToTarget(entity, IcPartyActivityDTO.class); + dto.setServiceMatterName(categoryMap.get(dto.getServiceMatter())); + return dto; } @Override @@ -287,4 +294,81 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2021/12/9 14:55 + */ + @Override + public List statistics(PartyActivityFormDTO formDTO) { + List list = new ArrayList<>(); + if (null == formDTO.getStartTime() && null == formDTO.getEndTime()) { + setDate(formDTO); + } + ActivityStatisticsDTO dto = baseDao.getStatistics(formDTO); + + OptionDTO unit = new OptionDTO(); + unit.setLabel("组织单位"); + unit.setValue(dto.getUnitCount()); + list.add(unit); + OptionDTO activity = new OptionDTO(); + activity.setLabel("组织活动"); + activity.setValue(dto.getActivityCount()); + list.add(activity); + + return list; + } + + /** + * 联建活动统计列表 + * + * @param formDTO + * @Param formDTO + * @Return {@link PageData< IcPartyActivityDTO>} + * @Author zhaoqifeng + * @Date 2021/12/9 16:24 + */ + @Override + public PageData getActivityList(TokenDto tokenDto, PartyActivityFormDTO formDTO) { + if (null == formDTO.getStartTime() && null == formDTO.getEndTime()) { + setDate(formDTO); + } + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyActivityEntity::getAgencyId, formDTO.getAgencyId()); + wrapper.eq(StringUtils.isNotBlank(formDTO.getServiceMatter()), IcPartyActivityEntity::getServiceMatter, formDTO.getServiceMatter()); + wrapper.ge(null != formDTO.getStartTime(),IcPartyActivityEntity::getActivityTime, formDTO.getStartTime()); + wrapper.le(null != formDTO.getEndTime(), IcPartyActivityEntity::getActivityTime, formDTO.getEndTime()); + wrapper.orderByDesc(IcPartyActivityEntity::getActivityTime); + List list = baseDao.selectList(wrapper); + List dtoList = ConvertUtils.sourceToTarget(list, IcPartyActivityDTO.class); + + IcPartyUnitDTO unitDTO = new IcPartyUnitDTO(); + unitDTO.setAgencyId(formDTO.getAgencyId()); + if (CollectionUtils.isNotEmpty(dtoList)) { + Map option = icPartyUnitService.option(unitDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + SubCodeFormDTO codeFormDTO = new SubCodeFormDTO(); + codeFormDTO.setCustomerId(tokenDto.getCustomerId()); + codeFormDTO.setParentCategoryCode("1010"); + Map categoryMap = icResiDemandDictService.querySubCodeList(codeFormDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); + dtoList.forEach(dto -> { + dto.setServiceMatterName(categoryMap.get(dto.getServiceMatter())); + dto.setUnitName(option.get(dto.getUnitId())); + }); + } + PageInfo pageInfo = new PageInfo<>(dtoList); + return new PageData<>(dtoList, pageInfo.getTotal()); + } + + private void setDate(PartyActivityFormDTO formDTO) { + String start = DateUtils.getBeforeNDay(30); + formDTO.setEndTime(DateUtils.parse(start.concat("000000"), DateUtils.DATE_TIME_NO_SPLIT)); + String end = DateUtils.format(new Date(), DateUtils.DATE_PATTERN); + formDTO.setEndTime(DateUtils.parse(end.concat(" 23:59:59"), DateUtils.DATE_TIME_PATTERN)); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 4931389ae0..336c60f7be 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -24,7 +24,10 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.dto.result.DictListResultDTO; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.enums.PartyUnitTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -37,9 +40,11 @@ import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcPartyUnitDao; import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.form.demand.SubCodeFormDTO; +import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import com.epmet.excel.IcPartyUnitImportExcel; @@ -370,6 +375,49 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2021/12/8 14:56 + */ + @Override + public List typeStatistics(PartyActivityFormDTO formDTO) { + DictListFormDTO dictFromDTO = new DictListFormDTO(); + dictFromDTO.setDictType(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFromDTO); + if (!dictResult.success()) { + throw new EpmetException(dictResult.getCode()); + } + + List list = baseDao.getTypeStatistics(formDTO.getAgencyId()); + Map map = list.stream().collect(Collectors.toMap(OptionDataResultDTO::getCode, OptionDataResultDTO::getValue)); + + return dictResult.getData().stream().map(item -> { + OptionDataResultDTO dto = new OptionDataResultDTO(); + dto.setLabel(item.getLabel()); + dto.setCode(item.getValue()); + dto.setValue(null == map.get(item.getValue())?NumConstant.ZERO_STR:map.get(item.getValue())); + return dto; + }).collect(Collectors.toList()); + } + + /** + * 联建单位分布 + * + * @param formDTO + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/12/9 10:10 + */ + @Override + public List distribution(PartyActivityFormDTO formDTO) { + return baseDao.getDistribution(formDTO.getAgencyId()); + } + private String getServiceMatter(Map map, String matter) { List matters = Arrays.asList(matter.split(StrConstant.COLON)); List list = matters.stream().map(map::get).collect(Collectors.toList()); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java index 520e367177..5fe0df4eff 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java @@ -182,7 +182,18 @@ public class IcResiDemandDictServiceImpl extends BaseServiceImpl getDemandOptions(String customerId) { - return baseDao.selectDemandOptions(customerId); + return baseDao.selectDemandOptions(customerId,null); + } + + + @Override + public List getDemandOptionsV2(DemandOptionFormDTO formDTO) { + if ("addorupdate".equals(formDTO.getPurpose())) { + //只查询可用的 + return baseDao.selectDemandOptions(formDTO.getCustomerId(), "1"); + } + //查询全部 + return baseDao.selectDemandOptions(formDTO.getCustomerId(), null); } @Override diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 51988384c8..51bc5fc35c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -37,13 +37,16 @@ import com.epmet.dao.IcUserDemandOperateLogDao; import com.epmet.dao.IcUserDemandRecDao; import com.epmet.dao.IcUserDemandSatisfactionDao; import com.epmet.dao.IcUserDemandServiceDao; +import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.IcUserDemandRecDTO; import com.epmet.dto.form.CustomerGridFormDTO; import com.epmet.dto.form.demand.*; import com.epmet.dto.result.AllGridsByUserIdResultDTO; +import com.epmet.dto.result.IcResiUserBriefDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.demand.DemandRecResultDTO; +import com.epmet.dto.result.demand.DemandResearchAnalysisResultDTO; import com.epmet.dto.result.demand.IcResiUserReportDemandRes; import com.epmet.entity.*; import com.epmet.feign.EpmetAdminOpenFeignClient; @@ -554,8 +557,144 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId()); + if (!userRes.success() || null == userRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常"); + } + IcResiUserBriefDTO icResiUserDTO = userRes.getData(); + DemandResearchAnalysisResultDTO resultDTO = ConvertUtils.sourceToTarget(icResiUserDTO, DemandResearchAnalysisResultDTO.class); + resultDTO.setEpmetUserIdList(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList()) ? formDTO.getEpmetUserIdList() : Collections.emptyList()); + //获取当前需求人,相同分类的需求列表。不分页,直接返回所有 + List userIds=new ArrayList<>(); + userIds.add(formDTO.getIcResiUserId()); + if(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())){ + userIds.addAll(formDTO.getEpmetUserIdList()); + } + IcResiUserDemandFromDTO icResiUserDemandFromDTO=new IcResiUserDemandFromDTO(); + icResiUserDemandFromDTO.setUserIds(userIds); + icResiUserDemandFromDTO.setFirstCategoryCode(formDTO.getFirstCategoryCode()); + List demandList = baseDao.selectUserDemand(icResiUserDemandFromDTO); + + if(CollectionUtils.isNotEmpty(demandList)){ + // 1、状态字典 + Result> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + //2、查询分类名称 + List categoryCodes = demandList.stream().map(IcResiUserReportDemandRes::getCategoryCode).collect(Collectors.toList()); + List dictList = demandDictService.listByCodes(formDTO.getCustomerId(), categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + for (IcResiUserReportDemandRes resDto : demandList) { + //状态赋值 + resDto.setStatusName(statusMap.containsKey(resDto.getStatus()) ? statusMap.get(resDto.getStatus()) : StrConstant.EPMETY_STR); + if (null != dictMap && dictMap.containsKey(resDto.getCategoryCode())) { + //分类名称XXX-XX 或者XXX + resDto.setCategoryName(dictMap.get(resDto.getCategoryCode())); + } + //一级分类名称 + resDto.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(),resDto.getFirstCategoryCode())); + } + resultDTO.setDemandList(CollectionUtils.isNotEmpty(demandList) ? demandList : Collections.emptyList()); + } + return resultDTO; + } + /** + * 数分析-服务措施分析-分页查询 + * + * @param formDTO + * @return + */ + @Override + public PageData pageListAnalysis(PageListAnalysisFormDTO formDTO) { + if("agency".equals(formDTO.getOrgType())){ + if(NumConstant.ZERO_STR.equals(formDTO.getPid())){ + //当前传入的组织id=客户的根组织 + formDTO.setGridPids(formDTO.getOrgId()); + }else{ + //找到当前组织的所有上级,再拼接上自己 + Result customerAgencyDTOResult=govOrgOpenFeignClient.getAgencyById(formDTO.getOrgId()); + if(!customerAgencyDTOResult.success()||null==customerAgencyDTOResult.getData()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取组织信息异常govOrgOpenFeignClient.getAgencyById"); + } + formDTO.setGridPids(customerAgencyDTOResult.getData().getPids().concat(StrConstant.COLON).concat(formDTO.getOrgId())); + } + } + long total=NumConstant.ZERO; + List list=new ArrayList<>(); + if(formDTO.getPageFlag()){ + PageInfo pageInfo= PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.pageListAnalysis(formDTO)); + list=pageInfo.getList(); + total=pageInfo.getTotal(); + }else{ + list=baseDao.pageListAnalysis(formDTO); + } + if(CollectionUtils.isNotEmpty(list)){ + //1、查询网格信息 + List gridIds=list.stream().map(DemandRecResultDTO::getGridId).collect(Collectors.toList()); + Result> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds); + List gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + //2、查询分类名称 + List categoryCodes=list.stream().map(DemandRecResultDTO::getCategoryCode).collect(Collectors.toList()); + List dictList=demandDictService.listByCodes(formDTO.getCustomerId(),categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + //3、查询志愿者 + // 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + Map userInfoMap=new HashMap<>(); + List userIdList=list.stream().filter(item->item.getServiceType().equals(UserDemandConstant.VOLUNTEER)).map(DemandRecResultDTO::getServerId).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(userIdList)){ + Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(userIdList); + if(!userInfoRes.success()||CollectionUtils.isEmpty(userInfoRes.getData())){ + throw new RenException("查询志愿者信息异常"); + } + userInfoMap=userInfoRes.getData().stream().collect(Collectors.toMap(UserBaseInfoResultDTO::getUserId, UserBaseInfoResultDTO::getRealName)); + } + + //查询字典表 + Result> reportTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_REPORT_TYPE.getCode()); + Map reportTypeMap=reportTypeRes.success()&& MapUtils.isNotEmpty(reportTypeRes.getData())?reportTypeRes.getData():new HashMap<>(); + + Result> statusRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap=statusRes.success()&& MapUtils.isNotEmpty(statusRes.getData())?statusRes.getData():new HashMap<>(); + + Result> serviceTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_SERVICE_TYPE.getCode()); + Map serviceTypeMap=serviceTypeRes.success()&& MapUtils.isNotEmpty(serviceTypeRes.getData())?serviceTypeRes.getData():new HashMap<>(); + + for(DemandRecResultDTO res:list){ + if (null != gridInfoMap && gridInfoMap.containsKey(res.getGridId())) { + res.setGridName(gridInfoMap.get(res.getGridId()).getGridName()); + } + + if (null != dictMap && dictMap.containsKey(res.getCategoryCode())) { + res.setCategoryName(dictMap.get(res.getCategoryCode())); + } + res.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(), res.getFirstCategoryCode())); + if (null != userInfoMap && userInfoMap.containsKey(res.getServerId())) { + res.setServiceName(userInfoMap.get(res.getServerId())); + } + //社区帮办:community;楼长帮办:building_caption;党员帮办:party;自身上报:self_help + res.setReportTypeName(reportTypeMap.containsKey(res.getReportType())?reportTypeMap.get(res.getReportType()):StrConstant.EPMETY_STR); + //待处理:pending;已取消canceled;已派单:assigned;已接单:have_order;已完成:finished + res.setStatusName(statusMap.containsKey(res.getStatus())?statusMap.get(res.getStatus()):StrConstant.EPMETY_STR); + //服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + res.setServiceShowName(serviceTypeMap.containsKey(res.getServiceType())?res.getServiceName().concat("(").concat(serviceTypeMap.get(res.getServiceType())).concat(")"):StrConstant.EPMETY_STR); + } + } + return new PageData<>(list, total); + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml index fd84685f0e..ede5b4c0e1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml @@ -26,6 +26,24 @@ + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml index a346765fd8..aa0785186d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitDao.xml @@ -46,4 +46,32 @@ + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml index 0e6293002d..be50e98601 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml @@ -24,8 +24,9 @@ + + select="selectChildDemands" column="customerId=customerId,parentCode=value,usableFlagFormValue=usable_flag_form_value"> @@ -48,7 +54,9 @@ CUSTOMER_ID AS customerId, CATEGORY_CODE AS "value", CATEGORY_NAME AS "label", - PARENT_CODE as pValue + PARENT_CODE as pValue, + #{usableFlagFormValue} as usable_flag_form_value, + USABLE_FLAG as usableFlag FROM ic_resi_demand_dict WHERE @@ -56,6 +64,9 @@ AND LEVEL = 2 AND CUSTOMER_ID = #{customerId} AND PARENT_CODE = #{parentCode} + + and USABLE_FLAG=#{usableFlagFormValue} + ORDER BY SORT ASC diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index e4ac17efca..804ddac6d6 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -192,4 +192,73 @@ AND r.CUSTOMER_ID = #{customerId} and r.id=#{demandRecId} + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java new file mode 100644 index 0000000000..1ee04f0858 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzFormDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/12/8 3:29 下午 + * @DESC + */ +@Data +public class ResiBuzzFormDTO implements Serializable { + + private static final long serialVersionUID = 7477325476668438447L; + + public interface ResiBuzzForm{} + + private String orgId; + + private String orgType; + + /** + * 表决中:voting 已转项目:shift_project 已关闭:closed,全部:all + */ + @NotBlank(message = "status不能为空",groups = ResiBuzzForm.class) + private String status; + + @NotNull(message = "pageSize不能为空",groups = ResiBuzzForm.class) + private Integer pageSize; + + @NotNull(message = "pageNo不能为空",groups = ResiBuzzForm.class) + private Integer pageNo; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzLeftPieChartFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzLeftPieChartFormDTO.java new file mode 100644 index 0000000000..a8b2cae5dd --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ResiBuzzLeftPieChartFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/12/9 9:53 上午 + * @DESC + */ +@Data +public class ResiBuzzLeftPieChartFormDTO implements Serializable { + + private static final long serialVersionUID = -7312573663758331220L; + + /** + * 组织ID + */ + private String orgId; + + /** + * 组织类型,agency:组织,grid:网格 + */ + private String orgType; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java index ae61ba1769..8f719ff94c 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java @@ -27,6 +27,14 @@ public class CategoryListResultDTO implements Serializable { private Integer count; + /** + * 颜色 + */ + private String colour; + + /** + * 1级分类长度 + */ private Integer codeLength; public CategoryListResultDTO() { @@ -34,5 +42,6 @@ public class CategoryListResultDTO implements Serializable { this.categoryName = ""; this.count = NumConstant.ZERO; this.codeLength = NumConstant.ZERO; + this.colour = ""; } } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java new file mode 100644 index 0000000000..72da12a996 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzDTO.java @@ -0,0 +1,91 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/12/8 3:37 下午 + * @DESC + */ +@Data +public class ResiBuzzDTO implements Serializable { + + private static final long serialVersionUID = -1844581181580474374L; + + @JsonIgnore + private String createdBy; + + /** + * 排序 + */ + private Integer sort; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 议题ID + */ + private String issueId; + + /** + * 建议 + */ + private String suggestion; + + /** + * 状态 + */ + private String status; + + /** + * 创建时间 + */ + private String createdTime; + + /** + * 支持个数 + */ + private Integer supportCount; + + /** + * 反对个数 + */ + private Integer oppositionCount; + + /** + * 表决占比 + */ + private String voteAccount; + + /** + * 议题发起人 + */ + private String issueOriginator; + + /** + * 分类名字 + */ + private String categoryName; + + public ResiBuzzDTO() { + this.createdBy = ""; + this.sort = NumConstant.ZERO; + this.issueTitle = ""; + this.issueId = ""; + this.suggestion = ""; + this.status = ""; + this.createdTime = ""; + this.supportCount = NumConstant.ZERO; + this.oppositionCount = NumConstant.ZERO; + this.voteAccount = ""; + this.issueOriginator = ""; + this.categoryName = "其他"; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzLeftPieChartResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzLeftPieChartResultDTO.java new file mode 100644 index 0000000000..7349b7967b --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzLeftPieChartResultDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/12/9 9:56 上午 + * @DESC + */ +@Data +public class ResiBuzzLeftPieChartResultDTO implements Serializable { + + private static final long serialVersionUID = -4673540577019002156L; + + /** + * 数量 + */ + private Integer count; + + /** + * 分类编码 + */ + private String categoryCode; + + /** + * 分类名字 + */ + private String categoryName; + + /** + * 颜色 + */ + private String colour; + + public ResiBuzzLeftPieChartResultDTO() { + this.count = NumConstant.ZERO; + this.categoryCode = ""; + this.categoryName = ""; + this.colour = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java new file mode 100644 index 0000000000..4f4236d2bb --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ResiBuzzResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2021/12/8 3:36 下午 + * @DESC + */ +@Data +public class ResiBuzzResultDTO implements Serializable { + + private static final long serialVersionUID = 4914999826185811915L; + + private Integer total; + + private List list; + + public ResiBuzzResultDTO() { + this.total = NumConstant.ZERO; + this.list = new ArrayList<>(); + } +} 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 87e60da943..93f897586e 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 @@ -10,7 +10,6 @@ import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBackFactory; import com.epmet.project.dto.CustomerCategoryDTO; import com.epmet.project.dto.result.ProjectCategoryDictResultDTO; @@ -356,4 +355,21 @@ public interface GovIssueOpenFeignClient { @PostMapping(value = "/gov/issue/issueprojectcategorydict/categorylist") Result> selectCategoryOneLevelListByCustomerId(@LoginUser TokenDto tokenDto); + /** + * @Description 查询组织下每个网格的项目数 + * @param formDTO + * @author zxc + * @date 2021/12/9 2:59 下午 + */ + @PostMapping(value = "/gov/issue/issue/projectcountbygrid") + Result> getProjectCountByGrid(@RequestBody ProjectDistributionAnalysisFormDTO formDTO); + + /** + * @param formDTO + * @return + * @Description 批量查询分类信息 + * @Author yinzuomei + **/ + @PostMapping(value = "/gov/issue/issueprojectcategorydict/getcategorylist") + public Result> getCategoryList(@RequestBody IssueProjectCategoryDictListFormDTO formDTO); } 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 2cbb23ae48..5e59dc20fe 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 @@ -23,7 +23,6 @@ import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO; import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; -import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; @@ -290,4 +289,20 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> selectCategoryOneLevelListByCustomerId(TokenDto tokenDto) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "selectCategoryOneLevelListByCustomerId", tokenDto); } + + @Override + public Result> getProjectCountByGrid(ProjectDistributionAnalysisFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getProjectCountByGrid", formDTO); + } + + /** + * @param formDTO + * @return + * @Description 批量查询分类信息 + * @Author yinzuomei + **/ + @Override + public Result> getCategoryList(IssueProjectCategoryDictListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryList", formDTO); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index 3378abc1b4..55f1348b44 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -1,5 +1,7 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IssueDTO; @@ -284,7 +286,41 @@ public class IssueController { return new Result>().ok(issueService.getUnResolvedList(formDTO)); } -// @PostMapping("resibuzz") + /** + * @Description 居民热议列表 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/8 3:50 下午 + */ + @PostMapping("resibuzz") + public Result resiBuzz(@RequestBody ResiBuzzFormDTO formDTO, @LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, ResiBuzzFormDTO.ResiBuzzForm.class); + return new Result().ok(issueService.resiBuzz(formDTO,tokenDto)); + } + + /** + * @Description 居民热议左边饼图 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/9 10:03 上午 + */ + @PostMapping("resibuzz-leftpiechart") + public Result> resiBuzzLeftPieChart(@RequestBody ResiBuzzLeftPieChartFormDTO formDTO,@LoginUser TokenDto tokenDto){ + return new Result>().ok(issueService.resiBuzzLeftPieChart(formDTO,tokenDto)); + } + + /** + * @Description 查询组织下每个网格的项目数 + * @param formDTO + * @author zxc + * @date 2021/12/9 2:59 下午 + */ + @PostMapping("projectcountbygrid") + public Result> getProjectCountByGrid(@RequestBody ProjectDistributionAnalysisFormDTO formDTO){ + return new Result>().ok(issueService.getProjectCountByGrid(formDTO)); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java index be1c4ee25b..d81143c74c 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java @@ -225,4 +225,41 @@ public interface IssueDao extends BaseDao { * @return java.util.List */ List selectUnResolvedList(@Param("gridId") String gridId); + + /** + * @Description 查询表决前50名 + * @param orgId + * @param orgType + * @param status + * @author zxc + * @date 2021/12/8 4:08 下午 + */ + List selectIssueLimit50(@Param("orgId")String orgId,@Param("orgType")String orgType,@Param("status")String status); + + /** + * @Description 查询客户下1级分类的长度 + * @param customerId + * @author zxc + * @date 2021/12/9 10:28 上午 + */ + Integer selectOneLevelCategoryLength(@Param("customerId")String customerId); + + /** + * @Description 查询居民热议左侧饼图 + * @param orgId + * @param orgType + * @param length + * @author zxc + * @date 2021/12/9 10:57 上午 + */ + List resiBuzzLeftPieChart(@Param("orgId")String orgId,@Param("orgType")String orgType,@Param("length")Integer length,@Param("customerId")String customerId); + + /** + * @Description 查询组织下每个网格的项目数 + * @param orgId + * @author zxc + * @date 2021/12/9 2:59 下午 + */ + List getProjectCountByGrid(@Param("orgId")String orgId,@Param("startDate")String startDate,@Param("endDate")String endDate); + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java index af7ec1b7a5..4eca209b95 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java @@ -350,4 +350,31 @@ public interface IssueService extends BaseService { * @return java.util.List */ List getUnResolvedList(ShiftProjectListFromDTO fromDTO); + + /** + * @Description 居民热议列表 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/8 3:50 下午 + */ + ResiBuzzResultDTO resiBuzz(ResiBuzzFormDTO formDTO , TokenDto tokenDto); + + /** + * @Description 居民热议左边饼图 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/9 10:03 上午 + */ + List resiBuzzLeftPieChart(ResiBuzzLeftPieChartFormDTO formDTO,TokenDto tokenDto); + + /** + * @Description 查询组织下每个网格的项目数 + * @param formDTO + * @author zxc + * @date 2021/12/9 2:59 下午 + */ + List getProjectCountByGrid(ProjectDistributionAnalysisFormDTO formDTO); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index ca52276790..3111b567b0 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -9,10 +9,13 @@ import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.EventEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; @@ -67,6 +70,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -1564,12 +1568,90 @@ public class IssueServiceImpl extends BaseServiceImpl imp return resultList; } - public static void main(String[] args) { - List list = new ArrayList<>(); - list.add("1"); - list.add("2"); - list.add("3"); - System.out.println(list.subList(0, 3)); + /** + * @Description 居民热议列表 + * 如果议题没有分类,默认显示其他,产品说的 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/8 3:50 下午 + */ + @Override + public ResiBuzzResultDTO resiBuzz(ResiBuzzFormDTO formDTO, TokenDto tokenDto) { + if (StringUtils.isBlank(formDTO.getOrgId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo){ + throw new EpmetException("未查询到此工作人员的所属组织信息..."); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType(IssueConstant.ISSUE_AGENCY); + } + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectIssueLimit50(formDTO.getOrgId(), formDTO.getOrgType(), formDTO.getStatus())); + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)){ + return new ResiBuzzResultDTO(); + } + AtomicReference no = new AtomicReference<>((formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize() + NumConstant.ONE); + ResiBuzzResultDTO result = new ResiBuzzResultDTO(); + UserResiInfoListFormDTO userResiInfoListFormDTO = new UserResiInfoListFormDTO(); + userResiInfoListFormDTO.setUserIdList(list.stream().map(ResiBuzzDTO::getCreatedBy).collect(Collectors.toList())); + Result> usersResult = epmetUserFeignClient.getUserResiInfoList(userResiInfoListFormDTO); + if (!usersResult.success()){ + throw new EpmetException("查询人员姓名失败..."); + } + Integer total = Integer.valueOf(String.valueOf(pageInfo.getTotal())); + result.setTotal(total > NumConstant.FIFTY ? NumConstant.FIFTY : total); + list.forEach(l -> { + l.setSort(no.getAndSet(no.get() + NumConstant.ONE)); + usersResult.getData().forEach(u -> { + if (l.getCreatedBy().equals(u.getUserId())){ + l.setIssueOriginator(u.getShowName()); + } + }); + }); + result.setList(list); + return result; } + /** + * @Description 居民热议左边饼图 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/12/9 10:03 上午 + */ + @Override + public List resiBuzzLeftPieChart(ResiBuzzLeftPieChartFormDTO formDTO, TokenDto tokenDto) { + if (StringUtils.isBlank(formDTO.getOrgId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo){ + throw new EpmetException("未查询到此工作人员的所属组织信息..."); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType(IssueConstant.ISSUE_AGENCY); + } + Integer length = baseDao.selectOneLevelCategoryLength(tokenDto.getCustomerId()); + List result = baseDao.resiBuzzLeftPieChart(formDTO.getOrgId(), formDTO.getOrgType(), length, tokenDto.getCustomerId()); + if(CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + return result; + } + + /** + * @Description 查询组织下每个网格的项目数 + * @param formDTO + * @author zxc + * @date 2021/12/9 2:59 下午 + */ + @Override + public List getProjectCountByGrid(ProjectDistributionAnalysisFormDTO formDTO) { + List result = baseDao.getProjectCountByGrid(formDTO.getOrgId(), formDTO.getStartDate(), formDTO.getEndDate()); + if (CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + return result; + } + + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.15__add_colour.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.15__add_colour.sql new file mode 100644 index 0000000000..81473802f7 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.15__add_colour.sql @@ -0,0 +1,88 @@ +alter table issue_project_category_dict add column `COLOUR` VARCHAR(20) COMMENT '颜色' AFTER `SORT`; + + + +UPDATE issue_project_category_dict +SET colour = '#ffba00' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '市场监管'; + +UPDATE issue_project_category_dict +SET colour = '#ffd074' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '卫生计生监督执法'; + +UPDATE issue_project_category_dict +SET colour = '#42cd05' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '建设管理'; + +UPDATE issue_project_category_dict +SET colour = '#16d783' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '文化执法'; + +UPDATE issue_project_category_dict +SET colour = '#00e5ed' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '民政'; + +UPDATE issue_project_category_dict +SET colour = '#0091ed' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '其他'; + +UPDATE issue_project_category_dict +SET colour = '#1b51ff' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '城市管理'; + +UPDATE issue_project_category_dict +SET colour = '#1641cc' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '公安交通管理'; + +UPDATE issue_project_category_dict +SET colour = '#2a00ff' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '消防安全'; + +UPDATE issue_project_category_dict +SET colour = '#7800ff' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '创卫复审类'; + +UPDATE issue_project_category_dict +SET colour = '#c600ff' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '环境保护'; + +UPDATE issue_project_category_dict +SET colour = '#ff00d2' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '安全监管'; + +UPDATE issue_project_category_dict +SET colour = '#ff2a00' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '社会治安综治'; + +UPDATE issue_project_category_dict +SET colour = '#ff7800' +WHERE DEL_FLAG = '0' + AND CATEGORY_TYPE = '1' + AND CATEGORY_NAME = '食品药品监管'; + diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index f12b363cc7..827f52b774 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -577,4 +577,81 @@ AND ISSUE_STATUS = 'closed' AND RESOLVE_TYPE = 'unresolved' + + + + + + + + + + + + \ No newline at end of file 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 6c5d46eedd..7730d467f4 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 @@ -250,7 +250,8 @@ SELECT CATEGORY_CODE, CATEGORY_NAME, - LENGTH(CATEGORY_CODE) AS codeLength + LENGTH(CATEGORY_CODE) AS codeLength, + IFNULL(colour,'') AS colour FROM issue_project_category_dict WHERE DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 6c438becaf..5d713f13e4 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -531,4 +531,13 @@ public interface GovOrgOpenFeignClient { @GetMapping("/gov/org/customergrid/getGridIListByAgency/{agencyId}") Result> getGridIListByAgency(@PathVariable("agencyId") String agencyId); + + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + @PostMapping("/gov/org/agency/getsonagencyid") + Result> getSonAgencyId(@RequestParam("orgId")String orgId); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 58847819eb..46fcb2506c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -334,6 +334,11 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridIListByAgency", agencyId); } + @Override + public Result> getSonAgencyId(String orgId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getSonAgencyId", orgId); + } + @Override public Result selectPidsByGridId(String gridId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index c2c2273036..5651110c57 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -349,4 +349,15 @@ public class AgencyController { return new Result>().ok(agencyService.baseInfoFamilyBuilding(formDTO)); } + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + @PostMapping("getsonagencyid") + public Result> getSonAgencyId(@RequestParam("orgId")String orgId){ + return new Result>().ok(agencyService.getSonAgencyId(orgId)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index 07716708be..d1a49f7ba3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -275,10 +275,12 @@ public interface CustomerAgencyDao extends BaseDao { List selectSonOrg(@Param("pid")String pid,@Param("type")String type); /** - * desc:获取组织网格树 含直属网格 - * @param agencyId - * @return + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 */ - AgencyTreeResultDTO getAgencyGridTree(String agencyId); + List getSonAgencyId(@Param("orgId") String orgId); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java index 42b765e40c..18bf0f63f0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterMatterDao.java @@ -22,6 +22,8 @@ import com.epmet.entity.IcPartyServiceCenterMatterEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 党群服务中心可预约事项表 * @@ -38,5 +40,13 @@ public interface IcPartyServiceCenterMatterDao extends BaseDao selectMatterNameByCenterId(@Param("centerId") String centerId); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java index 9a2fd83d82..d85f2d8b68 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java @@ -148,4 +148,12 @@ public interface AgencyService { */ List baseInfoFamilyBuilding(BaseInfoFamilyBuildingFormDTO formDTO); + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + List getSonAgencyId(String orgId); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java index cc977a17c5..23ac454d97 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPartyServiceCenterMatterService.java @@ -100,4 +100,12 @@ public interface IcPartyServiceCenterMatterService extends BaseService selectMatterNameByCenterId(String centerId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index e9747050e3..b15e6f17c3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -621,6 +621,21 @@ public class AgencyServiceImpl implements AgencyService { return result; } + /** + * @Description 查询下级agencyId + * @param orgId + * @author zxc + * @date 2021/12/9 4:42 下午 + */ + @Override + public List getSonAgencyId(String orgId) { + List result = customerAgencyDao.getSonAgencyId(orgId); + if (CollectionUtils.isNotEmpty(result)){ + return result; + } + return new ArrayList<>(); + } + private CustomerAgencyEntity constructInsertEntity(AddAgencyV2FormDTO formDTO, CustomerAgencyDTO parent) { CustomerAgencyEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); insertEntity.setOrganizationName(formDTO.getAgencyName()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java index b264c2159b..e6e85dc9ff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterMatterServiceImpl.java @@ -109,4 +109,15 @@ public class IcPartyServiceCenterMatterServiceImpl extends BaseServiceImpl selectMatterNameByCenterId(String centerId) { + return baseDao.selectMatterNameByCenterId(centerId); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java index 3a027a9b8a..f15494c546 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; @@ -137,6 +138,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl l = new LambdaQueryWrapper<>(); @@ -164,6 +166,12 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl matters = ConvertUtils.sourceToTarget(formDTO.getMatterList(), IcPartyServiceCenterMatterEntity.class); + List paramMatterNames = matters.stream().map(m -> m.getMatterName()).collect(Collectors.toList()); + Integer allSize = paramMatterNames.size(); + Integer distinctSize = paramMatterNames.stream().distinct().collect(Collectors.toList()).size(); + if (distinctSize < allSize){ + throw new EpmetException(EpmetErrorCode.MATTER_NAME_EXISTS_APPOINTMENT_ERROR.getCode()); + } matters.forEach(m -> { m.setCustomerId(customerId); m.setPartyServiceCenterId(centerEntity.getId()); @@ -181,6 +189,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl l = new LambdaQueryWrapper<>(); l.eq(IcPartyServiceCenterEntity::getCenterName,formDTO.getCenterName()) @@ -194,14 +203,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl matters = ConvertUtils.sourceToTarget(formDTO.getMatterList(), IcPartyServiceCenterMatterEntity.class); - matters.forEach(m -> { - m.setCustomerId(tokenDto.getCustomerId()); - m.setPartyServiceCenterId(formDTO.getPartyServiceCenterId()); - }); - matterService.insertBatch(matters); - } + // del matter if (CollectionUtils.isNotEmpty(formDTO.getDelMatterList())){ List delMatterList = formDTO.getDelMatterList(); @@ -218,6 +220,25 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl existsMatterNames = matterService.selectMatterNameByCenterId(formDTO.getPartyServiceCenterId()); + List matters = ConvertUtils.sourceToTarget(formDTO.getMatterList(), IcPartyServiceCenterMatterEntity.class); + List paramMatterNames = matters.stream().map(m -> m.getMatterName()).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(existsMatterNames)){ + paramMatterNames.addAll(existsMatterNames); + } + Integer allSize = paramMatterNames.size(); + Integer distinctSize = paramMatterNames.stream().distinct().collect(Collectors.toList()).size(); + if (distinctSize < allSize){ + throw new EpmetException(EpmetErrorCode.MATTER_NAME_EXISTS_APPOINTMENT_ERROR.getCode()); + } + matters.forEach(m -> { + m.setCustomerId(tokenDto.getCustomerId()); + m.setPartyServiceCenterId(formDTO.getPartyServiceCenterId()); + }); + matterService.insertBatch(matters); + } } /** @@ -227,6 +248,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl re = new LambdaQueryWrapper<>(); re.eq(BaseEpmetEntity::getDelFlag,NumConstant.ZERO). @@ -247,6 +269,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl l = new LambdaQueryWrapper<>(); @@ -407,6 +430,7 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml index f765126687..d8bbd1ba95 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterMatterDao.xml @@ -10,4 +10,13 @@ AND PARTY_SERVICE_CENTER_ID = #{partyServiceCenterId} + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java new file mode 100644 index 0000000000..26950059b5 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java @@ -0,0 +1,50 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 数据分析-个人档案-上报事件详情-研判分析,查看项目通分类+来源于当前上报人上报的所有事件 + * + */ +@Data +public class ResiEventResearchAnalysisFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + /** + * 当前选中的事件id + */ + @NotBlank(message = "resiEventId不能为空",groups = AddUserInternalGroup.class) + private String resiEventId; + + /** + * 当前选中的事件转为的项目id + */ + @NotBlank(message = "projectId不能为空",groups = AddUserInternalGroup.class) + private String projectId; + + /** + * 个人档案的这个人 + */ + @NotBlank(message = "icResiUserId不能为空",groups = AddUserInternalGroup.class) + private String icResiUserId; + + /** + * 个人档案的这个人,对应小程序的人的用户id + */ + private List epmetUserIdList; + + + + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java new file mode 100644 index 0000000000..b3c2ffe827 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + + +/** + * 话题详情-研判分析 + */ +@Data +public class TopicResearchAnalysisFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + /** + * 当前选中的事件转为的项目id + */ + @NotBlank(message = "projectId不能为空",groups = AddUserInternalGroup.class) + private String projectId; + + /** + * 个人档案的这个人 + */ + @NotBlank(message = "icResiUserId不能为空",groups = AddUserInternalGroup.class) + private String icResiUserId; + + /** + * 个人档案的这个人,对应小程序的人的用户id + */ + private List epmetUserIdList; + + + + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java new file mode 100644 index 0000000000..4ade8603df --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java @@ -0,0 +1,11 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class HouseUserDTO implements Serializable { + private String icResiUserId; + private String icUserName; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDataDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDataDTO.java new file mode 100644 index 0000000000..0f4721dbec --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDataDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 数据分析-个人档案-上报事件详情-研判分析,查看项目通分类+来源于当前上报人上报的所有事件 + */ +@Data +public class ProjectDataDTO implements Serializable { + private String firstCategoryCode; + private String firstCategoryName; + private List projectList; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightDTO.java index da965870b5..d48a225007 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightDTO.java @@ -1,6 +1,7 @@ package com.epmet.dto.result; import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -23,6 +24,7 @@ public class ProjectDistributionAnalysisRightDTO implements Serializable { /** * 组织类型,组织:agency,网格:grid */ + @JsonIgnore private String orgType; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightResultDTO.java index 1801d1c1d7..5b52084e9d 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisRightResultDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.result; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; /** @@ -30,4 +31,11 @@ public class ProjectDistributionAnalysisRightResultDTO implements Serializable { private String above; private List list; + + public ProjectDistributionAnalysisRightResultDTO() { + this.under = ""; + this.middle = ""; + this.above = ""; + this.list = new ArrayList<>(); + } } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java new file mode 100644 index 0000000000..3129e6fccc --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 数据分析-个人档案-上报事件详情-研判分析,查看项目通分类+来源于当前上报人上报的所有事件 + */ +@Data +public class ProjectInfoIcData implements Serializable { + private static final long serialVersionUID = -1937915930811634827L; + private String projectId; + private String projectTitle; + private String resiEventId; + private String projectStatus; + + /** + * 以下这两个参数是给话题详情-研判分析用的 + */ + private String issueId; + private String topicId; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventResearchAnalysisResDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventResearchAnalysisResDTO.java new file mode 100644 index 0000000000..e432179589 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventResearchAnalysisResDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 数据分析-个人档案-上报事件详情-研判分析,查看项目通分类+来源于当前上报人上报的所有事件 + * + */ +@Data +public class ResiEventResearchAnalysisResDTO implements Serializable { + + /** + * 居民信息及家属列表 + */ + private String icResiUserId; + private String icUserName; + private String houseId; + private List houseUserList; + + + /** + * 入参中给的,再返回去 + */ + private List epmetUserIdList; + private List projectData; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java new file mode 100644 index 0000000000..37648617ed --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.util.List; + +@Data +public class TopicResearchAnalysisResDTO { + /** + * 居民信息及家属列表 + */ + private String icResiUserId; + private String icUserName; + private String houseId; + private List houseUserList; + + + /** + * 入参中给的,再返回去 + */ + private List epmetUserIdList; + private List projectData; +} 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 205d91bc3d..612debd512 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 @@ -197,4 +197,6 @@ public interface ProjectConstant { String ORG_TYPE_GRID = "grid"; + String ORG_LEVEL_COMMUNITY = "community"; + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index edaaa2bc28..db1af3d7a9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -33,7 +33,6 @@ import com.epmet.dto.result.*; import com.epmet.excel.ProjectExcel; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.ProjectService; -import jdk.nashorn.internal.parser.Token; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -300,4 +299,16 @@ public class ProjectController { return new Result().ok(projectService.projectDistributionAnalysisRight(formDTO,tokenDto)); } + /** + * 个人档案-话题详情-研判分析 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("topic-research-analysis") + public Result topicResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody TopicResearchAnalysisFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,TopicResearchAnalysisFormDTO.AddUserInternalGroup.class); + return new Result().ok(projectService.topicResearchAnalysis(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java index b3dd410a81..5ebcafac13 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java @@ -240,4 +240,17 @@ public class ResiEventController { ValidatorUtils.validateEntity(formDTO, PageUserReportEventFormDTO.AddUserInternalGroup.class); return new Result>().ok(resiEventService.pageUserReported(formDTO)); } + + /** + * 数据分析-个人档案-上报事件列表-事件详情研判分析 + * + * @param formDTO + * @return + */ + @PostMapping("research-analysis") + public Result queryResiEventResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody ResiEventResearchAnalysisFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,ResiEventResearchAnalysisFormDTO.AddUserInternalGroup.class); + return new Result().ok(resiEventService.queryResiEventResearchAnalysis(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 cc2d336344..1127a7a099 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 @@ -61,4 +61,11 @@ public interface ProjectCategoryDao extends BaseDao { * @date 2021/5/17 10:47 上午 */ List selectCategoryByIds(@Param("projectIds")List projectIds); + + /** + * + * @param projectId + * @return + */ + List selectListByProjectId(String projectId); } \ 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 df0dc1ad95..d0d71cab98 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 @@ -230,4 +230,41 @@ public interface ProjectDao extends BaseDao { List selectProjectCategoryByDate(@Param("startDate")String startDate,@Param("endDate")String endDate, @Param("orgId")String orgId,@Param("codeLength")Integer codeLength); + /** + * 数据分析-个人档案-事件详情页面的研判分析项目列表 + * @param customerId + * @param categoryCode + * @param excludeProjectId + * @param epmetUserIds + * @return + */ + List selectCommonCategoryEventProject(@Param("customerId")String customerId, + @Param("categoryCode")String categoryCode, + @Param("excludeProjectId") String excludeProjectId, + @Param("epmetUserIds")List epmetUserIds); + + /** + * 数据分析-个人档案-话题详情页面的研判分析项目列表 + * + * @param customerId + * @param categoryCode + * @param excludeProjectId + * @param epmetUserIds + * @return + */ + List selectCommonCategoryIssueProject(@Param("customerId")String customerId, + @Param("categoryCode")String categoryCode, + @Param("excludeProjectId") String excludeProjectId, + @Param("epmetUserIds")List epmetUserIds); + + /** + * @Description 查询组织下的项目数 + * @param orgIds + * @param startDate + * @param endDate + * @author zxc + * @date 2021/12/10 10:31 上午 + */ + List selectProjectCountByOrg(@Param("orgIds")List orgIds,@Param("startDate")String startDate,@Param("endDate")String endDate); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java index 37fb5fa984..4d66d39dd0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java @@ -119,4 +119,11 @@ public interface ProjectCategoryService extends BaseService getProjectCategoryList(DelCategoryFormDTO formDTO); + + /** + * 根据项目id,查询所有分类 + * @param projectId + * @return + */ + List getProjectCategoryService(String projectId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 7be2c6d71f..dff8e9d30e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -351,4 +351,10 @@ public interface ProjectService extends BaseService { */ ProjectDistributionAnalysisRightResultDTO projectDistributionAnalysisRight(ProjectDistributionAnalysisFormDTO formDTO, TokenDto tokenDto); + /** + * 个人档案-话题详情-研判分析 + * @param formDTO + * @return + */ + TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java index b73e1f7908..c6e52d4cc3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ResiEventService.java @@ -147,4 +147,12 @@ public interface ResiEventService extends BaseService { * @return */ PageData pageUserReported(PageUserReportEventFormDTO formDTO); + + /** + * 数据分析-个人档案-上报事件列表-事件详情研判分析 + * + * @param formDTO + * @return + */ + ResiEventResearchAnalysisResDTO queryResiEventResearchAnalysis(ResiEventResearchAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java index 85a2d6cc7e..ac0a279fb9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java @@ -214,4 +214,15 @@ public class ProjectCategoryServiceImpl extends BaseServiceImpl getProjectCategoryService(String projectId) { + return baseDao.selectListByProjectId(projectId); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 15fe964c94..2b44f62b42 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -29,7 +29,9 @@ import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; @@ -2900,7 +2902,139 @@ public class ProjectServiceImpl extends BaseServiceImpl orgList = new ArrayList<>(); + if (!agencyInfo.getLevel().equals(ProjectConstant.ORG_LEVEL_COMMUNITY)){ + Result> sonAgencyIdResult = govOrgOpenFeignClient.getSonAgencyId(formDTO.getOrgId()); + if (!sonAgencyIdResult.success()){ + throw new EpmetException(String.format("查询组织{%s}的下级组织失败...",formDTO.getOrgId())); + } + List agencyIds = sonAgencyIdResult.getData(); + if (CollectionUtils.isNotEmpty(agencyIds)){ + orgList = baseDao.selectProjectCountByOrg(agencyIds,formDTO.getStartDate(),formDTO.getEndDate()); + } + }else { + Result> projectCountByGrid = govIssueOpenFeignClient.getProjectCountByGrid(formDTO); + if (!projectCountByGrid.success()){ + throw new EpmetException("查询网格项目数失败..."); + } + if (CollectionUtils.isNotEmpty(projectCountByGrid.getData())){ + orgList = projectCountByGrid.getData(); + } + } + if (CollectionUtils.isNotEmpty(orgList)){ + result.setList(orgList); + } + List allCount = orgList.stream().map(m -> m.getCount()).collect(Collectors.toList()); + Integer max = Collections.max(allCount); + Integer min = Collections.min(allCount); + if (orgList.size() == NumConstant.ONE || max.compareTo(min) == NumConstant.ZERO){ + result.setUnder(orgList.get(NumConstant.ZERO).getCount().toString()); + return result; + } + Integer minRange = min + ((max - min) / NumConstant.THREE); + Integer maxRange = min + ((max - min) * NumConstant.TWO / NumConstant.THREE); + result.setUnder(minRange.toString().concat("以下")); + result.setMiddle(minRange.toString().concat("-").concat(maxRange.toString())); + result.setAbove(maxRange.toString().concat("以上")); + return result; + } + + /** + * 个人档案-话题详情-研判分析 + * + * @param formDTO + * @return + */ + @Override + public TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO) { + //获取案件居民和及家属列表 + Result userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId()); + if (!userRes.success() || null == userRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常"); + } + IcResiUserBriefDTO icResiUserDTO = userRes.getData(); + TopicResearchAnalysisResDTO resultDTO = ConvertUtils.sourceToTarget(icResiUserDTO, TopicResearchAnalysisResDTO.class); + resultDTO.setProjectData(new ArrayList<>()); + if(org.springframework.util.CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){ + //灭有找到小程序里的用户id, 所以不用查询接下来的项目了..... + return resultDTO; + } + resultDTO.setEpmetUserIdList(formDTO.getEpmetUserIdList()); + + // 先判断这个项目是否有分类没有直接返回 + List projectCategoryDTOList=projectCategoryService.getProjectCategoryService(formDTO.getProjectId()); + if(org.springframework.util.CollectionUtils.isEmpty(projectCategoryDTOList)){ + return resultDTO; + } + //筛选出所有的一级分类 + Set firstCategoryIds=new HashSet<>(); + for(ProjectCategoryDTO categoryDTO:projectCategoryDTOList){ + if(StringUtils.isNotBlank(categoryDTO.getCategoryPids())){ + if(NumConstant.ZERO_STR.equals(categoryDTO.getCategoryPids())){ + //当前分类就是一级分类 + firstCategoryIds.add(categoryDTO.getCategoryId()); + continue; + } + //当前分类为二级分类 + if(!categoryDTO.getCategoryPids().contains(StrConstant.COMMA)&&!categoryDTO.getCategoryPids().contains(StrConstant.COLON)){ + firstCategoryIds.add(categoryDTO.getCategoryPids()); + continue; + } + //英文逗号 + if(categoryDTO.getCategoryPids().contains(StrConstant.COMMA)){ + String[] categoryAtt=categoryDTO.getCategoryPids().split(StrConstant.COMMA); + firstCategoryIds.add(categoryAtt[NumConstant.ZERO]); + continue; + } + //可能也是英文冒号吧。。不知道是啥,所以都判断下吧 + if(categoryDTO.getCategoryPids().contains(StrConstant.COLON)){ + String[] categoryAtt=categoryDTO.getCategoryPids().split(StrConstant.COLON); + firstCategoryIds.add(categoryAtt[NumConstant.ZERO]); + continue; + } + } + } + //没有一级分类直接退出 + if(org.springframework.util.CollectionUtils.isEmpty(firstCategoryIds)){ + return resultDTO; + } + log.info(String.format("当前项目id:%s,所有一级分类id:%s",formDTO.getProjectId(), JSON.toJSONString(firstCategoryIds))); + //查询这些分类的名称 + //查询出当前人,在居民端小程序里上报的需求且转了项目的,并且还得排除当前的这个项目 + IssueProjectCategoryDictListFormDTO dictFormDto=new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(projectCategoryDTOList.get(NumConstant.ZERO).getCustomerId()); + dictFormDto.setCstegoryIdList(new ArrayList(firstCategoryIds)); + Result> categoryRes=govIssueOpenFeignClient.getCategoryList(dictFormDto); + if(!categoryRes.success()|| org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + List projectData=new ArrayList<>(); + for(IssueProjectCategoryDictDTO categoryDictDTO:categoryRes.getData()){ + //当前项目分类一致,排除当前项目,相同分类编码 + List projectList=baseDao.selectCommonCategoryIssueProject(projectCategoryDTOList.get(NumConstant.ZERO).getCustomerId(), + categoryDictDTO.getCategoryCode(),formDTO.getProjectId(),formDTO.getEpmetUserIdList()); + if(!org.springframework.util.CollectionUtils.isEmpty(projectList)){ + ProjectDataDTO projectDataDTO=new ProjectDataDTO(); + projectDataDTO.setFirstCategoryCode(categoryDictDTO.getCategoryCode()); + projectDataDTO.setFirstCategoryName(categoryDictDTO.getCategoryName()); + projectDataDTO.setProjectList(projectList); + projectData.add(projectDataDTO); + } + } + resultDTO.setProjectData(projectData); + return resultDTO; } /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java index 01b0377ad3..ed2c5ee690 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.FileCommonDTO; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.scan.param.ImgScanParamDTO; @@ -38,11 +39,15 @@ import com.epmet.constant.EventConstant; import com.epmet.constant.ResiEventAction; import com.epmet.dao.*; import com.epmet.dto.EventProjectInfoDTO; +import com.epmet.dto.IssueProjectCategoryDictDTO; +import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.service.ProjectCategoryService; import com.epmet.service.ResiEventService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -54,10 +59,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.util.*; /** * 居民报事表 @@ -90,6 +92,11 @@ public class ResiEventServiceImpl extends BaseServiceImpl(pageInfo.getList(), pageInfo.getTotal()); } + /** + * 数据分析-个人档案-上报事件列表-事件详情研判分析 + * + * @param formDTO + * @return + */ + @Override + public ResiEventResearchAnalysisResDTO queryResiEventResearchAnalysis(ResiEventResearchAnalysisFormDTO formDTO) { + //获取案件居民和及家属列表 + Result userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId()); + if (!userRes.success() || null == userRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常"); + } + IcResiUserBriefDTO icResiUserDTO = userRes.getData(); + ResiEventResearchAnalysisResDTO resultDTO = ConvertUtils.sourceToTarget(icResiUserDTO, ResiEventResearchAnalysisResDTO.class); + resultDTO.setProjectData(new ArrayList<>()); + if(CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){ + //灭有找到小程序里的用户id, 所以不用查询接下来的项目了..... + return resultDTO; + } + resultDTO.setEpmetUserIdList(formDTO.getEpmetUserIdList()); + + // 先判断这个项目是否有分类没有直接返回 + List projectCategoryDTOList=projectCategoryService.getProjectCategoryService(formDTO.getProjectId()); + if(CollectionUtils.isEmpty(projectCategoryDTOList)){ + return resultDTO; + } + //筛选出所有的一级分类 + Set firstCategoryIds=new HashSet<>(); + for(ProjectCategoryDTO categoryDTO:projectCategoryDTOList){ + if(StringUtils.isNotBlank(categoryDTO.getCategoryPids())){ + if(NumConstant.ZERO_STR.equals(categoryDTO.getCategoryPids())){ + //当前分类就是一级分类 + firstCategoryIds.add(categoryDTO.getCategoryId()); + continue; + } + //当前分类为二级分类 + if(!categoryDTO.getCategoryPids().contains(StrConstant.COMMA)&&!categoryDTO.getCategoryPids().contains(StrConstant.COLON)){ + firstCategoryIds.add(categoryDTO.getCategoryPids()); + continue; + } + //英文逗号 + if(categoryDTO.getCategoryPids().contains(StrConstant.COMMA)){ + String[] categoryAtt=categoryDTO.getCategoryPids().split(StrConstant.COMMA); + firstCategoryIds.add(categoryAtt[NumConstant.ZERO]); + continue; + } + //可能也是英文冒号吧。。不知道是啥,所以都判断下吧 + if(categoryDTO.getCategoryPids().contains(StrConstant.COLON)){ + String[] categoryAtt=categoryDTO.getCategoryPids().split(StrConstant.COLON); + firstCategoryIds.add(categoryAtt[NumConstant.ZERO]); + continue; + } + } + } + //没有一级分类直接退出 + if(CollectionUtils.isEmpty(firstCategoryIds)){ + return resultDTO; + } + log.info(String.format("当前项目id:%s,所有一级分类id:%s",formDTO.getProjectId(), JSON.toJSONString(firstCategoryIds))); + //查询这些分类的名称 + //查询出当前人,在居民端小程序里上报的需求且转了项目的,并且还得排除当前的这个项目 + IssueProjectCategoryDictListFormDTO dictFormDto=new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(projectCategoryDTOList.get(NumConstant.ZERO).getCustomerId()); + dictFormDto.setCstegoryIdList(new ArrayList(firstCategoryIds)); + Result> categoryRes=govIssueOpenFeignClient.getCategoryList(dictFormDto); + if(!categoryRes.success()||CollectionUtils.isEmpty(categoryRes.getData())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + List projectData=new ArrayList<>(); + for(IssueProjectCategoryDictDTO categoryDictDTO:categoryRes.getData()){ + //当前项目分类一致,排除当前项目,相同分类编码 + List projectList=projectDao.selectCommonCategoryEventProject(projectCategoryDTOList.get(NumConstant.ZERO).getCustomerId(), + categoryDictDTO.getCategoryCode(),formDTO.getProjectId(),formDTO.getEpmetUserIdList()); + if(!CollectionUtils.isEmpty(projectList)){ + ProjectDataDTO projectDataDTO=new ProjectDataDTO(); + projectDataDTO.setFirstCategoryCode(categoryDictDTO.getCategoryCode()); + projectDataDTO.setFirstCategoryName(categoryDictDTO.getCategoryName()); + projectDataDTO.setProjectList(projectList); + projectData.add(projectDataDTO); + } + } + resultDTO.setProjectData(projectData); + return resultDTO; + } + } \ 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 49942cdca3..24acbb220f 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 @@ -50,4 +50,11 @@ ) + \ 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 179a83ce1b..83332f7dfb 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 @@ -412,4 +412,75 @@ AND DATE_FORMAT(p.CREATED_TIME,'%Y-%m-%d') #{endDate} ORDER BY projectId + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java index 7cd489b2bb..41928a94ce 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java @@ -47,7 +47,7 @@ public interface IcFormDao extends BaseDao { */ CustomerFormResultDTO selectByCode(@Param("customerId") String customerId, @Param("formCode") String formCode); - List selectItemList(String formId, Boolean dynamic); + List selectItemList(@Param("formId") String formId, @Param("dynamic") Boolean dynamic); List selectItemListByGroupId(String groupId); List selectListOption(String itemId); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index c3b2805d9c..3d453ea38c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -68,6 +68,10 @@ public class IcFormServiceImpl extends BaseServiceImpl private IcFormItemGroupDao icFormItemGroupDao; @Autowired private IcFormQueryBuilderDao icFormQueryBuilderDao; + @Autowired + private IcResiCategoryStatsConfigDao icResiCategoryStatsConfigDao; + @Autowired + private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao; /** * 获取居民信息表单 @@ -145,6 +149,10 @@ public class IcFormServiceImpl extends BaseServiceImpl defaultIcForm.setId(newFormId); defaultIcForm.setCustomerId(customerId); defaultIcForm.setAreaCode(areaCode); + defaultIcForm.setCreatedBy("init_user"); + defaultIcForm.setCreatedTime(new Date()); + defaultIcForm.setUpdatedBy("init_user"); + defaultIcForm.setUpdatedTime(new Date()); int insert = baseDao.insert(defaultIcForm); log.info("insert icForm:" + insert); @@ -163,7 +171,10 @@ public class IcFormServiceImpl extends BaseServiceImpl item.setFormId(newFormId); item.setAreaCode(areaCode); item.setParentItemId(newPrefixed + item.getParentItemId()); - item.setItemGroupId(newPrefixed + item.getItemGroupId()); + //分组Id 为0 说明不村子分组 则直接不设置 仍然为0 + if (!NumConstant.ZERO_STR.equals(item.getItemGroupId())){ + item.setItemGroupId(newPrefixed + item.getItemGroupId()); + } String optionSourceValue = item.getOptionSourceValue(); if (StringUtils.isNotBlank(optionSourceValue) && optionSourceValue.contains(StrConstant.QUESTION_MARK)){ //多个参数 @@ -173,6 +184,10 @@ public class IcFormServiceImpl extends BaseServiceImpl } item.setOptionSourceValue(optionSourceValue); } + item.setCreatedBy("init_user"); + item.setCreatedTime(new Date()); + item.setUpdatedBy("init_user"); + item.setUpdatedTime(new Date()); log.debug("item:"+ JSON.toJSONString(item)); icFormItemDao.insert(item); }); @@ -186,6 +201,10 @@ public class IcFormServiceImpl extends BaseServiceImpl item.setCustomerId(customerId); item.setFormId(newFormId); item.setItemId(newPrefixed + item.getItemId()); + item.setCreatedBy("init_user"); + item.setCreatedTime(new Date()); + item.setUpdatedBy("init_user"); + item.setUpdatedTime(new Date()); log.debug("option:"+ JSON.toJSONString(item)); icFormItemOptionsDao.insert(item); }); @@ -198,6 +217,10 @@ public class IcFormServiceImpl extends BaseServiceImpl item.setId(newPrefixed + item.getId()); item.setCustomerId(customerId); item.setFormId(newFormId); + item.setCreatedBy("init_user"); + item.setCreatedTime(new Date()); + item.setUpdatedBy("init_user"); + item.setUpdatedTime(new Date()); log.debug("group:"+ JSON.toJSONString(item)); icFormItemGroupDao.insert(item); }); @@ -210,10 +233,42 @@ public class IcFormServiceImpl extends BaseServiceImpl item.setId(newPrefixed + item.getId()); item.setCustomerId(customerId); item.setFormItemId(newPrefixed + item.getFormItemId()); + item.setCreatedBy("init_user"); + item.setCreatedTime(new Date()); + item.setUpdatedBy("init_user"); + item.setUpdatedTime(new Date()); log.debug("query:"+ JSON.toJSONString(item)); icFormQueryBuilderDao.insert(item); }); + LambdaQueryWrapper wrapperStats = new LambdaQueryWrapper<>(); + wrapperStats.eq(IcResiCategoryStatsConfigEntity::getCustomerId, defaultCustomerId); + List statsConfigList = icResiCategoryStatsConfigDao.selectList(wrapperStats); + statsConfigList.forEach(item -> { + item.setId(newPrefixed + item.getId()); + item.setCustomerId(customerId); + item.setCreatedBy("init_user"); + item.setCreatedTime(new Date()); + item.setUpdatedBy("init_user"); + item.setUpdatedTime(new Date()); + log.debug("stats:"+ JSON.toJSONString(item)); + icResiCategoryStatsConfigDao.insert(item); + }); + + LambdaQueryWrapper wrapperWarn = new LambdaQueryWrapper<>(); + wrapperWarn.eq(IcResiCategoryWarnConfigEntity::getCustomerId, defaultCustomerId); + List warnConfigList = icResiCategoryWarnConfigDao.selectList(wrapperWarn); + warnConfigList.forEach(item -> { + item.setId(newPrefixed + item.getId()); + item.setCustomerId(customerId); + item.setCreatedBy("init_user"); + item.setCreatedTime(new Date()); + item.setUpdatedBy("init_user"); + item.setUpdatedTime(new Date()); + log.debug("stats:"+ JSON.toJSONString(item)); + icResiCategoryWarnConfigDao.insert(item); + }); + return "初始化成功!客户ID:" + customerId + " formCode:" + formCode; } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml index d93d611f7c..d3c2c0261e 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml @@ -82,7 +82,7 @@ ) - SELECT fi.ID AS item_id, 'ic_resi_user' AS table_name, diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberStyleFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberStyleFormDTO.java index 5b80fc1642..6cedb15c89 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberStyleFormDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberStyleFormDTO.java @@ -3,6 +3,7 @@ package com.epmet.resi.partymember.dto.partymember.form; import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotBlank; import java.io.Serializable; /** @@ -14,6 +15,7 @@ import java.io.Serializable; @Data public class PartyMemberStyleFormDTO implements Serializable { private static final long serialVersionUID = 4743261460276449408L; + @NotBlank(message = "组织ID不能为空") private String agencyId; private String gridId; private String name; diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java index ff362ee7ec..cadf703b2c 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java @@ -108,6 +108,7 @@ public class IcPartymemberStyleController { @PostMapping("list") public Result> search(@RequestBody PartyMemberStyleFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); return new Result>().ok(icPartymemberStyleService.search(formDTO)); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java index ad8a41f077..72872ab638 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java @@ -98,8 +98,10 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl dtoList = ConvertUtils.sourceToTarget(list, IcPartymemberStyleDTO.class); //设置网格名 dtoList.forEach(item -> { - GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); - item.setGridName(gridInfo.getGridName()); + if (StringUtils.isNotBlank(item.getGridId())) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); + item.setGridName(gridInfo.getGridName()); + } }); return dtoList; @@ -187,8 +189,10 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl pageInfo = new PageInfo<>(dtoList); //设置网格名 dtoList.forEach(item -> { - GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); - item.setGridName(gridInfo.getGridName()); + if (StringUtils.isNotBlank(item.getGridId())) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(item.getGridId()); + item.setGridName(gridInfo.getGridName()); + } }); return new PageData<>(dtoList, pageInfo.getTotal()); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java new file mode 100644 index 0000000000..7bf9978b48 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java @@ -0,0 +1,15 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 家属 + */ +@Data +public class HouseUserDTO implements Serializable { + private static final long serialVersionUID = -5307147522738642535L; + private String icResiUserId; + private String icUserName; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java new file mode 100644 index 0000000000..ce955f1a56 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 案件居民、家属列表 + * 只有名称这些简要信息 + */ +@Data +public class IcResiUserBriefDTO extends HouseUserDTO implements Serializable { + private String houseId; + /** + * 同屋的其他人 + */ + private List houseUserList; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 616c9034f3..2fe940ead3 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -669,4 +669,7 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping(value = "/epmetuser/user/findepmetuser") Result findEpmetUser(@RequestBody ResiUserFormDTO formDTO); + + @GetMapping("/epmetuser/icresiuser/findfamilymem/{icResiUserId}") + Result findFamilyMem(@PathVariable("icResiUserId") String icResiUserId); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 54aca51d4a..fc6766d255 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -490,4 +490,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result findEpmetUser(ResiUserFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findEpmetUser", formDTO); } + + @Override + public Result findFamilyMem(String icResiUserId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findFamilyMem", icResiUserId); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index d6df9f57e0..5c76d8e578 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -206,6 +206,19 @@ public class IcResiUserController { return new Result>().ok(icResiUserService.getPeopleByRoom(formDTO.getHomeId())); } + /** + * 根据ic_resi_user找家属 + * @param icResiUserId + * @return + */ + @GetMapping("findfamilymem/{icResiUserId}") + public Result findFamilyMem(@PathVariable("icResiUserId") String icResiUserId){ + if(StringUtils.isNotBlank(icResiUserId)){ + return new Result().ok(icResiUserService.findFamilyMem(icResiUserId)); + } + return new Result<>(); + } + @PostMapping("listresi") public Result>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) { //pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index ea5ca5b741..09f467f6bf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -20,10 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.ResiUserQueryValueDTO; -import com.epmet.dto.result.DemandUserResDTO; -import com.epmet.dto.result.IcFormResColumnDTO; -import com.epmet.dto.result.PersonDataResultDTO; -import com.epmet.dto.result.SearchByNameResultDTO; +import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; @@ -166,4 +163,20 @@ public interface IcResiUserDao extends BaseDao { IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId, @Param("idNum")String idNum, @Param("icResiUserId")String icResiUserId); + + /** + * 获取居民名称,家属名称和id + * @param isResiUserId + * @return + */ + IcResiUserBriefDTO selectIcResuUser(@Param("isResiUserId") String isResiUserId); + + /** + * 除了本人以外,住在这个房子的人 + * + * @param currentIcResiUserId + * @param homeId + * @return + */ + List selectListFamilyMember(@Param("currentIcResiUserId") String currentIcResiUserId, @Param("homeId") String homeId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 9a0fcbed95..450ee74c70 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -151,4 +151,6 @@ public interface IcResiUserService extends BaseService { * @return */ IcResiUserDTO getByIdCard(String customerId, String idNum,String icResiUserId); + + IcResiUserBriefDTO findFamilyMem(String icResiUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index ea21846183..d045c08f3d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -878,4 +878,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl + + + + + + + + + + + + + + +