From ad7623b1e809e821f2a83f090a4e1ea6e2837add Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期三, 19 十月 2022 01:59:09 +0800
Subject: [PATCH] 导出支持异步队里方式
---
service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java | 696 ++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 435 insertions(+), 261 deletions(-)
diff --git a/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java b/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java
index 41795ce..efba38e 100755
--- a/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java
@@ -1,39 +1,50 @@
package com.java110.report.bmo.reportFeeMonthStatistics.impl;
import com.alibaba.fastjson.JSONObject;
+import com.java110.core.smo.IComputeFeeSMO;
import com.java110.dto.PageDto;
import com.java110.dto.RoomDto;
import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDetailDto;
import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.repair.RepairDto;
import com.java110.dto.repair.RepairUserDto;
import com.java110.dto.report.ReportDeposit;
import com.java110.dto.reportFeeMonthStatistics.ReportFeeMonthStatisticsDto;
import com.java110.dto.reportFeeMonthStatistics.ReportFeeMonthStatisticsTotalDto;
+import com.java110.intf.community.IRepairInnerServiceSMO;
import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
+import com.java110.intf.report.IQueryPayFeeDetailInnerServiceSMO;
import com.java110.intf.report.IReportFeeMonthStatisticsInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
import com.java110.report.bmo.reportFeeMonthStatistics.IGetReportFeeMonthStatisticsBMO;
-import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
@Service("getReportFeeMonthStatisticsBMOImpl")
public class GetReportFeeMonthStatisticsBMOImpl implements IGetReportFeeMonthStatisticsBMO {
private static final Logger logger = LoggerFactory.getLogger(GetReportFeeMonthStatisticsBMOImpl.class);
+
+ private int MAX_ROWS = 500; // 鏈�澶ц鏁�
@Autowired
private IReportFeeMonthStatisticsInnerServiceSMO reportFeeMonthStatisticsInnerServiceSMOImpl;
@@ -41,12 +52,29 @@
@Autowired
private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+ @Autowired
+ private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+ @Autowired
+ private IComputeFeeSMO computeFeeSMOImpl;
+
+ @Autowired
+ private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+ @Autowired
+ private IQueryPayFeeDetailInnerServiceSMO queryPayFeeDetailInnerServiceSMOImpl;
+
/**
* @param reportFeeMonthStatisticsDto
* @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
*/
public ResponseEntity<String> get(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
-
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeMonthStatisticssCount(reportFeeMonthStatisticsDto);
@@ -66,26 +94,36 @@
@Override
public ResponseEntity<String> queryReportFeeSummary(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummaryCount(reportFeeMonthStatisticsDto);
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = new ArrayList<>();
if (count > 0) {
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummary(reportFeeMonthStatisticsDto);
+ if (reportFeeMonthStatisticsDto.getConfigIds() != null) {
+ reportFeeMonthStatisticsList = dealConfigReportFeeMonthStatisticsList(reportFeeMonthStatisticsList, "FeeSummary");
+ }
for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsList) {
//鑾峰彇搴旀敹閲戦
double receivableAmount = Double.parseDouble(reportFeeMonthStatistics.getReceivableAmount());
//鑾峰彇瀹炴敹閲戦
double receivedAmount = Double.parseDouble(reportFeeMonthStatistics.getReceivedAmount());
- double chargeRate = (receivedAmount / receivableAmount) * 100.0;
- reportFeeMonthStatistics.setChargeRate(String.format("%.2f", chargeRate) + "%");
+ if (receivableAmount != 0) {
+ double chargeRate = (receivedAmount / receivableAmount) * 100.0;
+ reportFeeMonthStatistics.setChargeRate(String.format("%.2f", chargeRate) + "%");
+ } else {
+ reportFeeMonthStatistics.setChargeRate("0%");
+
+ }
reportFeeMonthStatisticsDtos.add(reportFeeMonthStatistics);
+
}
ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummaryMajor(reportFeeMonthStatisticsDto);
- if(reportFeeMonthStatisticsList != null && reportFeeMonthStatisticsList.size()> 0){
- for(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsList){
+ if (reportFeeMonthStatisticsList != null && reportFeeMonthStatisticsList.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsList) {
reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
- reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getAllOweAmount());
+ reportFeeMonthStatisticsDto1.setAllHisOweReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllHisOweReceivedAmount());
}
}
} else {
@@ -99,19 +137,126 @@
return responseEntity;
}
+ /**
+ * 灏哻onfigId group by 鍚庢暟鎹� 鍚堝苟澶勭悊
+ *
+ * @param reportFeeMonthStatisticsList
+ * @return
+ */
+ private List<ReportFeeMonthStatisticsDto> dealConfigReportFeeMonthStatisticsList(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList, String flag) {
+ List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = new ArrayList<>();
+ BigDecimal hisOweAmountDec = null;
+ BigDecimal curReceivableAmountDec = null;
+ BigDecimal curReceivedAmountDec = null;
+ BigDecimal hisOweReceivedAmountDec = null;
+ BigDecimal preReceivedAmountDec = null;
+ BigDecimal receivableAmountDec = null;
+ BigDecimal receivedAmountDec = null;
+ List<FeeConfigDto> feeConfigDtos = null;
+ FeeConfigDto feeConfigDto = null;
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportFeeMonthStatisticsList) {
+ ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = hasReportFeeMonthStatisticsDto(reportFeeMonthStatisticsDtos, reportFeeMonthStatisticsDto, flag);
+ if (tmpReportFeeMonthStatisticsDto == null) {
+ feeConfigDtos = new ArrayList<>();
+ feeConfigDto = new FeeConfigDto();
+ feeConfigDto.setConfigId(reportFeeMonthStatisticsDto.getConfigId());
+ feeConfigDto.setAmount(Double.parseDouble(reportFeeMonthStatisticsDto.getReceivedAmount()));
+ feeConfigDtos.add(feeConfigDto);
+ reportFeeMonthStatisticsDto.setFeeConfigDtos(feeConfigDtos);
+ reportFeeMonthStatisticsDtos.add(reportFeeMonthStatisticsDto);
+ continue;
+ }
+ feeConfigDtos = tmpReportFeeMonthStatisticsDto.getFeeConfigDtos();
+ feeConfigDto = new FeeConfigDto();
+ feeConfigDto.setConfigId(reportFeeMonthStatisticsDto.getConfigId());
+ feeConfigDto.setAmount(Double.parseDouble(reportFeeMonthStatisticsDto.getReceivedAmount()));
+ feeConfigDtos.add(feeConfigDto);
+ tmpReportFeeMonthStatisticsDto.setFeeConfigDtos(feeConfigDtos);
+
+ //鍘嗗彶娆犺垂
+ hisOweAmountDec = new BigDecimal(tmpReportFeeMonthStatisticsDto.getHisOweAmount());
+ hisOweAmountDec = hisOweAmountDec.add(new BigDecimal(reportFeeMonthStatisticsDto.getHisOweAmount()))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setHisOweAmount(hisOweAmountDec.doubleValue());
+
+
+ //褰撴湀搴旀敹
+ curReceivableAmountDec = new BigDecimal(tmpReportFeeMonthStatisticsDto.getCurReceivableAmount());
+ curReceivableAmountDec = curReceivableAmountDec.add(new BigDecimal(reportFeeMonthStatisticsDto.getCurReceivableAmount()))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setCurReceivableAmount(curReceivableAmountDec.doubleValue());
+
+ //褰撴湀瀹炴敹
+ curReceivedAmountDec = new BigDecimal(tmpReportFeeMonthStatisticsDto.getCurReceivedAmount());
+ curReceivedAmountDec = curReceivedAmountDec.add(new BigDecimal(reportFeeMonthStatisticsDto.getCurReceivedAmount()))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setCurReceivedAmount(curReceivedAmountDec.doubleValue());
+
+ //娆犺垂杩藉洖
+ hisOweReceivedAmountDec = new BigDecimal(tmpReportFeeMonthStatisticsDto.getHisOweReceivedAmount());
+ hisOweReceivedAmountDec = hisOweReceivedAmountDec.add(new BigDecimal(reportFeeMonthStatisticsDto.getHisOweReceivedAmount()))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setHisOweReceivedAmount(hisOweReceivedAmountDec.doubleValue());
+
+ //棰勪氦璐�
+ preReceivedAmountDec = new BigDecimal(tmpReportFeeMonthStatisticsDto.getPreReceivedAmount());
+ preReceivedAmountDec = preReceivedAmountDec.add(new BigDecimal(reportFeeMonthStatisticsDto.getPreReceivedAmount()))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setPreReceivedAmount(preReceivedAmountDec.doubleValue());
+
+ //鎬昏垂鐢�
+ receivableAmountDec = new BigDecimal(Double.parseDouble(tmpReportFeeMonthStatisticsDto.getReceivableAmount()));
+ receivableAmountDec = receivableAmountDec.add(new BigDecimal(Double.parseDouble(reportFeeMonthStatisticsDto.getReceivableAmount())))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setReceivableAmount(receivableAmountDec.doubleValue() + "");
+
+ //瀹炴敹
+ receivedAmountDec = new BigDecimal(Double.parseDouble(tmpReportFeeMonthStatisticsDto.getReceivedAmount()));
+ receivedAmountDec = receivedAmountDec.add(new BigDecimal(Double.parseDouble(reportFeeMonthStatisticsDto.getReceivedAmount())))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tmpReportFeeMonthStatisticsDto.setReceivedAmount(receivedAmountDec.doubleValue() + "");
+ }
+
+ return reportFeeMonthStatisticsDtos;
+ }
+
+ private ReportFeeMonthStatisticsDto hasReportFeeMonthStatisticsDto(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos, ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto, String flag) {
+ for (ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
+ if ("FeeSummary".equals(flag) && tmpReportFeeMonthStatisticsDto.getFeeYear().equals(reportFeeMonthStatisticsDto.getFeeYear())
+ && tmpReportFeeMonthStatisticsDto.getFeeMonth().equals(reportFeeMonthStatisticsDto.getFeeMonth())) {
+ return tmpReportFeeMonthStatisticsDto;
+ }
+ if ("FloorUnitFeeSummary".equals(flag) && tmpReportFeeMonthStatisticsDto.getFeeYear().equals(reportFeeMonthStatisticsDto.getFeeYear())
+ && tmpReportFeeMonthStatisticsDto.getFeeMonth().equals(reportFeeMonthStatisticsDto.getFeeMonth())
+ && tmpReportFeeMonthStatisticsDto.getFloorNum().equals(reportFeeMonthStatisticsDto.getFloorNum())
+ && tmpReportFeeMonthStatisticsDto.getUnitNum().equals(reportFeeMonthStatisticsDto.getUnitNum())
+ ) {
+ return tmpReportFeeMonthStatisticsDto;
+ }
+ }
+
+ return null;
+ }
+
@Override
public ResponseEntity<String> queryReportFloorUnitFeeSummary(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+ reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + "");
+ reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + "");
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFloorUnitFeeSummaryCount(reportFeeMonthStatisticsDto);
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
if (count > 0) {
reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFloorUnitFeeSummary(reportFeeMonthStatisticsDto);
+ if (reportFeeMonthStatisticsDto.getConfigIds() != null) {
+ reportFeeMonthStatisticsDtos = dealConfigReportFeeMonthStatisticsList(reportFeeMonthStatisticsDtos, "FloorUnitFeeSummary");
+ }
ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFloorUnitFeeSummaryMajor(reportFeeMonthStatisticsDto);
- if(reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size()> 0){
- for(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos){
+ if (reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos) {
reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getAllOweAmount());
+ reportFeeMonthStatisticsDto1.setAllHisOweReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllHisOweReceivedAmount());
}
}
} else {
@@ -127,35 +272,53 @@
@Override
public ResponseEntity<String> queryFeeBreakdown(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+
+ if (StringUtil.isEmpty(reportFeeMonthStatisticsDto.getYearMonth())) {
+ reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + "");
+ reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + "");
+ }
+
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeBreakdownCount(reportFeeMonthStatisticsDto);
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
if (count > 0) {
reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeBreakdown(reportFeeMonthStatisticsDto);
ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeBreakdownMajor(reportFeeMonthStatisticsDto);
- if(reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size()> 0){
- for(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos){
+ reportFeeMonthStatisticsDto.setPage(PageDto.DEFAULT_PAGE);
+ List<ReportFeeMonthStatisticsDto> reportFeeMonthStatistics = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeBreakdown(reportFeeMonthStatisticsDto);
+ BigDecimal allOweAmount = new BigDecimal(0.0);
+ BigDecimal allHisOweReceivedAmount = new BigDecimal(0.0);
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatistic : reportFeeMonthStatistics) {
+ //鑾峰彇鍘嗗彶娆犺垂
+ BigDecimal hisOweAmount = new BigDecimal(reportFeeMonthStatistic.getHisOweAmount());
+ //鑾峰彇褰撴湀搴旀敹
+ BigDecimal curReceivableAmount = new BigDecimal(reportFeeMonthStatistic.getCurReceivableAmount());
+ //鑾峰彇褰撴湀瀹炴敹
+ BigDecimal curReceivedAmount = new BigDecimal(reportFeeMonthStatistic.getCurReceivedAmount());
+ //鑾峰彇娆犲�鸿拷鍥�
+ BigDecimal hisOweReceivedAmount = new BigDecimal(reportFeeMonthStatistic.getHisOweReceivedAmount());
+ //璁$畻娆犺垂閲戦
+ BigDecimal oweAmount = hisOweAmount.add(curReceivableAmount).subtract(curReceivedAmount).subtract(hisOweReceivedAmount);
+ if (oweAmount.compareTo(BigDecimal.ZERO) == 1) { //娆犺垂閲戦澶т簬0
+ allOweAmount = allOweAmount.add(oweAmount);
+ }
+ if (hisOweReceivedAmount.compareTo(BigDecimal.ZERO) == 1) { //娆犺垂杩藉洖澶т簬0
+ allHisOweReceivedAmount = allHisOweReceivedAmount.add(hisOweReceivedAmount);
+ }
+ }
+ if (reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos) {
reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
- reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getAllOweAmount());
+ reportFeeMonthStatisticsDto1.setAllOweAmount(allOweAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+ reportFeeMonthStatisticsDto1.setAllHisOweReceivedAmount(allHisOweReceivedAmount.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
}
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
}
- //鏌ヨ璇ュ皬鍖轰笅鐨勮垂鐢ㄩ」鐩�
- FeeConfigDto feeConfigDto = new FeeConfigDto();
- feeConfigDto.setCommunityId(reportFeeMonthStatisticsDto.getCommunityId());
- List<FeeConfigDto> feeConfigDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
-
- List<ReportFeeMonthStatisticsDto> reportList = new ArrayList<>();
- for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
- reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
- reportList.add(reportFeeMonthStatistics);
- }
-
- ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportFeeMonthStatisticsDtos);
ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
@@ -164,51 +327,51 @@
@Override
public ResponseEntity<String> queryFeeDetail(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+
+
+ reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + "");
+ reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + "");
+
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeDetailCount(reportFeeMonthStatisticsDto);
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
- //搴旀敹鎬婚噾棰�(澶ц)
- Double allReceivableAmount = 0.0;
- //瀹炴敹閲戦(澶ц)
- Double allReceivedAmount = 0.0;
if (count > 0) {
reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeDetail(reportFeeMonthStatisticsDto);
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryAllFeeDetail(reportFeeMonthStatisticsDto);
- allReceivableAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivableAmount());
- allReceivedAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivedAmount());
+ reportFeeMonthStatisticsDto.setPage(PageDto.DEFAULT_PAGE);
+ List<ReportFeeMonthStatisticsDto> reportFeeMonthStatistics = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeDetail(reportFeeMonthStatisticsDto);
+ BigDecimal allOweAmount = new BigDecimal(0.0);
+ BigDecimal allHisOweReceivedAmount = new BigDecimal(0.0);
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatistic : reportFeeMonthStatistics) {
+ //鑾峰彇鍘嗗彶娆犺垂
+ BigDecimal hisOweAmount = new BigDecimal(reportFeeMonthStatistic.getHisOweAmount());
+ //鑾峰彇褰撴湀搴旀敹
+ BigDecimal curReceivableAmount = new BigDecimal(reportFeeMonthStatistic.getCurReceivableAmount());
+ //鑾峰彇褰撴湀瀹炴敹
+ BigDecimal curReceivedAmount = new BigDecimal(reportFeeMonthStatistic.getCurReceivedAmount());
+ //鑾峰彇娆犺垂杩藉洖
+ BigDecimal hisOweReceivedAmount = new BigDecimal(reportFeeMonthStatistic.getHisOweReceivedAmount());
+ //璁$畻娆犺垂閲戦
+ BigDecimal oweAmount = hisOweAmount.add(curReceivableAmount).subtract(curReceivedAmount).subtract(hisOweReceivedAmount);
+ if (oweAmount.compareTo(BigDecimal.ZERO) == 1) { //娆犺垂閲戦澶т簬0
+ allOweAmount = allOweAmount.add(oweAmount);
+ }
+ if (hisOweReceivedAmount.compareTo(BigDecimal.ZERO) == 1) { //娆犺垂杩藉洖澶т簬0
+ allHisOweReceivedAmount = allHisOweReceivedAmount.add(hisOweReceivedAmount);
+ }
+ }
+ if (reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos) {
+ reportFeeMonthStatisticsDto1.setAllReceivableAmount(reportFeeMonthStatisticsList.get(0).getAllReceivableAmount());
+ reportFeeMonthStatisticsDto1.setAllReceivedAmount(reportFeeMonthStatisticsList.get(0).getAllReceivedAmount());
+ reportFeeMonthStatisticsDto1.setAllOweAmount(allOweAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
+ reportFeeMonthStatisticsDto1.setAllHisOweReceivedAmount(allHisOweReceivedAmount.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+ }
+ }
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
}
-
- //搴旀敹鎬婚噾棰�(灏忚)
- Double totalReceivableAmount = 0.0;
- //瀹炴敹鎬婚噾棰�(灏忚)
- Double totalReceivedAmount = 0.0;
- List<ReportFeeMonthStatisticsDto> reportList = new ArrayList<>();
- for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
- //搴旀敹閲戦
- Double receivableAmount = Double.valueOf(reportFeeMonthStatistics.getReceivableAmount());
- //瀹炴敹閲戦
- Double receivedAmount = Double.valueOf(reportFeeMonthStatistics.getReceivedAmount());
- totalReceivableAmount = totalReceivableAmount + receivableAmount;
- totalReceivedAmount = totalReceivedAmount + receivedAmount;
- }
-
- //鏌ヨ璇ュ皬鍖轰笅鐨勮垂鐢ㄩ」鐩�
- FeeConfigDto feeConfigDto = new FeeConfigDto();
- feeConfigDto.setCommunityId(reportFeeMonthStatisticsDto.getCommunityId());
- List<FeeConfigDto> feeConfigDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
-
- for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
- reportFeeMonthStatistics.setTotalReceivableAmount(String.format("%.2f", totalReceivableAmount));
- reportFeeMonthStatistics.setTotalReceivedAmount(String.format("%.2f", totalReceivedAmount));
- reportFeeMonthStatistics.setAllReceivableAmount(String.format("%.2f", allReceivableAmount));
- reportFeeMonthStatistics.setAllReceivedAmount(String.format("%.2f", allReceivedAmount));
- reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
- reportList.add(reportFeeMonthStatistics);
- }
-
- ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportFeeMonthStatisticsDtos);
ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
@@ -222,7 +385,14 @@
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
if (count > 0) {
reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryOweFeeDetail(reportFeeMonthStatisticsDto);
-
+ ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = reportFeeMonthStatisticsInnerServiceSMOImpl.queryOweFeeDetailMajor(reportFeeMonthStatisticsDto);
+ if (reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos) {
+// reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
+// reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
+ reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getOweAmount());
+ }
+ }
freshReportOweDay(reportFeeMonthStatisticsDtos);
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
@@ -235,202 +405,77 @@
return responseEntity;
}
+ /**
+ * 鍓嶅彴鏌ヨ鍒嗛〉鏌ヨ
+ * @param reportFeeMonthStatisticsDto
+ * @return
+ */
@Override
public ResponseEntity<String> queryPayFeeDetail(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
-
- JSONObject countInfo = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetailCount(reportFeeMonthStatisticsDto);
-
- int count = Integer.parseInt(countInfo.get("count").toString());
-
- List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
- ReportFeeMonthStatisticsTotalDto reportFeeMonthStatisticsTotalDto = new ReportFeeMonthStatisticsTotalDto();
- List<ReportFeeMonthStatisticsDto> reportList = new ArrayList<>();
- //鏌ヨ璇ュ皬鍖轰笅鐨勮垂鐢ㄩ」鐩�
- FeeConfigDto feeConfigDto = new FeeConfigDto();
- feeConfigDto.setCommunityId(reportFeeMonthStatisticsDto.getCommunityId());
- List<FeeConfigDto> feeConfigDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
- //搴旀敹鎬婚噾棰�(澶ц)
- Double allReceivableAmount = 0.0;
- //瀹炴敹閲戦(澶ц)
- Double allReceivedAmount = 0.0;
- //浼樻儬閲戦(澶ц)
- Double allPreferentialAmount = 0.0;
- //鍑忓厤閲戦(澶ц)
- Double allDeductionAmount = 0.0;
- //婊炵撼閲�(澶ц)
- Double allLateFee = 0.0;
- //绌虹疆鎴挎墦鎶�(澶ц)
- Double allVacantHousingDiscount = 0.0;
- //绌虹疆鎴垮噺鍏�(澶ц)
- Double allVacantHousingReduction = 0.0;
- int size = 0;
- if (count > 0) {
- //鏌ヨ缂磋垂鏄庣粏
- reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetail(reportFeeMonthStatisticsDto);
- if (reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size() > 0) {
- //鏌ヨ鎵�鏈夌即璐规槑缁嗚褰�
- ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 = BeanConvertUtil.covertBean(reportFeeMonthStatisticsDto, ReportFeeMonthStatisticsDto.class);
- reportFeeMonthStatisticsDto1.setPage(PageDto.DEFAULT_PAGE);
- List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos1 = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetail(reportFeeMonthStatisticsDto1);
- size = reportFeeMonthStatisticsDtos1.size();
- }
- //鏌ヨ搴旀敹銆佸疄鏀舵�婚噾棰�(澶ц)
- List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryAllPayFeeDetail(reportFeeMonthStatisticsDto);
- //鏌ヨ(浼樻儬銆佸噺鍏嶃�佹粸绾抽噾銆佺┖缃埧鎵撴姌銆佺┖缃埧鍑忓厤閲戦绛�)澶ц鎬婚噾棰�
- List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsSum = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetailSum(reportFeeMonthStatisticsDto);
- allReceivableAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivableAmount());
- allReceivedAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivedAmount());
- for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsSum) {
- //杩欓噷鏄煡璇㈠嚭鐨勯噾棰濇�诲拰
- String discountPrice = reportFeeMonthStatistics.getDiscountPrice();
- //浼樻儬閲戦(澶ц)
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("1")) {
- allPreferentialAmount = Double.valueOf(discountPrice);
- }
- //鍑忓厤閲戦(澶ц)
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("2")) {
- allDeductionAmount = Double.valueOf(discountPrice);
- }
- //婊炵撼閲�(澶ц)
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("3")) {
- allLateFee = Double.valueOf(discountPrice);
- }
- //绌虹疆鎴挎墦鎶橀噾棰�(澶ц)
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("4")) {
- allVacantHousingDiscount = Double.valueOf(discountPrice);
- }
- //绌虹疆鎴垮噺鍏嶉噾棰�(澶ц)
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("5")) {
- allVacantHousingReduction = Double.valueOf(discountPrice);
- }
- }
- //搴旀敹鎬婚噾棰�(灏忚)
- Double totalReceivableAmount = 0.0;
- //瀹炴敹鎬婚噾棰�(灏忚)
- Double totalReceivedAmount = 0.0;
- //浼樻儬閲戦(灏忚)
- Double totalPreferentialAmount = 0.0;
- //鍑忓厤閲戦(灏忚)
- Double totalDeductionAmount = 0.0;
- //绌虹疆鎴挎墦鎶橀噾棰�(灏忚)
- Double totalVacantHousingDiscount = 0.0;
- //绌虹疆鎴垮噺鍏嶉噾棰�(灏忚)
- Double totalVacantHousingReduction = 0.0;
- //婊炵撼閲�(灏忚)
- Double totalLateFee = 0.0;
- for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
- //搴旀敹閲戦
- Double receivableAmount = Double.valueOf(reportFeeMonthStatistics.getReceivableAmount());
- //瀹炴敹閲戦
- Double receivedAmount = Double.valueOf(reportFeeMonthStatistics.getReceivedAmount());
- totalReceivableAmount = totalReceivableAmount + receivableAmount;
- totalReceivedAmount = totalReceivedAmount + receivedAmount;
- //浼樻儬閲戦
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("1")) {
- //鑾峰彇浼樻儬閲戦
- Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
- totalPreferentialAmount = totalPreferentialAmount + discountPrice;
- //浼樻儬閲戦
- reportFeeMonthStatistics.setPreferentialAmount(reportFeeMonthStatistics.getDiscountPrice());
- } else {
- reportFeeMonthStatistics.setPreferentialAmount("0");
- }
- //鍑忓厤閲戦
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("2")) {
- //鑾峰彇鍑忓厤閲戦
- Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
- totalDeductionAmount = totalDeductionAmount + discountPrice;
- //鍑忓厤閲戦
- reportFeeMonthStatistics.setDeductionAmount(reportFeeMonthStatistics.getDiscountPrice());
- } else {
- reportFeeMonthStatistics.setDeductionAmount("0");
- }
- //婊炵撼閲�
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("3")) {
- //鑾峰彇婊炵撼閲戦噾棰�
- Double discountPrice = (Double.valueOf(reportFeeMonthStatistics.getDiscountPrice())) * (-1);
- totalLateFee = totalLateFee + discountPrice;
- //婊炵撼閲�
- reportFeeMonthStatistics.setLateFee(reportFeeMonthStatistics.getDiscountPrice());
- } else {
- reportFeeMonthStatistics.setLateFee("0");
- }
- //绌虹疆鎴挎墦鎶�
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("4")) {
- //绌虹疆鎴挎墦鎶橀噾棰�
- Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
- totalVacantHousingDiscount = totalVacantHousingDiscount + discountPrice;
- //绌虹疆鎴挎墦鎶�
- reportFeeMonthStatistics.setVacantHousingDiscount(reportFeeMonthStatistics.getDiscountPrice());
- } else {
- reportFeeMonthStatistics.setVacantHousingDiscount("0");
- }
- //绌虹疆鎴垮噺鍏�
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("5")) {
- //绌虹疆鎴垮噺鍏嶉噾棰�
- Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
- totalVacantHousingReduction = totalVacantHousingReduction + discountPrice;
- //绌虹疆鎴垮噺鍏�
- reportFeeMonthStatistics.setVacantHousingReduction(reportFeeMonthStatistics.getDiscountPrice());
- } else {
- reportFeeMonthStatistics.setVacantHousingReduction("0");
- }
- if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportFeeMonthStatistics.getPayerObjType())) {
- reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getFloorNum()
- + "鏍�" + reportFeeMonthStatistics.getUnitNum()
- + "鍗曞厓" + reportFeeMonthStatistics.getRoomNum() + "瀹�");
- } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(reportFeeMonthStatistics.getPayerObjType())) {
- reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getCarNum());
- } else {
- reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getContractCode());
-
- }
- if (!StringUtil.isEmpty(reportFeeMonthStatistics.getImportFeeName())) {
- reportFeeMonthStatistics.setFeeName(reportFeeMonthStatistics.getImportFeeName());
- }
- //璐圭敤椤圭洰
- reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
- reportList.add(reportFeeMonthStatistics);
- }
- //搴旀敹鎬婚噾棰�(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalReceivableAmount(String.format("%.2f", totalReceivableAmount));
- //瀹炴敹閲戦(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalReceivedAmount(String.format("%.2f", totalReceivedAmount));
- //浼樻儬閲戦(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalPreferentialAmount(String.valueOf(totalPreferentialAmount));
- //鍑忓厤閲戦(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalDeductionAmount(String.valueOf(totalDeductionAmount));
- //婊炵撼閲�(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalLateFee(String.valueOf(totalLateFee));
- //绌虹疆鎴挎墦鎶�(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalVacantHousingDiscount(String.valueOf(totalVacantHousingDiscount));
- //绌虹疆鎴垮噺鍏�(灏忚)
- reportFeeMonthStatisticsTotalDto.setTotalVacantHousingReduction(String.valueOf(totalVacantHousingReduction));
- //搴旀敹閲戦(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllReceivableAmount(String.format("%.2f", allReceivableAmount));
- //瀹炴敹閲戦(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllReceivedAmount(String.format("%.2f", allReceivedAmount));
- //浼樻儬閲戦(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllPreferentialAmount(String.valueOf(allPreferentialAmount));
- //鍑忓厤閲戦(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllDeductionAmount(String.valueOf(allDeductionAmount));
- //婊炵撼閲�(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllLateFee(String.valueOf(allLateFee));
- //绌虹疆鎴挎墦鎶橀噾棰�(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllVacantHousingDiscount(String.valueOf(allVacantHousingDiscount));
- //绌虹疆鎴垮噺鍏嶉噾棰�(澶ц)
- reportFeeMonthStatisticsTotalDto.setAllVacantHousingReduction(String.valueOf(allVacantHousingReduction));
- } else {
- reportFeeMonthStatisticsDtos = new ArrayList<>();
- reportList.addAll(reportFeeMonthStatisticsDtos);
- reportFeeMonthStatisticsTotalDto = new ReportFeeMonthStatisticsTotalDto();
- }
-
- ResultVo resultVo = new ResultVo((int) Math.ceil((double) size / (double) reportFeeMonthStatisticsDto.getRow()), size, reportList, reportFeeMonthStatisticsTotalDto);
-
+ ResultVo resultVo = queryPayFeeDetailInnerServiceSMOImpl.query(reportFeeMonthStatisticsDto);
ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
return responseEntity;
+ }
+
+ /**
+ * @param ownerIds
+ * @param reportFeeMonthStatisticsDtos
+ */
+ private void refreshReportFeeMonthStatistics(List<String> ownerIds, List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos) {
+
+ if (ownerIds == null || ownerIds.size() < 1) {
+ return;
+ }
+
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setOwnerIds(ownerIds.toArray(new String[ownerIds.size()]));
+ List<OwnerDto> ownerDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRoomAndParkingSpace(ownerDto);
+ String objName = "";
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
+ if (!FeeDto.PAYER_OBJ_TYPE_CAR.equals(reportFeeMonthStatisticsDto.getPayerObjType())) {
+ continue;
+ }
+ for (OwnerDto ownerDto1 : ownerDtos) {
+ if (!StringUtil.isEmpty(reportFeeMonthStatisticsDto.getOwnerId()) && !reportFeeMonthStatisticsDto.getOwnerId().equals(ownerDto1.getOwnerId())) {
+ continue;
+ }
+ objName = reportFeeMonthStatisticsDto.getObjName() + "(" + ownerDto1.getFloorNum() + "鏍�" + ownerDto1.getUnitNum() + "鍗曞厓" + ownerDto1.getRoomNum() + "瀹�)";
+ reportFeeMonthStatisticsDto.setObjName(objName);
+ }
+ }
+ }
+
+ private boolean hasInReportListAndMerge(List<ReportFeeMonthStatisticsDto> reportList, ReportFeeMonthStatisticsDto reportFeeMonthStatistics) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportList) {
+ if (reportFeeMonthStatisticsDto.getDetailId().equals(reportFeeMonthStatistics.getDetailId())) {
+ combineSydwCore(reportFeeMonthStatistics, reportFeeMonthStatisticsDto);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ //閽堝鎵�鐢ㄥ璞�
+ private static ReportFeeMonthStatisticsDto combineSydwCore(ReportFeeMonthStatisticsDto sourceBean, ReportFeeMonthStatisticsDto targetBean) {
+ Class sourceBeanClass = sourceBean.getClass();
+ Class targetBeanClass = targetBean.getClass();
+ Field[] sourceFields = sourceBeanClass.getDeclaredFields();
+ Field[] targetFields = sourceBeanClass.getDeclaredFields();
+ for (int i = 0; i < sourceFields.length; i++) {
+ Field sourceField = sourceFields[i];
+ Field targetField = targetFields[i];
+ sourceField.setAccessible(true);
+ targetField.setAccessible(true);
+ try {
+ if (!(sourceField.get(sourceBean) == null)) {
+ targetField.set(targetBean, sourceField.get(sourceBean));
+ }
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ return targetBean;
}
@Override
@@ -518,6 +563,8 @@
*/
@Override
public ResponseEntity<String> queryReportProficientCount(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+ reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + "");
+ reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + "");
JSONObject result = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportProficientCount(reportFeeMonthStatisticsDto);
ResponseEntity<String> responseEntity = new ResponseEntity<String>(result.toString(), HttpStatus.OK);
@@ -788,6 +835,134 @@
}
@Override
+ public ResponseEntity<String> queryHuaningOweFee(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+ int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningOweFeeCount(reportFeeMonthStatisticsDto);
+
+ List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+ if (count > 0) {
+ reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningOweFee(reportFeeMonthStatisticsDto);
+ } else {
+ reportFeeMonthStatisticsDtos = new ArrayList<>();
+ }
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportFeeMonthStatisticsDtos);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> queryHuaningPayFee(Map paramInfo) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.YEAR, (int) paramInfo.get("year"));
+ calendar.set(Calendar.MONTH, (int) paramInfo.get("month") - 1);
+ paramInfo.put("yearMonth", DateUtil.getFormatTimeString(calendar.getTime(), "YYYY-MM"));
+ calendar.add(Calendar.MONTH, 1);
+ paramInfo.put("nextYear", calendar.get(Calendar.YEAR));
+ paramInfo.put("nextMonth", calendar.get(Calendar.MONTH) + 1);
+ int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningPayFeeCount(paramInfo);
+
+ List<Map> reportFeeMonthStatisticsDtos = null;
+ if (count > 0) {
+ reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningPayFee(paramInfo);
+ } else {
+ reportFeeMonthStatisticsDtos = new ArrayList<>();
+ }
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (int) paramInfo.get("row")), count, reportFeeMonthStatisticsDtos);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> queryHuaningPayFeeTwo(Map paramInfo) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.YEAR, (int) paramInfo.get("year"));
+ calendar.set(Calendar.MONTH, (int) paramInfo.get("month") - 1);
+ paramInfo.put("yearMonth", DateUtil.getFormatTimeString(calendar.getTime(), "YYYY-MM"));
+ calendar.add(Calendar.MONTH, 1);
+ paramInfo.put("nextYear", calendar.get(Calendar.YEAR));
+ paramInfo.put("nextMonth", calendar.get(Calendar.MONTH) + 1);
+ int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningPayFeeTwoCount(paramInfo);
+
+ List<Map> reportFeeMonthStatisticsDtos = null;
+ if (count > 0) {
+ reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningPayFeeTwo(paramInfo);
+ } else {
+ reportFeeMonthStatisticsDtos = new ArrayList<>();
+ }
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (int) paramInfo.get("row")), count, reportFeeMonthStatisticsDtos);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> queryHuaningOweFeeDetail(Map paramInfo) {
+ Calendar calendar = Calendar.getInstance();
+ int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningOweFeeDetailCount(paramInfo);
+ List<Map> reportFeeMonthStatisticsDtos = null;
+ if (count > 0) {
+ reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryHuaningOweFeeDetail(paramInfo);
+ refreshOweFee(reportFeeMonthStatisticsDtos, paramInfo);
+ } else {
+ reportFeeMonthStatisticsDtos = new ArrayList<>();
+ }
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (int) paramInfo.get("row")), count, reportFeeMonthStatisticsDtos);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ private void refreshOweFee(List<Map> reportFeeMonthStatisticsDtos, Map paramInfo) {
+ Date startTime = null;
+ Date endTime = null;
+ Calendar calendar = Calendar.getInstance();
+ int curMonth = calendar.get(Calendar.MONTH) + 1;
+ calendar.set(Calendar.MONTH, 0);
+ Date curStart = calendar.getTime();
+
+
+ for (Map paramIn : reportFeeMonthStatisticsDtos) {
+
+ startTime = (Date) paramIn.get("startTime");
+ endTime = (Date) paramIn.get("endTime");
+ BigDecimal money = (BigDecimal) paramIn.get("oweAmount");
+ double month = Math.ceil(computeFeeSMOImpl.dayCompare(startTime, endTime));
+ if (month < 1) {
+ paramIn.put("btAmount", 0);
+ paramIn.put("bfAmount", 0);
+ continue;
+ }
+
+ //姣忔湀閲戦
+ BigDecimal monthAmount = money.divide(new BigDecimal(month), 2, BigDecimal.ROUND_HALF_EVEN);
+
+ if (startTime.getTime() < curStart.getTime()) {
+ BigDecimal btAmountDec = monthAmount.multiply(new BigDecimal(curMonth)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+ paramIn.put("btAmount", btAmountDec.doubleValue());
+ double preMonth = Math.ceil(computeFeeSMOImpl.dayCompare(startTime, curStart));
+ BigDecimal bfAmountDec = monthAmount.multiply(new BigDecimal(preMonth)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+ paramIn.put("bfAmount", bfAmountDec.doubleValue());
+ continue;
+ }
+
+ if (startTime.getTime() >= curStart.getTime()) {
+ paramIn.put("btAmount", money.doubleValue());
+ paramIn.put("bfAmount", 0);
+ }
+ }
+
+ }
+
+ @Override
public ResponseEntity<String> queryPrePayment(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPrePaymentNewCount(reportFeeMonthStatisticsDto);
@@ -822,12 +997,10 @@
}
private void freshReportOweDay(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos) {
-
- Date nowDate = DateUtil.getCurrentDate();
-
for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
try {
- int day = DateUtil.daysBetween(nowDate, DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getFeeCreateTime(),
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ int day = DateUtil.daysBetween(DateUtil.getDateFromString(format.format(new Date()), DateUtil.DATE_FORMATE_STRING_A), DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getFeeCreateTime(),
DateUtil.DATE_FORMATE_STRING_A));
reportFeeMonthStatisticsDto.setOweDay(day);
} catch (Exception e) {
@@ -837,6 +1010,7 @@
}
}
+
private void freshReportDeadlineDay(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos) {
Date nowDate = DateUtil.getCurrentDate();
--
Gitblit v1.8.0