Browse Source

议题审核

dev_shibei_match
wangchao 5 years ago
parent
commit
acd1cee757
  1. 2
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java
  2. 2
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java
  3. 7
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java
  4. 4
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  5. 21
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java
  6. 4
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java
  7. 5
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
  8. 6
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java
  9. 156
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  10. 8
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java
  11. 8
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml
  12. 9
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  13. 9
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  14. 6
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
  15. 40
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java
  16. 125
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java
  17. 24
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java
  18. 15
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  19. 12
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  20. 12
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  21. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  22. 90
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

2
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java

@ -158,4 +158,6 @@ public class IssueDTO implements Serializable {
* 议题转项目后-对应的项目id
*/
private String projectId;
private String issueId;
}

2
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java

@ -21,5 +21,5 @@ public class CommonGridIdFormDTO implements Serializable {
@NotBlank(message = "网格Id不能为空")
private String gridId;
private String userId;
}

7
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java

@ -48,6 +48,11 @@ public class IssueShiftedFromTopicFormDTO implements Serializable {
@NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String userId;
/**
* 当userId为工作端审核人员时该项存议题发起人
*/
private String issueAuthorId;
/**
* 客户Id
* */
@ -116,4 +121,6 @@ public class IssueShiftedFromTopicFormDTO implements Serializable {
@NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class})
private String groupId;
private String issueId;
}

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

@ -34,8 +34,8 @@ import java.util.Map;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:37
*/
@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class)
// @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101")
//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class)
@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101")
public interface GovIssueOpenFeignClient {
/**

21
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java

@ -1,25 +1,22 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
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.constant.IssueConstant;
import com.epmet.dto.form.ApplicationDetailWorkFormDTO;
import com.epmet.dto.form.ApplicationHistoryWorkFormDTO;
import com.epmet.dto.form.IssueAppQueryFormDTO;
import com.epmet.dto.form.IssueApplicationIdFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.ApplicationDetailWorkResultDTO;
import com.epmet.dto.result.ApplicationHistoryResDTO;
import com.epmet.dto.result.ApplicationHistoryWorkResultDTO;
import com.epmet.dto.result.IssueApplicationResDTO;
import com.epmet.service.IssueApplicationHistoryService;
import com.epmet.service.IssueApplicationService;
import com.epmet.service.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.web.bind.annotation.*;
import java.util.List;
@ -36,7 +33,8 @@ public class IssueAuditController {
private IssueApplicationService issueApplicationService;
@Autowired
private IssueApplicationHistoryService issueApplicationHistoryService;
@Autowired
private IssueService issueService;
/**
* @param formDTO
* @author yinzuomei
@ -116,4 +114,9 @@ public class IssueAuditController {
ValidatorUtils.validateEntity(applicationHistoryWorkFormDTO,ApplicationHistoryWorkFormDTO.ApplicationHistoryWork.class);
return new Result<List<ApplicationHistoryWorkResultDTO>>().ok(issueApplicationHistoryService.applicationHistoryWork(applicationHistoryWorkFormDTO));
}
@PostMapping("audit")
public Result<String> audit(@LoginUser TokenDto token, @RequestBody IssueAuditionFormDTO param){
return new Result<String>().ok(issueService.audit(token,param));
}
}

4
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java

@ -18,12 +18,14 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IssueApplicationDTO;
import com.epmet.dto.form.IssueAppQueryFormDTO;
import com.epmet.dto.result.IssueApplicationResDTO;
import com.epmet.entity.IssueApplicationEntity;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -52,4 +54,6 @@ public interface IssueApplicationDao extends BaseDao<IssueApplicationEntity> {
* @Date 2020/11/18 16:28
**/
List<IssueApplicationResDTO> selectList(IssueAppQueryFormDTO formDTO);
List<IssueApplicationDTO> selectByTopicId(@Param("topicId") String topicId);
}

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

@ -2,6 +2,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -152,6 +153,8 @@ public interface IssueService extends BaseService<IssueEntity> {
*/
FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO);
String audit(TokenDto token, IssueAuditionFormDTO param);
/**
* @Description 表决中列表
* @param issueListForm
@ -296,6 +299,4 @@ public interface IssueService extends BaseService<IssueEntity> {
* @return java.util.List<com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO>
*/
List<GroupClosedListResultDTO> getClosedListByGroup(AllIssueFormDTO formDTO);
//FirstTopicShiftedToIssueApplicationResultDTO TopicShiftedToIssueFirstly();
}

6
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java

@ -65,9 +65,9 @@ public class IssueApplicationServiceImpl extends BaseServiceImpl<IssueApplicatio
@Override
public List<IssueApplicationDTO> list(Map<String, Object> params) {
List<IssueApplicationEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class);
//List<IssueApplicationEntity> entityList = baseDao.selectByTopicId(getWrapper(params));
return baseDao.selectByTopicId((String)params.get(ModuleConstants.FIELD_JAVA_TOPIC_ID));
//return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class);
}
private QueryWrapper<IssueApplicationEntity> getWrapper(Map<String, Object> params){

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

@ -13,6 +13,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
@ -23,7 +24,6 @@ import com.epmet.constant.UserMessageConstant;
import com.epmet.dao.IssueDao;
import com.epmet.dao.IssueProcessDao;
import com.epmet.dao.IssueProjectRelationDao;
import com.epmet.dao.IssueVoteStatisticalDao;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -41,6 +41,7 @@ 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.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
@ -106,6 +107,8 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@ -287,6 +290,8 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
issueVoteDetailRedis.set(voteInitCache);
//4.该网格下表决中议题总数量+1
govIssueRedis.addWorkGrassrootsIssueRedDotValue(issueShiftedFromTopicFormDTO.getGridId());
if(StringUtils.isNotBlank(issueShiftedFromTopicFormDTO.getIssueId())) issueDTO.setId(issueShiftedFromTopicFormDTO.getIssueId());
return issueDTO.getId();
}
logger.warn(String.format(
@ -315,47 +320,65 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
* @date 2020.11.19 10:02
*/
@Override
@Transactional(rollbackFor = Exception.class)
public FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) {
FirstTopicShiftedToIssueApplicationResultDTO result = new FirstTopicShiftedToIssueApplicationResultDTO();
//0.判断此次来源是否审核,是居民端还是工作端
boolean isStaffAudition = null != param.getAudition();
//初始化缺省状态 : 审核中
String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING;
//1.查询该客户下是否开启议题审核
boolean ifOpen = !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId()));
//为了防止当工作人员审核时,议题审核开关被关闭,这时统一视为审核开启,将工作端的审核动作继续进行
boolean ifOpen = isStaffAudition ? true :
!StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId()));
//初始化缺省状态 : 审核中
String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() :
( ifOpen ? ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING: ModuleConstants.AUDITION_TYPE_AUTO_PASSED);
result.setAuditSwitch(ifOpen ? ModuleConstants.AUDIT_SWITCH_OPEN : ModuleConstants.AUDIT_SWITCH_CLOSE);
//2.居民段组长提交议题审核
if(ifOpen || isStaffAudition){
//2.居民端组长提交议题审核
//默认打开
//2.1查询是否存在application记录
Map<String,Object> applicationParam = new HashMap<>();applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID,param.getTopicId());
Map<String, Object> applicationParam = new HashMap<>();
applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID, param.getTopicId());
List<IssueApplicationDTO> applicationList = applicationService.list(applicationParam);
List<String> applyIds = new LinkedList<>();
if(CollectionUtils.isEmpty(applicationList)){
//没有历史提交记录
if (CollectionUtils.isEmpty(applicationList)) {
//审核开关开启
if(ifOpen) {
//首次提交 新增application
IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param,IssueApplicationDTO.class);
IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param, IssueApplicationDTO.class);
newApplication.setApplyStatus(defaultStatusUnderAuditing);
newApplication.setId(UUID.randomUUID().toString().replace("-", ""));
applicationService.save(newApplication);
applyIds.add(newApplication.getId());
}else{
//重新提交 更新application
if(applicationList.size() > NumConstant.ONE){
logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}",param.getTopicId());
}
} else {
//重新提交 或 工作端审核议题 更新application
if (applicationList.size() > NumConstant.ONE)
logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}", param.getTopicId());
}
applicationList.forEach(apply -> {
IssueApplicationDTO carrier = new IssueApplicationDTO();
carrier.setId(apply.getId());
carrier.setApplyStatus(defaultStatusUnderAuditing);
carrier.setSuggestion(isStaffAudition ? apply.getSuggestion() : param.getSuggestion());
carrier.setIssueTitle(isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle());
carrier.setSuggestion(!isStaffAudition ? apply.getSuggestion() : param.getSuggestion());
carrier.setIssueTitle(!isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle());
carrier.setPassedReason(isStaffAudition ? param.getAudition().getReason() : null);
carrier.setIssueId(isStaffAudition ? param.getIssueId() : null);
carrier.setUpdatedTime(param.getCreatedTime());
carrier.setUpdatedBy(param.getUserId());
applicationService.update(carrier);
applyIds.add(apply.getId());
});
}
//新增history
applyIds.forEach(id -> {
IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO();
history.setActionType(defaultStatusUnderAuditing);
history.setCreatedTime(param.getCreatedTime());
@ -365,20 +388,115 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null);
historyService.save(history);
if(!ifOpen){
IssueApplicationHistoryDTO repeatApplyRecord = new IssueApplicationHistoryDTO();
repeatApplyRecord.setActionType(ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING);
repeatApplyRecord.setCreatedTime(param.getCreatedTime());
repeatApplyRecord.setCustomerId(param.getCustomerId());
repeatApplyRecord.setIssueApplicationId(id);
historyService.save(repeatApplyRecord);
}
});
result.setIssueApplicationId(applyIds.iterator().next());
}
//当无需审核或审核同意时,生成议题
//注意,如果是二次提交申请,且此时审核开关被关闭,则无需更新application状态以及新增history记录
//只有当审核开关关闭 或 工作端人员审核通过时才生成议题
if(!ifOpen || StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,defaultStatusUnderAuditing)){
ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class);
if(isStaffAudition) param.setUserId(param.getIssueAuthorId());
result.setIssueId(issueShiftedToTopic(param));
}
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String audit(TokenDto token, IssueAuditionFormDTO param) {
if (StringUtils.isNotBlank(param.getReason())) {
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setDataId(UUID.randomUUID().toString().replace("-", ""));
taskDTO.setContent(param.getReason());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()){
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
}
Date unifiedDate = new Date();
IssueApplicationDTO application = applicationService.get(param.getIssueApplicationId());
if(null == application) throw new RenException("没有相应的议题申请信息");
IssueApplicationDTO app2update = new IssueApplicationDTO();
app2update.setId(param.getIssueApplicationId());
app2update.setApplyStatus(param.getActionType());
app2update.setUpdatedBy(token.getUserId());
app2update.setUpdatedTime(unifiedDate);
IssueApplicationHistoryDTO history2add = new IssueApplicationHistoryDTO();
history2add.setIssueApplicationId(param.getIssueApplicationId());
history2add.setReason(param.getReason());
history2add.setActionType(param.getActionType());
history2add.setCreatedTime(unifiedDate);
history2add.setCreatedBy(token.getUserId());
history2add.setCustomerId(application.getCustomerId());
//historyService.save(history2add);
//if(!StringUtils.equals(ModuleConstants.AUDITION_TYPE_REJECT,param.getActionType())){
app2update.setPassedReason(param.getReason());
ResiTopicTurnIssueFromDTO form = new ResiTopicTurnIssueFromDTO();
form.setActionType(param.getActionType());
form.setUnifiedDate(unifiedDate);form.setUserId(application.getCreatedBy());form.setTopicId(application.getTopicId());form.setIssueId(UUID.randomUUID().toString().replaceAll("-", ""));
Result<com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO > topicInfo = resiGroupOpenFeignClient.fetchTopicInfoWhenAuditIssue(form);
if(topicInfo.success() && null != topicInfo.getData()){
CommonGridIdFormDTO grid = new CommonGridIdFormDTO();
grid.setGridId(application.getGridId());
grid.setUserId(token.getUserId());
Result<CommonDataFilterResultDTO> dataFilter = govOrgOpenFeignClient.gridDataFilter(grid);
if(dataFilter.success() && null != dataFilter.getData()){
com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO issueParam = topicInfo.getData();
IssueShiftedFromTopicFormDTO issueParam2 =
ConvertUtils.sourceToTarget(issueParam, IssueShiftedFromTopicFormDTO.class);
issueParam2.setOrgId(dataFilter.getData().getAgencyId());
issueParam2.setOrgIdPath(dataFilter.getData().getOrgIdPath());
issueParam2.setOrgName(dataFilter.getData().getOrgName());
issueParam2.setIssueTitle(application.getIssueTitle());issueParam2.setSuggestion(application.getSuggestion());
//staffName
StaffBasicInfoFromDTO staffParam = new StaffBasicInfoFromDTO(); staffParam.setStaffId(token.getUserId());
Result<BasicInfoResultDTO> staffBasicInfo = userOpenFeignClient.getStaffBasicInfo(staffParam);
if(staffBasicInfo.success() && null != staffBasicInfo.getData()) {
param.setStaffName(staffBasicInfo.getData().getRealName());
}
issueParam2.setAudition(param);
FirstTopicShiftedToIssueApplicationResultDTO issueResult = topicShiftedToIssueV2(issueParam2);
app2update.setIssueId(issueResult.getIssueId());
}
}else throw new RenException(topicInfo.getInternalMsg());
//}
//applicationService.update(app2update);
return app2update.getIssueId();
}
/**
* @Description 表决中列表
* @param issueListForm

8
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java

@ -26,7 +26,6 @@ public interface ModuleConstants {
* 议题审核状态 审核中
*/
String ISSUE_APPLICATION_STATUS_UNDER_AUDITING = "under_auditing";
/**
* 议题来源居民段话题
* */
@ -123,6 +122,13 @@ public interface ModuleConstants {
*/
String AUDITION_TYPE_APPROVAL = "approved";
/**
* 当议题开关关闭时申请和申请历史的状态为自动通过
* 如果是首次提交不生成申请和申请历史记录
* 该值只适用于二次提交时审核开关被关闭的情况
*/
String AUDITION_TYPE_AUTO_PASSED = "auto_passed";
/**
* 议题审核动作 驳回
*/

8
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml

@ -39,4 +39,12 @@
ORDER BY
ia.UPDATED_TIME DESC
</select>
<select id="selectByTopicId" resultType="com.epmet.dto.IssueApplicationDTO">
SELECT
*
FROM issue_application
WHERE DEL_FLAG = '0'
AND TOPIC_ID = #{topicId}
</select>
</mapper>

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

@ -127,7 +127,16 @@
revision
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<choose>
<when test='null != issueId and "" != issueId'>
#{issueId},
</when>
<otherwise>
#{id},
</otherwise>
</choose>
<if test ='null != issueStatus'>
#{issueStatus},
</if>

9
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -305,4 +305,13 @@ public interface GovOrgOpenFeignClient {
@PostMapping("/gov/org/customergrid/getcustomergridbygridid")
Result<CustomerGridDTO> getCustomerGridByGridId(@RequestBody CustomerGridFormDTO customerGridFormDTO);
/**
* @param gridForm
* @return Result<CommonDataFilterResultDTO>
* @Author wangc
* @Description 获取网格所需要的数据权限内容
* @Date 2020/3/30 10:45
**/
@PostMapping("/gov/org/customergrid/griddatafilter")
Result<CommonDataFilterResultDTO> gridDataFilter(CommonGridIdFormDTO gridForm);
}

6
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java

@ -177,4 +177,10 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
public Result<CustomerGridDTO> getCustomerGridByGridId(CustomerGridFormDTO customerGridFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCustomerGridByGridId", customerGridFormDTO);
}
@Override
public Result<CommonDataFilterResultDTO> gridDataFilter(CommonGridIdFormDTO gridForm) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "gridDataFilter", gridForm);
}
}

40
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java

@ -0,0 +1,40 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 工作人员审核议题结果传参
* @ClassName IssueAuditionFormDTO
* @Auth wangc
* @Date 2020-11-19 10:29
*/
@Data
public class IssueAuditionFormDTO implements Serializable {
private static final long serialVersionUID = 5794088085884822811L;
/**
* 申请id
*/
@NotBlank(message = "议题申请Id不能为空")
private String issueApplicationId;
/**
* 同意备注 驳回理由
*/
private String reason;
/**
* approved:审核通过 rejected:驳回
*/
@NotBlank(message = "审核结果不能为空")
private String actionType;
/**
* 工作人员名称
*/
private String staffName;
}

125
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java

@ -0,0 +1,125 @@
package com.epmet.resi.group.dto.topic.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 话题转议题时的参数
* @ClassName IssueShiftedFromTopicFormDTO
* @Auth wangc
* @Date 2020-05-13 09:27
*/
@Data
public class IssueShiftedFromTopicFormDTO implements Serializable {
private static final long serialVersionUID = -5744319584210140289L;
public interface IssueGenerationGroup extends CustomerClientShowGroup{}
public interface PublicIssueGroup extends CustomerClientShowGroup{}
/**
* 话题Id
* */
@NotBlank(message = "话题Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String topicId;
/**
* 议题名称
* */
@NotBlank(message = "议题名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String issueTitle;
/**
* 建议
* */
@NotBlank(message = "议题建议不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String suggestion;
/**
* 议题发起人Id
* */
@NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String userId;
/**
* 当userId为工作端审核人员时该项存议题发起人
*/
private String issueAuthorId;
/**
* 客户Id
* */
@NotBlank(message = "客户不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String customerId;
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String gridId;
/**
* AgencyId当前话题所在机构Id
* */
@NotBlank(message = "机关Id不能为空",groups = {IssueGenerationGroup.class})
private String orgId;
/**
* 所属机关 eg:11:22:33(本机关以及上级所有机关ID)
* */
@NotBlank(message = "所属机关全路径不能为空",groups = {IssueGenerationGroup.class})
private String orgIdPath;
/**
* 当前话题所在网格名称 - 对应议题流程的处理部门
* */
@NotBlank(message = "网格名称不能为空",groups = {IssueGenerationGroup.class})
private String orgName;
/**
* 议题创建时间
* */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@NotNull(message = "创建时间不能为空",groups = {IssueGenerationGroup.class})
private Date createdTime;
/**
* 小组名称 - 对应议题流程的小组名称(文案)
* */
@NotBlank(message = "小组名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String groupName;
/**
* 话题发起人名称 -对应议题流程的话题发起人(文案)
* */
@NotBlank(message = "话题发起人不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String topicAuthor;
/**
* 议题发起人(组长)名称 - 对应议题流程的组长名称(文案)
* */
@NotBlank(message = "组长不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private String issueAuthor;
/**
* 应表决数
* */
@NotNull(message = "应表决数不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class})
private Integer votableCount;
/**
* 议题审核参数
*/
private IssueAuditionFormDTO audition;
@NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class})
private String groupId;
private String issueId;
}

24
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java

@ -4,6 +4,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 话题转议题时前端传参
@ -17,25 +18,32 @@ public class ResiTopicTurnIssueFromDTO implements Serializable {
/**
* 议题名称
* */
@NotBlank(message = "议题名称不能为空" )
*/
@NotBlank(message = "议题名称不能为空")
private String issueTitle;
/**
* 话题Id
* */
@NotBlank(message = "话题Id不能为空" )
*/
@NotBlank(message = "话题Id不能为空")
private String topicId;
/**
* 建议
* */
@NotBlank(message = "建议不能为空" )
*/
@NotBlank(message = "建议不能为空")
private String suggestion;
/**
* 用户Id
* */
@NotBlank(message = "用户Id不能为空" )
*/
@NotBlank(message = "用户Id不能为空")
private String userId;
private String issueId;
private Date unifiedDate;
private String actionType;
}

15
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java

@ -1,5 +1,6 @@
package com.epmet.resi.group.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.*;
@ -8,9 +9,7 @@ import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO;
import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO;
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.form.MyPartIssueFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.form.*;
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.MyPartIssueResultDTO;
@ -118,4 +117,14 @@ public interface ResiGroupOpenFeignClient {
*/
@PostMapping("resi/group/groupissue/applicationdetail")
Result<ApplicationDetailCopyResultDTO> applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO);
/**
* @Description 工作端审核议题同意时查询相关话题的基本信息
* @param param
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.form.IssueShiftedFromTopicFormDTO>
* @author wangc
* @date 2020.11.23 03:08
*/
@PostMapping("resi/group/topic/fetchtopicinfowhenauditissue")
Result<IssueShiftedFromTopicFormDTO> fetchTopicInfoWhenAuditIssue(@RequestBody ResiTopicTurnIssueFromDTO param);
}

12
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java

@ -8,17 +8,12 @@ import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO;
import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO;
import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO;
import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO;
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.form.MyPartIssueFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO;
import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
@ -85,4 +80,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
public Result<ApplicationDetailCopyResultDTO> applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "applicationDetail", applicationDetailFormDTO);
}
@Override
public Result<IssueShiftedFromTopicFormDTO> fetchTopicInfoWhenAuditIssue(ResiTopicTurnIssueFromDTO param) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "fetchTopicInfoWhenAuditIssue",param);
}
}

12
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java

@ -266,6 +266,18 @@ public class ResiTopicController {
return new Result<FirstTopicShiftedToIssueApplicationResultDTO>().ok(topicService.shiftIssueV2(param));
}
/**
* @Description 工作端审核议题同意时查询相关话题的基本信息
* @param param
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.form.IssueShiftedFromTopicFormDTO>
* @author wangc
* @date 2020.11.23 03:08
*/
@PostMapping("fetchtopicinfowhenauditissue")
public Result<IssueShiftedFromTopicFormDTO> fetchTopicInfoWhenAuditIssue(@RequestBody ResiTopicTurnIssueFromDTO param){
return new Result<IssueShiftedFromTopicFormDTO>().ok(topicService.getIssueInfoWhenAudit(param));
}
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO

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

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService;
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.result.FirstTopicShiftedToIssueApplicationResultDTO;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.topic.entity.ResiTopicEntity;
@ -258,6 +259,15 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
*/
FirstTopicShiftedToIssueApplicationResultDTO shiftIssueV2(ResiTopicTurnIssueFromDTO param);
/**
* @Description 工作端审核议题通过时获取一些议题相关信息
* @param param
* @return com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO
* @author wangc
* @date 2020.11.20 18:09
*/
IssueShiftedFromTopicFormDTO getIssueInfoWhenAudit(ResiTopicTurnIssueFromDTO param);
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO

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

@ -85,6 +85,7 @@ import com.epmet.resi.group.dto.topic.TopicInfoDTO;
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.form.*;
import com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO;
import com.epmet.resi.group.dto.topic.result.CheckTopicPublisherResultDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.*;
@ -100,6 +101,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.swing.text.html.Option;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -1286,15 +1288,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
Map<String,Object> param = new HashMap<>(); param.put(ModuleConstant.FILED_TOPIC_ID_HUMP,topicIdFormDTO.getTopicId());
Result<List<IssueApplicationDTO>> record = issueOpenFeignClient.list(param);
if(!record.success()){
log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查询转议题提交记录失败,话题Id:{}",topicIdFormDTO.getTopicId());
log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,,话题Id:{}",topicIdFormDTO.getTopicId());
throw new RenException(ModuleConstant.FAILED_QUERY_ISSUE_APPLICATION_RECORD);
}
result.setIssueApplicationId(ModuleConstant.EMPTY_STR);
result.setApplyStatus(ModuleConstant.EMPTY_STR);
if(!CollectionUtils.isEmpty(record.getData())){
if(record.getData().size() > NumConstant.ONE){
log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查出多条转移提提交记录,话题Id:{}",topicIdFormDTO.getTopicId());
}
result.setIssueApplicationId(record.getData().get(NumConstant.ZERO).getId());
result.setApplyStatus(record.getData().get(NumConstant.ZERO).getApplyStatus());
result.setIssueApplicationId(Optional.ofNullable(record.getData().get(NumConstant.ZERO).getId()).orElse(ModuleConstant.EMPTY_STR));
result.setApplyStatus(Optional.ofNullable(record.getData().get(NumConstant.ZERO).getApplyStatus()).orElse(ModuleConstant.EMPTY_STR));
}
return result;
}
@ -1335,6 +1339,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
}
}
}
//1.统一时间(群组服务 -> 议题服务)
Date now = new Date();
//2.调用gov-org获取数据权限
@ -1354,7 +1359,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
Result<CommonDataFilterResultDTO> dataFilterResult =
govOrgFeignClient.gridDataFilter(dataFilterParam);
if(dataFilterResult.success() && null != dataFilterResult.getData()){
IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class);
com.epmet.dto.form.IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO, com.epmet.dto.form.IssueShiftedFromTopicFormDTO .class);
issueInfo.setCreatedTime(now);
issueInfo.setGridId(group.getGridId());
issueInfo.setCustomerId(group.getCustomerId());
@ -1463,7 +1468,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
Result<CommonDataFilterResultDTO> dataFilterResult =
govOrgFeignClient.gridDataFilter(dataFilterParam);
if(dataFilterResult.success() && null != dataFilterResult.getData()){
IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class);
com.epmet.dto.form.IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO, com.epmet.dto.form.IssueShiftedFromTopicFormDTO .class);
issueInfo.setCreatedTime(now);
issueInfo.setGridId(group.getGridId());
issueInfo.setCustomerId(group.getCustomerId());
@ -1529,6 +1534,81 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
}
/**
* @Description 工作端审核议题通过时获取一些议题相关信息
* @param param
* @return com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO
* @author wangc
* @date 2020.11.20 18:09
*/
@Override
public IssueShiftedFromTopicFormDTO getIssueInfoWhenAudit(ResiTopicTurnIssueFromDTO param) {
ResiTopicAndGroupResultDTO group = baseDao.getGroupInfoByTopicId(param.getTopicId());
if (null == group) throw new RenException(ModuleConstant.QUERY_GROUPINFO_FAILED);
ResiTopicEntity topic = resiTopicDao.selectById(param.getTopicId());
if (null == topic) throw new RenException(ModuleConstant.NO_SUCH_TOPIC);
if (topic.getShiftIssue()) throw new RenException(ModuleConstant.ALREADY_SHIFT_ISSUE);
IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(param, IssueShiftedFromTopicFormDTO.class);
issueInfo.setCreatedTime(param.getUnifiedDate());
issueInfo.setGridId(group.getGridId());
issueInfo.setCustomerId(group.getCustomerId());
//issueInfo.setOrgId(dataFilterResult.getData().getAgencyId());
//issueInfo.setOrgIdPath(dataFilterResult.getData().getOrgIdPath());
//issueInfo.setOrgName(dataFilterResult.getData().getOrgName());
//3.获取小组名称、话题作者、议题发起人
ResiGroupMemberInfoRedisDTO topicAuthor = resiGroupMemberRedis.get(group.getGroupId(), group.getTopicAuthorId());
issueInfo.setTopicAuthor(null == topicAuthor ? ModuleConstant.EMPTY_STR : topicAuthor.getUserShowName());
//参数里的userId并不是工作端审核人的Id 而是转议题人的Id
ResiGroupMemberInfoRedisDTO issueAuthor = resiGroupMemberRedis.get(group.getGroupId(), param.getUserId());
issueInfo.setIssueAuthor(null == issueAuthor ? ModuleConstant.EMPTY_STR : issueAuthor.getUserShowName());
ResiGroupInfoRedisDTO groupCache = resiGroupRedis.get(group.getGroupId());
issueInfo.setGroupName(null == groupCache ? ModuleConstant.EMPTY_STR : groupCache.getGroupName());
issueInfo.setVotableCount(resiGroupMemberService.gridResiCount(group.getGridId()));
issueInfo.setGroupId(group.getGroupId());
issueInfo.setCustomerId(group.getCustomerId());
issueInfo.setIssueAuthorId(issueAuthor.getUserId());
if(StringUtils.equals(ModuleConstant.AUDITING_OPERATION_APPROVAL,param.getActionType())){
//5.修改话题shiftIssue字段
ResiTopicEntity topic2Upd = new ResiTopicEntity();
topic2Upd.setId(param.getTopicId());
topic2Upd.setUpdatedBy(param.getUserId());
topic2Upd.setShiftIssue(Boolean.TRUE);
topic2Upd.setIssueId(param.getIssueId());
topic2Upd.setUpdatedTime(param.getUnifiedDate());
int topicResult = baseDao.updateOne(topic2Upd);
//6.新增话题操作记录
if (topicResult == NumConstant.ONE) {
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setCreatedTime(param.getUnifiedDate());
operation.setCreatedBy(param.getUserId());
operation.setTopicId(param.getTopicId());
operation.setOperationType(ModuleConstant.TOPIC_OPERATION_TYPE_SHIFT_ISSUE);
int operationResult = resiTopicOperationDao.insertOneByParams(operation);
if (operationResult != NumConstant.ONE) {
logger.warn(ModuleConstant.FAILURE_TO_ADD_TOPIC_OPERATION);
}
} else logger.warn(ModuleConstant.FAILURE_TO_UPDATE_TOPIC);
//7.更新组统计信息 议题数量+1
resiGroupStatisticalDao.incryTotalIssues(group.getGroupId());
if (null != groupCache && null != groupCache.getGroupStatisticalInfo()) {
groupCache.getGroupStatisticalInfo().setTotalIssues(
null == groupCache.getGroupStatisticalInfo().getTotalIssues() ? NumConstant.ONE
: groupCache.getGroupStatisticalInfo().getTotalIssues() + NumConstant.ONE
);
resiGroupRedis.set(groupCache);
}
}
return issueInfo;
}
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO

Loading…
Cancel
Save