From 22d7512ecb341426ecaa5ac8d48d7aa2b37c1059 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 09 六月 2022 16:27:41 +0800
Subject: [PATCH] 优化代码

---
 service-job/src/main/java/com/java110/job/task/fee/GenerateOweFeeTemplate.java |   72 ++++++++++++++++++++++++++---------
 1 files changed, 53 insertions(+), 19 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/task/fee/GenerateOweFeeTemplate.java b/service-job/src/main/java/com/java110/job/task/fee/GenerateOweFeeTemplate.java
index 5f3ebf8..a860627 100644
--- a/service-job/src/main/java/com/java110/job/task/fee/GenerateOweFeeTemplate.java
+++ b/service-job/src/main/java/com/java110/job/task/fee/GenerateOweFeeTemplate.java
@@ -2,16 +2,14 @@
 
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.IComputeFeeSMO;
-import com.java110.dto.RoomDto;
 import com.java110.dto.community.CommunityDto;
-import com.java110.dto.fee.BillOweFeeDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.dto.owner.OwnerCarDto;
-import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.logSystemError.LogSystemErrorDto;
 import com.java110.dto.reportOweFee.ReportOweFeeDto;
 import com.java110.dto.task.TaskDto;
+import com.java110.intf.common.ILogSystemErrorInnerServiceSMO;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
@@ -21,9 +19,11 @@
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.job.quartz.TaskSystemQuartz;
+import com.java110.po.logSystemError.LogSystemErrorPo;
 import com.java110.po.reportOweFee.ReportOweFeePo;
+import com.java110.service.smo.ISaveSystemErrorSMO;
 import com.java110.utils.util.DateUtil;
-import com.java110.utils.util.StringUtil;
+import com.java110.utils.util.ExceptionUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -39,6 +39,8 @@
  **/
 @Component
 public class GenerateOweFeeTemplate extends TaskSystemQuartz {
+
+    public static final double DEFAULT_ROW = 200.0;
 
 
     @Autowired
@@ -68,6 +70,12 @@
     @Autowired
     private IComputeFeeSMO computeFeeSMOImpl;
 
+    @Autowired
+    private ILogSystemErrorInnerServiceSMO logSystemErrorInnerServiceSMOImpl;
+
+    @Autowired
+    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
+
     @Override
     protected void process(TaskDto taskDto) throws Exception {
 
@@ -90,15 +98,18 @@
         //鏌ヨ璐圭敤椤�
         FeeConfigDto feeConfigDto = new FeeConfigDto();
         feeConfigDto.setCommunityId(communityDto.getCommunityId());
-        if (StringUtil.isEmpty(feeConfigDto.getBillType())) {
-            throw new IllegalArgumentException("閰嶇疆閿欒 鏈嬁鍒板睘鎬у��");
-        }
+
         List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
 
         for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) {
             try {
                 GenerateOweFeeByFeeConfig(taskDto, tmpFeeConfigDto);
             } catch (Exception e) {
+                LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+                logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+                logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
+                logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+                saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
                 logger.error("璐圭敤鍑鸿处澶辫触" + tmpFeeConfigDto.getConfigId(), e);
             }
         }
@@ -115,21 +126,43 @@
     private void GenerateOweFeeByFeeConfig(TaskDto taskDto, FeeConfigDto feeConfigDto) throws Exception {
 
         //褰撳墠璐圭敤椤规槸鍚�
-
         FeeDto feeDto = new FeeDto();
         feeDto.setConfigId(feeConfigDto.getConfigId());
         feeDto.setCommunityId(feeConfigDto.getCommunityId());
-        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
 
-        //娌℃湁鍏宠仈璐圭敤
-        if (feeDto == null || feeDtos.size() < 1) {
-            return;
-        }
-        for (FeeDto tmpFeeDto : feeDtos) {
+        //鍏堟煡璇㈡�绘暟
+        int count = feeInnerServiceSMOImpl.queryFeesCount(feeDto);
+
+        double record = Math.ceil(count / DEFAULT_ROW);
+
+        for (int page = 1; page <= record; page++) {
             try {
-                generateFee(tmpFeeDto, feeConfigDto);
+                feeDto.setPage(page);
+                feeDto.setRow(new Double(DEFAULT_ROW).intValue());
+                List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+                //娌℃湁鍏宠仈璐圭敤
+                if (feeDtos == null || feeDtos.size() < 1) {
+                    continue;
+                }
+                for (FeeDto tmpFeeDto : feeDtos) {
+                    try {
+                        generateFee(tmpFeeDto, feeConfigDto);
+                    } catch (Exception e) {
+                        LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+                        logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+                        logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
+                        logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+                        saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+                        logger.error("鐢熸垚璐圭敤澶辫触", e);
+                    }
+                }
             } catch (Exception e) {
-                logger.error("鐢熸垚璐圭敤澶辫触", e);
+                LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+                logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+                logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
+                logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+                saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+                logger.error("璐圭敤鍑鸿处澶辫触" + feeConfigDto.getConfigId(), e);
             }
         }
 
@@ -142,6 +175,7 @@
      */
     private void generateFee(FeeDto feeDto, FeeConfigDto feeConfigDto) {
 
+        //鍒峰叆娆犺垂閲戦
         computeFeeSMOImpl.computeEveryOweFee(feeDto);
 
         //淇濆瓨鏁版嵁
@@ -158,13 +192,13 @@
         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(feeDto.getPayerObjName());
+        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<ReportOweFeeDto> reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportOweFees(reportOweFeeDto);
+        List<ReportOweFeeDto> reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
         if (reportOweFeeDtos == null || reportOweFeeDtos.size() < 1) {
             reportOweFeePo.setOweId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_oweId));
             reportOweFeeInnerServiceSMOImpl.saveReportOweFee(reportOweFeePo);

--
Gitblit v1.8.0