From 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 19 七月 2022 21:49:55 +0800
Subject: [PATCH] 优化添加设备 功能
---
service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeYearStatisticsInnerServiceSMOImpl.java | 98 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 69 insertions(+), 29 deletions(-)
diff --git a/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeYearStatisticsInnerServiceSMOImpl.java b/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeYearStatisticsInnerServiceSMOImpl.java
old mode 100644
new mode 100755
index e6b63e9..d419eb6
--- a/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeYearStatisticsInnerServiceSMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeYearStatisticsInnerServiceSMOImpl.java
@@ -23,7 +23,7 @@
import com.java110.utils.cache.CommonCache;
import com.java110.utils.util.*;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.RequestBody;
@@ -31,8 +31,7 @@
import java.math.BigDecimal;
import java.text.ParseException;
-import java.util.Calendar;
-import java.util.List;
+import java.util.*;
/**
* @ClassName GeneratorFeeMonthStatisticsInnerServiceSMOImpl
@@ -84,12 +83,40 @@
Assert.hasLength(communityId, "鏈寘鍚皬鍖轰俊鎭�");
+ //杩欓噷澶勭悊 鎶ヨ〃涓殑璐圭敤鏄惁琚汉涓� 鍙栨秷 鎴栬�呰垂鐢ㄩ」鏄惁琚垹闄わ紝杩欑鏁版嵁 鎶ヨ〃涓仛娓呯悊锛屼互闃插奖鍝� 鎶ヨ〃鐨勫噯纭害
+ feeDataFiltering(communityId);
+
//澶勭悊鎴垮眿璐圭敤
dealRoomFee(reportFeeMonthStatisticsPo);
//澶勭悊杞︿綅璐圭敤
dealCarFee(reportFeeMonthStatisticsPo);
+ }
+
+ private void feeDataFiltering(String communityId) {
+ Map reportFeeDto = new HashMap();
+ reportFeeDto.put("communityId", communityId);
+ List<Map> feeDtos = reportCommunityServiceDaoImpl.queryInvalidFeeMonthStatistics(reportFeeDto);
+
+ List<String> feeIds = new ArrayList<>();
+ for (Map feeDto : feeDtos) {
+ if (!feeDto.containsKey("feeId") || StringUtil.isNullOrNone(feeDto.get("feeId"))) {
+ continue;
+ }
+
+ feeIds.add(feeDto.get("feeId").toString());
+
+ if (feeIds.size() >= 50) {
+ reportFeeDto.put("feeIds", feeIds);
+ reportCommunityServiceDaoImpl.deleteInvalidFee(reportFeeDto);
+ feeIds = new ArrayList<>();
+ }
+ }
+ reportFeeDto.put("feeIds", feeIds);
+ if (feeIds.size() > 0) {
+ reportCommunityServiceDaoImpl.deleteInvalidFee(reportFeeDto);
+ }
}
@@ -173,7 +200,7 @@
reportFeeDto.setPayerObjId(tmpReportCarDto.getCarId());
reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
//reportFeeDto.setState(FeeDto.STATE_DOING);
- reportFeeDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
+ //reportFeeDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto);
if (feeDtos == null || feeDtos.size() < 1) {
@@ -195,7 +222,7 @@
reportFeeYearCollectionDto.setCommunityId(tmpReportCarDto.getCommunityId());
reportFeeYearCollectionDto.setConfigId(tmpReportFeeDto.getConfigId());
reportFeeYearCollectionDto.setObjId(tmpReportFeeDto.getPayerObjId());
- reportFeeYearCollectionDto.setFeeId(tmpReportFeeDto.getFeeId());
+ //reportFeeYearCollectionDto.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeYearCollectionDto.setObjType(tmpReportFeeDto.getPayerObjType());
List<ReportFeeYearCollectionDto> statistics = BeanConvertUtil.covertBeanList(
reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto)),
@@ -211,7 +238,7 @@
reportFeeYearCollectionPo.setObjId(tmpReportCarDto.getCarId());
reportFeeYearCollectionPo.setObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
reportFeeYearCollectionPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
- reportFeeYearCollectionPo.setObjName(tmpReportCarDto.getCarNum() + "(" + tmpReportCarDto.getAreaNum() + "鍋滆溅鍦�" + tmpReportCarDto.getNum() + "杞︿綅)");
+ reportFeeYearCollectionPo.setObjName(tmpReportCarDto.getCarNum());
reportFeeYearCollectionPo.setOwnerId(tmpReportCarDto.getOwnerId());
reportFeeYearCollectionPo.setOwnerName(tmpReportCarDto.getOwnerName());
reportFeeYearCollectionPo.setOwnerLink(tmpReportCarDto.getLink());
@@ -230,16 +257,18 @@
Calendar configEndTime = Calendar.getInstance();
configStartTime.setTime(tmpReportFeeDto.getConfigEndTime());
int endYear = configEndTime.get(Calendar.YEAR);
- int curYear = Calendar.getInstance().get(Calendar.YEAR);
- double feePrice = computeFeeSMOImpl.getReportFeePrice(tmpReportFeeDto, null, tmpReportCarDto);
- tmpReportFeeDto.setFeePrice(feePrice);
+ int curYear = Calendar.getInstance().get(Calendar.YEAR) + 1;
+
+ FeeDto feeDto = BeanConvertUtil.covertBean(tmpReportFeeDto, FeeDto.class);
+ //鍒峰叆娆犺垂閲戦
+ computeFeeSMOImpl.computeEveryOweFee(feeDto);
if (endYear > curYear) {
endYear = curYear;
}
for (int year = startYear; year <= endYear; year++) {
- computeYearFee(year, tmpReportFeeDto, reportFeeYearCollectionPo);
+ computeYearFee(year, feeDto, reportFeeYearCollectionPo);
}
}
@@ -255,7 +284,8 @@
reportFeeDto.setPayerObjId(reportRoomDto.getRoomId());
reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
//reportFeeDto.setState(FeeDto.STATE_DOING);
- reportFeeDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
+ //reportFeeDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
+
List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto);
if (feeDtos == null || feeDtos.size() < 1) {
@@ -280,7 +310,7 @@
reportFeeYearCollectionDto.setCommunityId(reportRoomDto.getCommunityId());
reportFeeYearCollectionDto.setConfigId(tmpReportFeeDto.getConfigId());
reportFeeYearCollectionDto.setObjId(tmpReportFeeDto.getPayerObjId());
- reportFeeYearCollectionDto.setFeeId(tmpReportFeeDto.getFeeId());
+ //reportFeeYearCollectionDto.setFeeId(tmpReportFeeDto.getFeeId());
reportFeeYearCollectionDto.setObjType(tmpReportFeeDto.getPayerObjType());
List<ReportFeeYearCollectionDto> statistics = BeanConvertUtil.covertBeanList(
reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto)),
@@ -297,9 +327,9 @@
reportFeeYearCollectionPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
reportFeeYearCollectionPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
if (RoomDto.ROOM_TYPE_ROOM.equals(reportRoomDto.getRoomType())) {
- reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "鏍�" + reportRoomDto.getUnitNum() + "鍗曞厓" + reportRoomDto.getRoomNum() + "瀹�");
+ reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "-" + reportRoomDto.getUnitNum() + "-" + reportRoomDto.getRoomNum());
} else {
- reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "鏍�" + reportRoomDto.getRoomNum() + "瀹�");
+ reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "-" + reportRoomDto.getRoomNum());
}
reportFeeYearCollectionPo.setOwnerId(reportRoomDto.getOwnerId());
reportFeeYearCollectionPo.setOwnerName(reportRoomDto.getOwnerName());
@@ -321,17 +351,18 @@
int endYear = configEndTime.get(Calendar.YEAR);
//褰撳墠骞�
- int curYear = Calendar.getInstance().get(Calendar.YEAR);
+ int curYear = Calendar.getInstance().get(Calendar.YEAR) + 1;
- double feePrice = computeFeeSMOImpl.getReportFeePrice(tmpReportFeeDto, reportRoomDto, null);
- tmpReportFeeDto.setFeePrice(feePrice);
+ FeeDto feeDto = BeanConvertUtil.covertBean(tmpReportFeeDto, FeeDto.class);
+ //鍒峰叆娆犺垂閲戦
+ computeFeeSMOImpl.computeEveryOweFee(feeDto);
if (endYear > curYear) {
endYear = curYear;
}
for (int year = startYear; year <= endYear; year++) {
- computeYearFee(year, tmpReportFeeDto, reportFeeYearCollectionPo);
+ computeYearFee(year, feeDto, reportFeeYearCollectionPo);
}
}
@@ -339,10 +370,10 @@
* 璁$畻鎸囧畾骞寸殑鏁版嵁
*
* @param year
- * @param tmpReportFeeDto
+ * @param feeDto
* @param reportFeeYearCollectionPo
*/
- private void computeYearFee(int year, ReportFeeDto tmpReportFeeDto, ReportFeeYearCollectionPo reportFeeYearCollectionPo) {
+ private void computeYearFee(int year, FeeDto feeDto, ReportFeeYearCollectionPo reportFeeYearCollectionPo) {
int curYear = Calendar.getInstance().get(Calendar.YEAR);
ReportFeeYearCollectionDetailDto reportFeeYearCollectionDetailDto = new ReportFeeYearCollectionDetailDto();
@@ -354,13 +385,13 @@
= BeanConvertUtil.covertBeanList(reportFeeYearCollectionDetailServiceDaoImpl.getReportFeeYearCollectionDetailInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDetailDto)),
ReportFeeYearCollectionDetailDto.class);
- if (!ListUtil.isNull(reportFeeYearCollectionDetailDtos) && year != curYear) { // 璇存槑宸茬粡澶勭悊杩囦簡 涓嶅啀澶勭悊
- return;
- }
+// if (!ListUtil.isNull(reportFeeYearCollectionDetailDtos) && year != curYear) { // 璇存槑宸茬粡澶勭悊杩囦簡 涓嶅啀澶勭悊
+// return;
+// }
- double receivableAmount = getReceivableAmount(tmpReportFeeDto);
+ double receivableAmount = feeDto.getFeePrice();
- double receivedAmount = getReceivedAmount(tmpReportFeeDto, year);
+ double receivedAmount = getReceivedAmount(feeDto, year);
ReportFeeYearCollectionDetailPo reportFeeYearCollectionDetailPo = null;
@@ -398,6 +429,14 @@
int curYear = Calendar.getInstance().get(Calendar.YEAR);
double cycleMonth = 12;
+ if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag()) && FeeDto.STATE_DOING.equals(tmpReportFeeDto.getState())) { // 涓�娆℃�ц垂鐢� 璐圭敤娌℃湁缁撴潫
+ return StringUtil.isEmpty(tmpReportFeeDto.getAmount()) ? 0 : Double.parseDouble(tmpReportFeeDto.getAmount());
+ }
+
+ if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) { // 涓�娆℃�ц垂鐢ㄦ病鏈夊簲鏀� 鎵�浠ュ啓鎴�0
+ return 0;
+ }
+
if (endYear == curYear) {
try {
cycleMonth = computeFeeSMOImpl.dayCompare(DateUtil.getDateFromString(curYear + "-01-01", DateUtil.DATE_FORMATE_STRING_B), tmpReportFeeDto.getConfigEndTime());
@@ -417,14 +456,15 @@
* @param tmpReportFeeDto
* @return
*/
- private double getReceivedAmount(ReportFeeDto tmpReportFeeDto, int year) {
+ private double getReceivedAmount(FeeDto tmpReportFeeDto, int year) {
ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto();
- feeDetailDto.setFeeId(tmpReportFeeDto.getFeeId());
+ feeDetailDto.setConfigId(tmpReportFeeDto.getConfigId());
+ feeDetailDto.setPayerObjId(tmpReportFeeDto.getPayerObjId());
String flag = CommonCache.getValue(RECEIVED_TIME);
if (RECEIVED_TIME_START.equals(flag)) {
- feeDetailDto.setStartTime(year + "");
+ feeDetailDto.setCurStartYear(year + "");
} else {
- feeDetailDto.setEndTime(year + "");
+ feeDetailDto.setCurEndYear(year + "");
}
double receivedAmount = reportFeeServiceDaoImpl.getFeeReceivedAmount(feeDetailDto);
--
Gitblit v1.8.0