From cdd60f8c16d96d19b7bdf0ff548afee9dd767f7f Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 24 九月 2020 16:10:08 +0800
Subject: [PATCH] 加入 托收

---
 service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java |  168 +------------------------------------------------------
 1 files changed, 5 insertions(+), 163 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
index f48ac32..18f6086 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
@@ -1,6 +1,7 @@
 package com.java110.fee.bmo.impl;
 
 import com.alibaba.fastjson.JSONArray;
+import com.java110.core.smo.IComputeFeeSMO;
 import com.java110.dto.RoomDto;
 import com.java110.dto.fee.BillDto;
 import com.java110.dto.fee.BillOweFeeDto;
@@ -55,6 +56,9 @@
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
 
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
 
     @Override
     public ResponseEntity<String> query(FeeDto feeDto) {
@@ -70,7 +74,7 @@
         }
         List<FeeDto> tmpFeeDtos = new ArrayList<>();
         for (FeeDto tmpFeeDto : feeDtos) {
-            computeOweFee(tmpFeeDto);//璁$畻娆犺垂閲戦
+            computeFeeSMOImpl.computeOweFee(tmpFeeDto);//璁$畻娆犺垂閲戦
 
             //濡傛灉閲戦涓�0 灏辨帓闄�
             if (tmpFeeDto.getFeePrice() > 0) {
@@ -392,172 +396,10 @@
 
     }
 
-    /**
-     * 璁$畻娆犺垂閲戦
-     *
-     * @param tmpFeeDto
-     */
-    private void computeOweFee(FeeDto tmpFeeDto) {
-        String billType = tmpFeeDto.getBillType();
-
-        if (FeeConfigDto.BILL_TYPE_EVERY.equals(billType)) {
-            computeFeePrice(tmpFeeDto);
-            return;
-        }
-        BillDto billDto = new BillDto();
-        billDto.setCommunityId(tmpFeeDto.getCommunityId());
-        billDto.setConfigId(tmpFeeDto.getConfigId());
-        billDto.setCurBill("T");
-        List<BillDto> billDtos = feeInnerServiceSMOImpl.queryBills(billDto);
-        if (billDtos == null || billDtos.size() < 1) {
-            tmpFeeDto.setFeePrice(0.00);
-            return;
-        }
-        BillOweFeeDto billOweFeeDto = new BillOweFeeDto();
-        billOweFeeDto.setCommunityId(tmpFeeDto.getCommunityId());
-        billOweFeeDto.setFeeId(tmpFeeDto.getFeeId());
-        billOweFeeDto.setState(BillOweFeeDto.STATE_WILL_FEE);
-        billOweFeeDto.setBillId(billDtos.get(0).getBillId());
-        List<BillOweFeeDto> billOweFeeDtos = feeInnerServiceSMOImpl.queryBillOweFees(billOweFeeDto);
-        if (billOweFeeDtos == null || billOweFeeDtos.size() < 1) {
-            tmpFeeDto.setFeePrice(0.00);
-            return;
-        }
-        try {
-            tmpFeeDto.setDeadlineTime(DateUtil.getDateFromString(billOweFeeDtos.get(0).getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A));
-        } catch (ParseException e) {
-            logger.error("鑾峰彇缁撴潫鏃堕棿澶辫触", e);
-        }
-        tmpFeeDto.setFeePrice(Double.parseDouble(billOweFeeDtos.get(0).getAmountOwed()));
-    }
 
 
-    private void computeFeePrice(FeeDto feeDto) {
 
-        if ("3333".equals(feeDto.getPayerObjType())) { //鎴垮眿鐩稿叧
-            computeFeePriceByRoom(feeDto);
-        } else if ("6666".equals(feeDto.getPayerObjType())) {//杞︿綅鐩稿叧
-            computeFeePriceByParkingSpace(feeDto);
-        }
-    }
 
-    private void computeFeePriceByParkingSpace(FeeDto feeDto) {
-        Map<String, Object> targetEndDateAndOweMonth = getTargetEndDateAndOweMonth(feeDto);
-        Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
-        double oweMonth = (double) targetEndDateAndOweMonth.get("oweMonth");
-        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
-        parkingSpaceDto.setCommunityId(feeDto.getCommunityId());
-        parkingSpaceDto.setPsId(feeDto.getPayerObjId());
-        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
-
-        if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) { //鏁版嵁鏈夐棶棰�
-            return;
-        }
-
-        String computingFormula = feeDto.getComputingFormula();
-        double feePrice = 0.00;
-        if ("1001".equals(computingFormula)) { //闈㈢Н*鍗曚环+闄勫姞璐�
-            BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
-            BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(parkingSpaceDtos.get(0).getArea()));
-            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
-            feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        } else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
-
-            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
-            feePrice = additionalAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        } else if ("4004".equals(computingFormula)) {
-            feePrice = Double.parseDouble(feeDto.getAmount());
-        } else if ("5005".equals(computingFormula)) {
-            if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
-                feePrice = -1.00;
-            } else {
-                BigDecimal curDegree = new BigDecimal(Double.parseDouble(feeDto.getCurDegrees()));
-                BigDecimal preDegree = new BigDecimal(Double.parseDouble(feeDto.getPreDegrees()));
-                BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
-                BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
-                BigDecimal sub = curDegree.subtract(preDegree);
-                feePrice = sub.multiply(squarePrice)
-                        .add(additionalAmount)
-                        .setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-            }
-        } else {
-            feePrice = 0.00;
-        }
-        feeDto.setFeePrice(feePrice);
-        double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
-        BigDecimal price = new BigDecimal(feeDto.getFeePrice());
-        price = price.multiply(new BigDecimal(oweMonth));
-        feeDto.setFeePrice(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-        feeDto.setDeadlineTime(targetEndDate);
-
-        //鍔ㄦ�佽垂鐢�
-        if ("4004".equals(computingFormula)) {
-            feeDto.setAmountOwed(feeDto.getFeePrice() + "");
-            feeDto.setDeadlineTime(DateUtil.getCurrentDate());
-        }
-
-    }
-
-    /**
-     * 鏍规嵁鎴垮眿鏉ョ畻鍗曚环
-     *
-     * @param feeDto
-     */
-    private void computeFeePriceByRoom(FeeDto feeDto) {
-        Map<String, Object> targetEndDateAndOweMonth = getTargetEndDateAndOweMonth(feeDto);
-        Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
-        double oweMonth = (double) targetEndDateAndOweMonth.get("oweMonth");
-        RoomDto roomDto = new RoomDto();
-        roomDto.setCommunityId(feeDto.getCommunityId());
-        roomDto.setRoomId(feeDto.getPayerObjId());
-        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
-
-        if (roomDtos == null || roomDtos.size() < 1) { //鏁版嵁鏈夐棶棰�
-            return;
-        }
-
-        String computingFormula = feeDto.getComputingFormula();
-        double feePrice = 0.00;
-        if ("1001".equals(computingFormula)) { //闈㈢Н*鍗曚环+闄勫姞璐�
-            BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
-            BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDtos.get(0).getBuiltUpArea()));
-            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
-            feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        } else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
-            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
-            feePrice = additionalAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        } else if ("4004".equals(computingFormula)) {
-            feePrice = Double.parseDouble(feeDto.getAmount());
-        } else if ("5005".equals(computingFormula)) {
-            if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
-                feePrice = -1.00;
-            } else {
-                BigDecimal curDegree = new BigDecimal(Double.parseDouble(feeDto.getCurDegrees()));
-                BigDecimal preDegree = new BigDecimal(Double.parseDouble(feeDto.getPreDegrees()));
-                BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
-                BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
-                BigDecimal sub = curDegree.subtract(preDegree);
-                feePrice = sub.multiply(squarePrice)
-                        .add(additionalAmount)
-                        .setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-            }
-        } else {
-            feePrice = 0.00;
-        }
-
-        feeDto.setFeePrice(feePrice);
-        //double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
-        BigDecimal price = new BigDecimal(feeDto.getFeePrice());
-        price = price.multiply(new BigDecimal(oweMonth));
-        feeDto.setFeePrice(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-        feeDto.setDeadlineTime(targetEndDate);
-
-        //鍔ㄦ�佽垂鐢�
-        if ("4004".equals(computingFormula)) {
-            feeDto.setAmountOwed(feeDto.getFeePrice() + "");
-            feeDto.setDeadlineTime(DateUtil.getCurrentDate());
-        }
-    }
 
 
     /**

--
Gitblit v1.8.0