From 91ff9f520b66fc38a0ce8e7e2e06bdd54487ae1e Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 22 七月 2022 00:01:05 +0800
Subject: [PATCH] 优化 间歇费用 相关bug
---
service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java | 36 ++++++++++++++++++++++++------------
1 files changed, 24 insertions(+), 12 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..2c81f42 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
@@ -247,7 +247,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Н鍒�
@@ -590,32 +590,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.getOweFee());
+ }
+ }
}
businessFeeDetail.put("endTime", DateUtil.getFormatTimeString(targetEndTime, DateUtil.DATE_FORMATE_STRING_A));
paramInJson.put("feeInfo", feeDto);
--
Gitblit v1.8.0