|
@@ -126,6 +126,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
if (page.getRecords().isEmpty()) {
|
|
if (page.getRecords().isEmpty()) {
|
|
return new PageImpl<>(page.getRecords(), pageable, page.getTotal());
|
|
return new PageImpl<>(page.getRecords(), pageable, page.getTotal());
|
|
}
|
|
}
|
|
|
|
+ Set<Integer> matchedPackageIds = getBaseMapper().selectAllMatchedPackageIds(searchParams);
|
|
// 补充接包对象
|
|
// 补充接包对象
|
|
MultiValueMap<Integer, WmScorePackageSearchDto> deptIds = new LinkedMultiValueMap<>();
|
|
MultiValueMap<Integer, WmScorePackageSearchDto> deptIds = new LinkedMultiValueMap<>();
|
|
Map<Integer, WmScorePackageSearchDto> userPackageIds = new HashMap<>();
|
|
Map<Integer, WmScorePackageSearchDto> userPackageIds = new HashMap<>();
|
|
@@ -206,7 +207,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
- calculateSettleTreeNodeTotalAmount(rootNode);
|
|
|
|
|
|
+ calculateSettleTreeNodeTotalAmount(rootNode, matchedPackageIds);
|
|
}
|
|
}
|
|
for (WmScorePackageSearchDto dto : entPackageIds.values()) {
|
|
for (WmScorePackageSearchDto dto : entPackageIds.values()) {
|
|
WmScorePackageSettleTreeNode node = settleTreeNodeMap.get(dto.getId());
|
|
WmScorePackageSettleTreeNode node = settleTreeNodeMap.get(dto.getId());
|
|
@@ -274,6 +275,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
Map<Integer, WmScorePackageExportDto> exportDtoCache = new HashMap<>();
|
|
Map<Integer, WmScorePackageExportDto> exportDtoCache = new HashMap<>();
|
|
List<WmScorePackageExportDto> exportDtoList = getBaseMapper().selectExportDto(searchParams);
|
|
List<WmScorePackageExportDto> exportDtoList = getBaseMapper().selectExportDto(searchParams);
|
|
MultiValueMap<Integer, WmScorePackageExportDto> parentToChildren = new LinkedMultiValueMap<>();
|
|
MultiValueMap<Integer, WmScorePackageExportDto> parentToChildren = new LinkedMultiValueMap<>();
|
|
|
|
+ Set<Integer> matchedPackageIds = getBaseMapper().selectAllMatchedPackageIds(searchParams);
|
|
for (WmScorePackageExportDto dto : exportDtoList) {
|
|
for (WmScorePackageExportDto dto : exportDtoList) {
|
|
exportDtoCache.put(dto.getId(), dto);
|
|
exportDtoCache.put(dto.getId(), dto);
|
|
if (StringUtils.hasText(dto.getRelationScoreId())) {
|
|
if (StringUtils.hasText(dto.getRelationScoreId())) {
|
|
@@ -417,7 +419,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
- calculateSettleTreeNodeTotalAmount(rootNode);
|
|
|
|
|
|
+ calculateSettleTreeNodeTotalAmount(rootNode, matchedPackageIds);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 补充个人包的结算状态、结算平台、结算税源地、提交至财务时间、提交至灵工时间
|
|
// 补充个人包的结算状态、结算平台、结算税源地、提交至财务时间、提交至灵工时间
|
|
@@ -522,9 +524,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
} else {
|
|
} else {
|
|
row.createCell(columnNo++).setCellValue("");
|
|
row.createCell(columnNo++).setCellValue("");
|
|
}
|
|
}
|
|
- if(exportRecord.getFirstAgentPackage().getPackageFinishTime()!=null){
|
|
|
|
|
|
+ if (exportRecord.getFirstAgentPackage().getPackageFinishTime() != null) {
|
|
row.createCell(columnNo++).setCellValue(DATE_FORMAT.format(exportRecord.getFirstAgentPackage().getPackageFinishTime()));
|
|
row.createCell(columnNo++).setCellValue(DATE_FORMAT.format(exportRecord.getFirstAgentPackage().getPackageFinishTime()));
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
row.createCell(columnNo++).setCellValue("");
|
|
row.createCell(columnNo++).setCellValue("");
|
|
}
|
|
}
|
|
if (settleTreeNode != null && settleTreeNode.getTotalAmount() != null) {
|
|
if (settleTreeNode != null && settleTreeNode.getTotalAmount() != null) {
|
|
@@ -576,9 +578,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
} else {
|
|
} else {
|
|
row.createCell(columnNo++).setCellValue("");
|
|
row.createCell(columnNo++).setCellValue("");
|
|
}
|
|
}
|
|
- if(exportRecord.getSecondAgentPackage().getPackageFinishTime()!=null){
|
|
|
|
|
|
+ if (exportRecord.getSecondAgentPackage().getPackageFinishTime() != null) {
|
|
row.createCell(columnNo++).setCellValue(DATE_FORMAT.format(exportRecord.getSecondAgentPackage().getPackageFinishTime()));
|
|
row.createCell(columnNo++).setCellValue(DATE_FORMAT.format(exportRecord.getSecondAgentPackage().getPackageFinishTime()));
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
row.createCell(columnNo++).setCellValue("");
|
|
row.createCell(columnNo++).setCellValue("");
|
|
}
|
|
}
|
|
if (settleTreeNode != null && settleTreeNode.getTotalAmount() != null) {
|
|
if (settleTreeNode != null && settleTreeNode.getTotalAmount() != null) {
|
|
@@ -680,33 +682,35 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
return score.toString();
|
|
return score.toString();
|
|
}
|
|
}
|
|
|
|
|
|
- private void calculateSettleTreeNodeTotalAmount(WmScorePackageSettleTreeNode node) {
|
|
|
|
|
|
+ private void calculateSettleTreeNodeTotalAmount(WmScorePackageSettleTreeNode node, Set<Integer> matchedPackageIds) {
|
|
BigDecimal totalAmount = BigDecimal.ZERO;
|
|
BigDecimal totalAmount = BigDecimal.ZERO;
|
|
- if (node.getP2pAmount() != null) {
|
|
|
|
- totalAmount = totalAmount.add(node.getP2pAmount());
|
|
|
|
- }
|
|
|
|
- if (node.getP2pServiceAmount() != null) {
|
|
|
|
- totalAmount = totalAmount.add(node.getP2pServiceAmount());
|
|
|
|
- }
|
|
|
|
- if (node.getSettleAmount() != null) {
|
|
|
|
- totalAmount = totalAmount.add(node.getSettleAmount());
|
|
|
|
- }
|
|
|
|
BigDecimal totalActualAmount = BigDecimal.ZERO;
|
|
BigDecimal totalActualAmount = BigDecimal.ZERO;
|
|
- if (node.getSettleActualAmount() != null) {
|
|
|
|
- totalActualAmount = totalActualAmount.add(node.getSettleActualAmount());
|
|
|
|
- }
|
|
|
|
int approvedScore = 0;
|
|
int approvedScore = 0;
|
|
- if (WmScorePackage.USER_PACKAGE_TYPEID_SET.contains(node.getTypeid())
|
|
|
|
- && WmScorePackage.APPROVED_SCORE_PACKAGE_STATUS_SET.contains(node.getScorePackageStatus())
|
|
|
|
- && node.getScore() != null) {
|
|
|
|
- approvedScore += node.getScore();
|
|
|
|
- }
|
|
|
|
- if (node.getApprovedEntTaskScore() != null) {
|
|
|
|
- approvedScore += node.getApprovedEntTaskScore();
|
|
|
|
|
|
+ if (matchedPackageIds == null || matchedPackageIds.contains(node.getId())) {
|
|
|
|
+ if (node.getP2pAmount() != null) {
|
|
|
|
+ totalAmount = totalAmount.add(node.getP2pAmount());
|
|
|
|
+ }
|
|
|
|
+ if (node.getP2pServiceAmount() != null) {
|
|
|
|
+ totalAmount = totalAmount.add(node.getP2pServiceAmount());
|
|
|
|
+ }
|
|
|
|
+ if (node.getSettleAmount() != null) {
|
|
|
|
+ totalAmount = totalAmount.add(node.getSettleAmount());
|
|
|
|
+ }
|
|
|
|
+ if (node.getSettleActualAmount() != null) {
|
|
|
|
+ totalActualAmount = totalActualAmount.add(node.getSettleActualAmount());
|
|
|
|
+ }
|
|
|
|
+ if (WmScorePackage.USER_PACKAGE_TYPEID_SET.contains(node.getTypeid())
|
|
|
|
+ && WmScorePackage.APPROVED_SCORE_PACKAGE_STATUS_SET.contains(node.getScorePackageStatus())
|
|
|
|
+ && node.getScore() != null) {
|
|
|
|
+ approvedScore += node.getScore();
|
|
|
|
+ }
|
|
|
|
+ if (node.getApprovedEntTaskScore() != null) {
|
|
|
|
+ approvedScore += node.getApprovedEntTaskScore();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if (node.getChildren() != null) {
|
|
if (node.getChildren() != null) {
|
|
for (WmScorePackageSettleTreeNode child : node.getChildren()) {
|
|
for (WmScorePackageSettleTreeNode child : node.getChildren()) {
|
|
- calculateSettleTreeNodeTotalAmount(child);
|
|
|
|
|
|
+ calculateSettleTreeNodeTotalAmount(child, matchedPackageIds);
|
|
if (child.getTotalAmount() != null) {
|
|
if (child.getTotalAmount() != null) {
|
|
totalAmount = totalAmount.add(child.getTotalAmount());
|
|
totalAmount = totalAmount.add(child.getTotalAmount());
|
|
}
|
|
}
|
|
@@ -853,13 +857,14 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
if (rootNodes.isEmpty()) {
|
|
if (rootNodes.isEmpty()) {
|
|
return scoreStat;
|
|
return scoreStat;
|
|
}
|
|
}
|
|
|
|
+ Set<Integer> matchedPackageIds = getBaseMapper().selectAllMatchedPackageIds(searchParams);
|
|
Map<Integer, String> deptSignProducts = getDeptSignProducts();
|
|
Map<Integer, String> deptSignProducts = getDeptSignProducts();
|
|
Set<Integer> entPackageIds = new HashSet<>();
|
|
Set<Integer> entPackageIds = new HashSet<>();
|
|
Set<Integer> userPackageIds = new HashSet<>();
|
|
Set<Integer> userPackageIds = new HashSet<>();
|
|
Set<Integer> cso1PackageIds = new HashSet<>();
|
|
Set<Integer> cso1PackageIds = new HashSet<>();
|
|
Set<Integer> cso2PackageIds = new HashSet<>();
|
|
Set<Integer> cso2PackageIds = new HashSet<>();
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
- calculateSettleTreeNodeTotalAmount(rootNode);
|
|
|
|
|
|
+ calculateSettleTreeNodeTotalAmount(rootNode, matchedPackageIds);
|
|
if (rootNode.getApprovedScore() != null) {
|
|
if (rootNode.getApprovedScore() != null) {
|
|
if (Objects.equals(rootNode.getSendPackageDeptId(), WmScorePackage.SPECIAL_DEPT_ID.toString())) {
|
|
if (Objects.equals(rootNode.getSendPackageDeptId(), WmScorePackage.SPECIAL_DEPT_ID.toString())) {
|
|
rootNode.setApprovedScore(rootNode.getApprovedScore() / 100);
|
|
rootNode.setApprovedScore(rootNode.getApprovedScore() / 100);
|
|
@@ -892,6 +897,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
}
|
|
}
|
|
// 统计用户数
|
|
// 统计用户数
|
|
Set<Integer> allUserIds = new HashSet<>();
|
|
Set<Integer> allUserIds = new HashSet<>();
|
|
|
|
+ entPackageIds.retainAll(matchedPackageIds);
|
|
if (!entPackageIds.isEmpty()) {
|
|
if (!entPackageIds.isEmpty()) {
|
|
Set<Integer> userIds = batchFetchUserIds(entPackageIds);
|
|
Set<Integer> userIds = batchFetchUserIds(entPackageIds);
|
|
scoreStat.setEntUserCount(userIds.size());
|
|
scoreStat.setEntUserCount(userIds.size());
|
|
@@ -902,10 +908,12 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
scoreStat.setUserUserCount(userIds.size());
|
|
scoreStat.setUserUserCount(userIds.size());
|
|
allUserIds.addAll(userIds);
|
|
allUserIds.addAll(userIds);
|
|
}
|
|
}
|
|
|
|
+ cso1PackageIds.retainAll(matchedPackageIds);
|
|
if (!cso1PackageIds.isEmpty()) {
|
|
if (!cso1PackageIds.isEmpty()) {
|
|
Set<Integer> userIds = batchFetchUserIds(cso1PackageIds);
|
|
Set<Integer> userIds = batchFetchUserIds(cso1PackageIds);
|
|
scoreStat.setCso1UserCount(userIds.size());
|
|
scoreStat.setCso1UserCount(userIds.size());
|
|
}
|
|
}
|
|
|
|
+ cso2PackageIds.retainAll(matchedPackageIds);
|
|
if (!cso2PackageIds.isEmpty()) {
|
|
if (!cso2PackageIds.isEmpty()) {
|
|
Set<Integer> userIds = batchFetchUserIds(cso2PackageIds);
|
|
Set<Integer> userIds = batchFetchUserIds(cso2PackageIds);
|
|
scoreStat.setCso2UserCount(userIds.size());
|
|
scoreStat.setCso2UserCount(userIds.size());
|
|
@@ -977,6 +985,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
if (rootNodes.isEmpty()) {
|
|
if (rootNodes.isEmpty()) {
|
|
return new GetApprovedScoreTimeStatByParamsResult();
|
|
return new GetApprovedScoreTimeStatByParamsResult();
|
|
}
|
|
}
|
|
|
|
+ Set<Integer> matchedPackageIds = getBaseMapper().selectAllMatchedPackageIds(searchParams);
|
|
Map<String, Set<Integer>> entPackageIdsMap = new HashMap<>();
|
|
Map<String, Set<Integer>> entPackageIdsMap = new HashMap<>();
|
|
Map<String, Set<Integer>> userPackageIdsMap = new HashMap<>();
|
|
Map<String, Set<Integer>> userPackageIdsMap = new HashMap<>();
|
|
Map<String, Set<Integer>> cso1PackageIdsMap = new HashMap<>();
|
|
Map<String, Set<Integer>> cso1PackageIdsMap = new HashMap<>();
|
|
@@ -986,7 +995,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
if (rootNode.getPackageFinishTime() == null) {
|
|
if (rootNode.getPackageFinishTime() == null) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- calculateSettleTreeNodeTotalAmount(rootNode);
|
|
|
|
|
|
+ calculateSettleTreeNodeTotalAmount(rootNode, matchedPackageIds);
|
|
String timeKey = formatTimeKey(rootNode.getPackageFinishTime(), statUnit);
|
|
String timeKey = formatTimeKey(rootNode.getPackageFinishTime(), statUnit);
|
|
ScoreTimeStat scoreStat = map.get(timeKey);
|
|
ScoreTimeStat scoreStat = map.get(timeKey);
|
|
if (scoreStat == null) {
|
|
if (scoreStat == null) {
|
|
@@ -1011,6 +1020,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
Set<Integer> entPackageIds = entPackageIdsMap.computeIfAbsent(timeKey, (k) -> new HashSet<>());
|
|
Set<Integer> entPackageIds = entPackageIdsMap.computeIfAbsent(timeKey, (k) -> new HashSet<>());
|
|
entPackageIds.add(rootNode.getId());
|
|
entPackageIds.add(rootNode.getId());
|
|
collectDescendentPackageIds(rootNode, entPackageIds);
|
|
collectDescendentPackageIds(rootNode, entPackageIds);
|
|
|
|
+ entPackageIds.retainAll(matchedPackageIds);
|
|
}
|
|
}
|
|
String signProduct = deptSignProducts.get(rootNode.getDeptId());
|
|
String signProduct = deptSignProducts.get(rootNode.getDeptId());
|
|
if (SysDeptSignProduct.CSO1.equals(signProduct)) {
|
|
if (SysDeptSignProduct.CSO1.equals(signProduct)) {
|
|
@@ -1019,12 +1029,14 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
Set<Integer> cso1PackageIds = cso1PackageIdsMap.computeIfAbsent(timeKey, (k) -> new HashSet<>());
|
|
Set<Integer> cso1PackageIds = cso1PackageIdsMap.computeIfAbsent(timeKey, (k) -> new HashSet<>());
|
|
cso1PackageIds.add(rootNode.getId());
|
|
cso1PackageIds.add(rootNode.getId());
|
|
collectDescendentPackageIds(rootNode, cso1PackageIds);
|
|
collectDescendentPackageIds(rootNode, cso1PackageIds);
|
|
|
|
+ cso1PackageIds.retainAll(matchedPackageIds);
|
|
} else if (SysDeptSignProduct.CSO2.equals(signProduct)) {
|
|
} else if (SysDeptSignProduct.CSO2.equals(signProduct)) {
|
|
scoreStat.setCso2Score(scoreStat.getCso2Score() + rootNode.getApprovedScore());
|
|
scoreStat.setCso2Score(scoreStat.getCso2Score() + rootNode.getApprovedScore());
|
|
scoreStat.setCso2Count(scoreStat.getCso2Count() + 1);
|
|
scoreStat.setCso2Count(scoreStat.getCso2Count() + 1);
|
|
Set<Integer> cso2PackageIds = cso2PackageIdsMap.computeIfAbsent(timeKey, (k) -> new HashSet<>());
|
|
Set<Integer> cso2PackageIds = cso2PackageIdsMap.computeIfAbsent(timeKey, (k) -> new HashSet<>());
|
|
cso2PackageIds.add(rootNode.getId());
|
|
cso2PackageIds.add(rootNode.getId());
|
|
collectDescendentPackageIds(rootNode, cso2PackageIds);
|
|
collectDescendentPackageIds(rootNode, cso2PackageIds);
|
|
|
|
+ cso2PackageIds.retainAll(matchedPackageIds);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1134,7 +1146,8 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
SettledStat stat = new SettledStat();
|
|
SettledStat stat = new SettledStat();
|
|
// 构造积分包树
|
|
// 构造积分包树
|
|
Set<Integer> specialPackageIds = new HashSet<>();
|
|
Set<Integer> specialPackageIds = new HashSet<>();
|
|
- List<WmScorePackageSettleTreeNode> rootNodes = buildSettledStatTree(searchParams, specialPackageIds);
|
|
|
|
|
|
+ Set<Integer> matchPackageIds = new HashSet<>();
|
|
|
|
+ List<WmScorePackageSettleTreeNode> rootNodes = buildSettledStatTree(searchParams, specialPackageIds, matchPackageIds);
|
|
if (rootNodes.isEmpty()) {
|
|
if (rootNodes.isEmpty()) {
|
|
return stat;
|
|
return stat;
|
|
}
|
|
}
|
|
@@ -1164,7 +1177,8 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
Set<Integer> settledPackageIds = new HashSet<>();
|
|
Set<Integer> settledPackageIds = new HashSet<>();
|
|
while (!stack.isEmpty()) {
|
|
while (!stack.isEmpty()) {
|
|
WmScorePackageSettleTreeNode node = stack.remove();
|
|
WmScorePackageSettleTreeNode node = stack.remove();
|
|
- if (Objects.equals(node.getSettleStatus(), 1) || Objects.equals(node.getSettleStatus(), 8)) {
|
|
|
|
|
|
+ if (matchPackageIds.contains(node.getId()) && (Objects.equals(node.getSettleStatus(), 1)
|
|
|
|
+ || Objects.equals(node.getSettleStatus(), 8))) {
|
|
stat.setTotalPackages(stat.getTotalPackages() + 1);
|
|
stat.setTotalPackages(stat.getTotalPackages() + 1);
|
|
settledPackageIds.add(node.getId());
|
|
settledPackageIds.add(node.getId());
|
|
}
|
|
}
|
|
@@ -1179,12 +1193,14 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
}
|
|
}
|
|
|
|
|
|
private List<WmScorePackageSettleTreeNode> buildSettledStatTree(WmScorePackageSearchParams searchParams,
|
|
private List<WmScorePackageSettleTreeNode> buildSettledStatTree(WmScorePackageSearchParams searchParams,
|
|
- Set<Integer> specialPackageIds) {
|
|
|
|
|
|
+ Set<Integer> specialPackageIds,
|
|
|
|
+ Set<Integer> matchedPackageIds) {
|
|
// 检索符合条件的积分包
|
|
// 检索符合条件的积分包
|
|
List<WmScorePackageSearchDto> list = getBaseMapper().selectByParamsForSettledStat(searchParams);
|
|
List<WmScorePackageSearchDto> list = getBaseMapper().selectByParamsForSettledStat(searchParams);
|
|
if (list.isEmpty()) {
|
|
if (list.isEmpty()) {
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
}
|
|
}
|
|
|
|
+ list.forEach(dto -> matchedPackageIds.add(dto.getId()));
|
|
// 将下级积分包合并到上级积分包
|
|
// 将下级积分包合并到上级积分包
|
|
Map<Integer, WmScorePackageSearchDto> mergedMap = mergeSearchDtoList(list);
|
|
Map<Integer, WmScorePackageSearchDto> mergedMap = mergeSearchDtoList(list);
|
|
// 构造积分包树
|
|
// 构造积分包树
|
|
@@ -1232,7 +1248,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
}
|
|
}
|
|
// 计算积分包的结算金额
|
|
// 计算积分包的结算金额
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
for (WmScorePackageSettleTreeNode rootNode : rootNodes) {
|
|
- calculateSettleTreeNodeTotalAmount(rootNode);
|
|
|
|
|
|
+ calculateSettleTreeNodeTotalAmount(rootNode, matchedPackageIds);
|
|
}
|
|
}
|
|
return rootNodes;
|
|
return rootNodes;
|
|
}
|
|
}
|
|
@@ -1253,7 +1269,9 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
public SettledTimeStatResult getSettledTimeStatByParams(WmScorePackageSearchParams searchParams, String statUnit) {
|
|
public SettledTimeStatResult getSettledTimeStatByParams(WmScorePackageSearchParams searchParams, String statUnit) {
|
|
// 构造积分包树
|
|
// 构造积分包树
|
|
Set<Integer> specialPackageIds = new HashSet<>();
|
|
Set<Integer> specialPackageIds = new HashSet<>();
|
|
- List<WmScorePackageSettleTreeNode> rootNodes = buildSettledStatTree(searchParams, specialPackageIds);
|
|
|
|
|
|
+ Set<Integer> matchedPackageIds = new HashSet<>();
|
|
|
|
+ List<WmScorePackageSettleTreeNode> rootNodes = buildSettledStatTree(searchParams, specialPackageIds,
|
|
|
|
+ matchedPackageIds);
|
|
if (rootNodes.isEmpty()) {
|
|
if (rootNodes.isEmpty()) {
|
|
return new SettledTimeStatResult();
|
|
return new SettledTimeStatResult();
|
|
}
|
|
}
|
|
@@ -1292,7 +1310,8 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
Map<Integer, WmScorePackageSettleTreeNode> settledPackageIds = new HashMap<>();
|
|
Map<Integer, WmScorePackageSettleTreeNode> settledPackageIds = new HashMap<>();
|
|
while (!stack.isEmpty()) {
|
|
while (!stack.isEmpty()) {
|
|
WmScorePackageSettleTreeNode node = stack.remove();
|
|
WmScorePackageSettleTreeNode node = stack.remove();
|
|
- if (node.getSettleNotifyTime() != null && (Objects.equals(node.getSettleStatus(), 1) || Objects.equals(node.getSettleStatus(), 8))) {
|
|
|
|
|
|
+ if (matchedPackageIds.contains(node.getId()) && node.getSettleNotifyTime() != null &&
|
|
|
|
+ (Objects.equals(node.getSettleStatus(), 1) || Objects.equals(node.getSettleStatus(), 8))) {
|
|
String timeKey = formatTimeKey(node.getSettleNotifyTime(), statUnit);
|
|
String timeKey = formatTimeKey(node.getSettleNotifyTime(), statUnit);
|
|
SettledTimeStat stat = map.get(timeKey);
|
|
SettledTimeStat stat = map.get(timeKey);
|
|
if (stat == null) {
|
|
if (stat == null) {
|