Browse Source

小组议题-全部议题

master
zhaoqifeng 5 years ago
parent
commit
d414d962b9
  1. 38
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  2. 47
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  3. 41
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java
  4. 31
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java
  5. 31
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
  6. 73
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  7. 63
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  8. 28
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/AllIssueFormDTO.java
  9. 34
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupClosedListResultDTO.java
  10. 43
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupShiftProjectListResultDTO.java
  11. 34
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupVotingListResultDTO.java
  12. 48
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/GroupIssueController.java
  13. 32
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/GroupIssueService.java
  14. 75
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/GroupIssueServiceImpl.java
  15. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  16. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  17. 13
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  18. 7
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

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

@ -1,9 +1,18 @@
package com.epmet.feign; package com.epmet.feign;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/** /**
* 本服务对外开放的API,其他服务通过引用此client调用该服务 * 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -13,4 +22,33 @@ import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack;
*/ */
@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class)
public interface GovIssueOpenFeignClient { public interface GovIssueOpenFeignClient {
/**
* 小组表决中议题
* @author zhaoqifeng
* @date 2020/11/17 14:58
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO>>
*/
@PostMapping("/gov/issue/issue/groupvotinglist")
Result<List<GroupVotingListResultDTO>> getVotingListByGroup(@RequestBody AllIssueFormDTO formDTO);
/**
* 小组已转项目议题
* @author zhaoqifeng
* @date 2020/11/17 14:58
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO>>
*/
@PostMapping("/gov/issue/issue/groupshiftprojectlist")
Result<List<GroupShiftProjectListResultDTO>> getShiftProjectListByGroup(@RequestBody AllIssueFormDTO formDTO);
/**
* 小组已关闭议题
* @author zhaoqifeng
* @date 2020/11/17 14:58
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO>>
*/
@PostMapping("/gov/issue/issue/groupclosedlist")
Result<List<GroupClosedListResultDTO>> getClosedListByGroup(@RequestBody AllIssueFormDTO formDTO);
} }

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

@ -1,8 +1,17 @@
package com.epmet.feign.fallback; package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* 本服务对外开放的API,其他服务通过引用此client调用该服务 * 本服务对外开放的API,其他服务通过引用此client调用该服务
* *
@ -11,4 +20,42 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient { public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient {
/**
* 小组表决中议题
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO>>
* @author zhaoqifeng
* @date 2020/11/17 14:58
*/
@Override
public Result<List<GroupVotingListResultDTO>> getVotingListByGroup(AllIssueFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getVotingListByGroup", formDTO);
}
/**
* 小组已转项目议题
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO>>
* @author zhaoqifeng
* @date 2020/11/17 14:58
*/
@Override
public Result<List<GroupShiftProjectListResultDTO>> getShiftProjectListByGroup(AllIssueFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getShiftProjectListByGroup", formDTO);
}
/**
* 小组已关闭议题
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO>>
* @author zhaoqifeng
* @date 2020/11/17 14:58
*/
@Override
public Result<List<GroupClosedListResultDTO>> getClosedListByGroup(AllIssueFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getShiftProjectListByGroup", formDTO);
}
} }

41
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java

@ -13,6 +13,10 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IssueDTO; import com.epmet.dto.IssueDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.excel.IssueExcel; import com.epmet.excel.IssueExcel;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import com.epmet.service.IssueService; import com.epmet.service.IssueService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -70,6 +74,7 @@ public class IssueController {
public Result<List<ShiftProjectListResultDTO>> getShiftProjectList(@RequestBody ShiftProjectListFromDTO fromDTO) { public Result<List<ShiftProjectListResultDTO>> getShiftProjectList(@RequestBody ShiftProjectListFromDTO fromDTO) {
return new Result<List<ShiftProjectListResultDTO>>().ok(issueService.getShiftProjectList(fromDTO)); return new Result<List<ShiftProjectListResultDTO>>().ok(issueService.getShiftProjectList(fromDTO));
} }
/** /**
* @Description 话题转议题 供群组话题服务调用 * @Description 话题转议题 供群组话题服务调用
* @param issueShiftedFromTopicFormDTO * @param issueShiftedFromTopicFormDTO
@ -151,5 +156,41 @@ public class IssueController {
return new Result<Integer>().ok(issueService.checkTopicShiftIssue(formDTO)); return new Result<Integer>().ok(issueService.checkTopicShiftIssue(formDTO));
} }
/**
* 小组表决中议题
* @author zhaoqifeng
* @date 2020/11/17 14:58
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO>>
*/
@PostMapping("groupvotinglist")
public Result<List<GroupVotingListResultDTO>> getVotingListByGroup(@RequestBody AllIssueFormDTO formDTO) {
return new Result<List<GroupVotingListResultDTO>>().ok(issueService.getVotingListByGroup(formDTO));
}
/**
* 小组已转项目议题
* @author zhaoqifeng
* @date 2020/11/17 14:58
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO>>
*/
@PostMapping("groupshiftprojectlist")
public Result<List<GroupShiftProjectListResultDTO>> getShiftProjectListByGroup(@RequestBody AllIssueFormDTO formDTO) {
return new Result<List<GroupShiftProjectListResultDTO>>().ok(issueService.getShiftProjectListByGroup(formDTO));
}
/**
* 小组已关闭议题
* @author zhaoqifeng
* @date 2020/11/17 14:58
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO>>
*/
@PostMapping("groupclosedlist")
public Result<List<GroupClosedListResultDTO>> getClosedListByGroup(@RequestBody AllIssueFormDTO formDTO) {
return new Result<List<GroupClosedListResultDTO>>().ok(issueService.getClosedListByGroup(formDTO));
}
} }

31
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java

@ -22,6 +22,9 @@ import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.IssueEntity; import com.epmet.entity.IssueEntity;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -144,4 +147,32 @@ public interface IssueDao extends BaseDao<IssueEntity> {
* @author zxc * @author zxc
*/ */
Integer checkTopicShiftIssue(TopicInfoFormDTO formDTO); Integer checkTopicShiftIssue(TopicInfoFormDTO formDTO);
/**
* 根据话题ID查找表决中议题列表
* @author zhaoqifeng
* @date 2020/5/13 16:27
* @param formDTO 参数
* @return java.util.List<com.epmet.entity.IssueEntity>
*/
List<GroupVotingListResultDTO> selectVotingListByTopic(AllIssueFormDTO formDTO);
/**
* 根据话题ID查找已转项目议题列表
* @author zhaoqifeng
* @date 2020/5/13 16:27
* @param formDTO 参数
* @return java.util.List<com.epmet.entity.IssueEntity>
*/
List<IssueEntity> selectShiftIssueByTopic(AllIssueFormDTO formDTO);
/**
* 根据话题ID查找已转项目议题列表
* @author zhaoqifeng
* @date 2020/5/13 16:27
* @param formDTO 参数
* @return java.util.List<com.epmet.entity.IssueEntity>
*/
List<GroupClosedListResultDTO> selectClosedListByTopic(AllIssueFormDTO formDTO);
} }

31
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java

@ -21,6 +21,10 @@ import com.epmet.dto.form.IssueDetailFormDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.dto.form.IssueShiftedFromTopicFormDTO; import com.epmet.dto.form.IssueShiftedFromTopicFormDTO;
import com.epmet.entity.IssueEntity; import com.epmet.entity.IssueEntity;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -232,4 +236,31 @@ public interface IssueService extends BaseService<IssueEntity> {
* @author zxc * @author zxc
*/ */
Integer checkTopicShiftIssue(TopicInfoFormDTO formDTO); Integer checkTopicShiftIssue(TopicInfoFormDTO formDTO);
/**
* 小组表决中议题
* @author zhaoqifeng
* @date 2020/11/17 14:59
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO>
*/
List<GroupVotingListResultDTO> getVotingListByGroup(AllIssueFormDTO formDTO);
/**
* 小组已转项目议题
* @author zhaoqifeng
* @date 2020/11/17 14:59
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO>
*/
List<GroupShiftProjectListResultDTO> getShiftProjectListByGroup(AllIssueFormDTO formDTO);
/**
* 小组已关闭议题
* @author zhaoqifeng
* @date 2020/11/17 14:59
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO>
*/
List<GroupClosedListResultDTO> getClosedListByGroup(AllIssueFormDTO formDTO);
} }

73
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -34,6 +34,10 @@ import com.epmet.entity.IssueProjectRelationEntity;
import com.epmet.feign.*; import com.epmet.feign.*;
import com.epmet.redis.GovIssueRedis; import com.epmet.redis.GovIssueRedis;
import com.epmet.redis.IssueVoteDetailRedis; import com.epmet.redis.IssueVoteDetailRedis;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO;
import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
@ -43,6 +47,7 @@ import com.epmet.service.IssueProjectRelationService;
import com.epmet.service.IssueService; import com.epmet.service.IssueService;
import com.epmet.service.IssueVoteStatisticalService; import com.epmet.service.IssueVoteStatisticalService;
import com.epmet.utils.ModuleConstants; import com.epmet.utils.ModuleConstants;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -841,4 +846,72 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
return baseDao.checkTopicShiftIssue(formDTO); return baseDao.checkTopicShiftIssue(formDTO);
} }
/**
* 小组表决中议题
*
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO>
* @author zhaoqifeng
* @date 2020/11/17 14:59
*/
@Override
public List<GroupVotingListResultDTO> getVotingListByGroup(AllIssueFormDTO formDTO) {
//查询条件
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(pageIndex);
return baseDao.selectVotingListByTopic(formDTO);
}
/**
* 小组已转项目议题
*
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO>
* @author zhaoqifeng
* @date 2020/11/17 14:59
*/
@Override
public List<GroupShiftProjectListResultDTO> getShiftProjectListByGroup(AllIssueFormDTO formDTO) {
List<GroupShiftProjectListResultDTO> resultList = new ArrayList<>();
//查询条件
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(pageIndex);
List<IssueEntity> issueList = baseDao.selectShiftIssueByTopic(formDTO);
if (CollectionUtils.isEmpty(issueList)) {
return resultList;
}
//遍历获取所有的议题Id
List<String> issueIds = issueList.stream().map(IssueEntity::getId).collect(Collectors.toList());
ShiftProjectsFromDTO shiftProjectsFromDTO = new ShiftProjectsFromDTO();
shiftProjectsFromDTO.setIssueIds(issueIds);
List<ShiftProjectResultDTO> projectList = govProjectFeignClient.getProjectByIssue(shiftProjectsFromDTO).getData();
resultList = issueList.stream().flatMap(issue -> projectList.stream().filter(p -> issue.getId().equals(p.getOriginId())).map(project ->{
GroupShiftProjectListResultDTO shiftProject = new GroupShiftProjectListResultDTO();
shiftProject.setIssueId(issue.getId());
shiftProject.setIssueTitle(issue.getIssueTitle());
shiftProject.setCurrentHandleDepartMent(project.getDepartmentNameList());
shiftProject.setPublicReply(project.getPublicReply());
shiftProject.setIssueShiftedTime(project.getCreatedTime().getTime()/NumConstant.ONE_THOUSAND);
shiftProject.setProjectStatus(project.getStatus());
return shiftProject;
})).collect(Collectors.toList());
return resultList;
}
/**
* 小组已关闭议题
*
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO>
* @author zhaoqifeng
* @date 2020/11/17 14:59
*/
@Override
public List<GroupClosedListResultDTO> getClosedListByGroup(AllIssueFormDTO formDTO) {
//查询条件
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(pageIndex);
return baseDao.selectClosedListByTopic(formDTO);
}
} }

63
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

@ -377,5 +377,68 @@
del_flag = 0 del_flag = 0
AND source_id = #{topicId} AND source_id = #{topicId}
</select> </select>
<select id="selectIssueListByTopic" resultType="com.epmet.entity.IssueEntity">
SELECT
*
FROM
issue
WHERE
DEL_FLAG = '0'
AND GRID_ID = #{gridId}
AND ISSUE_STATUS = 'shift_project'
ORDER BY UPDATED_TIME DESC
</select>
<select id="selectShiftIssueByTopic" resultType="com.epmet.entity.IssueEntity">
SELECT
ID,
IFNULL(TITLE, '') AS title
FROM
issue
WHERE
DEL_FLAG = '0'
AND SOURCE_TYPE = 'resi_topic'
<foreach item="topic" collection="topicIds" separator="OR" open="AND (" close=")" index="">
SOURCE_ID = #{topic}
</foreach>
AND ISSUE_STATUS = 'shift_project'
ORDER BY UPDATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectVotingListByTopic" resultType="com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO">
SELECT
ID AS "issueId",
IFNULL(TITLE, '') AS "issueTitle",
UNIX_TIMESTAMP( CREATED_TIME ) AS "issuePublishTime",
IFNULL(SUGGESTION, '') AS "suggestion"
FROM
issue
WHERE
DEL_FLAG = '0'
AND SOURCE_TYPE = 'resi_topic'
<foreach item="topic" collection="topicIds" separator="OR" open="AND (" close=")" index="">
SOURCE_ID = #{topic}
</foreach>
AND ISSUE_STATUS = 'voting'
ORDER BY CREATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
<select id="selectClosedListByTopic" resultType="com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO">
SELECT
ID AS "issueId",
IFNULL(TITLE, '') AS "issueTitle",
IFNULL(CLOSE_REASON, '') AS "solution"
UNIX_TIMESTAMP( UPDATED_TIME ) AS "issueClosedTime",
FROM
issue
WHERE
DEL_FLAG = '0'
AND SOURCE_TYPE = 'resi_topic'
<foreach item="topic" collection="topicIds" separator="OR" open="AND (" close=")" index="">
SOURCE_ID = #{topic}
</foreach>
AND ISSUE_STATUS = 'closed'
ORDER BY UPDATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
</mapper> </mapper>

28
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/AllIssueFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.resi.group.dto.group.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/11/17 10:25
*/
@NoArgsConstructor
@Data
public class AllIssueFormDTO implements Serializable {
private static final long serialVersionUID = 9033824126731443502L;
/**
* 小组ID
*/
@NotBlank(message = "小组id不能为空")
private String groupId;
private Integer pageNo = 1;
private Integer pageSize = 20;
private List<String> topicIds;
}

34
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupClosedListResultDTO.java

@ -0,0 +1,34 @@
package com.epmet.resi.group.dto.group.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/11/17 11:02
*/
@NoArgsConstructor
@Data
public class GroupClosedListResultDTO implements Serializable {
private static final long serialVersionUID = 3152596066530973548L;
/**
* 议题ID
*/
private String issueId;
/**
* 议题标题
*/
private String issueTitle;
/**
* 议题关闭时间 时间戳
*/
private Long issueClosedTime;
/**
* 解决方案
*/
private String solution;
}

43
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupShiftProjectListResultDTO.java

@ -0,0 +1,43 @@
package com.epmet.resi.group.dto.group.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/11/17 10:58
*/
@NoArgsConstructor
@Data
public class GroupShiftProjectListResultDTO implements Serializable {
private static final long serialVersionUID = 4338078715001777226L;
/**
* 议题ID
*/
private String issueId;
/**
* 议题标题
*/
private String issueTitle;
/**
* 议题转成项目时间
*/
private Long issueShiftedTime;
/**
* 项目状态: 待处理 pending结案closed
*/
private String projectStatus;
/**
* 结案说明
*/
private String publicReply;
/**
* 当前处理部门名称数组
*/
private List<String> currentHandleDepartMent;
}

34
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupVotingListResultDTO.java

@ -0,0 +1,34 @@
package com.epmet.resi.group.dto.group.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/11/17 10:51
*/
@NoArgsConstructor
@Data
public class GroupVotingListResultDTO implements Serializable {
private static final long serialVersionUID = -3401194563187510106L;
/**
* 议题ID
*/
private String issueId;
/**
* 议题标题
*/
private String issueTitle;
/**
* 议题发表时间
*/
private Long issuePublishTime;
/**
* 建议处理方式(群主转议题时填写的)
*/
private String suggestion;
}

48
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/GroupIssueController.java

@ -3,12 +3,11 @@ package com.epmet.modules.group.controller;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.group.service.GroupIssueService; import com.epmet.modules.group.service.GroupIssueService;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO;
import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO;
import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -65,4 +64,47 @@ public class GroupIssueController {
ValidatorUtils.validateEntity(applicationListFormDTO, ApplicationListFormDTO.ApplicationList.class); ValidatorUtils.validateEntity(applicationListFormDTO, ApplicationListFormDTO.ApplicationList.class);
return new Result<List<ApplicationListResultDTO>>().ok(groupIssueService.applicationList(applicationListFormDTO)); return new Result<List<ApplicationListResultDTO>>().ok(groupIssueService.applicationList(applicationListFormDTO));
} }
/**
* 表决中列表
* @author zhaoqifeng
* @date 2020/11/17 13:52
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.VotingListResultDTO>>
*/
@PostMapping("votinglist")
public Result<List<GroupVotingListResultDTO>> votingList(@RequestBody AllIssueFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<GroupVotingListResultDTO> list = groupIssueService.votingList(formDTO);
return new Result<List<GroupVotingListResultDTO>>().ok(list);
}
/**
* 已转项目列表
* @author zhaoqifeng
* @date 2020/11/17 13:53
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.ShiftProjectListResultDTO>>
*/
@PostMapping("shiftproject")
public Result<List<GroupShiftProjectListResultDTO>> shiftProjectList(@RequestBody AllIssueFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<GroupShiftProjectListResultDTO> list = groupIssueService.shiftProjectList(formDTO);
return new Result<List<GroupShiftProjectListResultDTO>>().ok(list);
}
/**
* 已关闭列表
* @author zhaoqifeng
* @date 2020/11/17 13:54
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.resi.group.dto.group.result.ClosedListResultDTO>>
*/
@PostMapping("closedlist")
public Result<List<GroupClosedListResultDTO>> closedList(@RequestBody AllIssueFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<GroupClosedListResultDTO> list = groupIssueService.closedList(formDTO);
return new Result<List<GroupClosedListResultDTO>>().ok(list);
}
} }

32
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/GroupIssueService.java

@ -1,11 +1,10 @@
package com.epmet.modules.group.service; package com.epmet.modules.group.service;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO;
import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO;
import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO;
import java.util.List; import java.util.List;
@ -40,4 +39,31 @@ public interface GroupIssueService {
*/ */
List<ApplicationListResultDTO> applicationList(ApplicationListFormDTO applicationListFormDTO); List<ApplicationListResultDTO> applicationList(ApplicationListFormDTO applicationListFormDTO);
/**
* 表决中列表
* @author zhaoqifeng
* @date 2020/11/17 13:56
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.VotingListResultDTO>
*/
List<GroupVotingListResultDTO> votingList(AllIssueFormDTO formDTO);
/**
* 已转项目列表
* @author zhaoqifeng
* @date 2020/11/17 13:56
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.ShiftProjectListResultDTO>
*/
List<GroupShiftProjectListResultDTO> shiftProjectList(AllIssueFormDTO formDTO);
/**
* 已关闭列表
* @author zhaoqifeng
* @date 2020/11/17 13:56
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.ClosedListResultDTO>
*/
List<GroupClosedListResultDTO> closedList(AllIssueFormDTO formDTO);
} }

75
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/GroupIssueServiceImpl.java

@ -1,13 +1,17 @@
package com.epmet.modules.group.service.impl; package com.epmet.modules.group.service.impl;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.modules.group.service.GroupIssueService; import com.epmet.modules.group.service.GroupIssueService;
import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.resi.group.dto.group.form.AllIssueFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO;
import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO;
import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO;
import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -21,6 +25,11 @@ import java.util.List;
@Service @Service
public class GroupIssueServiceImpl implements GroupIssueService { public class GroupIssueServiceImpl implements GroupIssueService {
@Autowired
private ResiTopicService resiTopicService;
@Autowired
private GovIssueOpenFeignClient govIssueOpenFeignClient;
/** /**
* @Description 待审核||已驳回 申请详情 * @Description 待审核||已驳回 申请详情
* @Param applicationDetailFormDTO * @Param applicationDetailFormDTO
@ -53,4 +62,64 @@ public class GroupIssueServiceImpl implements GroupIssueService {
public List<ApplicationListResultDTO> applicationList(ApplicationListFormDTO applicationListFormDTO) { public List<ApplicationListResultDTO> applicationList(ApplicationListFormDTO applicationListFormDTO) {
return null; return null;
} }
/**
* 表决中列表
*
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.VotingListResultDTO>
* @author zhaoqifeng
* @date 2020/11/17 13:56
*/
@Override
public List<GroupVotingListResultDTO> votingList(AllIssueFormDTO formDTO) {
//查找小组内所有话题ID
List<String> topicIds = resiTopicService.getTopicIdsByGroup(formDTO.getGroupId());
formDTO.setTopicIds(topicIds);
Result<List<GroupVotingListResultDTO>> result = govIssueOpenFeignClient.getVotingListByGroup(formDTO);
if(!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
return result.getData();
}
/**
* 已转项目列表
*
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.ShiftProjectListResultDTO>
* @author zhaoqifeng
* @date 2020/11/17 13:56
*/
@Override
public List<GroupShiftProjectListResultDTO> shiftProjectList(AllIssueFormDTO formDTO) {
//查找小组内所有话题ID
List<String> topicIds = resiTopicService.getTopicIdsByGroup(formDTO.getGroupId());
formDTO.setTopicIds(topicIds);
Result<List<GroupShiftProjectListResultDTO>> result = govIssueOpenFeignClient.getShiftProjectListByGroup(formDTO);
if(!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
return result.getData();
}
/**
* 已关闭列表
*
* @param formDTO
* @return java.util.List<com.epmet.resi.group.dto.group.result.ClosedListResultDTO>
* @author zhaoqifeng
* @date 2020/11/17 13:56
*/
@Override
public List<GroupClosedListResultDTO> closedList(AllIssueFormDTO formDTO) {
//查找小组内所有话题ID
List<String> topicIds = resiTopicService.getTopicIdsByGroup(formDTO.getGroupId());
formDTO.setTopicIds(topicIds);
Result<List<GroupClosedListResultDTO>> result = govIssueOpenFeignClient.getClosedListByGroup(formDTO);
if(!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
return result.getData();
}
} }

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

@ -153,4 +153,13 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
*/ */
CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO);
/**
* 获取小组内话题ID
* @author zhaoqifeng
* @date 2020/11/17 14:19
* @param groupId
* @return java.util.List<java.lang.String>
*/
List<String> selectTopicIdsByGroup(@Param("groupId") String groupId);
} }

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

@ -264,4 +264,13 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
*/ */
CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO);
/**
* 获取小组内话题ID
* @author zhaoqifeng
* @date 2020/11/17 14:18
* @param groupId
* @return java.util.List<java.lang.String>
*/
List<String> getTopicIdsByGroup(String groupId);
} }

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

@ -1275,6 +1275,19 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
return resiTopicDao.checkTopicPublisher(formDTO); return resiTopicDao.checkTopicPublisher(formDTO);
} }
/**
* 获取小组内话题ID
*
* @param groupId
* @return java.util.List<java.lang.String>
* @author zhaoqifeng
* @date 2020/11/17 14:18
*/
@Override
public List<String> getTopicIdsByGroup(String groupId) {
return baseDao.selectTopicIdsByGroup(groupId);
}
} }

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

@ -446,5 +446,12 @@
AND created_by = #{createdBy} AND created_by = #{createdBy}
AND id = #{topicId} AND id = #{topicId}
</select> </select>
<select id="selectTopicIdsByGroup" resultType="java.lang.String">
select ID
FROM resi_topic
WHERE del_flag = 0
AND GROUP_ID = #{groupId}
AND STATUS != 'hidden'
</select>
</mapper> </mapper>

Loading…
Cancel
Save