From b06ccd76e50812d81ee689dcd609bb02ac5c4ed4 Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期四, 11 八月 2022 14:48:52 +0800
Subject: [PATCH] 1、优化页面展示行问题

---
 service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java |   80 +++++++++++++++++++++++-----------------
 1 files changed, 46 insertions(+), 34 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java
index dec693f..2f602e1 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java
@@ -24,10 +24,7 @@
 import com.java110.intf.acct.IAccountInnerServiceSMO;
 import com.java110.intf.acct.ICouponUserDetailV1InnerServiceSMO;
 import com.java110.intf.acct.ICouponUserV1InnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.intf.community.IRepairInnerServiceSMO;
-import com.java110.intf.community.IRepairUserInnerServiceSMO;
-import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.community.*;
 import com.java110.intf.fee.*;
 import com.java110.intf.fee.IFeeAccountDetailServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
@@ -41,7 +38,6 @@
 import com.java110.po.owner.RepairUserPo;
 import com.java110.po.payFeeDetailDiscount.PayFeeDetailDiscountPo;
 import com.java110.utils.constant.FeeFlagTypeConstant;
-import com.java110.utils.constant.FeeStateConstant;
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.exception.ListenerExecuteException;
@@ -68,7 +64,7 @@
     private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
 
     @Autowired
-    private IPayFeeDetailNewV1InnerServiceSMO payFeeDetailNewV1InnerServiceSMOImpl;
+    private IPayFeeDetailV1InnerServiceSMO payFeeDetailNewV1InnerServiceSMOImpl;
 
     @Autowired
     private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
@@ -113,10 +109,10 @@
     private IPayFeeDetailDiscountNewV1InnerServiceSMO payFeeDetailDiscountNewV1InnerServiceSMOImpl;
 
     @Autowired
-    private IRepairPoolNewV1InnerServiceSMO repairPoolNewV1InnerServiceSMOImpl;
+    private IRepairPoolV1InnerServiceSMO repairPoolNewV1InnerServiceSMOImpl;
 
     @Autowired
-    private IRepairUserNewV1InnerServiceSMO repairUserNewV1InnerServiceSMOImpl;
+    private IRepairUserV1InnerServiceSMO repairUserNewV1InnerServiceSMOImpl;
 
     @Autowired
     private ICouponUserV1InnerServiceSMO couponUserV1InnerServiceSMOImpl;
@@ -170,7 +166,8 @@
         Date maxEndTime = feeDtos.get(0).getDeadlineTime();
         //鍛ㄦ湡鎬ц垂鐢�
         if (FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDtos.get(0).getFeeFlag())
-                || FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeConfigDtos.get(0).getFeeFlag())) {
+                || FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeConfigDtos.get(0).getFeeFlag())
+                || FeeDto.FEE_FLAG_ONCE.equals(feeConfigDtos.get(0).getFeeFlag())) {
             try {
                 maxEndTime = DateUtil.getDateFromString(feeConfigDtos.get(0).getEndTime(), DateUtil.DATE_FORMATE_STRING_A);
             } catch (ParseException e) {
@@ -247,7 +244,7 @@
             }
             for (int columnIndex = 0; columnIndex < jsonArray.size(); columnIndex++) {
                 JSONObject param = jsonArray.getJSONObject(columnIndex);
-                if (!StringUtil.isEmpty(param.getString("acctType")) && param.getString("acctType").equals("2004")) { //绉垎璐︽埛
+                if (AccountDto.ACCT_TYPE_INTEGRAL.equals(param.getString("acctType"))) { //绉垎璐︽埛
                     //璐︽埛閲戦
                     BigDecimal amount = new BigDecimal(param.getString("amount"));
                     //鑾峰彇鏈�澶ф姷鎵gН鍒�
@@ -348,9 +345,6 @@
             JSONArray selectDiscounts = paramObj.getJSONArray("selectDiscount");
             for (int discountIndex = 0; discountIndex < selectDiscounts.size(); discountIndex++) {
                 JSONObject param = selectDiscounts.getJSONObject(discountIndex);
-                if (!StringUtil.isEmpty(param.getString("ruleId")) && param.getString("ruleId").equals("102020008")) {
-                    return;
-                }
                 addPayFeeDetailDiscount(paramObj, param);
             }
         }
@@ -590,32 +584,44 @@
             targetEndTime = endCalender.getTime();
             paramInJson.put("tmpCycles", cycles.doubleValue());
             businessFeeDetail.put("cycles", cycles.doubleValue());
-            businessFeeDetail.put("receivableAmount", receivedAmount.doubleValue());
-        } else if ("-103".equals(paramInJson.getString("cycles"))) {
-            String custEndTime = paramInJson.getString("custEndTime");
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            Date endDates = null;
-            try {
-                endDates = format.parse(custEndTime);
-            } catch (ParseException e) {
-                e.printStackTrace();
+            //澶勭悊 鍙兘杩樺瓨鍦� 瀹炴敹鎵嬪伐鍑忓厤鐨勬儏鍐�
+            if(paramInJson.containsKey("receivableAmount") && !StringUtil.isEmpty(paramInJson.getString("receivableAmount"))){
+                businessFeeDetail.put("receivableAmount", paramInJson.getString("receivableAmount"));
+            }else {
+                businessFeeDetail.put("receivableAmount", receivedAmount.doubleValue());
             }
+        } else if ("-103".equals(paramInJson.getString("cycles"))) { //杩欓噷鎸夌即璐圭粨鏉熸椂闂寸即璐�
+            String custEndTime = paramInJson.getString("custEndTime");
+            Date endDates = DateUtil.getDateFromStringB(custEndTime);
             Calendar c = Calendar.getInstance();
             c.setTime(endDates);
             c.add(Calendar.DAY_OF_MONTH, 1);
             endDates = c.getTime();//杩欐槸鏄庡ぉ
             targetEndTime = endDates;
-            BigDecimal receivedAmount1 = new BigDecimal(Double.parseDouble(paramInJson.getString("receivedAmount")));
+            BigDecimal receivedAmount1 =  new BigDecimal(Double.parseDouble(paramInJson.getString("receivedAmount")));
             cycles = receivedAmount1.divide(feePrice, 4, BigDecimal.ROUND_HALF_EVEN);
             paramInJson.put("tmpCycles", cycles.doubleValue());
             businessFeeDetail.put("cycles", cycles.doubleValue());
             BigDecimal receivedAmount = new BigDecimal(Double.parseDouble(paramInJson.getString("receivedAmount")));
-            businessFeeDetail.put("receivableAmount", receivedAmount.doubleValue());
+            //澶勭悊 鍙兘杩樺瓨鍦� 瀹炴敹鎵嬪伐鍑忓厤鐨勬儏鍐�
+            if(paramInJson.containsKey("receivableAmount") && !StringUtil.isEmpty(paramInJson.getString("receivableAmount"))){
+                businessFeeDetail.put("receivableAmount", paramInJson.getString("receivableAmount"));
+            }else {
+                businessFeeDetail.put("receivableAmount", receivedAmount.doubleValue());
+            }
         } else {
             targetEndTime = computeFeeSMOImpl.getFeeEndTimeByCycles(feeDto, paramInJson.getString("cycles"));//鏍规嵁缂磋垂鍛ㄦ湡璁$畻 缁撴潫鏃堕棿
             cycles = new BigDecimal(Double.parseDouble(paramInJson.getString("cycles")));
             double tmpReceivableAmount = cycles.multiply(feePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
             businessFeeDetail.put("receivableAmount", tmpReceivableAmount);
+
+            //鍑虹閫掑闂澶勭悊
+            if (FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(feeDto.getComputingFormula())) {
+                computeFeeSMOImpl.dealRentRateCycle(feeDto,cycles.doubleValue());
+                if(feeDto.getOweFee()> 0){
+                    businessFeeDetail.put("receivableAmount", feeDto.getAmountOwed());
+                }
+            }
         }
         businessFeeDetail.put("endTime", DateUtil.getFormatTimeString(targetEndTime, DateUtil.DATE_FORMATE_STRING_A));
         paramInJson.put("feeInfo", feeDto);
@@ -637,13 +643,7 @@
             System.out.println(endCalender);
         } else if ("-103".equals(paramInJson.getString("cycles"))) {
             String custEndTime = paramInJson.getString("custEndTime");
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            Date endDates = null;
-            try {
-                endDates = format.parse(custEndTime);
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
+            Date endDates = DateUtil.getDateFromStringB(custEndTime);
             Calendar c = Calendar.getInstance();
             c.setTime(endDates);
             c.add(Calendar.DAY_OF_MONTH, 1);
@@ -670,9 +670,21 @@
         if (FeeDto.FEE_FLAG_CYCLE.equals(feeInfo.getFeeFlag())) {
             maxEndTime = feeInfo.getConfigEndTime();
         }
+
+        if(FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeInfo.getFeeFlag())){
+            maxEndTime = feeInfo.getMaxEndTime();
+        }
+
+        //濡傛灉闂存瓏鎬ц垂鐢ㄦ病鏈夎缃粨鏉熸椂闂� 鍒欏彇璐圭敤椤圭殑
+        if (maxEndTime == null) {
+            maxEndTime = feeInfo.getConfigEndTime();
+        }
+
         //鍒ゆ柇 缁撴潫鏃堕棿 鏄惁澶т簬 璐圭敤椤� 缁撴潫鏃堕棿锛岃繖閲� 瀹归敊涓�涓嬶紝濡傛灉 璐圭敤缁撴潫鏃堕棿澶т簬 璐圭敤椤圭粨鏉熸椂闂� 30澶� 璧版姤閿� 灞炰簬澶氱即璐�
-        if (feeInfo.getEndTime().getTime() - maxEndTime.getTime() > 30 * 24 * 60 * 60 * 1000L) {
-            throw new IllegalArgumentException("缂磋垂瓒呰繃浜� 璐圭敤椤圭粨鏉熸椂闂�");
+        if(maxEndTime != null) {
+            if (feeInfo.getEndTime().getTime() - maxEndTime.getTime() > 30 * 24 * 60 * 60 * 1000L) {
+                throw new IllegalArgumentException("缂磋垂瓒呰繃浜� 璐圭敤椤圭粨鏉熸椂闂�");
+            }
         }
         Map feeMap = BeanConvertUtil.beanCovertMap(feeInfo);
         feeMap.put("startTime", DateUtil.getFormatTimeString(feeInfo.getStartTime(), DateUtil.DATE_FORMATE_STRING_A));
@@ -693,7 +705,7 @@
             calendar.add(Calendar.DAY_OF_MONTH, -5);
             maxEndTime = calendar.getTime();
             if (feeInfo.getEndTime().after(maxEndTime)) {
-                businessFee.put("state", FeeStateConstant.END);
+                businessFee.put("state", FeeDto.STATE_FINISH);
                 businessFee.put("endTime", maxEndTime);
             }
         }

--
Gitblit v1.8.0