wuxw
2022-07-19 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54
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 {
@@ -38,15 +36,62 @@
        if (count > 0) {
            reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportOweFees(reportOweFeeDto);
            refreshReportOwe(reportOweFeeDtos, reportOweFeeDto.getConfigIds());
            //查询大计 合计
            dealTheOweFeeSumAmount(reportOweFeeDtos, reportOweFeeDto);
        } 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);
        return responseEntity;
    }
    /**
     * 查询大计 总欠费 和 各个费用项总欠费
     *
     * @param reportOweFeeDtos
     * @param reportOweFeeDto
     */
    private void dealTheOweFeeSumAmount(List<ReportOweFeeDto> reportOweFeeDtos, ReportOweFeeDto reportOweFeeDto) {
        if (reportOweFeeDtos == null || reportOweFeeDtos.size() < 1) {
            return;
        }
        //查询总计
        double totalAmount = 0.0;
        if (reportOweFeeDto.getConfigIds() == null || reportOweFeeDto.getConfigIds().length < 1) {
            totalAmount = reportOweFeeInnerServiceSMOImpl.computeReportOweFeeTotalAmount(reportOweFeeDto);
            for (ReportOweFeeDto reportOweFeeDto1 : reportOweFeeDtos) {
                reportOweFeeDto1.setTotalOweAmount(totalAmount);
            }
            return;
        }
        //计算分项的累计值
        List<ReportOweFeeItemDto> reportOweFeeItemDtos = reportOweFeeInnerServiceSMOImpl.computeReportOweFeeItemAmount(reportOweFeeDto);
        if (reportOweFeeItemDtos == null || reportOweFeeItemDtos.size() < 1) {
            return;
        }
        BigDecimal totalAmountDes = new BigDecimal(totalAmount);
        for (ReportOweFeeItemDto tmpReportOweFeeItemDto : reportOweFeeItemDtos) {
            totalAmountDes = totalAmountDes.add(new BigDecimal(tmpReportOweFeeItemDto.getTotalOweAmount())).setScale(2, BigDecimal.ROUND_HALF_UP);
        }
        for (ReportOweFeeDto reportOweFeeDto1 : reportOweFeeDtos) {
            reportOweFeeDto1.setItemTotalOweAmounts(reportOweFeeItemDtos);
            reportOweFeeDto1.setTotalOweAmount(totalAmountDes.doubleValue());
        }
    }
    /**
@@ -142,10 +187,12 @@
                List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByRoom(reportOwe);
                reportOweFee.setOweId(reportOweFees.get(0).getOweId());
                reportOweFee.setOwnerName(reportOweFees.get(0).getOwnerName());
                reportOweFee.setOwnerTel(reportOweFees.get(0).getOwnerTel());
            } else if (reportOweFee.getPayerObjType().equals("6666")) {
                List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByCar(reportOwe);
                reportOweFee.setOweId(reportOweFees.get(0).getOweId());
                reportOweFee.setOwnerName(reportOweFees.get(0).getOwnerName());
                reportOweFee.setOwnerTel(reportOweFees.get(0).getOwnerTel());
            }
            reportOweFeeDtos.add(reportOweFee);
        }
@@ -153,6 +200,7 @@
            dealItem(tmpReportOweFeeDto, reportOweFeeDtos);
        }
        if (configIds == null || configIds.length < 1) {
            return;
        }