From 6e8c95d31d85b53857e4e3ce12ea303eb0ea42eb Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 19 八月 2021 00:47:48 +0800
Subject: [PATCH] 优化代码
---
service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeMonthStatisticsInnerServiceSMOImpl.java | 100 +++++++++++++++++++++++++++++++-------------------
1 files changed, 62 insertions(+), 38 deletions(-)
diff --git a/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeMonthStatisticsInnerServiceSMOImpl.java b/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeMonthStatisticsInnerServiceSMOImpl.java
old mode 100644
new mode 100755
index 5bfbabd..28076bb
--- a/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeMonthStatisticsInnerServiceSMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeMonthStatisticsInnerServiceSMOImpl.java
@@ -1,5 +1,6 @@
package com.java110.report.smo.impl;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.smo.IComputeFeeSMO;
@@ -196,7 +197,7 @@
ReportFeeDto reportFeeDto = new ReportFeeDto();
reportFeeDto.setPayerObjId(tmpReportCarDto.getCarId());
reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
- reportFeeDto.setState(FeeDto.STATE_DOING);
+ //reportFeeDto.setState(FeeDto.STATE_DOING);
List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto);
if (feeDtos == null || feeDtos.size() < 1) {
@@ -214,11 +215,16 @@
private void doDealCarFee(ReportCarDto tmpReportCarDto, ReportFeeDto tmpReportFeeDto) {
+ //璐圭敤宸茬粡缁撴潫 骞朵笖褰撴湀瀹炴敹涓�0 閭e氨鏄� 涔嬪墠灏辩粨鏉熶簡 鏃犻渶澶勭悊 && ListUtil.isNull(statistics)
+ if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState())
+ && getCurFeeReceivedAmount(tmpReportFeeDto) == 0) {
+ return;
+ }
ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto = new ReportFeeMonthStatisticsDto();
reportFeeMonthStatisticsDto.setCommunityId(tmpReportCarDto.getCommunityId());
reportFeeMonthStatisticsDto.setConfigId(tmpReportFeeDto.getConfigId());
reportFeeMonthStatisticsDto.setObjId(tmpReportFeeDto.getPayerObjId());
- reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId());
+ //reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsDto.setObjType(tmpReportFeeDto.getPayerObjType());
reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + "");
reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + "");
@@ -227,21 +233,17 @@
ReportFeeMonthStatisticsDto.class);
double receivedAmount = getReceivedAmount(tmpReportFeeDto); //瀹炴敹
- //璐圭敤宸茬粡缁撴潫 骞朵笖褰撴湀瀹炴敹涓�0 閭e氨鏄� 涔嬪墠灏辩粨鏉熶簡 鏃犻渶澶勭悊 && ListUtil.isNull(statistics)
- if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState())
- && receivedAmount == 0) {
- return;
- }
+
FeeDto feeDto = BeanConvertUtil.covertBean(tmpReportFeeDto, FeeDto.class);
OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(tmpReportCarDto, OwnerCarDto.class);
Map<String, Object> targetEndDateAndOweMonth = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto, ownerCarDto);
Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
tmpReportFeeDto.setDeadlineTime(targetEndDate);
- double receivableAmount = getReceivableAmountByCar(tmpReportFeeDto, null, tmpReportCarDto); //搴旀敹
+ double oweAmount = getOweAmountByCar(tmpReportFeeDto, null, tmpReportCarDto); //搴旀敹
dealBeforeUploadCarFee(tmpReportFeeDto, tmpReportCarDto);
- double oweAmount = getOweAmount(tmpReportFeeDto, receivableAmount, receivedAmount); //娆犺垂
+ double receivableAmount = getReceivableAmount(tmpReportFeeDto,receivedAmount); //娆犺垂
ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo();
@@ -265,6 +267,7 @@
reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsPo.setFeeMonth(DateUtil.getMonth() + "");
reportFeeMonthStatisticsPo.setFeeYear(DateUtil.getYear() + "");
+ reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getNextMonthFirstDay(DateUtil.DATE_FORMATE_STRING_A));
reportFeeMonthStatisticsPo.setObjId(tmpReportCarDto.getCarId());
reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
reportFeeMonthStatisticsPo.setFeeName(tmpReportFeeDto.getFeeName());
@@ -283,8 +286,7 @@
ReportFeeMonthStatisticsPo tmpReportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo();
tmpReportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
- tmpReportFeeMonthStatisticsPo.setFeeYear(year + "");
- tmpReportFeeMonthStatisticsPo.setFeeMonth(month + "");
+ tmpReportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(endTime,DateUtil.DATE_FORMATE_STRING_A));
tmpReportFeeMonthStatisticsPo.setOweAmount("0");
reportFeeMonthStatisticsServiceDaoImpl.updateReportFeeMonthStatisticsOwe(BeanConvertUtil.beanCovertMap(tmpReportFeeMonthStatisticsPo));
}
@@ -355,6 +357,7 @@
reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsPo.setFeeMonth((preMonthDate.get(Calendar.MONTH) + 1) + "");
reportFeeMonthStatisticsPo.setFeeYear(preMonthDate.get(Calendar.YEAR) + "");
+ reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(),DateUtil.DATE_FORMATE_STRING_A));
reportFeeMonthStatisticsPo.setObjId(tmpReportCarDto.getCarId());
reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
reportFeeMonthStatisticsPo.setFeeName(tmpReportFeeDto.getFeeName());
@@ -374,7 +377,7 @@
ReportFeeDto reportFeeDto = new ReportFeeDto();
reportFeeDto.setPayerObjId(reportRoomDto.getRoomId());
reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
- reportFeeDto.setState(FeeDto.STATE_DOING);
+ //reportFeeDto.setState(FeeDto.STATE_DOING);
List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto);
if (feeDtos == null || feeDtos.size() < 1) {
@@ -394,11 +397,17 @@
private void doDealRoomFee(ReportRoomDto reportRoomDto, ReportFeeDto tmpReportFeeDto) {
+ //璐圭敤宸茬粡缁撴潫 骞朵笖褰撴湀瀹炴敹涓�0 閭e氨鏄� 涔嬪墠灏辩粨鏉熶簡 鏃犻渶澶勭悊 && ListUtil.isNull(statistics)
+ if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState())
+ && getCurFeeReceivedAmount(tmpReportFeeDto) == 0) {
+ return;
+ }
+
ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto = new ReportFeeMonthStatisticsDto();
reportFeeMonthStatisticsDto.setCommunityId(reportRoomDto.getCommunityId());
reportFeeMonthStatisticsDto.setConfigId(tmpReportFeeDto.getConfigId());
reportFeeMonthStatisticsDto.setObjId(tmpReportFeeDto.getPayerObjId());
- reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId());
+ //reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsDto.setObjType(tmpReportFeeDto.getPayerObjType());
reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + "");
reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + "");
@@ -408,22 +417,18 @@
double receivedAmount = getReceivedAmount(tmpReportFeeDto); //瀹炴敹
- //璐圭敤宸茬粡缁撴潫 骞朵笖褰撴湀瀹炴敹涓�0 閭e氨鏄� 涔嬪墠灏辩粨鏉熶簡 鏃犻渶澶勭悊 && ListUtil.isNull(statistics)
- if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState())
- && receivedAmount == 0) {
- return;
- }
+
FeeDto feeDto = BeanConvertUtil.covertBean(tmpReportFeeDto, FeeDto.class);
Map<String, Object> targetEndDateAndOweMonth = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto, null);
Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
tmpReportFeeDto.setDeadlineTime(targetEndDate);
- double receivableAmount = getReceivableAmount(tmpReportFeeDto, reportRoomDto, null); //搴旀敹
+ double oweAmount = getOweAmount(tmpReportFeeDto, reportRoomDto, null); //娆犺垂
+ double receivableAmount = getReceivableAmount(tmpReportFeeDto, receivedAmount); //搴旀敹
//瑙e喅涓婄嚎鏃� 涔嬪墠娆犺垂娌℃湁鍒峰叆瀵艰嚧璐圭敤閲戦瀵逛笉涓婇棶棰樺鐞�
dealBeforeUploadRoomFee(reportRoomDto, tmpReportFeeDto, receivableAmount);
- double oweAmount = getOweAmount(tmpReportFeeDto, receivableAmount, receivedAmount); //娆犺垂
ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo();
@@ -434,6 +439,7 @@
//reportFeeMonthStatisticsPo.setReceivableAmount(receivableAmount + "");
reportFeeMonthStatisticsPo.setReceivedAmount(receivedAmount + "");
reportFeeMonthStatisticsPo.setOweAmount(oweAmount + "");
+ reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsPo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
reportFeeMonthStatisticsPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
reportFeeMonthStatisticsServiceDaoImpl.updateReportFeeMonthStatisticsInfo(BeanConvertUtil.beanCovertMap(reportFeeMonthStatisticsPo));
@@ -448,6 +454,7 @@
reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsPo.setFeeMonth(DateUtil.getMonth() + "");
reportFeeMonthStatisticsPo.setFeeYear(DateUtil.getYear() + "");
+ reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getNextMonthFirstDay(DateUtil.DATE_FORMATE_STRING_A));
reportFeeMonthStatisticsPo.setObjId(reportRoomDto.getRoomId());
reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
reportFeeMonthStatisticsPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
@@ -464,25 +471,19 @@
//灏嗙即璐� 鍒版湡鏃堕棿涔嬪墠寰楁瑺璐瑰埛涓�0
Date endTime = tmpReportFeeDto.getEndTime();
- Calendar calender = Calendar.getInstance();
- calender.setTime(endTime);
- int year = calender.get(Calendar.YEAR);
- int month = calender.get(Calendar.MONTH);
-
ReportFeeMonthStatisticsPo tmpReportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo();
tmpReportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
- tmpReportFeeMonthStatisticsPo.setFeeYear(year + "");
- tmpReportFeeMonthStatisticsPo.setFeeMonth(month + "");
+ tmpReportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(endTime,DateUtil.DATE_FORMATE_STRING_A));
tmpReportFeeMonthStatisticsPo.setOweAmount("0");
reportFeeMonthStatisticsServiceDaoImpl.updateReportFeeMonthStatisticsOwe(BeanConvertUtil.beanCovertMap(tmpReportFeeMonthStatisticsPo));
}
public static void main(String[] args) {
- Calendar c = Calendar.getInstance();
- c.set(Calendar.DAY_OF_MONTH, 1);
- c.add(Calendar.DAY_OF_MONTH, -1);
+ ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto();
+ feeDetailDto.setStartTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(), DateUtil.DATE_FORMATE_STRING_A));
+ feeDetailDto.setEndTime(DateUtil.getFormatTimeString(DateUtil.getNextMonthFirstDate(), DateUtil.DATE_FORMATE_STRING_A));
- System.out.println(DateUtil.getFormatTimeString(c.getTime(), DateUtil.DATE_FORMATE_STRING_A));
+ System.out.println(JSONObject.toJSONString(feeDetailDto));
}
/**
@@ -549,6 +550,8 @@
reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeMonthStatisticsPo.setFeeMonth((preMonthDate.get(Calendar.MONTH) + 1) + "");
reportFeeMonthStatisticsPo.setFeeYear(preMonthDate.get(Calendar.YEAR) + "");
+ reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(),DateUtil.DATE_FORMATE_STRING_A));
+
reportFeeMonthStatisticsPo.setObjId(reportRoomDto.getRoomId());
reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
reportFeeMonthStatisticsPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
@@ -567,15 +570,34 @@
* 褰撴湀娆犺垂
*
* @param tmpReportFeeDto
- * @param receivableAmount
* @param receivedAmount
* @return
*/
- private double getOweAmount(ReportFeeDto tmpReportFeeDto, double receivableAmount, double receivedAmount) {
+ private double getReceivableAmount(ReportFeeDto tmpReportFeeDto, double receivedAmount) {
+ //涓�娆℃�ц垂鐢� 闄や互鏈堜唤 骞冲潎
+ if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) {
+ return computeOnceFee(tmpReportFeeDto);
+ }
+ return tmpReportFeeDto.getFeePrice();
- return receivableAmount;
+ }
+ /**
+ * 鑾峰彇褰撴湀瀹炴敹
+ *
+ * @param tmpReportFeeDto
+ * @return
+ */
+ private double getCurFeeReceivedAmount(ReportFeeDto tmpReportFeeDto) {
+ ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto();
+ feeDetailDto.setStartTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(), DateUtil.DATE_FORMATE_STRING_A));
+ feeDetailDto.setEndTime(DateUtil.getFormatTimeString(DateUtil.getNextMonthFirstDate(), DateUtil.DATE_FORMATE_STRING_A));
+ feeDetailDto.setFeeId(tmpReportFeeDto.getFeeId());
+
+ double receivedAmount = reportFeeServiceDaoImpl.getFeeReceivedAmount(feeDetailDto);
+
+ return receivedAmount;
}
/**
@@ -588,7 +610,9 @@
ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto();
feeDetailDto.setStartTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(), DateUtil.DATE_FORMATE_STRING_A));
feeDetailDto.setEndTime(DateUtil.getFormatTimeString(DateUtil.getNextMonthFirstDate(), DateUtil.DATE_FORMATE_STRING_A));
- feeDetailDto.setFeeId(tmpReportFeeDto.getFeeId());
+ feeDetailDto.setConfigId(tmpReportFeeDto.getConfigId());
+ feeDetailDto.setPayerObjId(tmpReportFeeDto.getPayerObjId());
+
double receivedAmount = reportFeeServiceDaoImpl.getFeeReceivedAmount(feeDetailDto);
return receivedAmount;
@@ -600,7 +624,7 @@
* @param tmpReportFeeDto
* @return
*/
- private double getReceivableAmountByCar(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) {
+ private double getOweAmountByCar(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) {
double feePrice = computeFeeSMOImpl.getReportFeePrice(tmpReportFeeDto, reportRoomDto, reportCarDto);
tmpReportFeeDto.setFeePrice(feePrice);
@@ -658,7 +682,7 @@
month = Math.ceil(month);
BigDecimal feePriceDec = new BigDecimal(tmpReportFeeDto.getFeePrice());
- double money = feePriceDec.divide(new BigDecimal(month)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+ double money = feePriceDec.divide(new BigDecimal(month),2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
return money;
}
@@ -668,7 +692,7 @@
* @param tmpReportFeeDto
* @return
*/
- private double getReceivableAmount(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) {
+ private double getOweAmount(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) {
double feePrice = computeFeeSMOImpl.getReportFeePrice(tmpReportFeeDto, reportRoomDto, reportCarDto);
tmpReportFeeDto.setFeePrice(feePrice);
--
Gitblit v1.8.0