From bf3924206b359d77e928255328f8625cb986bd72 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期一, 25 八月 2025 20:46:02 +0800
Subject: [PATCH] 修复费用初始化0825

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java |  117 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 64 insertions(+), 53 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 9465e7e..9885680 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
@@ -94,16 +94,30 @@
     @Autowired
     private IPayFeeDetailDiscountNewV1InnerServiceSMO payFeeDetailDiscountNewV1InnerServiceSMOImpl;
 
+    @Autowired
+    private ImportRoomFeeQueueDataAdapt importRoomFeeQueueDataAdapt;
+
     @Override
     public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
-        importDatas(assetImportLogDetailDtos);
+
+        for (AssetImportLogDetailDto assetImportLogDetailDto : assetImportLogDetailDtos) {
+            try {
+                importDatas(assetImportLogDetailDto);
+                updateImportLogDetailState(assetImportLogDetailDto.getDetailId());
+            } catch (Exception e) {
+                e.printStackTrace();
+                updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
+            }
+        }
+
     }
 
-    private void importDatas(List<AssetImportLogDetailDto> infos) {
+    private void importDatas(AssetImportLogDetailDto assetImportLogDetailDto) {
 
         List<ImportRoomFee> importRoomFees = new ArrayList<>();
         List<ImportRoomFee> importCarFees = new ArrayList<>();
-        for (AssetImportLogDetailDto assetImportLogDetailDto : infos) {
+        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);
@@ -123,8 +137,8 @@
                 carInout.setCreateTime(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("inputTime"));
                 carInout.setbId(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("batchId"));
 
-                List<CarInoutPo> carInoutPos = new ArrayList<>();
                 carInout.setInoutId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_inoutId));
+                carInout.setDetailId(assetImportLogDetailDto.getDetailId());
                 carInoutPos.add(carInout);
 
 // 濡傛灉鏈夌粨鏉熸椂闂达紝鍒涘缓鏂扮殑瀵硅薄浣滀负鍑哄彛璁板綍
@@ -146,18 +160,10 @@
                     exitCarInout.setState("100400");
                     exitCarInout.setInoutId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_inoutId));
                     exitCarInout.setPaymentAmount(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("chargeAmount"));
-
+                    exitCarInout.setDetailId(assetImportLogDetailDto.getDetailId());
                     carInoutPos.add(exitCarInout);
                 }
 
-                try {
-                    carInoutInnerServiceSMOImpl.batchSaveCarInout2(carInoutPos);
-                }catch (Exception e){
-
-                    updateImportLogDetailState(importRoomFee.getDetailId(),e);
-                    throw new IllegalArgumentException(e.getMessage());
-                }
-                updateImportLogDetailState(importRoomFee.getDetailId());
             }
             else if(contractTypes.contains(importRoomFee.getSecondaryFeeTypeCd())){
                 importRoomFee.setFeeName(data.getString("secondaryFeeTypeCd"));
@@ -179,7 +185,7 @@
 //            if(importRoomFee.getPayerObjName())
                 importCarFees.add(importRoomFee);
             }
-            else if(carTypes.contains(JSONObject.parseObject(infos.get(0).getContent()).get("category22"))){
+            else if(carTypes.contains(JSONObject.parseObject(assetImportLogDetailDto.getContent()).get("category22"))){
                 importRoomFee.setCommunityId(communityId);
                 importRoomFee.setFeeName(data.getString("secondaryFeeTypeCd"));
                 importRoomFee.setDetailId(assetImportLogDetailDto.getDetailId());
@@ -212,7 +218,7 @@
 //            if(importRoomFee.getPayerObjName())
                 importRoomFees.add(importRoomFee);
             }
-        }
+        importFeeDetailsByCarInout(carInoutPos);
 
         if (ListUtil.isNull(importRoomFees) && ListUtil.isNull(importCarFees)) {
             return;
@@ -224,9 +230,22 @@
         if(!(ListUtil.isNull(importCarFees))){
             importCarHistoryFeeDetailQueueDataAdapt.importCarFeeDetails(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importCarFees, importCarFees.get(0).getBatchId());
         }
-//
-//
 
+    }
+
+    private void importFeeDetailsByCarInout(List<CarInoutPo> carInoutPos) {
+
+        for (CarInoutPo carInoutPo : carInoutPos) {
+            try {
+                ArrayList<CarInoutPo> carInoutPos1 = new ArrayList<>();
+                carInoutPos1.add(carInoutPo);
+                carInoutInnerServiceSMOImpl.batchSaveCarInout2(carInoutPos1);
+                updateImportLogDetailState(carInoutPo.getDetailId());
+            }catch (Exception e){
+                updateImportLogDetailState(carInoutPo.getDetailId(),e);
+                throw new IllegalArgumentException(e.getMessage());
+            }
+        }
     }
 
 
@@ -253,6 +272,7 @@
             } catch (Exception e) {
                 e.printStackTrace();
                 updateImportLogDetailState(importRoomFee.getDetailId(), e);
+                throw new IllegalArgumentException(e.getMessage());
             }
         }
     }
@@ -269,8 +289,18 @@
     private void importFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId, String batchId) {
 
         RoomDto roomDto = new RoomDto();
-        roomDto.setDoorRoomNum(importRoomFee.getDoorRoomNum());
+//        roomDto.setDoorRoomNum(importRoomFee.getDoorRoomNum());
         roomDto.setCommunityId(importRoomFee.getCommunityId());
+        if(importRoomFee.getDoorRoomNum()!=null){
+            String[] split = importRoomFee.getDoorRoomNum().split("-");
+            if(split.length==2){
+                roomDto.setDoorRoomNum(importRoomFee.getDoorRoomNum());
+            }else if(split.length > 2){
+                roomDto.setFloorNum(split[0]);
+                roomDto.setUnitNum(split[1]);
+                roomDto.setRoomNum(split[2]);
+            }
+        }
         List<RoomDto> roomDtos = iRoomInnerServiceSMOImpl.queryRooms(roomDto);
         try {
             importRoomFee.setRoomId(roomDtos.get(0).getRoomId());
@@ -279,38 +309,17 @@
         }
         FeeDto feeDto2 = new FeeDto();
         feeDto2.setFeeName(importRoomFee.getFeeName());
-        List<FeeDto> feeDtos2 = feeInnerServiceSMOImpl.queryFees(feeDto2);
-        if(feeDtos2.size() == 0){
+        feeDto2.setPayerObjId(importRoomFee.getRoomId());
+        feeDto2.setCommunityId(importRoomFee.getCommunityId());
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto2);
+        if(feeDtos.size() == 0){
             updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
 
             throw new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�");
         }
-        FeeConfigDto feeConfigDto = new FeeConfigDto();
-        feeConfigDto.setFeeName(importRoomFee.getFeeName().trim());
-        feeConfigDto.setCommunityId(importRoomFee.getCommunityId());
-        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
-
-        if (ListUtil.isNull(feeConfigDtos)) {
-            throw new IllegalArgumentException("鏀惰垂椤�"+feeConfigDto.getFeeName()+"涓嶅瓨鍦�");
-        }
-
-        FeeConfigDto tmpFeeConfigDto = feeConfigDtos.get(0);
-
-        FeeDto feeDto = new FeeDto();
-        feeDto.setConfigId(tmpFeeConfigDto.getConfigId());
-        feeDto.setCommunityId(importRoomFee.getCommunityId());
-        feeDto.setPayerObjId(importRoomFee.getRoomId());
-        feeDto.setPayerObjType(importRoomFee.getObjType() ==null?FeeDto.PAYER_OBJ_TYPE_ROOM:importRoomFee.getObjType());
-        feeDto.setFeeTypeCd(feeConfigDtos.get(0).getFeeTypeCd());
-        feeDto.setConfigId(tmpFeeConfigDto.getConfigId());
-        // 瑙f瀽鏃ユ湡瀛楃涓�
-        LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter);
-        LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter);
-        importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate)));
-        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
         importRoomFee.setPayObjId(importRoomFee.getRoomId());
         if (ListUtil.isNull(feeDtos)) {
-            throw new IllegalArgumentException("鏌ヨ涓嶅埌璇ヨ褰曠殑璐圭敤椤癸細"+importRoomFee.getFeeName()+startDate+endDate);
+            throw new IllegalArgumentException("鏌ヨ涓嶅埌璇ヨ褰曠殑璐圭敤椤癸細"+importRoomFee.getFeeName());
 //            List<FeeAttrPo> feeAttrsPos = new ArrayList<>();
 //            PayFeePo payFeePo = new PayFeePo();
 //            payFeePo.setCommunityId(importRoomFee.getCommunityId());
@@ -355,10 +364,10 @@
 //            feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
         }
         if(feeDtos.size()>1){
-            throw new IllegalArgumentException("璇ュ垵濮嬪寲缂磋垂璁板綍淇℃伅涓寘鍚涓垂鐢ㄨ褰�"+importRoomFee.getFeeName()+startDate+endDate);
+            throw new IllegalArgumentException("璇ュ垵濮嬪寲缂磋垂璁板綍淇℃伅涓寘鍚涓垂鐢ㄨ褰�"+importRoomFee.getFeeName());
         }
         for (FeeDto tmpFeeDto : feeDtos) {
-            if(DateUtil.getDateFromStringB(importRoomFee.getEndTime()).getTime() > tmpFeeDto.getEndTime().getTime()){
+            if(DateUtil.getDateFromStringB(importRoomFee.getEndTime()).getTime() > tmpFeeDto.getMaxEndTime().getTime()){
                 throw new IllegalArgumentException("璇ヨ垂鐢ㄨ褰曠粨鏉熸椂闂村ぇ浜庤垂鐢ㄨ褰曟渶澶х即璐规椂闂�");
             }
             doImportFeeDetail(tmpFeeDto, importRoomFee);
@@ -384,11 +393,9 @@
         PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
         payFeeDetailPo.setCommunityId(importRoomFee.getCommunityId());
         payFeeDetailPo.setReceivedAmount(importRoomFee.getAmount());
-        payFeeDetailPo.setCycles(importRoomFee.getCycle());
         payFeeDetailPo.setPrimeRate("1.0");
         payFeeDetailPo.setFeeId(tmpFeeDto.getFeeId());
         payFeeDetailPo.setStartTime(importRoomFee.getStartTime());
-        payFeeDetailPo.setEndTime(importRoomFee.getEndTime());
         payFeeDetailPo.setRemark(importRoomFee.getRemark());
         payFeeDetailPo.setCreateTime(importRoomFee.getCreateTime());
         payFeeDetailPo.setState("1400");
@@ -397,14 +404,16 @@
         payFeeDetailPo.setB("T");
         double cycle = (DateUtil.dayCompare(
                 DateUtil.getDateFromStringA(payFeeDetailPo.getStartTime()),
-                DateUtil.getDateFromStringA(payFeeDetailPo.getEndTime())
+                DateUtil.getDateFromStringA(importRoomFee.getEndTime())
         ));
-        payFeeDetailPo.setCycles(cycle+"");
         int count = feeDetailInnerServiceSMOImpl.queryFeeDetailsCountByVo(payFeeDetailPo);
 
         payFeeDetailPo.setPayableAmount(importRoomFee.getAmount());
 
 
+        payFeeDetailPo.setCycles(importRoomFee.getCycle());
+        payFeeDetailPo.setCycles(cycle+"");
+        payFeeDetailPo.setEndTime(importRoomFee.getEndTime());
         if (count > 0) {
             throw new IllegalStateException("閲嶅鐨勭即璐硅褰�");
         }
@@ -427,10 +436,12 @@
                     payFeeDetailPo.setReceivableAmount((Double.parseDouble(payFeeDetailPo.getReceivedAmount()) + Double.parseDouble(payFeeDetailPo.getDiscountAmount()))+"");
                     payFeeDetailDiscount.setDiscountId(discountId);
                     payFeeDetailDiscount.setDiscountPrice(discountPrice);
+                }else{
+                    payFeeDetailPo.setReceivableAmount(payFeeDetailPo.getReceivedAmount()+"");
                 }
             }
         } catch (ParseException e) {
-            throw new RuntimeException(e);
+            throw new RuntimeException(e.getMessage());
         }
 
 
@@ -451,9 +462,9 @@
             payFeeDetailDiscount.setCommunityId(feeDtos.get(0).getCommunityId());
             payFeeDetailDiscount.setFeeId(feeDtos.get(0).getFeeId());
             payFeeDetailDiscount.setDetailDiscountId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_discountId));
-        }
 
-        payFeeDetailDiscountNewV1InnerServiceSMOImpl.savePayFeeDetailDiscountNew(payFeeDetailDiscount);
+            payFeeDetailDiscountNewV1InnerServiceSMOImpl.savePayFeeDetailDiscountNew(payFeeDetailDiscount);
+        }
 
         if (saved < 1) {
             return;

--
Gitblit v1.8.0