java110 преди 5 години
родител
ревизия
9e38a18435

+ 18 - 0
service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -137,6 +137,15 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
             endCalender.add(Calendar.HOUR, hours);
         } else {
             endCalender.add(Calendar.MONTH, Integer.parseInt(paramInJson.getString("cycles")));
+            if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
+                if (!StringUtil.isEmpty(feeDto.getCurDegrees())) {
+                    endCalender.setTime(feeDto.getCurReadingTime());
+                } else if (feeDto.getImportFeeEndTime() == null) {
+                    endCalender.setTime(feeDto.getConfigEndTime());
+                } else {
+                    endCalender.setTime(feeDto.getImportFeeEndTime());
+                }
+            }
         }
         businessFeeDetail.put("endTime", DateUtil.getFormatTimeString(endCalender.getTime(), DateUtil.DATE_FORMATE_STRING_A));
         paramInJson.put("feeInfo", feeDto);
@@ -324,6 +333,15 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
             endCalender.add(Calendar.HOUR, hours);
         } else {
             endCalender.add(Calendar.MONTH, Integer.parseInt(paramInJson.getString("cycles")));
+            if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
+                if (!StringUtil.isEmpty(feeDto.getCurDegrees())) {
+                    endCalender.setTime(feeDto.getCurReadingTime());
+                } else if (feeDto.getImportFeeEndTime() == null) {
+                    endCalender.setTime(feeDto.getConfigEndTime());
+                } else {
+                    endCalender.setTime(feeDto.getImportFeeEndTime());
+                }
+            }
         }
         businessFeeDetail.put("endTime", DateUtil.getFormatTimeString(endCalender.getTime(), DateUtil.DATE_FORMATE_STRING_A));
 

+ 9 - 1
service-fee/src/main/java/com/java110/fee/listener/fee/UpdateFeeInfoListener.java

@@ -169,7 +169,15 @@ public class UpdateFeeInfoListener extends AbstractFeeBusinessServiceDataFlowLis
                     // 一次性收费类型,缴费后,则设置费用状态为收费结束、设置结束日期为费用项终止日期
                     if (FeeFlagTypeConstant.ONETIME.equals(feeInfo.get(0).get("feeFlag"))) {
                         businessFeeInfo.put("state", FeeStateConstant.END);
-                        businessFeeInfo.put("end_time", feeInfo.get(0).get("configEndTime"));
+                        //businessFeeInfo.put("end_time", feeInfo.get(0).get("configEndTime"));
+                        if (!StringUtil.isNullOrNone(feeInfo.get(0).get("curDegrees"))) {
+                            businessFeeInfo.put("end_time", feeInfo.get(0).get("curReadingTime"));
+                        } else if (feeInfo.get(0).get("importFeeEndTime") != null) {
+                            //targetEndDate = feeDto.getConfigEndTime();
+                            businessFeeInfo.put("end_time", feeInfo.get(0).get("importFeeEndTime"));
+                        } else {
+                            businessFeeInfo.put("end_time", feeInfo.get(0).get("configEndTime"));
+                        }
                     }
 
                     // 周期性收费、缴费后,到期日期在费用项终止日期后,则设置缴费状态结束,设置结束日期为费用项终止日期