From 65763d38cf9b6b8067a293d9c99297efea0de3e3 Mon Sep 17 00:00:00 2001
From: 928255095 <928255095@qq.com>
Date: 星期二, 07 九月 2021 22:04:15 +0800
Subject: [PATCH] Merge branch 'xinghong-dev' into 'master'
---
service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java | 722 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 688 insertions(+), 34 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
old mode 100644
new mode 100755
index 6b121ea..470c651
--- 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,14 +1,28 @@
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.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.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.Assert;
+import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
-import com.java110.vo.FeeDetailResultVo;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -17,10 +31,9 @@
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
@Service("getReportFeeMonthStatisticsBMOImpl")
public class GetReportFeeMonthStatisticsBMOImpl implements IGetReportFeeMonthStatisticsBMO {
@@ -29,6 +42,21 @@
@Autowired
private IReportFeeMonthStatisticsInnerServiceSMO reportFeeMonthStatisticsInnerServiceSMOImpl;
+
+ @Autowired
+ private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+ @Autowired
+ private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+ @Autowired
+ private IComputeFeeSMO computeFeeSMOImpl;
/**
* @param reportFeeMonthStatisticsDto
@@ -57,9 +85,26 @@
public ResponseEntity<String> queryReportFeeSummary(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummaryCount(reportFeeMonthStatisticsDto);
- List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+ List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = new ArrayList<>();
if (count > 0) {
- reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummary(reportFeeMonthStatisticsDto);
+ List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummary(reportFeeMonthStatisticsDto);
+ 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) + "%");
+ reportFeeMonthStatisticsDtos.add(reportFeeMonthStatistics);
+ }
+ ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummaryMajor(reportFeeMonthStatisticsDto);
+ if (reportFeeMonthStatisticsList != null && reportFeeMonthStatisticsList.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsList) {
+ reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
+ reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
+ reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getAllOweAmount());
+ }
+ }
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
}
@@ -78,6 +123,14 @@
List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
if (count > 0) {
reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFloorUnitFeeSummary(reportFeeMonthStatisticsDto);
+ ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFloorUnitFeeSummaryMajor(reportFeeMonthStatisticsDto);
+ if (reportFeeMonthStatisticsDtos != null && reportFeeMonthStatisticsDtos.size() > 0) {
+ for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto1 : reportFeeMonthStatisticsDtos) {
+ reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
+ reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
+ reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getAllOweAmount());
+ }
+ }
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
}
@@ -96,6 +149,14 @@
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) {
+ reportFeeMonthStatisticsDto1.setAllReceivableAmount(tmpReportFeeMonthStatisticsDto.getAllReceivableAmount());
+ reportFeeMonthStatisticsDto1.setAllReceivedAmount(tmpReportFeeMonthStatisticsDto.getAllReceivedAmount());
+ reportFeeMonthStatisticsDto1.setAllOweAmount(tmpReportFeeMonthStatisticsDto.getAllOweAmount());
+ }
+ }
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
}
@@ -178,7 +239,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.getAllOweAmount());
+ }
+ }
freshReportOweDay(reportFeeMonthStatisticsDtos);
} else {
reportFeeMonthStatisticsDtos = new ArrayList<>();
@@ -193,11 +261,13 @@
@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();
@@ -207,15 +277,71 @@
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());
@@ -223,40 +349,166 @@
Double receivedAmount = Double.valueOf(reportFeeMonthStatistics.getReceivedAmount());
totalReceivableAmount = totalReceivableAmount + receivableAmount;
totalReceivedAmount = totalReceivedAmount + receivedAmount;
- }
- for (ReportFeeMonthStatisticsDto tmpReportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
- if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(tmpReportFeeMonthStatisticsDto.getPayerObjType())) {
- tmpReportFeeMonthStatisticsDto.setObjName(tmpReportFeeMonthStatisticsDto.getFloorNum()
- + "鏍�" + tmpReportFeeMonthStatisticsDto.getUnitNum()
- + "鍗曞厓" + tmpReportFeeMonthStatisticsDto.getRoomNum() + "瀹�");
+ //浼樻儬閲戦
+ if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("1")) {
+ //鑾峰彇浼樻儬閲戦
+ Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
+ totalPreferentialAmount = totalPreferentialAmount + discountPrice;
+ //浼樻儬閲戦
+ reportFeeMonthStatistics.setPreferentialAmount(reportFeeMonthStatistics.getDiscountPrice());
} else {
- tmpReportFeeMonthStatisticsDto.setObjName(tmpReportFeeMonthStatisticsDto.getCarNum());
+ 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(tmpReportFeeMonthStatisticsDto.getImportFeeName())) {
- tmpReportFeeMonthStatisticsDto.setFeeName(tmpReportFeeMonthStatisticsDto.getImportFeeName());
}
- //搴旀敹閲戦(灏忚)
- tmpReportFeeMonthStatisticsDto.setTotalReceivableAmount(String.format("%.2f", totalReceivableAmount));
- //瀹炴敹閲戦(灏忚)
- tmpReportFeeMonthStatisticsDto.setTotalReceivedAmount(String.format("%.2f", totalReceivedAmount));
- //搴旀敹閲戦(澶ц)
- tmpReportFeeMonthStatisticsDto.setAllReceivableAmount(String.format("%.2f", allReceivableAmount));
- //瀹炴敹閲戦(澶ц)
- tmpReportFeeMonthStatisticsDto.setAllReceivedAmount(String.format("%.2f", allReceivedAmount));
+ if (!StringUtil.isEmpty(reportFeeMonthStatistics.getImportFeeName())) {
+ reportFeeMonthStatistics.setFeeName(reportFeeMonthStatistics.getImportFeeName());
+ }
//璐圭敤椤圭洰
- tmpReportFeeMonthStatisticsDto.setFeeConfigDtos(feeConfigDtos);
- reportList.add(tmpReportFeeMonthStatisticsDto);
+ reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
+ if (!StringUtil.isEmpty(reportFeeMonthStatistics.getRepairId())) {
+ RepairDto repairDto = new RepairDto();
+ repairDto.setRepairId(reportFeeMonthStatistics.getRepairId());
+ //鏌ヨ鎶ヤ慨鍗�
+ List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+ Assert.listOnlyOne(repairDtos, "鏌ヨ鎶ヤ慨鍗曢敊璇紒");
+ if (!StringUtil.isEmpty(repairDtos.get(0).getRepairObjType()) && repairDtos.get(0).getRepairObjType().equals("004")) {
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+ ownerRoomRelDto.setRoomId(repairDtos.get(0).getRepairObjId());
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+ if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() == 0) { //鏌ヨ鏉℃暟涓�0鏉�
+ OwnerRoomRelDto ownerRoomRel = new OwnerRoomRelDto();
+ ownerRoomRel.setRoomId(repairDtos.get(0).getRepairObjId());
+ ownerRoomRel.setStatusCd("1"); //鐪嬬湅涓氫富鎴垮眿鍏崇郴鏁版嵁鏄惁鍒犻櫎浜�
+ List<OwnerRoomRelDto> ownerRoomRels = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRel);
+ Assert.listOnlyOne(ownerRoomRels, "鏌ヨ涓氫富鎴垮眿鍏崇郴琛ㄩ敊璇紒");
+ OwnerDto owner = new OwnerDto();
+ owner.setOwnerId(ownerRoomRels.get(0).getOwnerId());
+ owner.setOwnerTypeCd("1001"); //涓氫富鏈汉
+ List<OwnerDto> owners = ownerInnerServiceSMOImpl.queryOwners(owner);
+ if (owners != null && owners.size() == 0) { //鏌ュ嚭鏉℃暟涓�0鏉�
+ //鍒ゆ柇涓氫富鏄惁鍒犻櫎浜�
+ OwnerDto newOwner = new OwnerDto();
+ newOwner.setOwnerId(ownerRoomRels.get(0).getOwnerId());
+ newOwner.setOwnerTypeCd("1001"); //涓氫富鏈汉
+ newOwner.setStatusCd("1");
+ List<OwnerDto> newOwners = ownerInnerServiceSMOImpl.queryOwners(newOwner);
+ Assert.listOnlyOne(newOwners, "鏌ヨ涓氫富淇℃伅閿欒锛�");
+ reportFeeMonthStatistics.setOwnerName(newOwners.get(0).getName());
+ } else if (owners != null && owners.size() == 1) { //鏌ュ嚭鏉℃暟涓�1鏉�
+ reportFeeMonthStatistics.setOwnerName(owners.get(0).getName());
+ } else {
+ throw new IllegalArgumentException("鏌ヨ涓氫富淇℃伅閿欒锛�");
+ }
+ } else if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() == 1) { //鏌ヨ鏉℃暟涓�1鏉�
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
+ ownerDto.setOwnerTypeCd("1001"); //涓氫富鏈汉
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+ if (ownerDtos != null && ownerDtos.size() == 0) { //涓氫富鏌ヨ鏉℃暟涓�0鏉�
+ //鍒ゆ柇涓氫富鏄惁鍒犻櫎浜�
+ OwnerDto newOwner = new OwnerDto();
+ newOwner.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
+ newOwner.setOwnerTypeCd("1001"); //涓氫富鏈汉
+ newOwner.setStatusCd("1");
+ List<OwnerDto> newOwners = ownerInnerServiceSMOImpl.queryOwners(newOwner);
+ Assert.listOnlyOne(newOwners, "鏌ヨ涓氫富淇℃伅閿欒锛�");
+ reportFeeMonthStatistics.setOwnerName(newOwners.get(0).getName());
+ } else if (ownerDtos != null || ownerDtos.size() == 1) {
+ reportFeeMonthStatistics.setOwnerName(ownerDtos.get(0).getName());
+ } else {
+ throw new IllegalArgumentException("鏌ヨ涓氫富淇℃伅閿欒锛�");
+ }
+ } else {
+ throw new IllegalArgumentException("鏌ヨ涓氫富鎴垮眿鍏崇郴琛ㄩ敊璇紒");
+ }
+ }
+ }
+ 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();
}
- /*FeeDetailResultVo resultVo = new FeeDetailResultVo(countInfo.getDouble("totalReceivableAmount"), countInfo.getDouble("totalReceivedAmount"),
- (int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);*/
-
- ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) size / (double) reportFeeMonthStatisticsDto.getRow()), size, reportList, reportFeeMonthStatisticsTotalDto);
ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
@@ -340,6 +592,411 @@
return responseEntity;
}
+ /**
+ * 鏌ヨ鎶ヨ〃涓撳 缁熻淇℃伅
+ *
+ * @param reportFeeMonthStatisticsDto
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> queryReportProficientCount(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+ JSONObject result = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportProficientCount(reportFeeMonthStatisticsDto);
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(result.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ /**
+ * 鏌ヨ鎶ヤ慨淇℃伅
+ *
+ * @param repairUserDto
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> queryRepair(RepairUserDto repairUserDto) {
+ //鏌ヨ鍛樺伐鎶ヤ慨琛ㄥ憳宸ヤ俊鎭�
+ List<RepairUserDto> repairUsers = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairForStaff(repairUserDto);
+ int count = repairUsers.size();
+ //鑾峰彇鍛樺伐id鍜屽鍚嶉泦鍚�
+ List<RepairUserDto> staffs;
+ if (StringUtil.isEmpty(repairUserDto.getStaffId())) {
+ repairUserDto.setPage(-1);
+ staffs = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairForStaff(repairUserDto);
+ } else {
+ repairUserDto.setPage(-1);
+ repairUserDto.setStaffId(null);
+ staffs = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairForStaff(repairUserDto);
+ }
+ List<RepairUserDto> repairUserList = new ArrayList<>();
+ //澶勭悊涓�绘暟閲�
+ int dealNumber = 0;
+ //缁撳崟鎬绘暟閲�
+ int statementNumber = 0;
+ //閫�鍗曟�绘暟閲�
+ int chargebackNumber = 0;
+ //杞崟鎬绘暟閲�
+ int transferOrderNumber = 0;
+ //娲惧崟鎬绘暟閲�
+ int dispatchNumber = 0;
+ //宸插洖璁挎�绘暟閲�
+ int returnNumber = 0;
+ if (count > 0) {
+ for (RepairUserDto repairUser : repairUsers) {
+ RepairUserDto repairUserInfo = new RepairUserDto();
+ //鍛樺伐id
+ repairUserDto.setStaffId(repairUser.getStaffId());
+ List<RepairUserDto> repairUserDtoList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairWithOutPage(repairUserDto);
+ if (repairUserDtoList != null && repairUserDtoList.size() > 0) {
+ //澶勭悊涓暟閲�
+ int dealAmount = 0;
+ //缁撳崟鏁伴噺
+ int statementAmount = 0;
+ //閫�鍗曟暟閲�
+ int chargebackAmount = 0;
+ //杞崟鏁伴噺
+ int transferOrderAmount = 0;
+ //娲惧崟鏁伴噺
+ int dispatchAmount = 0;
+ //鍥炶鏁伴噺
+ int returnAmount = 0;
+ //璇勫垎
+ String score = "";
+ for (RepairUserDto repair : repairUserDtoList) {
+ //澶勭悊涓姸鎬�
+ if (repair.getState().equals("10001")) {
+ //鑾峰彇鏁伴噺
+ int amount = Integer.parseInt(repair.getAmount());
+ dealAmount = dealAmount + amount;
+ } else if (repair.getState().equals("10002")) { //缁撳崟鐘舵��
+ //鑾峰彇鏁伴噺
+ int amount = Integer.parseInt(repair.getAmount());
+ statementAmount = statementAmount + amount;
+ } else if (repair.getState().equals("10003")) { //閫�鍗曠姸鎬�
+ //鑾峰彇鏁伴噺
+ int amount = Integer.parseInt(repair.getAmount());
+ chargebackAmount = chargebackAmount + amount;
+ } else if (repair.getState().equals("10004")) { //杞崟鐘舵��
+ //鑾峰彇鏁伴噺
+ int amount = Integer.parseInt(repair.getAmount());
+ transferOrderAmount = transferOrderAmount + amount;
+ } else if (repair.getState().equals("10006")) { //娲惧崟鐘舵��
+ int amount = Integer.parseInt(repair.getAmount());
+ dispatchAmount = dispatchAmount + amount;
+ } else if (repair.getState().equals("10008")) { //宸插洖璁跨姸鎬�
+ int amount = Integer.parseInt(repair.getAmount());
+ returnAmount = returnAmount + amount;
+ }
+ if (!StringUtil.isEmpty(repair.getScore())) {
+ score = repair.getScore();
+ }
+ }
+ //鍛樺伐id
+ repairUserInfo.setStaffId(repairUser.getStaffId());
+ //鍛樺伐濮撳悕
+ repairUserInfo.setStaffName(repairUser.getStaffName());
+ //澶勭悊涓姤淇暟閲�
+ repairUserInfo.setDealAmount(Integer.toString(dealAmount));
+ //澶勭悊涓姤淇�绘暟閲�
+ repairUserInfo.setDealNumber(Integer.toString(dealNumber));
+ //缁撳崟鎶ヤ慨鏁伴噺
+ repairUserInfo.setStatementAmount(Integer.toString(statementAmount));
+ //缁撳崟鎶ヤ慨鎬绘暟閲�
+ repairUserInfo.setStatementNumber(Integer.toString(statementNumber));
+ //閫�鍗曟姤淇暟閲�
+ repairUserInfo.setChargebackAmount(Integer.toString(chargebackAmount));
+ //閫�鍗曟姤淇�绘暟閲�
+ repairUserInfo.setChargebackNumber(Integer.toString(chargebackNumber));
+ //杞崟鎶ヤ慨鏁伴噺
+ repairUserInfo.setTransferOrderAmount(Integer.toString(transferOrderAmount));
+ //杞崟鎶ヤ慨鎬绘暟閲�
+ repairUserInfo.setTransferOrderNumber(Integer.toString(transferOrderNumber));
+ //娲惧崟鎶ヤ慨鏁伴噺
+ repairUserInfo.setDispatchAmount(Integer.toString(dispatchAmount));
+ //娲惧崟鎶ヤ慨鎬绘暟閲�
+ repairUserInfo.setDispatchNumber(Integer.toString(dispatchNumber));
+ //鍥炶鏁伴噺
+ repairUserInfo.setReturnAmount(Integer.toString(returnAmount));
+ //鍥炶鎬绘暟閲�
+ repairUserInfo.setReturnNumber(Integer.toString(returnNumber));
+ //鍛樺伐id鍜屽鍚嶄俊鎭泦鍚�
+ repairUserInfo.setRepairList(staffs);
+ //鍛樺伐璇勫垎
+ repairUserInfo.setScore(score);
+ repairUserList.add(repairUserInfo);
+ } else {
+ continue;
+ }
+ dealNumber = Integer.parseInt(repairUserInfo.getDealAmount()) + dealNumber;
+ statementNumber = Integer.parseInt(repairUserInfo.getStatementAmount()) + statementNumber;
+ chargebackNumber = Integer.parseInt(repairUserInfo.getChargebackAmount()) + chargebackNumber;
+ transferOrderNumber = Integer.parseInt(repairUserInfo.getTransferOrderAmount()) + transferOrderNumber;
+ dispatchNumber = Integer.parseInt(repairUserInfo.getDispatchAmount()) + dispatchNumber;
+ returnNumber = Integer.parseInt(repairUserInfo.getReturnAmount()) + returnNumber;
+ }
+ } else {
+ repairUserList = new ArrayList<>();
+ }
+
+ RepairUserDto repairUser = new RepairUserDto();
+ repairUser.setDealNumber(Integer.toString(dealNumber));
+ repairUser.setStatementNumber(Integer.toString(statementNumber));
+ repairUser.setChargebackNumber(Integer.toString(chargebackNumber));
+ repairUser.setTransferOrderNumber(Integer.toString(transferOrderNumber));
+ repairUser.setDispatchNumber(Integer.toString(dispatchNumber));
+ repairUser.setReturnNumber(Integer.toString(returnNumber));
+
+ //鑾峰彇鎬绘潯鏁�
+ int size = staffs.size();
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) size / (double) repairUserDto.getRow()), repairUserList.size(), repairUserList, staffs, repairUser);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> queryNoFeeRooms(RoomDto roomDto) {
+ int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryNoFeeRoomsCount(roomDto);
+
+ List<RoomDto> roomDtos = null;
+ if (count > 0) {
+ roomDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryNoFeeRooms(roomDto);
+ } else {
+ roomDtos = new ArrayList<>();
+ }
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) roomDto.getRow()), count, roomDtos);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> queryPayFeeDeposit(ReportDeposit reportDeposit) {
+ //鏌ヨ鎶奸噾
+ List<ReportDeposit> reportDeposits = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDeposit(reportDeposit);
+ //鏌ヨ鎶奸噾閫�璐规�婚噾棰�
+ List<ReportDeposit> reportDepositAmounts = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeDepositAmount(reportDeposit);
+
+ //鏌ヨ鎶奸噾璐圭敤椤�
+ FeeConfigDto feeConfigDto = new FeeConfigDto();
+ feeConfigDto.setCommunityId(reportDeposit.getCommunityId());
+ feeConfigDto.setFeeTypeCd("888800010006");
+ List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+
+ List<ReportDeposit> newReportDeposits = new ArrayList<>();
+ BigDecimal unpaidfeeAmount = new BigDecimal(0);//鏈氦璐�
+ BigDecimal unpaidfeeAmounts = new BigDecimal(0);//鏈即璐规�婚噾棰�
+ BigDecimal paidfeeAmount = new BigDecimal(0);//宸茬即璐�
+ BigDecimal paidfeeAmounts = new BigDecimal(0);//宸茬即璐规�婚噾棰�
+ BigDecimal refundedAmount = new BigDecimal(0);//宸查��璐�
+ BigDecimal refundedAmounts = new BigDecimal(0);//宸查��璐规�婚噾棰�
+ BigDecimal refundInProgressAmount = new BigDecimal(0); //閫�璐逛腑
+ BigDecimal refundInProgressAmounts = new BigDecimal(0);//閫�璐逛腑鎬婚噾棰�
+ BigDecimal refundFailedAmount = new BigDecimal(0); //閫�璐瑰け璐�
+ BigDecimal refundFailedAmounts = new BigDecimal(0);//閫�璐瑰け璐ユ�婚噾棰�
+ for (ReportDeposit deposit : reportDeposits) {
+ deposit.setFeeConfigDtos(feeConfigDtos);
+ newReportDeposits.add(deposit);
+ if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(deposit.getPayerObjType())) {
+ deposit.setObjName(deposit.getFloorNum()
+ + "鏍�" + deposit.getUnitNum()
+ + "鍗曞厓" + deposit.getRoomNum() + "瀹�");
+ } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(deposit.getPayerObjType())) {
+ deposit.setObjName(deposit.getCarNum());
+ }
+ //鏀惰垂涓紙鏈氦璐癸級
+ if ("2008001".equals(deposit.getState())) {
+ unpaidfeeAmount = unpaidfeeAmount.add(new BigDecimal(deposit.getAdditionalAmount()));
+ }
+ //鏀惰垂缁撴潫锛堝凡鏀惰垂锛�
+ if ("2009001".equals(deposit.getState()) && !StringUtil.isEmpty(deposit.getDetailState()) && "1400".equals(deposit.getDetailState())) {
+ paidfeeAmount = paidfeeAmount.add(new BigDecimal(deposit.getAdditionalAmount()));
+ }
+ if (!StringUtil.isEmpty(deposit.getDetailState()) && "1100".equals(deposit.getDetailState())) {//宸查��璐�
+ refundedAmount = refundedAmount.add(new BigDecimal(deposit.getAdditionalAmount()));
+ }
+ if (!StringUtil.isEmpty(deposit.getDetailState()) && "1000".equals(deposit.getDetailState())) {//閫�璐逛腑
+ refundInProgressAmount = refundInProgressAmount.add(new BigDecimal(deposit.getAdditionalAmount()));
+ }
+ if (!StringUtil.isEmpty(deposit.getDetailState()) && "1200".equals(deposit.getDetailState())) {//閫�璐瑰け璐�
+ refundFailedAmount = refundFailedAmount.add(new BigDecimal(deposit.getAdditionalAmount()));
+ }
+ }
+ for (ReportDeposit reportDeposit1 : reportDepositAmounts) {
+ if (StringUtil.isEmpty(reportDeposit1.getAllAmount())) {
+ throw new IllegalArgumentException("鏌ヨ鎬婚噾棰濋敊璇紒");
+ }
+ //鑾峰彇鎬婚噾棰�
+ BigDecimal bd = new BigDecimal(reportDeposit1.getAllAmount());
+ if (StringUtil.isEmpty(reportDeposit1.getDetailState())) { //鑾峰彇鏈即璐规�婚噾棰�
+ unpaidfeeAmounts = bd;
+ } else if (reportDeposit1.getDetailState().equals("1000")) { //鑾峰彇閫�璐逛腑鎬婚噾棰�
+ refundInProgressAmounts = bd;
+ } else if (reportDeposit1.getDetailState().equals("1100")) { //鑾峰彇宸查��璐规�婚噾棰�
+ refundedAmounts = bd;
+ } else if (reportDeposit1.getDetailState().equals("1200")) { //鑾峰彇閫�璐瑰け璐ユ�婚噾棰�
+ refundFailedAmounts = bd;
+ } else if (reportDeposit1.getDetailState().equals("1400")) { //鑾峰彇宸茬即璐规�婚噾棰�
+ paidfeeAmounts = bd;
+ }
+ }
+ HashMap<String, String> mp = new HashMap<>();
+ mp.put("unpaidfeeAmount", unpaidfeeAmount.toString());
+ mp.put("paidfeeAmount", paidfeeAmount.toString());
+ mp.put("refundedAmount", refundedAmount.toString());
+ mp.put("refundInProgressAmount", refundInProgressAmount.toString());
+ mp.put("refundFailedAmount", refundFailedAmount.toString());
+ mp.put("unpaidfeeAmounts", unpaidfeeAmounts.toString());
+ mp.put("paidfeeAmounts", paidfeeAmounts.toString());
+ mp.put("refundedAmounts", refundedAmounts.toString());
+ mp.put("refundInProgressAmounts", refundInProgressAmounts.toString());
+ mp.put("refundFailedAmounts", refundFailedAmounts.toString());
+ int size = 0;
+ if (newReportDeposits != null && newReportDeposits.size() > 0) {
+ //鏌ヨ鎵�鏈夋潯鏁�
+ reportDeposit.setPage(PageDto.DEFAULT_PAGE);
+ List<ReportDeposit> reportDeposits1 = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDeposit(reportDeposit);
+ size = reportDeposits1.size();
+ }
+
+ ResultVo resultVo = new ResultVo((int) Math.ceil((double) size / (double) reportDeposit.getRow()), size, newReportDeposits, mp);
+
+ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+ return responseEntity;
+ }
+
+ @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) {
@@ -375,12 +1032,9 @@
}
private void freshReportOweDay(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos) {
-
- Date nowDate = DateUtil.getCurrentDate();
-
for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
try {
- int day = DateUtil.daysBetween(nowDate, DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getFeeCreateTime(),
+ int day = DateUtil.daysBetween(DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A), DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getFeeCreateTime(),
DateUtil.DATE_FORMATE_STRING_A));
reportFeeMonthStatisticsDto.setOweDay(day);
} catch (Exception e) {
--
Gitblit v1.8.0