From fe667a39c8a4e713b86c5d8b5d57ab42421190e6 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期一, 03 七月 2023 01:23:01 +0800
Subject: [PATCH] 优化后端代理

---
 service-report/src/main/java/com/java110/report/smo/impl/GeneratorOweFeeInnerServiceSMOImpl.java |   89 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 78 insertions(+), 11 deletions(-)

diff --git a/service-report/src/main/java/com/java110/report/smo/impl/GeneratorOweFeeInnerServiceSMOImpl.java b/service-report/src/main/java/com/java110/report/smo/impl/GeneratorOweFeeInnerServiceSMOImpl.java
index 4467b3d..0a1e3da 100644
--- a/service-report/src/main/java/com/java110/report/smo/impl/GeneratorOweFeeInnerServiceSMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/smo/impl/GeneratorOweFeeInnerServiceSMOImpl.java
@@ -6,25 +6,23 @@
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.dto.logSystemError.LogSystemErrorDto;
+import com.java110.dto.log.LogSystemErrorDto;
 import com.java110.dto.report.ReportFeeDto;
-import com.java110.dto.reportOweFee.ReportOweFeeDto;
+import com.java110.dto.reportFee.ReportOweFeeDto;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.report.IGeneratorOweFeeInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.po.logSystemError.LogSystemErrorPo;
-import com.java110.po.reportFeeMonthStatistics.ReportFeeMonthStatisticsPo;
-import com.java110.po.reportOweFee.ReportOweFeePo;
+import com.java110.po.log.LogSystemErrorPo;
+import com.java110.po.reportFee.ReportFeeMonthStatisticsPo;
+import com.java110.po.reportFee.ReportOweFeePo;
 import com.java110.report.dao.IReportCommunityServiceDao;
 import com.java110.report.dao.IReportFeeServiceDao;
 import com.java110.report.dao.IReportFeeYearCollectionDetailServiceDao;
 import com.java110.report.dao.IReportFeeYearCollectionServiceDao;
 import com.java110.report.dao.IReportOweFeeServiceDao;
 import com.java110.service.smo.ISaveSystemErrorSMO;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.DateUtil;
-import com.java110.utils.util.ExceptionUtil;
+import com.java110.utils.util.*;
 import org.slf4j.Logger;
 import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +30,7 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -82,6 +81,9 @@
     @Autowired
     private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
     @Override
     public int generatorOweData(@RequestBody ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo) {
 
@@ -98,6 +100,7 @@
         }
         return 0;
     }
+
 
     @Async
     private void doGeneratorData(ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo) {
@@ -129,10 +132,31 @@
         }
 
     }
+
     private void feeDataFiltering(String communityId) {
+
         Map reportFeeDto = new HashMap();
         reportFeeDto.put("communityId", communityId);
-        reportOweFeeServiceDaoImpl.deleteInvalidFee(reportFeeDto);
+        List<Map> feeDtos = reportOweFeeServiceDaoImpl.queryInvalidOweFee(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);
+                reportOweFeeServiceDaoImpl.deleteInvalidFee(reportFeeDto);
+                feeIds = new ArrayList<>();
+            }
+        }
+        reportFeeDto.put("feeIds", feeIds);
+        if (feeIds.size() > 0) {
+            reportOweFeeServiceDaoImpl.deleteInvalidFee(reportFeeDto);
+        }
     }
 
 
@@ -177,12 +201,18 @@
     private void generateFee(ReportFeeDto reportFeeDto, FeeConfigDto feeConfigDto) {
 
         FeeDto feeDto = BeanConvertUtil.covertBean(reportFeeDto, FeeDto.class);
+
+        FeeAttrDto feeAttrDto = new FeeAttrDto();
+        feeAttrDto.setFeeId(feeDto.getFeeId());
+        List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
+
+        feeDto.setFeeAttrDtos(feeAttrDtos);
         //鍒峰叆娆犺垂閲戦
         computeFeeSMOImpl.computeEveryOweFee(feeDto);
 
         //淇濆瓨鏁版嵁
         ReportOweFeePo reportOweFeePo = new ReportOweFeePo();
-        reportOweFeePo.setAmountOwed(feeDto.getFeePrice() + "");
+        reportOweFeePo.setAmountOwed(feeDto.getFeeTotalPrice() + "");
         reportOweFeePo.setCommunityId(feeDto.getCommunityId());
         reportOweFeePo.setConfigId(feeConfigDto.getConfigId());
         reportOweFeePo.setConfigName(feeConfigDto.getFeeName());
@@ -210,4 +240,41 @@
         }
     }
 
+    @Override
+    public int computeOweFee(@RequestBody FeeDto feeDto) {
+        //鍒峰叆娆犺垂閲戦
+        computeFeeSMOImpl.computeEveryOweFee(feeDto);
+
+        //淇濆瓨鏁版嵁
+        ReportOweFeePo reportOweFeePo = new ReportOweFeePo();
+        reportOweFeePo.setAmountOwed(feeDto.getFeeTotalPrice() + "");
+        reportOweFeePo.setCommunityId(feeDto.getCommunityId());
+        reportOweFeePo.setConfigId(feeDto.getConfigId());
+        reportOweFeePo.setConfigName(feeDto.getFeeName());
+        reportOweFeePo.setDeadlineTime(DateUtil.getFormatTimeString(feeDto.getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A));
+        reportOweFeePo.setEndTime(DateUtil.getFormatTimeString(feeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
+        reportOweFeePo.setFeeId(feeDto.getFeeId());
+        reportOweFeePo.setFeeName(feeDto.getFeeName());
+        reportOweFeePo.setOwnerId(FeeAttrDto.getFeeAttrValue(feeDto, FeeAttrDto.SPEC_CD_OWNER_ID));
+        reportOweFeePo.setOwnerName(FeeAttrDto.getFeeAttrValue(feeDto, FeeAttrDto.SPEC_CD_OWNER_NAME));
+        reportOweFeePo.setOwnerTel(FeeAttrDto.getFeeAttrValue(feeDto, FeeAttrDto.SPEC_CD_OWNER_LINK));
+        reportOweFeePo.setPayerObjId(feeDto.getPayerObjId());
+        reportOweFeePo.setPayerObjName(computeFeeSMOImpl.getFeeObjName(feeDto));
+        reportOweFeePo.setPayerObjType(feeDto.getPayerObjType());
+        reportOweFeePo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
+        reportOweFeeDto.setFeeId(feeDto.getFeeId());
+        reportOweFeeDto.setPayerObjId(feeDto.getPayerObjId());
+        List<Map> reportOweFeeDtos = reportOweFeeServiceDaoImpl.queryReportAllOweFees(BeanConvertUtil.beanCovertMap(reportOweFeeDto));
+        if (reportOweFeeDtos == null || reportOweFeeDtos.size() < 1) {
+            reportOweFeePo.setOweId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_oweId));
+            reportOweFeeServiceDaoImpl.saveReportOweFeeInfo(BeanConvertUtil.beanCovertMap(reportOweFeePo));
+        } else {
+            reportOweFeePo.setOweId(reportOweFeeDtos.get(0).get("oweId").toString());
+            reportOweFeeServiceDaoImpl.updateReportOweFeeInfo(BeanConvertUtil.beanCovertMap(reportOweFeePo));
+        }
+        return 1;
+    }
+
+
 }

--
Gitblit v1.8.0