Jelajahi Sumber

Merge branch 'pref-remainScore'

李学松 2 tahun lalu
induk
melakukan
0163123ebb

+ 30 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -79,6 +79,7 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.qunzhixinxi.hnqz.admin.enums.ReportEnum.REPORT_STATUS_END;
@@ -1319,9 +1320,37 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 
 	}
 
+
+	private WmScorePackage getRemainScore(String pkgId){
+
+		List<WmScorePackage> packages = this.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getDelFlag, "0").eq(WmScorePackage::getEnableFlag, "0"));
+
+		// List<WmScorePackage> allParentPkg = packages.stream().filter(p -> Objects.isNull(p.getRelationScoreId())).collect(Collectors.toList());
+
+		Map<String, List<WmScorePackage>> relMap = packages.stream().filter(p -> Objects.nonNull(p.getRelationScoreId())).collect(Collectors.groupingBy(WmScorePackage::getRelationScoreId));
+
+		packages.forEach(p -> {
+			List<WmScorePackage> scorePackages = relMap.get(p.getId());
+			int sum = 0;
+			if (CollUtil.isNotEmpty(scorePackages)){
+				sum = scorePackages.stream().mapToInt(WmScorePackage::getScore).sum();
+			}
+			if (Objects.nonNull(p.getScore())) {
+				p.setScore(p.getScore() - sum);
+			}
+		});
+
+		return packages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity())).get(pkgId);
+	}
+
 	@Override
 	public R getScorePackagePageById(WmScorePackage wmScorePackage) {
-		wmScorePackage = wmScorePackageMapper.getScorePackagePageById(wmScorePackage.getId());
+
+		wmScorePackage = getRemainScore( wmScorePackage.getId());
+
+		// wmScorePackage = wmScorePackageMapper.getScorePackagePageById(wmScorePackage.getId());
+		//
+
 		//wmScorePackage=this.getById(wmScorePackage.getId());
 		if (StringUtil.isEmpty(wmScorePackage.getRelationScoreId())) {
 			wmScorePackage.setRelationScoreId("-1");