| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1025,66 +1025,72 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Date now = new Date(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //2.调用gov-org获取数据权限
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ResiTopicAndGroupResultDTO group = baseDao.getGroupInfoByTopicId(topicTurnIssueFromDTO.getTopicId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(null != group){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            CommonGridIdFormDTO dataFilterParam = new CommonGridIdFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            dataFilterParam.setUserId(topicTurnIssueFromDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            dataFilterParam.setGridId(group.getGridId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Result<CommonDataFilterResultDTO> dataFilterResult = | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    govOrgFeignClient.gridDataFilter(dataFilterParam); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(dataFilterResult.success() && null != dataFilterResult.getData()){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                issueInfo.setCreatedTime(now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                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()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                ResiGroupMemberInfoRedisDTO issueAuthor = resiGroupMemberRedis.get(group.getGroupId(),topicTurnIssueFromDTO.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())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //4.调用gov-issue新增议题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Result<String> issueResult = govIssueFeignClient.issueShiftedToTopic(issueInfo); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //5.修改话题shiftIssue字段
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if(issueResult.success() && StringUtils.isNotBlank(issueResult.getData())){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ResiTopicEntity topic2Upd = new ResiTopicEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    topic2Upd.setId(topicTurnIssueFromDTO.getTopicId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    topic2Upd.setUpdatedBy(topicTurnIssueFromDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    topic2Upd.setShiftIssue(Boolean.TRUE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    topic2Upd.setIssueId(issueResult.getData()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    topic2Upd.setUpdatedTime(now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    int topicResult = baseDao.updateOne(topic2Upd); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //6.新增话题操作记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if(topicResult == NumConstant.ONE) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ResiTopicOperationEntity operation = new ResiTopicOperationEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        operation.setCreatedTime(now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        operation.setCreatedBy(topicTurnIssueFromDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        operation.setTopicId(topicTurnIssueFromDTO.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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(null == group) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        TopicInfoFormDTO topicId = new TopicInfoFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        topicId.setTopicId(topicTurnIssueFromDTO.getTopicId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer issueCount = govIssueFeignClient.checkTopicShiftIssue(topicId).getData(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (issueCount != NumConstant.ZERO){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException(ModuleConstant.ALREADY_SHIFT_ISSUE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        CommonGridIdFormDTO dataFilterParam = new CommonGridIdFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        dataFilterParam.setUserId(topicTurnIssueFromDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        dataFilterParam.setGridId(group.getGridId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<CommonDataFilterResultDTO> dataFilterResult = | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                govOrgFeignClient.gridDataFilter(dataFilterParam); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(dataFilterResult.success() && null != dataFilterResult.getData()){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            issueInfo.setCreatedTime(now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            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()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ResiGroupMemberInfoRedisDTO issueAuthor = resiGroupMemberRedis.get(group.getGroupId(),topicTurnIssueFromDTO.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())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //4.调用gov-issue新增议题
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Result<String> issueResult = govIssueFeignClient.issueShiftedToTopic(issueInfo); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //5.修改话题shiftIssue字段
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(issueResult.success() && StringUtils.isNotBlank(issueResult.getData())){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                ResiTopicEntity topic2Upd = new ResiTopicEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                topic2Upd.setId(topicTurnIssueFromDTO.getTopicId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                topic2Upd.setUpdatedBy(topicTurnIssueFromDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                topic2Upd.setShiftIssue(Boolean.TRUE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                topic2Upd.setIssueId(issueResult.getData()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                topic2Upd.setUpdatedTime(now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                int topicResult = baseDao.updateOne(topic2Upd); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //6.新增话题操作记录
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if(topicResult == NumConstant.ONE) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ResiTopicOperationEntity operation = new ResiTopicOperationEntity(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    operation.setCreatedTime(now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    operation.setCreatedBy(topicTurnIssueFromDTO.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    operation.setTopicId(topicTurnIssueFromDTO.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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    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); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                logger.warn(ModuleConstant.FAILURE_TO_UPDATE_TOPIC); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |