From 3eb7477a402c73875ee1176f3fb6092269a8c495 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 29 十一月 2021 11:33:06 +0800
Subject: [PATCH] 优化欠费不推送问题

---
 service-job/src/main/java/com/java110/job/task/fee/GenerateOweFeeTemplate.java |  190 +++++++++++++++++++++--------------------------
 1 files changed, 85 insertions(+), 105 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 579672a..d052e6e 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,33 +2,32 @@
 
 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.*;
-import com.java110.dto.owner.OwnerCarDto;
-import com.java110.dto.owner.OwnerRoomRelDto;
+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.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;
 import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.report.IReportFeeYearCollectionDetailInnerServiceSMO;
+import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.job.quartz.TaskSystemQuartz;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.exception.TaskTemplateException;
+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;
 
-import java.math.BigDecimal;
-import java.util.Calendar;
-import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @ClassName GenerateOwnerBillTemplate
@@ -40,6 +39,8 @@
  **/
 @Component
 public class GenerateOweFeeTemplate extends TaskSystemQuartz {
+
+    public static final double DEFAULT_ROW = 200.0;
 
 
     @Autowired
@@ -64,7 +65,16 @@
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
     @Autowired
+    private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
+
+    @Autowired
     private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private ILogSystemErrorInnerServiceSMO logSystemErrorInnerServiceSMOImpl;
+
+    @Autowired
+    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
 
     @Override
     protected void process(TaskDto taskDto) throws Exception {
@@ -88,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);
             }
         }
@@ -113,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 (feeDto == 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);
             }
         }
 
@@ -140,91 +175,36 @@
      */
     private void generateFee(FeeDto feeDto, FeeConfigDto feeConfigDto) {
 
+        //鍒峰叆娆犺垂閲戦
         computeFeeSMOImpl.computeEveryOweFee(feeDto);
 
         //淇濆瓨鏁版嵁
-
-
-
-    }
-
-    /**
-     * 鏌ヨ杞︿綅淇℃伅
-     *
-     * @param billOweFeeDto
-     * @param feeDto
-     */
-    private void getParkingSpaceInfo(BillOweFeeDto billOweFeeDto, FeeDto feeDto) {
-
-        OwnerCarDto ownerCarDto = new OwnerCarDto();
-        ownerCarDto.setWithOwner(true);
-        ownerCarDto.setCarId(feeDto.getPayerObjId());
-        ownerCarDto.setCommunityId(feeDto.getCommunityId());
-
-        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
-
-
-        if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
-            //鎴垮眿鍙兘琚垹闄や簡
-            billOweFeeDto.setOwnerId("1");
-            billOweFeeDto.setOwnerName("鏈煡");
-            billOweFeeDto.setOwnerTel("19999999999");
-            return;
-        }
-
-        billOweFeeDto.setPayerObjName(ownerCarDtos.get(0).getCarNum());
-        billOweFeeDto.setOwnerId(ownerCarDtos.get(0).getOwnerId());
-        billOweFeeDto.setOwnerName(ownerCarDtos.get(0).getOwnerName());
-        billOweFeeDto.setOwnerTel(ownerCarDtos.get(0).getLink());
-    }
-
-    /**
-     * 鏌ヨ鎴垮眿淇℃伅
-     *
-     * @param billOweFeeDto
-     * @param feeDto
-     */
-    private void getRoomInfo(BillOweFeeDto billOweFeeDto, FeeDto feeDto) {
-        RoomDto roomDto = new RoomDto();
-        roomDto.setRoomId(feeDto.getPayerObjId());
-        roomDto.setCommunityId(feeDto.getCommunityId());
-        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
-
-        if (roomDtos == null || roomDtos.size() < 1) {
-            //鎴垮眿鍙兘琚垹闄や簡
-            billOweFeeDto.setOweId("1");
-            billOweFeeDto.setOwnerName("鏈煡");
-            billOweFeeDto.setOwnerTel("19999999999");
-            billOweFeeDto.setPayerObjName("鏈煡");
-            return;
-        }
-
-        RoomDto tmpRoomDto = roomDtos.get(0);
-        if (RoomDto.ROOM_TYPE_ROOM.equals(tmpRoomDto.getRoomType())) {
-            billOweFeeDto.setPayerObjName(tmpRoomDto.getFloorNum() + "鏍�" + tmpRoomDto.getUnitNum() + "鍗曞厓" + tmpRoomDto.getRoomNum() + "瀹�");
+        ReportOweFeePo reportOweFeePo = new ReportOweFeePo();
+        reportOweFeePo.setAmountOwed(feeDto.getFeePrice() + "");
+        reportOweFeePo.setCommunityId(feeDto.getCommunityId());
+        reportOweFeePo.setConfigId(feeConfigDto.getConfigId());
+        reportOweFeePo.setConfigName(feeConfigDto.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<ReportOweFeeDto> reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
+        if (reportOweFeeDtos == null || reportOweFeeDtos.size() < 1) {
+            reportOweFeePo.setOweId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_oweId));
+            reportOweFeeInnerServiceSMOImpl.saveReportOweFee(reportOweFeePo);
         } else {
-            billOweFeeDto.setPayerObjName(tmpRoomDto.getFloorNum() + "鏍�" + tmpRoomDto.getRoomNum() + "瀹�");
+            reportOweFeePo.setOweId(reportOweFeeDtos.get(0).getOweId());
+            reportOweFeeInnerServiceSMOImpl.updateReportOweFee(reportOweFeePo);
         }
-
-        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
-        ownerRoomRelDto.setByOwnerInfo(true);
-        ownerRoomRelDto.setRoomId(tmpRoomDto.getRoomId());
-        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
-
-        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
-            //鎴垮眿鍙兘琚垹闄や簡
-            billOweFeeDto.setOweId("1");
-            billOweFeeDto.setOwnerName("鏈煡");
-            billOweFeeDto.setOwnerTel("19999999999");
-            return;
-        }
-
-        billOweFeeDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
-        billOweFeeDto.setOwnerName(ownerRoomRelDtos.get(0).getOwnerName());
-        billOweFeeDto.setOwnerTel(ownerRoomRelDtos.get(0).getLink());
-
     }
-
-
-
 }

--
Gitblit v1.8.0