From b278a4b743d0cf45fd0b42bc78ff42f4e1124baf Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 19 十月 2021 12:20:04 +0800
Subject: [PATCH] 优化diamante

---
 service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java |   39 +++++++++++++++++++++++++++++----------
 1 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java b/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java
index 88d56c5..ceaeb55 100644
--- a/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java
@@ -14,9 +14,7 @@
 
 import java.math.BigDecimal;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 @Service("getReportOweFeeBMOImpl")
 public class GetReportOweFeeBMOImpl implements IGetReportOweFeeBMO {
@@ -31,7 +29,7 @@
      */
     public ResponseEntity<String> get(ReportOweFeeDto reportOweFeeDto) {
 
-
+        reportOweFeeDto.setHasOweFee("Y");
         int count = reportOweFeeInnerServiceSMOImpl.queryReportOweFeesCount(reportOweFeeDto);
 
         List<ReportOweFeeDto> reportOweFeeDtos = null;
@@ -41,7 +39,15 @@
         } else {
             reportOweFeeDtos = new ArrayList<>();
         }
-
+        //鎸夌収 amountOwed 闄嶅簭鎺掑垪
+        // reportOweFeeDtos.sort(Comparator.comparing(ReportOweFeeDto :: getAmountOwed).reversed());
+        Collections.sort(reportOweFeeDtos, new Comparator<ReportOweFeeDto>() {
+            @Override
+            public int compare(ReportOweFeeDto o1, ReportOweFeeDto o2) {
+                //闄嶅簭
+                return o2.getAmountOwed().compareTo(o1.getAmountOwed());
+            }
+        });
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportOweFeeDto.getRow()), count, reportOweFeeDtos);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
@@ -57,7 +63,6 @@
      */
     @Override
     public ResponseEntity<String> getAllFees(ReportOweFeeDto reportOweFeeDto) {
-        //
         List<ReportOweFeeDto> allReportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
         if (allReportOweFeeDtos == null || allReportOweFeeDtos.size() < 1) {
             return ResultVo.createResponseEntity(allReportOweFeeDtos);
@@ -135,9 +140,23 @@
         ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
         reportOweFeeDto.setPayerObjIds(payObjIds.toArray(new String[payObjIds.size()]));
         List<ReportOweFeeDto> allReportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
-
+        List<ReportOweFeeDto> reportOweFeeDtos = new ArrayList<>();
+        for (ReportOweFeeDto reportOweFee : allReportOweFeeDtos) {
+            ReportOweFeeDto reportOwe = new ReportOweFeeDto();
+            reportOwe.setOweId(reportOweFee.getOweId());
+            if (reportOweFee.getPayerObjType().equals("3333")) {
+                List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByRoom(reportOwe);
+                reportOweFee.setOweId(reportOweFees.get(0).getOweId());
+                reportOweFee.setOwnerName(reportOweFees.get(0).getOwnerName());
+            } else if (reportOweFee.getPayerObjType().equals("6666")) {
+                List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByCar(reportOwe);
+                reportOweFee.setOweId(reportOweFees.get(0).getOweId());
+                reportOweFee.setOwnerName(reportOweFees.get(0).getOwnerName());
+            }
+            reportOweFeeDtos.add(reportOweFee);
+        }
         for (ReportOweFeeDto tmpReportOweFeeDto : oldReportOweFeeDtos) {
-            dealItem(tmpReportOweFeeDto, allReportOweFeeDtos);
+            dealItem(tmpReportOweFeeDto, reportOweFeeDtos);
         }
 
         if (configIds == null || configIds.length < 1) {
@@ -194,7 +213,7 @@
                 oldAmount = oldAmount.add(new BigDecimal(Double.parseDouble(reportOweFeeDto.getAmountOwed()))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                 reportOweFeeItemDto.setAmountOwed(oldAmount.doubleValue() + "");
             }
-            if(!StringUtil.isEmpty(reportOweFeeDto.getOwnerName())) {
+            if (!StringUtil.isEmpty(reportOweFeeDto.getOwnerName()) && StringUtil.isEmpty(oldReportOweFeeDto.getOwnerName())) {
                 oldReportOweFeeDto.setOwnerName(reportOweFeeDto.getOwnerName());
             }
             oldReportOweFeeDto.setUpdateTime(reportOweFeeDto.getUpdateTime());
@@ -216,7 +235,7 @@
                 endTime = tempReportOweFeeItemDto.getEndTime();
             }
             if (endTime.getTime() < tempReportOweFeeItemDto.getEndTime().getTime()) {
-                endTime = tempReportOweFeeItemDto.getStartTime();
+                endTime = tempReportOweFeeItemDto.getEndTime();
             }
             totalAmount = totalAmount.add(new BigDecimal(Double.parseDouble(tempReportOweFeeItemDto.getAmountOwed()))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
         }

--
Gitblit v1.8.0