From 3c389a646e7d9a2677d8c1401059a55bf122ae17 Mon Sep 17 00:00:00 2001 From: wxz Date: Fri, 13 Nov 2020 15:20:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=AD=E5=BF=83-=E6=88=91=E5=88=9B=E5=BB=BA=E7=9A=84?= =?UTF-8?q?=E8=AF=9D=E9=A2=98=E5=88=97=E8=A1=A8=E3=80=81=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=AD=E5=BF=83-=E6=88=91=E5=88=9B=E5=BB=BA=E7=9A=84?= =?UTF-8?q?=E8=AF=9D=E9=A2=98=E5=88=97=E8=A1=A8(=E5=B7=B2=E8=BD=AC?= =?UTF-8?q?=E8=AE=AE=E9=A2=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ProjectByCreateTopicUserFormDTO.java | 20 +++++ .../ProjectOfCreateTopicUserResultDTO.java | 18 ++++ .../feign/GovProjectOpenFeignClient.java | 11 +++ .../GovProjectOpenFeignClientFallback.java | 7 ++ .../epmet/controller/ProjectController.java | 20 ++++- .../main/java/com/epmet/dao/ProjectDao.java | 9 ++ .../com/epmet/service/ProjectService.java | 8 ++ .../service/impl/ProjectServiceImpl.java | 13 +++ ...0.0.4__alter_project_related_personnel.sql | 9 ++ .../src/main/resources/mapper/ProjectDao.xml | 17 ++++ .../mapper/ProjectRelatedPersonnelDao.xml | 2 + .../dto/topic/MyCreateTopicsFormDTO.java | 20 +++++ ...tDTO.java => MyCreateTopicsResultDTO.java} | 2 +- .../group/feign/ResiGroupOpenFeignClient.java | 11 +++ .../ResiGroupOpenFeignClientFallback.java | 5 ++ .../topic/controller/ResiTopicController.java | 8 +- .../epmet/modules/topic/dao/ResiTopicDao.java | 2 +- .../topic/service/ResiTopicService.java | 2 +- .../service/impl/ResiTopicServiceImpl.java | 32 ++++--- .../resources/mapper/topic/ResiTopicDao.xml | 2 +- .../mine/dto/from/MyCreateTopicsFormDTO.java | 13 +++ .../from/MyShiftProjectTopicsFormDTO.java} | 8 +- .../dto/result/MyCreateTopicsResultDTO.java | 13 +++ .../result/MyShiftProjectTopicsResultDTO.java | 15 ++++ .../person/controller/TopicController.java | 35 ++++++++ .../modules/person/service/TopicService.java | 27 ++++++ .../person/service/impl/TopicServiceImpl.java | 83 +++++++++++++++++++ 27 files changed, 378 insertions(+), 34 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java rename epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/{MyTopicsResultDTO.java => MyCreateTopicsResultDTO.java} (87%) create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java rename epmet-module/{resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyTopicsFormDTO.java => resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java} (61%) create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java new file mode 100644 index 0000000000..24364b8142 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class ProjectByCreateTopicUserFormDTO { + + public interface ListByUserGroup {} + + @NotBlank(message = "客户ID不能为空", groups = { ListByUserGroup.class }) + private String customerId; + + @NotBlank(message = "用户ID不能为空", groups = { ListByUserGroup.class }) + private String userId; + private Integer pageNo = 1; + private Integer pageSize = 10; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java new file mode 100644 index 0000000000..13b0fbfe1b --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.util.List; + +@Data +public class ProjectOfCreateTopicUserResultDTO { + + private String topicId; + private String projectId; + private String gridId; + private Long shiftProjectTime; + private List departmentNameList; + private String projectTitle; + private String releaseGridId; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index fc0adf94cd..2cd5f5f5fb 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -4,10 +4,12 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.ProcessListFormDTO; +import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.result.MyPartProjectsResultDTO; import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO; +import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO; import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; @@ -64,4 +66,13 @@ public interface GovProjectOpenFeignClient { **/ @PostMapping("gov/project/project/queryprojectinfobyids") Result> queryProjectInfoByIds(@RequestBody List projectIds); + + /** + * @Description 根据话题创建人查询项目列表 + * @return + * @author wxz + * @date 2020.11.13 11:09 + */ + @PostMapping("gov/project/project/list-by-createtopic-userid") + Result> listProjectsByCreateTopicUserId(@RequestBody ProjectByCreateTopicUserFormDTO form); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 05201b8e22..fd478f1245 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -5,10 +5,12 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.ProcessListFormDTO; +import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.result.MyPartProjectsResultDTO; import com.epmet.dto.result.PendProjectListResultDTO; import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO; +import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO; import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.stereotype.Component; @@ -62,4 +64,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result> queryProjectInfoByIds(List projectIds) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "queryProjectInfoByIds", projectIds); } + + @Override + public Result> listProjectsByCreateTopicUserId(ProjectByCreateTopicUserFormDTO form) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "listProjectsByCreateTopicUserId", form); + } } 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 0261e4a7ba..3c3641dac5 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 @@ -17,7 +17,9 @@ 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.AssertUtils; @@ -26,10 +28,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.ProjectDTO; -import com.epmet.dto.form.LatestListFormDTO; -import com.epmet.dto.form.ProjectListFromDTO; -import com.epmet.dto.form.ShiftProjectFormDTO; -import com.epmet.dto.form.ShiftProjectsFromDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.excel.ProjectExcel; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; @@ -192,4 +191,17 @@ public class ProjectController { public Result> queryProjectInfoByIds(@RequestBody List projectIds){ return new Result>().ok(projectService.queryProjectInfoByIds(projectIds)); } + + /** + * @Description + * @return + * @author wxz + * @date 2020.11.13 09:49 + */ + @PostMapping("list-by-createtopic-userid") + public Result> listProjectsByCreateTopicUserId(@RequestBody ProjectByCreateTopicUserFormDTO form) { + ValidatorUtils.validateEntity(form, ProjectByCreateTopicUserFormDTO.ListByUserGroup.class); + List projects = projectService.listProjectsByCreateTopicUserId(form.getUserId(), form.getCustomerId(), form.getPageNo(), form.getPageSize()); + return new Result().ok(projects); + } } \ 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 5657589210..e4dfd04800 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 @@ -26,6 +26,7 @@ import com.epmet.dto.form.ShiftProjectsFromDTO; import com.epmet.dto.result.LatestListResultDTO; import com.epmet.dto.result.MyPartProjectsResultDTO; import com.epmet.dto.result.ProjectDetailResultDTO; +import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO; import com.epmet.entity.ProjectEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -139,4 +140,12 @@ public interface ProjectDao extends BaseDao { List selectIssueProjectList(@Param("customerId") String customerId, @Param("issueList") List issueList, @Param("pageIndex") int pageIndex, @Param("pageSize") Integer pageSize); + /** + * @Description 根据话题创建人查询项目列表 + * @return + * @author wxz + * @date 2020.11.13 09:38 + */ + List listProjectsByCreateTopicUserId(@Param("userId") String userId, + @Param("customerId") String customerId); } \ 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 35f81839d8..03bb5fc584 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 @@ -225,4 +225,12 @@ public interface ProjectService extends BaseService { List issueToProjectList(MyPartProjectsFormDTO formDTO); List queryProjectInfoByIds(List projectIds); + + /** + * @Description 查询用户的项目列表 + * @return + * @author wxz + * @date 2020.11.13 09:12 + */ + List listProjectsByCreateTopicUserId(String userId, String customerId, Integer pageNo, Integer pageSize); } \ 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 c7a3d93804..7334c73c39 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 @@ -44,6 +44,7 @@ import com.epmet.feign.*; import com.epmet.redis.ProjectRedis; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.*; +import com.github.pagehelper.PageHelper; import org.apache.commons.collections4.CollectionUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; @@ -1409,4 +1410,16 @@ public class ProjectServiceImpl extends BaseServiceImpl listProjectsByCreateTopicUserId(String userId, String customerId, Integer pageNo, Integer pageSize) { + PageHelper.startPage(pageNo, pageSize); + List projects = baseDao.listProjectsByCreateTopicUserId(userId, customerId); + projects.stream().forEach(p -> { + ProjectDTO dto = new ProjectDTO(); + dto.setId(p.getProjectId()); + List depts = baseDao.selectDepartmentNameList(dto); + p.setDepartmentNameList(depts); + }); + return projects; + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql index 9a3bbf1344..ceedfd85bb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql @@ -3,3 +3,12 @@ SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '来源类型(话题:topic ADD COLUMN `SOURCE_ID` VARCHAR (64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '来源Id(话题或议题Id)' AFTER `SOURCE_TYPE`; +-- 更改项目库的字符集 +alter table customer_project_parameter convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project_org_relation convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project_process convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project_related_personnel convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project_satisfaction_detail convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project_satisfaction_statistics convert to character set utf8mb4 collate utf8mb4_general_ci; +alter table project_staff convert to character set utf8mb4 collate utf8mb4_general_ci; \ 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 985077a6ac..8ef38d198a 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 @@ -226,4 +226,21 @@ LIMIT #{pageIndex}, #{pageSize} + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml index 18257b67f4..419b8eae35 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml @@ -8,6 +8,8 @@ + + diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java new file mode 100644 index 0000000000..ea90db4413 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.resi.group.dto.topic; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class MyCreateTopicsFormDTO { + + @NotBlank(message = "客户id不能为空") + private String customerId; + + @NotBlank(message = "用户id不能为空") + private String userId; + + private Integer pageSize = 10; + + private Integer pageNo = 1; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyCreateTopicsResultDTO.java similarity index 87% rename from epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java rename to epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyCreateTopicsResultDTO.java index 2a3573f726..c96aa8e99e 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyCreateTopicsResultDTO.java @@ -3,7 +3,7 @@ package com.epmet.resi.group.dto.topic.result; import lombok.Data; @Data -public class MyTopicsResultDTO { +public class MyCreateTopicsResultDTO { private String topicId; private Long releaseTime; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 8b5c663df6..4355adc40f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -4,8 +4,10 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; +import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; @@ -50,4 +52,13 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/topic/my-part-topics") Result> myPartTopics(@RequestBody CustomerPageFormDTO param); + + /** + * @Description 我创建的话题列表 + * @return + * @author wxz + * @date 2020.11.10 14:58 + */ + @PostMapping("resi/group/topic/my-create-topics") + Result> listMyCreateTopics(@RequestBody MyCreateTopicsFormDTO formDTO); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 2300137e09..cf9833816f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; +import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; @@ -38,4 +39,8 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "myPartTopics", param); } + @Override + public Result listMyCreateTopics(MyCreateTopicsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listMyTopics", formDTO); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 917d3beab5..6dfc1a834f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -5,7 +5,7 @@ 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.modules.topic.service.ResiTopicService; -import com.epmet.resi.group.dto.topic.MyTopicsFormDTO; +import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.TopicInfoDTO; import com.epmet.resi.group.dto.topic.form.*; @@ -265,10 +265,10 @@ public class ResiTopicController { * @author wxz * @date 2020.11.10 14:58 */ - @PostMapping("my-topics") - public Result listMyTopics(@RequestBody MyTopicsFormDTO formDTO, @LoginUser TokenDto tokenDto) { + @PostMapping("my-create-topics") + public Result> listMyCreateTopics(@RequestBody MyCreateTopicsFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); - List myTopics = topicService.listMyTopics(formDTO.getCustomerId(), tokenDto.getUserId(), formDTO.getPageNo(), formDTO.getPageSize()); + List myTopics = topicService.listMyCreateTopics(formDTO.getCustomerId(), formDTO.getUserId(), formDTO.getPageNo(), formDTO.getPageSize()); return new Result().ok(myTopics); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index e7cd14a7eb..c1423b36dd 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java @@ -153,7 +153,7 @@ public interface ResiTopicDao extends BaseDao { */ CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); - List listMyTopics(@Param("userId") String userId, @Param("customerId") String customerId); + List listMyCreateTopics(@Param("userId") String userId, @Param("customerId") String customerId); /** * @Description 根据话题Id集合查询对应的已转成议题的议题Id集合 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 4128358aa5..35ea013b11 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -270,7 +270,7 @@ public interface ResiTopicService extends BaseService { * @author wxz * @date 2020.11.10 15:03 */ - List listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize); + List listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize); /** * @Description 个人中心-我参与过的话题 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index a2dd0defc8..6ce2433c37 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -40,10 +40,7 @@ import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.OrgInfoConstant; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.form.*; -import com.epmet.dto.result.CommonDataFilterResultDTO; -import com.epmet.dto.result.IssueInitiatorResultDTO; -import com.epmet.dto.result.OrgInfoResultDTO; -import com.epmet.dto.result.UserResiInfoResultDTO; +import com.epmet.dto.result.*; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.modules.constant.GroupMemberConstant; @@ -83,6 +80,8 @@ import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.form.CheckTopicPublisherFormDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.result.*; +import com.epmet.resi.group.dto.topic.result.CheckTopicPublisherResultDTO; +import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -1419,25 +1418,22 @@ public class ResiTopicServiceImpl extends BaseServiceImpl listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize) { + public List listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize) { PageHelper.startPage(pageNo, pageSize); - List myTopics = resiTopicDao.listMyTopics(userId, customerId); + List myTopics = resiTopicDao.listMyCreateTopics(userId, customerId); HashMap gridIdAndNames = new HashMap<>(); - Set gridIds = myTopics.stream().map(c -> c.getReleaseGridId()).collect(Collectors.toSet()); - - OrgInfoFormDTO form = new OrgInfoFormDTO(); - form.setOrgType(OrgInfoConstant.GRID); - form.setOrgIds(new ArrayList<>(gridIds)); - Result> gridInfoResult = govOrgOpenFeignClient.selectOrgInfo(form); - if (gridInfoResult.success()) { - List grids = gridInfoResult.getData(); - for (OrgInfoResultDTO grid : grids) { - gridIdAndNames.put(grid.getOrgId(), grid.getOrgName()); - } + List gridIds = myTopics.stream().map(c -> c.getReleaseGridId()).collect(Collectors.toList()); + + Result> gridsResult = govOrgOpenFeignClient.getGridListByGridIds(gridIds); + if (gridsResult.success()) { + List grids = gridsResult.getData(); + grids.stream().forEach(g -> gridIdAndNames.put(g.getGridId(), g.getGridName())); + } else { + log.error("【我创建的话题列表】,查询组织-网格名称出错,没有抛出,内部处理。内部消息:{},外部消息:{}", gridsResult.getInternalMsg(), gridsResult.getMsg()); } - for (MyTopicsResultDTO myTopic : myTopics) { + for (MyCreateTopicsResultDTO myTopic : myTopics) { myTopic.setReleaseGridName(gridIdAndNames.get(myTopic.getReleaseGridId())); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index cb4d75b345..04b2bb0e10 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -447,7 +447,7 @@ AND id = #{topicId} - select t.id as topicId, t.topic_content as topicContent, unix_timestamp(t.created_time) as releaseTime, diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java new file mode 100644 index 0000000000..91d04b2379 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java @@ -0,0 +1,13 @@ +package com.epmet.resi.mine.dto.from; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class MyCreateTopicsFormDTO { + @NotBlank(message = "客户id不能为空") + private String customerId; + private Integer pageNo = 1; + private Integer pageSize = 10; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyTopicsFormDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java similarity index 61% rename from epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyTopicsFormDTO.java rename to epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java index 002250e5b5..1aa779b9af 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyTopicsFormDTO.java +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java @@ -1,14 +1,14 @@ -package com.epmet.resi.group.dto.topic; +package com.epmet.resi.mine.dto.from; import lombok.Data; @Data -public class MyTopicsFormDTO { +public class MyShiftProjectTopicsFormDTO { private String customerId; - private Integer pageSize = 10; - private Integer pageNo = 1; + private Integer pageSize = 10; + } diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java new file mode 100644 index 0000000000..e79e29e6b2 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java @@ -0,0 +1,13 @@ +package com.epmet.resi.mine.dto.result; + +import lombok.Data; + +@Data +public class MyCreateTopicsResultDTO { + private String topicId; + private Long releaseTime; + private String topicContent; + private String releaseGroupName; + private String releaseGridId; + private String releaseGridName; +} diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java new file mode 100644 index 0000000000..c997cc9266 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java @@ -0,0 +1,15 @@ +package com.epmet.resi.mine.dto.result; + +import lombok.Data; + +import java.util.List; + +@Data +public class MyShiftProjectTopicsResultDTO { + private String topicId; + private String gridId; + private Long shiftProjectTime; + private List departmentNameList; + private String projectTitle; + private String releaseGridName; +} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java index d49c9c3c52..6e79e8f11a 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java @@ -4,9 +4,14 @@ 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.modules.person.service.TopicService; import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import com.epmet.resi.mine.dto.from.MyCreateTopicsFormDTO; +import com.epmet.resi.mine.dto.from.MyShiftProjectTopicsFormDTO; +import com.epmet.resi.mine.dto.result.MyCreateTopicsResultDTO; +import com.epmet.resi.mine.dto.result.MyShiftProjectTopicsResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -28,6 +33,9 @@ public class TopicController { @Autowired private ResiGroupOpenFeignClient groupFeign; + @Autowired + private TopicService topicService; + /** * @Description 个人中心-我参与过的话题 * @param param @@ -41,4 +49,31 @@ public class TopicController { ValidatorUtils.validateEntity(param); return groupFeign.myPartTopics(param); } + + /** + * @Description 查询我的已转项目的话题列表 + * @return + * @author wxz + * @date 2020.11.13 10:13 + */ + @PostMapping("my-shiftproject-topics") + public Result> listMyShiftProjectTopics(@RequestBody MyShiftProjectTopicsFormDTO form, @LoginUser TokenDto tokenDto) { + ValidatorUtils.validateEntity(form); + List topics = topicService.listMyShiftProjectTopics(tokenDto.getUserId(), form.getCustomerId(), form.getPageNo(), form.getPageSize()); + return new Result>().ok(topics); + } + + /** + * @Description 我创建的话题列表 + * @return + * @author wxz + * @date 2020.11.13 15:09 + */ + @PostMapping("my-create-topics") + public Result> listMyCreateTopics(@RequestBody MyCreateTopicsFormDTO form, @LoginUser TokenDto tokenDto) { + ValidatorUtils.validateEntity(form); + List topics = topicService.listMyCreateTopics(form.getCustomerId(), tokenDto.getUserId(), form.getPageNo(), form.getPageSize()); + return new Result>().ok(topics); + } + } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java new file mode 100644 index 0000000000..80fabace7b --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java @@ -0,0 +1,27 @@ +package com.epmet.modules.person.service; + +import com.epmet.resi.mine.dto.result.MyCreateTopicsResultDTO; +import com.epmet.resi.mine.dto.result.MyShiftProjectTopicsResultDTO; + +import java.util.List; + +/** + * 话题service + */ +public interface TopicService { + /** + * @Description 列出我的已转项目的话题列表 + * @return + * @author wxz + * @date 2020.11.13 10:17 + */ + List listMyShiftProjectTopics(String userId, String customerId, Integer pageNo, Integer pageSize); + + /** + * @Description 我创建的话题列表 + * @return + * @author wxz + * @date 2020.11.13 15:00 + */ + List listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize); +} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java new file mode 100644 index 0000000000..8799527751 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.modules.person.service.impl; + +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; +import com.epmet.dto.result.AllGridsByUserIdResultDTO; +import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.feign.GovProjectOpenFeignClient; +import com.epmet.modules.person.service.TopicService; +import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import com.epmet.resi.mine.dto.result.MyCreateTopicsResultDTO; +import com.epmet.resi.mine.dto.result.MyShiftProjectTopicsResultDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class TopicServiceImpl implements TopicService { + + private static Logger logger = LoggerFactory.getLogger(TopicServiceImpl.class); + + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; + + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; + + @Override + public List listMyShiftProjectTopics(String userId, String customerId, Integer pageNo, Integer pageSize) { + ProjectByCreateTopicUserFormDTO form = new ProjectByCreateTopicUserFormDTO(); + form.setCustomerId(customerId); + form.setUserId(userId); + form.setPageNo(pageNo); + form.setPageSize(pageSize); + Result> result = govProjectOpenFeignClient.listProjectsByCreateTopicUserId(form); + if (!result.success()) { + throw new RenException(result.getCode(), result.getInternalMsg(), result.getMsg()); + } + + List projects = result.getData(); + + List projectTopics = ConvertUtils.sourceToTarget(projects, MyShiftProjectTopicsResultDTO.class); + List gridIds = projects.stream().map(p -> p.getGridId()).collect(Collectors.toList()); + + Result> rst = govOrgOpenFeignClient.getGridListByGridIds(gridIds); + if (!rst.success()) { + logger.error("查询我创建的话题列表(已转议题),根据网格id查询网格名称失败, InternalMsg:{},Msg:{}", rst.getInternalMsg(), rst.getMsg()); + } else { + List gridInfos = rst.getData(); + HashMap gridIdAndNames = new HashMap<>(); + gridInfos.stream().forEach(g -> gridIdAndNames.put(g.getGridId(), g.getGridName())); + projectTopics.stream().forEach(pt -> pt.setReleaseGridName(gridIdAndNames.get(pt.getGridId()))); + } + + return projectTopics; + } + + @Override + public List listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize) { + MyCreateTopicsFormDTO form = new MyCreateTopicsFormDTO(); + form.setCustomerId(customerId); + form.setUserId(userId); + form.setPageNo(pageNo); + form.setPageSize(pageSize); + Result> result = resiGroupOpenFeignClient.listMyCreateTopics(form); + if (!result.success()) { + throw new RenException(result.getCode(), result.getInternalMsg(), result.getMsg()); + } + List topics = result.getData(); + return ConvertUtils.sourceToTarget(topics, MyCreateTopicsResultDTO.class); + } +}