From e8ded5b9dbc884741d7de7a7f4d36b517db3c8db Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期一, 22 九月 2025 18:06:02 +0800
Subject: [PATCH] 第三张报表导出0922

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java |   77 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 insertions(+), 7 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 14d126d..df1231c 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
@@ -145,14 +145,13 @@
 
         List<ImportRoomFee> importRoomFees = new ArrayList<>();
         List<ImportRoomFee> importCarFees = new ArrayList<>();
-        List<ImportRoomFee> importContractFees = new ArrayList<>();
         List<CarInoutPo> carInoutPos = new ArrayList<>();
         String communityId = assetImportLogDetailDto.getCommunityId();
         JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent());
         ImportRoomFee importRoomFee = BeanConvertUtil.covertBean(data, ImportRoomFee.class);
-        if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() <= DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime()){
-            throw new IllegalStateException("璇ヨ垂鐢ㄤ负璧峰鏃堕棿灏忎簬灏忓尯鎺ョ鏃堕棿涓嶈繘琛屽鍏�");
-        }
+//        if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() <= DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime()){
+//            throw new IllegalStateException("璇ヨ垂鐢ㄤ负璧峰鏃堕棿灏忎簬灏忓尯鎺ョ鏃堕棿涓嶈繘琛屽鍏�");
+//        }
         if (importRoomFee.getEndTime() != null){
             String[] split = importRoomFee.getEndTime().split(" ");
             importRoomFee.setEndTime(split[0] + " 23:59:59");
@@ -285,11 +284,66 @@
 
         try{
             if(!(ListUtil.isNull(importRoomFees))){
+                if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() <= DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime()){
+                    ImportRoomFee original = importRoomFees.get(0);
+                    ImportRoomFee importRoomFee1 = (ImportRoomFee) original.clone(); // 鍏嬮殕鏂板璞�
+                    ImportRoomFee importRoomFee2 = (ImportRoomFee) original.clone(); // 鍏嬮殕鍙︿竴涓柊瀵硅薄
+                    double cycle = (DateUtil.dayCompare(
+                            DateUtil.getDateFromStringA(importRoomFee1.getStartTime()),
+                            DateUtil.getDateFromStringA(importRoomFee1.getEndTime())
+                    )) ;
+                    double amount = Double.parseDouble(importRoomFee1.getAmount());
+                    importRoomFees = new ArrayList<>();
+                    importRoomFee1.setEndTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]),-1) + " 23:59:59");
+                    importRoomFee1.setCycle((DateUtil.dayCompare(
+                            DateUtil.getDateFromStringA(importRoomFee1.getStartTime()),
+                            DateUtil.getDateFromStringA(importRoomFee1.getEndTime())
+                    )) + "");
+                    importRoomFee1.setAmount((amount/cycle) * Double.parseDouble(importRoomFee1.getCycle()) + "");
+                    importRoomFee2.setStartTime(assetImportLogDetailDto.getTakeTime().split(" ")[0] + " 00:00:00");
+                    importRoomFee2.setCycle((DateUtil.dayCompare(
+                            DateUtil.getDateFromStringA(importRoomFee2.getStartTime()),
+                            DateUtil.getDateFromStringA(importRoomFee2.getEndTime())
+                    )) + "");
+                    importRoomFee2.setAmount(Double.parseDouble(importRoomFee2.getAmount()) - Double.parseDouble(importRoomFee1.getAmount()) + "");
+                    importRoomFee1.setState("1600");
+                    importRoomFee2.setState("1400");
+
+                    importRoomFees.add(importRoomFee1);
+                    importRoomFees.add(importRoomFee2);
+                }
                 importFeeDetails(importRoomFees.get(0).getStoreId(), importRoomFees.get(0).getUserId(), importRoomFees, importRoomFees.get(0).getBatchId());
             }
             if(!(ListUtil.isNull(importCarFees))){
+                if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() <= DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime()){
+                    importRoomFees = importCarFees;
+                    ImportRoomFee importRoomFee1 = importRoomFees.get(0);
+                    ImportRoomFee importRoomFee2 = importRoomFees.get(0);
+                    importRoomFees = new ArrayList<>();
+                    importRoomFee1.setEndTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]),-1) + " 23:59:59");
+                    double cycle = Double.parseDouble(importRoomFee1.getCycle());
+                    double amount = Double.parseDouble(importRoomFee1.getAmount());
+                    importRoomFee1.setCycle((DateUtil.dayCompare(
+                            DateUtil.getDateFromStringA(importRoomFee1.getStartTime()),
+                            DateUtil.getDateFromStringA(importRoomFee1.getEndTime())
+                    )) + "");
+                    importRoomFee1.setAmount((amount/cycle) * Double.parseDouble(importRoomFee1.getCycle()) + "");
+                    importRoomFee2.setStartTime(assetImportLogDetailDto.getTakeTime().split(" ")[0] + " 00:00:00");
+                    importRoomFee2.setCycle((DateUtil.dayCompare(
+                            DateUtil.getDateFromStringA(importRoomFee2.getStartTime()),
+                            DateUtil.getDateFromStringA(importRoomFee2.getEndTime())
+                    )) + "");
+                    importRoomFee2.setAmount(Double.parseDouble(importRoomFee2.getAmount()) - Double.parseDouble(importRoomFee1.getAmount()) + "");
+                    importRoomFee1.setState("1600");
+                    importRoomFee2.setState("1400");
 
-                importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importCarFees, importCarFees.get(0).getBatchId());
+                    importRoomFees.add(importRoomFee1);
+                    importRoomFees.add(importRoomFee2);
+                    importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importRoomFees, importCarFees.get(0).getBatchId());
+                }
+                else{
+                    importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importCarFees, importCarFees.get(0).getBatchId());
+                }
             }
         }catch (IllegalStateException e){
             throw new IllegalArgumentException(e.getMessage());
@@ -459,7 +513,7 @@
             }
         }
         feeDto2.setCommunityId(importRoomFee.getCommunityId());
-        if (new BigDecimal(importRoomFee.getAmount()).doubleValue() >= 0){
+        if (new BigDecimal(importRoomFee.getAmount()).doubleValue() >= 0 && !importRoomFee.getState().equals("1600")){
             feeDto2.setStatusCd("0");
             feeDto2.setUseStart(DateUtil.getDateFromStringA(importRoomFee.getStartTime()));
             feeDto2.setUseEnd(DateUtil.getDateFromStringA(importRoomFee.getEndTime()));
@@ -468,7 +522,7 @@
         if (new BigDecimal(importRoomFee.getAmount()).doubleValue() >= 0) {
             feeDtos.removeIf(feeDto -> "2009001".equals(feeDto.getState()));
         }
-        if(feeDtos.size() == 0){
+        if(feeDtos.size() == 0 && !importRoomFee.getState().equals("1600")){
             updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
 
             throw new IllegalArgumentException("璐圭敤璁板綍"+importRoomFee.getFeeName()+"涓嶅瓨鍦�");
@@ -575,6 +629,9 @@
             cycle = cycle - cycle - cycle;
             payFeeDetailPo.setState("1300");
         }
+        if (importRoomFee.getState() != null){
+            payFeeDetailPo.setState(importRoomFee.getState());
+        }
         int count = feeDetailInnerServiceSMOImpl.queryFeeDetailsCountByVo(payFeeDetailPo);
 
         payFeeDetailPo.setPayableAmount(importRoomFee.getAmount());
@@ -599,6 +656,12 @@
             payFeeDetailPo.setState("1300");
             int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
             return;
+        } else if (importRoomFee.getState().equals("1600")){
+            payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+            payFeeDetailPo.setReceivableAmount(computeFeeByCycle(tmpFeeDto,importRoomFee)+"");
+            payFeeDetailPo.setDiscountAmount("0");
+            int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
+            return;
         }
 
         PayFeeDetailDiscountPo payFeeDetailDiscount = new PayFeeDetailDiscountPo();

--
Gitblit v1.8.0