From ebf6117ccea680eae81a91f2fa355ce3a76eb621 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期一, 15 九月 2025 18:00:37 +0800
Subject: [PATCH] 第二张报表导出0915

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java |   52 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 10 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 739c657..593dbe3 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
@@ -161,13 +161,14 @@
         List<String> carTypes = Arrays.asList("涓存椂鍋滆溅璐�", "涓氫富浜ф潈杩囬亾鍋滆溅璐�", "灏忎笟涓讳骇鏉冭溅杈嗙鐞嗚垂","鍦颁笅鍋滆溅璐�","鍦伴潰鍋滆溅璐�");
         List<String> contractTypes = Arrays.asList("鍨冨溇娓呰繍璐�","鍏朵粬鏀跺叆","琛ヨ创璐圭敤","鍦哄湴浣跨敤璐�","鐢垫骞垮憡锛堜笟濮斾細锛�","蹇�掓煖","鐢垫骞垮憡锛堣仈璁級","鎴夸骇涓粙","闈炴満鍔ㄨ溅绠$悊璐�","鍏朵粬骞垮憡");
         FeeConfigDto feeConfigDto = new FeeConfigDto();
-        feeConfigDto.setFeeName(data.getString("secondaryFeeTypeCd"));
-        feeConfigDto.setFeeTypeCds(new String[]{"630000007","630000017"});
+        feeConfigDto.setCommunityId(importRoomFee.getCommunityId());
+        feeConfigDto.setFeeNameEq(data.getString("secondaryFeeTypeCd"));
+//        feeConfigDto.setFeeTypeCds(new String[]{"630000007","630000017"});
         importRoomFee.setInvoiceNo(data.getString("invoiceReceiptNo"));
         List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
         if(feeConfigDtos.size() > 0){
             for(FeeConfigDto feeConfigDto1 : feeConfigDtos){
-                if(feeConfigDto1.getSecondaryFeeTypeCdName() != null && (feeConfigDto1.getSecondaryFeeTypeCdName().equals("鐢佃垂鍙婄鐞嗚垂-鍚堝悓") || feeConfigDto1.getSecondaryFeeTypeCdName().equals("浠f敹姘磋垂-鍚堝悓"))){
+                if(feeConfigDto1.getIsContractFee() != null && feeConfigDto1.getIsContractFee().equals("true")){
                     importRoomFee.setObjType("7777");
                 }
             }
@@ -233,6 +234,9 @@
                 LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter);
                 LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter);
                 importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate)));
+                if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){
+                    importRoomFee.setCycle("-"+importRoomFee.getCycle());
+                }
 //            if(importRoomFee.getPayerObjName())
                 importCarFees.add(importRoomFee);
             }
@@ -253,6 +257,9 @@
                 LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter);
                 LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter);
                 importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate)));
+                if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){
+                    importRoomFee.setCycle("-"+importRoomFee.getCycle());
+                }
                 importCarFees.add(importRoomFee);
             }
             else{
@@ -450,15 +457,21 @@
             }
         }
         feeDto2.setCommunityId(importRoomFee.getCommunityId());
-        feeDto2.setStatusCd("0");
-        feeDto2.setUseStart(DateUtil.getDateFromStringA(importRoomFee.getStartTime()));
-        feeDto2.setUseEnd(DateUtil.getDateFromStringA(importRoomFee.getEndTime()));
+        if (new BigDecimal(importRoomFee.getAmount()).doubleValue() >= 0){
+            feeDto2.setStatusCd("0");
+            feeDto2.setUseStart(DateUtil.getDateFromStringA(importRoomFee.getStartTime()));
+            feeDto2.setUseEnd(DateUtil.getDateFromStringA(importRoomFee.getEndTime()));
+        }
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto2);
-        feeDtos.removeIf(feeDto -> "2009001".equals(feeDto.getState()));
+        if (new BigDecimal(importRoomFee.getAmount()).doubleValue() >= 0) {
+            feeDtos.removeIf(feeDto -> "2009001".equals(feeDto.getState()));
+        }
         if(feeDtos.size() == 0){
             updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
 
             throw new IllegalArgumentException("璐圭敤璁板綍"+importRoomFee.getFeeName()+"涓嶅瓨鍦�");
+        }else if(feeDtos.size() > 1){
+            throw new IllegalArgumentException("瀛樺湪澶氭潯璁板綍");
         }
 //        if (ListUtil.isNull(feeDtos)) {
 //            throw new IllegalArgumentException("鏌ヨ涓嶅埌璇ヨ褰曠殑璐圭敤椤癸細"+importRoomFee.getFeeName());
@@ -534,6 +547,12 @@
 
 
         PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
+        if(importRoomFee.getInvoiceNo() != null){
+            payFeeDetailPo.setInvoiceNo(importRoomFee.getInvoiceNo());
+            payFeeDetailPo.setOpenInvoice("Y");
+        }else{
+            payFeeDetailPo.setOpenInvoice("N");
+        }
         payFeeDetailPo.setCommunityId(importRoomFee.getCommunityId());
         payFeeDetailPo.setReceivedAmount(importRoomFee.getAmount());
         payFeeDetailPo.setPrimeRate("1.0");
@@ -549,6 +568,11 @@
                 DateUtil.getDateFromStringA(payFeeDetailPo.getStartTime()),
                 DateUtil.getDateFromStringA(importRoomFee.getEndTime())
         ));
+
+        if (new BigDecimal(payFeeDetailPo.getReceivedAmount()).doubleValue() < 0){
+            cycle = cycle - cycle - cycle;
+            payFeeDetailPo.setState("1300");
+        }
         int count = feeDetailInnerServiceSMOImpl.queryFeeDetailsCountByVo(payFeeDetailPo);
 
         payFeeDetailPo.setPayableAmount(importRoomFee.getAmount());
@@ -561,6 +585,16 @@
 
             throw new IllegalStateException("閲嶅鐨勭即璐硅褰�");
         }
+
+        if (new BigDecimal(payFeeDetailPo.getPayableAmount()).doubleValue() < 0) {
+            payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+            payFeeDetailPo.setReceivableAmount("-" + computeFeeByCycle(tmpFeeDto,importRoomFee)+"");
+            payFeeDetailPo.setDiscountAmount("0");
+            payFeeDetailPo.setState("1300");
+            int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
+            return;
+        }
+
         PayFeeDetailDiscountPo payFeeDetailDiscount = new PayFeeDetailDiscountPo();
         try {
             Map feePriceAll = computeFeeSMOImpl.getFeePrice(tmpFeeDto);
@@ -595,9 +629,6 @@
 
 
         payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
-        if(importRoomFee.getInvoiceNo() != null){
-            payFeeDetailPo.setOpenInvoice(importRoomFee.getInvoiceNo());
-        }
         int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
 
 
@@ -620,6 +651,7 @@
         if (saved < 1) {
             return;
         }
+
         FeeDto fee = new FeeDto();
         fee.setFeeId(tmpFeeDto.getFeeId());
         FeeDto feeInfo = feeInnerServiceSMOImpl.queryFees(fee).get(0);

--
Gitblit v1.8.0