From f4d855f8d2d5cd52c0831e690dcb12e700b91eb1 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期五, 22 八月 2025 20:00:14 +0800
Subject: [PATCH] 费用初始化添加折扣金额以及折扣记录0822

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java |   55 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 12 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
index b171883..5de248d 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
@@ -6,13 +6,11 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.PropertyWhiteListFlowDto;
-import com.java110.dto.fee.ComputeDiscountDto;
-import com.java110.dto.fee.FeeAttrDto;
-import com.java110.dto.fee.FeeConfigDto;
-import com.java110.dto.fee.FeeDto;
+import com.java110.dto.fee.*;
 import com.java110.dto.importData.ImportRoomFee;
 import com.java110.dto.log.AssetImportLogDetailDto;
 import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.payFee.PayFeeDetailDiscountDto;
 import com.java110.dto.room.RoomDto;
 import com.java110.dto.system.ComponentValidateResult;
 import com.java110.fee.api.FeeDiscountApi;
@@ -29,6 +27,7 @@
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
+import com.java110.po.payFee.PayFeeDetailDiscountPo;
 import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.exception.DAOException;
 import com.java110.utils.util.BeanConvertUtil;
@@ -92,6 +91,8 @@
     @Autowired
     private ImportCarHistoryFeeDetailQueueDataAdapt importCarHistoryFeeDetailQueueDataAdapt;
 
+    @Autowired
+    private IPayFeeDetailDiscountNewV1InnerServiceSMO payFeeDetailDiscountNewV1InnerServiceSMOImpl;
 
     @Override
     public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
@@ -368,6 +369,9 @@
             throw new IllegalArgumentException("璇ュ垵濮嬪寲缂磋垂璁板綍淇℃伅涓寘鍚涓垂鐢ㄨ褰�"+importRoomFee.getFeeName()+startDate+endDate);
         }
         for (FeeDto tmpFeeDto : feeDtos) {
+            if(DateUtil.getDateFromStringB(importRoomFee.getEndTime()).getTime() > tmpFeeDto.getEndTime().getTime()){
+                throw new IllegalArgumentException("璇ヨ垂鐢ㄨ褰曠粨鏉熸椂闂村ぇ浜庤垂鐢ㄨ褰曟渶澶х即璐规椂闂�");
+            }
             doImportFeeDetail(tmpFeeDto, importRoomFee);
         }
 
@@ -391,7 +395,6 @@
         PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
         payFeeDetailPo.setCommunityId(importRoomFee.getCommunityId());
         payFeeDetailPo.setReceivedAmount(importRoomFee.getAmount());
-        payFeeDetailPo.setReceivableAmount(importRoomFee.getAmount());
         payFeeDetailPo.setCycles(importRoomFee.getCycle());
         payFeeDetailPo.setPrimeRate("1.0");
         payFeeDetailPo.setFeeId(tmpFeeDto.getFeeId());
@@ -401,27 +404,41 @@
         payFeeDetailPo.setCreateTime(importRoomFee.getCreateTime());
         payFeeDetailPo.setState("1400");
         payFeeDetailPo.setCashierName(importRoomFee.getStaffName());
-        payFeeDetailPo.setPayableAmount(importRoomFee.getAmount());
         payFeeDetailPo.setPayOrderId(importRoomFee.getPayObjId());
+        payFeeDetailPo.setB("T");
+        double cycle = (DateUtil.dayCompare(
+                DateUtil.getDateFromStringA(payFeeDetailPo.getStartTime()),
+                DateUtil.getDateFromStringA(payFeeDetailPo.getEndTime())
+        ));
+        payFeeDetailPo.setCycles(cycle+"");
         int count = feeDetailInnerServiceSMOImpl.queryFeeDetailsCountByVo(payFeeDetailPo);
 
+        payFeeDetailPo.setPayableAmount(importRoomFee.getAmount());
 
 
         if (count > 0) {
             throw new IllegalStateException("閲嶅鐨勭即璐硅褰�");
         }
 
+        PayFeeDetailDiscountPo payFeeDetailDiscount = new PayFeeDetailDiscountPo();
         try {
-            ResponseEntity<String> resultVo = feeDiscountApi.computeFeeDiscount(tmpFeeDto.getFeeId(), tmpFeeDto.getCommunityId(), Double.parseDouble(importRoomFee.getCycle()), importRoomFee.getPayObjId(),
+            ResponseEntity<String> resultVo = feeDiscountApi.computeFeeDiscount(tmpFeeDto.getFeeId(), tmpFeeDto.getCommunityId(), 105, importRoomFee.getPayObjId(),
                     tmpFeeDto.getPayerObjType(), importRoomFee.getEndTime(), importRoomFee.getEndTime(), importRoomFee.getStartTime(), 1, 20);
 
 // 2. 浠� ResultVo 涓幏鍙� data 骞跺己杞负鐩爣绫诲瀷
             if (resultVo != null) {
                 // 鍋囪 data 瀛楁瀛樺偍鐨勬槸 List<ComputeDiscountDto>
                 JSONArray data = (JSONArray) JSONObject.parseObject(resultVo.getBody()).get("data");
-                JSONObject o = (JSONObject) data.get(0);
-                String discountPrice = o.get("discountPrice").toString();
-                String discountId =  o.get("discountId").toString();
+
+                if(data.size() > 0) {
+                    JSONObject o = (JSONObject) data.get(0);
+                    String discountPrice = o.get("discountPrice").toString();
+                    String discountId =  o.get("discountId").toString();
+                    payFeeDetailPo.setDiscountAmount(discountPrice);
+                    payFeeDetailPo.setReceivableAmount((Double.parseDouble(payFeeDetailPo.getReceivedAmount()) + Double.parseDouble(payFeeDetailPo.getDiscountAmount()))+"");
+                    payFeeDetailDiscount.setDiscountId(discountId);
+                    payFeeDetailDiscount.setDiscountPrice(discountPrice);
+                }
             }
         } catch (ParseException e) {
             throw new RuntimeException(e);
@@ -433,6 +450,21 @@
             payFeeDetailPo.setOpenInvoice(importRoomFee.getOpenInv());
         }
         int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
+
+        FeeDetailDto feeDetailDto = new FeeDetailDto();
+        feeDetailDto.setDetailId(payFeeDetailPo.getDetailId());
+
+        List<FeeDetailDto> feeDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
+
+        if (payFeeDetailDiscount.getDiscountId() != null) {
+            payFeeDetailDiscount.setDetailId(payFeeDetailPo.getDetailId());
+            payFeeDetailDiscount.setStatusCd("0");
+            payFeeDetailDiscount.setCommunityId(feeDtos.get(0).getCommunityId());
+            payFeeDetailDiscount.setFeeId(feeDtos.get(0).getFeeId());
+            payFeeDetailDiscount.setDetailDiscountId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_discountId));
+        }
+
+        payFeeDetailDiscountNewV1InnerServiceSMOImpl.savePayFeeDetailDiscountNew(payFeeDetailDiscount);
 
         if (saved < 1) {
             return;
@@ -456,9 +488,8 @@
         payFeePo.setFeeId(tmpFeeDto.getFeeId());
         String[] arr = importRoomFee.getEndTime().split(" ");
         if (arr.length >= 2 &&arr[1].equals("23:59:59")){
-            importRoomFee.setEndTime(arr[0] + " 00:00:00");
+            payFeePo.setEndTime(DateUtil.getNextSecTime(importRoomFee.getEndTime()));
         }
-        payFeePo.setEndTime(DateUtil.getNextSecTime(importRoomFee.getEndTime()));
         if (FeeDto.FEE_FLAG_ONCE.equals(tmpFeeDto.getFeeFlag())) {
             payFeePo.setState(FeeDto.STATE_FINISH);
         }

--
Gitblit v1.8.0