|
|
@@ -458,61 +458,113 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
|
|
|
if (list.size() > 0) {
|
|
|
for (Bills item : list) {
|
|
|
List<FeeCenterReports> feeCenterReports = new ArrayList<>();
|
|
|
- List<FeeCenterReports> feeCenterReportsList = item.getFeeCenterList().stream()
|
|
|
- .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(e -> e.getFeeCnName() + e.getCorpCnName()))), ArrayList::new));
|
|
|
- List<FeeCenterReports> feeCenters = item.getFeeCenterList().stream()
|
|
|
- .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
- Comparator.comparing(e -> e.getFeeCnName()))), ArrayList::new));
|
|
|
- int count = 0;
|
|
|
- for (FeeCenterReports fee : feeCenters) {
|
|
|
- List<FeeCenterReports> feeCenterReportsD = feeCenterReportsList.stream()
|
|
|
- .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- List<FeeCenterReports> feeCenterReportsC = feeCenterReportsList.stream()
|
|
|
- .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
- FeeCenterReports feeCenterReports1 = new FeeCenterReports();
|
|
|
- feeCenterReports1.setFeeCnName(fee.getFeeCnName());
|
|
|
- feeCenterReports1.setHblno(fee.getHblno());
|
|
|
- feeCenterReports1.setPid(fee.getPid());
|
|
|
- if (feeCenterReportsD != null && feeCenterReportsD.size() > 0) {
|
|
|
- if (feeCenterReportsD.stream().map(FeeCenterReports::getBillCorpCnName).distinct().count() > 1) {
|
|
|
- for (FeeCenterReports feeCenterReports2 :feeCenterReportsD){
|
|
|
- feeCenterReports1.setBillCorpCnName(feeCenterReports2.getBillCorpCnName());
|
|
|
- feeCenterReports1.setAmountD(feeCenterReports2.getAmountD());
|
|
|
- feeCenterReports1.setAmountLocD(feeCenterReports2.getAmountLocD());
|
|
|
- feeCenterReports1.setAmountUsdD(feeCenterReports2.getAmountUsdD());
|
|
|
- feeCenterReports.add(feeCenterReports1);
|
|
|
- }
|
|
|
- }else{
|
|
|
- feeCenterReports1.setBillCorpCnName(feeCenterReportsD.get(0).getBillCorpCnName());
|
|
|
- feeCenterReports1.setAmountD(feeCenterReportsD.get(0).getAmountD());
|
|
|
- feeCenterReports1.setAmountLocD(feeCenterReportsD.get(0).getAmountLocD());
|
|
|
- feeCenterReports1.setAmountUsdD(feeCenterReportsD.get(0).getAmountUsdD());
|
|
|
+ List<FeeCenterReports> feeCenterReportsD = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList()) == null ? new ArrayList<>() :
|
|
|
+ item.getFeeCenterList().stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ List<FeeCenterReports> feeCenterReportsC = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList()) == null ? new ArrayList<>() :
|
|
|
+ item.getFeeCenterList().stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (feeCenterReportsD.size() > feeCenterReportsC.size()) {
|
|
|
+ List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName() + e.getBillCorpCnName()))), ArrayList::new));
|
|
|
+ int count = 0;
|
|
|
+ for (FeeCenterReports fee : feeCentersD) {
|
|
|
+ FeeCenterReports feeCenterD = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.D.equals(e.getDc())
|
|
|
+ && e.getBillCorpCnName().equals(fee.getBillCorpCnName())).findFirst().orElse(null);
|
|
|
+ FeeCenterReports feeCenterC = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.C.equals(e.getDc())).findFirst().orElse(null);
|
|
|
+ FeeCenterReports feeCenterReports1 = new FeeCenterReports();
|
|
|
+ feeCenterReports1.setFeeCnName(fee.getFeeCnName());
|
|
|
+ feeCenterReports1.setHblno(fee.getHblno());
|
|
|
+ feeCenterReports1.setPid(fee.getPid());
|
|
|
+ if (feeCenterD != null) {
|
|
|
+ feeCenterReports1.setBillCorpCnName(feeCenterD.getBillCorpCnName());
|
|
|
+ feeCenterReports1.setAmountD(feeCenterD.getAmountD());
|
|
|
+ feeCenterReports1.setAmountLocD(feeCenterD.getAmountLocD());
|
|
|
+ feeCenterReports1.setAmountUsdD(feeCenterD.getAmountUsdD());
|
|
|
+ }
|
|
|
+ if (feeCenterC != null && count < feeCenterReportsC.size()) {
|
|
|
+ feeCenterReports1.setCorpCnName(feeCenterC.getCorpCnName());
|
|
|
+ feeCenterReports1.setAmountC(feeCenterC.getAmountC());
|
|
|
+ feeCenterReports1.setAmountLocC(feeCenterC.getAmountLocC());
|
|
|
+ feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC());
|
|
|
+ }
|
|
|
+ feeCenterReports.add(feeCenterReports1);
|
|
|
+ if (feeCenterC != null) {
|
|
|
+ count++;
|
|
|
}
|
|
|
- System.out.println("+++++++" + count + feeCenterReportsD.get(0).getBillCorpCnName());
|
|
|
- System.out.println("+++++++" + count + feeCenterReportsD.get(0).getCorpCnName());
|
|
|
}
|
|
|
- if (feeCenterReportsC != null) {
|
|
|
- if (feeCenterReportsD.stream().map(FeeCenterReports::getBillCorpCnName).distinct().count() > 1) {
|
|
|
- for (FeeCenterReports feeCenterReports2 :feeCenterReportsC){
|
|
|
- feeCenterReports1.setCorpCnName(feeCenterReports2.getCorpCnName());
|
|
|
- feeCenterReports1.setAmountC(feeCenterReports2.getAmountC());
|
|
|
- feeCenterReports1.setAmountLocC(feeCenterReports2.getAmountLocC());
|
|
|
- feeCenterReports1.setAmountUsdC(feeCenterReports2.getAmountUsdC());
|
|
|
- feeCenterReports.add(feeCenterReports1);
|
|
|
- }
|
|
|
- }else{
|
|
|
- feeCenterReports1.setCorpCnName(feeCenterReportsC.get(0).getCorpCnName());
|
|
|
- feeCenterReports1.setAmountC(feeCenterReportsC.get(0).getAmountC());
|
|
|
- feeCenterReports1.setAmountLocC(feeCenterReportsC.get(0).getAmountLocC());
|
|
|
- feeCenterReports1.setAmountUsdC(feeCenterReportsC.get(0).getAmountUsdC());
|
|
|
+ } else if (feeCenterReportsD.size() < feeCenterReportsC.size()) {
|
|
|
+ List<FeeCenterReports> feeCentersC = feeCenterReportsC.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName() + e.getCorpCnName()))), ArrayList::new));
|
|
|
+ int count = 0;
|
|
|
+ for (FeeCenterReports fee : feeCentersC) {
|
|
|
+ FeeCenterReports feeCenterD = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.D.equals(e.getDc())).findFirst().orElse(null);
|
|
|
+ FeeCenterReports feeCenterC = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.C.equals(e.getDc())
|
|
|
+ && e.getCorpCnName().equals(fee.getCorpCnName())).findFirst().orElse(null);
|
|
|
+ FeeCenterReports feeCenterReports1 = new FeeCenterReports();
|
|
|
+ feeCenterReports1.setFeeCnName(fee.getFeeCnName());
|
|
|
+ feeCenterReports1.setHblno(fee.getHblno());
|
|
|
+ feeCenterReports1.setPid(fee.getPid());
|
|
|
+ if (feeCenterD != null && count < feeCenterReportsD.size()) {
|
|
|
+ feeCenterReports1.setBillCorpCnName(feeCenterD.getBillCorpCnName());
|
|
|
+ feeCenterReports1.setAmountD(feeCenterD.getAmountD());
|
|
|
+ feeCenterReports1.setAmountLocD(feeCenterD.getAmountLocD());
|
|
|
+ feeCenterReports1.setAmountUsdD(feeCenterD.getAmountUsdD());
|
|
|
+ }
|
|
|
+ if (feeCenterC != null) {
|
|
|
+ feeCenterReports1.setCorpCnName(feeCenterC.getCorpCnName());
|
|
|
+ feeCenterReports1.setAmountC(feeCenterC.getAmountC());
|
|
|
+ feeCenterReports1.setAmountLocC(feeCenterC.getAmountLocC());
|
|
|
+ feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC());
|
|
|
+ }
|
|
|
+ feeCenterReports.add(feeCenterReports1);
|
|
|
+ if (feeCenterD != null) {
|
|
|
+ count++;
|
|
|
}
|
|
|
- System.out.println("+++++++" + count + feeCenterReportsC.get(0).getBillCorpCnName());
|
|
|
- System.out.println("+++++++" + count + feeCenterReportsC.get(0).getCorpCnName());
|
|
|
}
|
|
|
- feeCenterReports.add(feeCenterReports1);
|
|
|
- count++;
|
|
|
+ } else {
|
|
|
+ List<FeeCenterReports> feeCenters = item.getFeeCenterList().stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName()))), ArrayList::new));
|
|
|
+ List<FeeCenterReports> feeCentersD = item.getFeeCenterList().stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName()+ e.getBillCorpCnName()))), ArrayList::new));
|
|
|
+ List<FeeCenterReports> feeCentersC = item.getFeeCenterList().stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(e -> e.getFeeCnName()+ e.getCorpCnName()))), ArrayList::new));
|
|
|
+ for (FeeCenterReports fee : feeCenters) {
|
|
|
+ FeeCenterReports feeCenterD = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.D.equals(e.getDc())).findFirst().orElse(null);
|
|
|
+ FeeCenterReports feeCenterC = item.getFeeCenterList().stream()
|
|
|
+ .filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.C.equals(e.getDc())
|
|
|
+ && e.getCorpCnName().equals(fee.getCorpCnName())).findFirst().orElse(null);
|
|
|
+ FeeCenterReports feeCenterReports1 = new FeeCenterReports();
|
|
|
+ feeCenterReports1.setFeeCnName(fee.getFeeCnName());
|
|
|
+ feeCenterReports1.setHblno(fee.getHblno());
|
|
|
+ feeCenterReports1.setPid(fee.getPid());
|
|
|
+ if (feeCenterD != null) {
|
|
|
+ feeCenterReports1.setBillCorpCnName(feeCenterD.getBillCorpCnName());
|
|
|
+ feeCenterReports1.setAmountD(feeCenterD.getAmountD());
|
|
|
+ feeCenterReports1.setAmountLocD(feeCenterD.getAmountLocD());
|
|
|
+ feeCenterReports1.setAmountUsdD(feeCenterD.getAmountUsdD());
|
|
|
+ }
|
|
|
+ if (feeCenterC != null) {
|
|
|
+ feeCenterReports1.setCorpCnName(feeCenterC.getCorpCnName());
|
|
|
+ feeCenterReports1.setAmountC(feeCenterC.getAmountC());
|
|
|
+ feeCenterReports1.setAmountLocC(feeCenterC.getAmountLocC());
|
|
|
+ feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC());
|
|
|
+ }
|
|
|
+ feeCenterReports.add(feeCenterReports1);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
item.setFeeCenterList(feeCenterReports);
|
|
|
}
|
|
|
}
|