|
@ -51,19 +51,18 @@ import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; |
|
|
import com.epmet.service.IssueVoteDetailService; |
|
|
import com.epmet.service.IssueVoteDetailService; |
|
|
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.apache.commons.lang3.StringUtils; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
import org.springframework.beans.BeanUtils; |
|
|
import org.springframework.beans.BeanUtils; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDateTime; |
|
|
import java.time.LocalDateTime; |
|
|
import java.time.ZoneOffset; |
|
|
import java.time.ZoneOffset; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 议题表决统计表 |
|
|
* 议题表决统计表 |
|
@ -272,10 +271,11 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
CommonGridIdListFormDTO gridIdList = new CommonGridIdListFormDTO(); |
|
|
CommonGridIdListFormDTO gridIdList = new CommonGridIdListFormDTO(); |
|
|
gridIdList.setGridIds(gridIds); |
|
|
gridIdList.setGridIds(gridIds); |
|
|
Result<GridVotableCountResultDTO> votableCountResult = resiGroupFeignClient.votableCounts(gridIdList); |
|
|
Result<GridVotableCountResultDTO> votableCountResult = resiGroupFeignClient.votableCounts(gridIdList); |
|
|
Map<String,Integer> votableCountMap = null; |
|
|
Map<String,Integer> votableCountMap1 = null; |
|
|
if(votableCountResult.success() && null != votableCountResult.getData() && null != votableCountResult.getData().getVotableCountMap()){ |
|
|
if(votableCountResult.success() && null != votableCountResult.getData() && null != votableCountResult.getData().getVotableCountMap()){ |
|
|
votableCountMap = votableCountResult.getData().getVotableCountMap(); |
|
|
votableCountMap1 = votableCountResult.getData().getVotableCountMap(); |
|
|
} |
|
|
} |
|
|
|
|
|
final Map<String,Integer> votableCountMap = votableCountMap1; |
|
|
|
|
|
|
|
|
List<IssueVoteStatisticalDTO> statisticalList = |
|
|
List<IssueVoteStatisticalDTO> statisticalList = |
|
|
baseDao.selectListByIds(ids); |
|
|
baseDao.selectListByIds(ids); |
|
@ -302,12 +302,42 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
baseDao.updateBatchByIssueId(listToUpdate); |
|
|
baseDao.updateBatchByIssueId(listToUpdate); |
|
|
|
|
|
|
|
|
if (notExistedIds.size() > NumConstant.ZERO) { |
|
|
if (notExistedIds.size() > NumConstant.ZERO) { |
|
|
//新增
|
|
|
|
|
|
List<IssueVoteStatisticalDTO> toInsert = new ArrayList<>(); |
|
|
|
|
|
Map<String,String> issueGridMap = issues.stream().collect(Collectors.toMap(IssueDTO::getId,IssueDTO::getGridId,(o, n) -> o)); |
|
|
Map<String,String> issueGridMap = issues.stream().collect(Collectors.toMap(IssueDTO::getId,IssueDTO::getGridId,(o, n) -> o)); |
|
|
|
|
|
//新增
|
|
|
|
|
|
List<IssueVoteStatisticalDTO> toInsert = new LinkedList<>(); |
|
|
|
|
|
List<VoteRedisFormDTO> voteList = issueVoteDetailDao.selectBatchVoteCount(notExistedIds); |
|
|
|
|
|
List<String> votedIssueIds = new ArrayList<>(); |
|
|
|
|
|
if(!CollectionUtils.isEmpty(voteList) && StringUtils.isNotBlank(voteList.get(NumConstant.ZERO).getIssueId())) { |
|
|
|
|
|
toInsert = voteList.stream().map(o -> { |
|
|
|
|
|
IssueVoteStatisticalDTO dto = new IssueVoteStatisticalDTO(); |
|
|
|
|
|
dto.setIssueId(o.getIssueId()); |
|
|
|
|
|
dto.setOppositionCount(o.getOppositionAmount()); |
|
|
|
|
|
dto.setSupportCount(o.getSupportAmount()); |
|
|
|
|
|
dto.setVotableCount(Optional.ofNullable(votableCountMap.get(issueGridMap.get(o.getIssueId()))).orElse(NumConstant.ZERO)); |
|
|
|
|
|
dto.setCreatedBy(ModuleConstants.CREATED_BY_SYSTEM);dto.setUpdatedBy(ModuleConstants.CREATED_BY_SYSTEM); |
|
|
|
|
|
return dto; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
votedIssueIds = voteList.stream().map(VoteRedisFormDTO::getIssueId).collect(Collectors.toList()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
notExistedIds.removeAll(votedIssueIds); |
|
|
|
|
|
if(!notExistedIds.isEmpty()){ |
|
|
|
|
|
List<IssueVoteStatisticalDTO> collect = notExistedIds.stream().map(issueId -> { |
|
|
|
|
|
IssueVoteStatisticalDTO dto = new IssueVoteStatisticalDTO(); |
|
|
|
|
|
dto.setIssueId(issueId); |
|
|
|
|
|
dto.setSupportCount(NumConstant.ZERO); |
|
|
|
|
|
dto.setOppositionCount(NumConstant.ZERO); |
|
|
|
|
|
dto.setVotableCount(Optional.ofNullable(votableCountMap.get(issueGridMap.get(issueId))).orElse(NumConstant.ZERO)); |
|
|
|
|
|
dto.setCreatedBy(ModuleConstants.CREATED_BY_SYSTEM);dto.setUpdatedBy(ModuleConstants.CREATED_BY_SYSTEM); |
|
|
|
|
|
return dto; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
if(!CollectionUtils.isEmpty(collect)) toInsert.addAll(collect);} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
List<IssueAttitudeCountResultDTO> summaryList = issueVoteDetailDao.getVotingSummaryList(notExistedIds); |
|
|
List<IssueAttitudeCountResultDTO> summaryList = issueVoteDetailDao.getVotingSummaryList(notExistedIds); |
|
|
Map<String, List<IssueAttitudeCountResultDTO>> summaryMap = |
|
|
Map<String, List<IssueAttitudeCountResultDTO>> summaryMap = |
|
|
summaryList.stream().collect(Collectors.groupingBy(IssueAttitudeCountResultDTO::getIssueId)); |
|
|
summaryList.stream().collect(Collectors.groupingBy(IssueAttitudeCountResultDTO::getIssueId)); |
|
|
|
|
|
|
|
|
for (Map.Entry<String, List<IssueAttitudeCountResultDTO>> entry : summaryMap.entrySet()) { |
|
|
for (Map.Entry<String, List<IssueAttitudeCountResultDTO>> entry : summaryMap.entrySet()) { |
|
|
IssueVoteStatisticalDTO obj = new IssueVoteStatisticalDTO(); |
|
|
IssueVoteStatisticalDTO obj = new IssueVoteStatisticalDTO(); |
|
|
obj.setCreatedBy(ModuleConstants.CREATED_BY_SYSTEM); |
|
|
obj.setCreatedBy(ModuleConstants.CREATED_BY_SYSTEM); |
|
@ -322,15 +352,15 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
} else { |
|
|
} else { |
|
|
obj.setOppositionCount(NumConstant.ZERO); |
|
|
obj.setOppositionCount(NumConstant.ZERO); |
|
|
obj.setSupportCount(NumConstant.ZERO); |
|
|
obj.setSupportCount(NumConstant.ZERO); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
obj.setVotableCount(Optional.ofNullable(votableCountMap.get(issueGridMap.get(entry.getKey()))).orElse(NumConstant.ZERO)); |
|
|
obj.setVotableCount(Optional.ofNullable(votableCountMap.get(issueGridMap.get(entry.getKey()))).orElse(NumConstant.ZERO)); |
|
|
toInsert.add(obj); |
|
|
toInsert.add(obj); |
|
|
} |
|
|
} |
|
|
|
|
|
*/ |
|
|
/* Set<String> setToInsert = toInsert.stream().map(IssueVoteStatisticalDTO::getIssueId).collect(Collectors.toSet()); |
|
|
/* Set<String> setToInsert = toInsert.stream().map(IssueVoteStatisticalDTO::getIssueId).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
|
Set<String> issuesNeverVotedIds = new HashSet<String>(); |
|
|
Set<String> issuesNeverVotedIds = new HashSet<String>(); |
|
|
issuesNeverVotedIds.addAll(ids); |
|
|
issuesNeverVotedIds.addAll(ids); |
|
@ -370,11 +400,11 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
} |
|
|
} |
|
|
}*/ |
|
|
}*/ |
|
|
|
|
|
|
|
|
|
|
|
if(!toInsert.isEmpty()) |
|
|
// 批量插入
|
|
|
// 批量插入
|
|
|
baseDao.insertBatch(toInsert); |
|
|
baseDao.insertBatch(toInsert); |
|
|
} |
|
|
} |
|
|
//}
|
|
|
//}
|
|
|
//else if (ids.size() < statisiticalIds.size()) {
|
|
|
//else if (ids.size() < statisiticalIds.size()) {
|
|
|
//统计数大于议题数,数据出错
|
|
|
//统计数大于议题数,数据出错
|
|
|
//找出多余数据,删除
|
|
|
//找出多余数据,删除
|
|
@ -510,7 +540,7 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt |
|
|
|
|
|
|
|
|
IssueVoteStatisticalDTO vote = new IssueVoteStatisticalDTO(); |
|
|
IssueVoteStatisticalDTO vote = new IssueVoteStatisticalDTO(); |
|
|
vote.setIssueId(issue.getId()); |
|
|
vote.setIssueId(issue.getId()); |
|
|
VoteRedisFormDTO cache = Optional.ofNullable(issueVoteDetailRedis.getVoteStatistical(issue.getId())).orElse(issueVoteDetailDao.selectInfo4Cache(issue.getId()) ); |
|
|
VoteRedisFormDTO cache = issueVoteDetailRedis.getVoteStatistical(issue.getId()); |
|
|
if(null == cache) continue; |
|
|
if(null == cache) continue; |
|
|
if(StringUtils.isBlank(cache.getIssueId())) cache.setIssueId(issue.getId()); |
|
|
if(StringUtils.isBlank(cache.getIssueId())) cache.setIssueId(issue.getId()); |
|
|
vote.setCreatedBy(ModuleConstants.CREATED_BY_SYSTEM); |
|
|
vote.setCreatedBy(ModuleConstants.CREATED_BY_SYSTEM); |
|
|