From 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 19 七月 2022 21:49:55 +0800
Subject: [PATCH] 优化添加设备 功能

---
 service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java
index b5883e7..c8aaa05 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java
@@ -132,16 +132,20 @@
             feeConfigDto.setConfigId(feeDto.getConfigId());
             feeConfigDto.setCommunityId(paramInObj.getString("communityId"));
             List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
-            if (feeConfigDtos != null && feeConfigDtos.size() == 1) {
+            if (feeConfigDtos == null || feeConfigDtos.size() != 1) {
+                throw new IllegalArgumentException("璐圭敤椤逛笉瀛樺湪");
+            }
+            Date maxEndTime = feeDtos.get(0).getDeadlineTime();
+            if (FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDtos.get(0).getFeeFlag())) {
                 try {
-                    Date configEndTime = DateUtil.getDateFromString(feeConfigDtos.get(0).getEndTime(), DateUtil.DATE_FORMATE_STRING_A);
-                    Date newDate = DateUtil.stepMonth(endTime, paramInObj.getInteger("cycles") - 1);
-                    if (newDate.getTime() > configEndTime.getTime()) {
-                        throw new IllegalArgumentException("缂磋垂鍛ㄦ湡瓒呰繃 缂磋垂缁撴潫鏃堕棿");
-                    }
-                } catch (Exception e) {
+                    maxEndTime = DateUtil.getDateFromString(feeConfigDtos.get(0).getEndTime(), DateUtil.DATE_FORMATE_STRING_A);
+                } catch (ParseException e) {
                     logger.error("姣旇緝璐圭敤鏃ユ湡澶辫触", e);
                 }
+            }
+            Date newDate = DateUtil.stepMonth(endTime, paramInObj.getInteger("cycles") - 1);
+            if (newDate.getTime() > maxEndTime.getTime()) {
+                throw new IllegalArgumentException("缂磋垂鍛ㄦ湡瓒呰繃 缂磋垂缁撴潫鏃堕棿");
             }
         }
     }
@@ -398,8 +402,12 @@
             feeInfo.setState(FeeDto.STATE_FINISH);
         }
         feeInfo.setEndTime(endCalender.getTime());
+        Date maxEndTime = feeInfo.getDeadlineTime();
+        if(FeeDto.FEE_FLAG_CYCLE.equals(feeInfo.getFeeFlag())){
+            maxEndTime = feeInfo.getConfigEndTime();
+        }
         //鍒ゆ柇 缁撴潫鏃堕棿 鏄惁澶т簬 璐圭敤椤� 缁撴潫鏃堕棿锛岃繖閲� 瀹归敊涓�涓嬶紝濡傛灉 璐圭敤缁撴潫鏃堕棿澶т簬 璐圭敤椤圭粨鏉熸椂闂� 30澶� 璧版姤閿� 灞炰簬澶氱即璐�
-        if (feeInfo.getEndTime().getTime() - feeInfo.getConfigEndTime().getTime() > 30 * 24 * 60 * 60 * 1000L) {
+        if (feeInfo.getEndTime().getTime() - maxEndTime.getTime() > 30 * 24 * 60 * 60 * 1000L) {
             throw new IllegalArgumentException("缂磋垂瓒呰繃浜� 璐圭敤椤圭粨鏉熸椂闂�");
         }
         Map feeMap = BeanConvertUtil.beanCovertMap(feeInfo);
@@ -416,16 +424,15 @@
 
 
         // 鍛ㄦ湡鎬ф敹璐广�佺即璐瑰悗锛屽埌鏈熸棩鏈熷湪璐圭敤椤圭粓姝㈡棩鏈熷悗锛屽垯璁剧疆缂磋垂鐘舵�佺粨鏉燂紝璁剧疆缁撴潫鏃ユ湡涓鸿垂鐢ㄩ」缁堟鏃ユ湡
-        if (FeeFlagTypeConstant.CYCLE.equals(feeInfo.getFeeFlag())) {
+        if (!FeeFlagTypeConstant.ONETIME.equals(feeInfo.getFeeFlag())) {
             //杩欓噷 瀹归敊浜斿ぉ鏃堕棿
-            Date configEndTime = feeInfo.getConfigEndTime();
             Calendar calendar = Calendar.getInstance();
-            calendar.setTime(configEndTime);
+            calendar.setTime(maxEndTime);
             calendar.add(Calendar.DAY_OF_MONTH, -5);
-            configEndTime = calendar.getTime();
-            if (feeInfo.getEndTime().after(configEndTime)) {
+            maxEndTime = calendar.getTime();
+            if (feeInfo.getEndTime().after(maxEndTime)) {
                 businessFee.put("state", FeeStateConstant.END);
-                businessFee.put("endTime", feeInfo.getConfigEndTime());
+                businessFee.put("endTime", maxEndTime);
             }
         }
 

--
Gitblit v1.8.0