From 17cc5a434d6acc39eeddfd913f0f0d39edd20e9e Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期四, 14 八月 2025 19:38:25 +0800
Subject: [PATCH] 合同费用导入2025/08/14

---
 service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java |   22 +++++++----
 service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java    |   59 ++++++++++++++++++++++++++++-
 springboot/src/main/resources/application.yml                                                  |    2 
 3 files changed, 72 insertions(+), 11 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java b/service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java
index 3e95a0d..0de6bb7 100644
--- a/service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java
+++ b/service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java
@@ -83,11 +83,14 @@
             if (osIndex == 0 || osIndex == 1) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
                 continue;
             }
-            if (os == null ||(os[0] == null && os[1] == null && os[2] == null)) {
+            if((os[0] == null && os[2] == null && os[1] == null)){
                 break;
             }
-            String startTime = handleExcelDateString(os[4].toString());
-            String endTime = handleExcelDateString(os[5].toString());
+            if (os == null ||(os[0] == null && os[1] == null)|| (os[0] == null && os[2] == null)) {
+                throw new IllegalArgumentException("璇烽�夋嫨璐圭敤涓讳綋+杞︾墝鍙锋垨璐圭敤涓讳綋+鍚堝悓缂栧彿");
+            }
+            String startTime = handleExcelDateString(os[5].toString());
+            String endTime = handleExcelDateString(os[6].toString());
             Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "琛屽紑濮嬫椂闂存牸寮忛敊璇� 璇峰~鍐橸YYY/MM/DD 鏂囨湰鏍煎紡");
             Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "琛岀粨鏉熸椂闂存牸寮忛敊璇� 璇峰~鍐橸YYY/MM/DD 鏂囨湰鏍煎紡");
 
@@ -95,8 +98,11 @@
             importRoomFee = new ImportRoomFee();
             importRoomFee.setPayerObjName(os[0] == null || (os[0] != null && os[1] != null)?os[1].toString():os[0].toString());
             importRoomFee.setObjType(os[0] == null || (os[0] != null && os[1] != null) ? "6666" : "3333");
-            importRoomFee.setFeeTypeCd(os[2] == null ? null : os[2].toString());
-            importRoomFee.setFeeName(os[3] == null ? null : os[3].toString());
+            importRoomFee.setIsContractFee(os[0] != null && os[1] ==null && os[2] != null ? "O" : null);
+            importRoomFee.setObjType(os[0] != null && os[1] ==null && os[2] != null ? "7777" : null);
+            importRoomFee.setContractId(os[0] != null && os[1] ==null && os[2] != null ? os[2].toString() : null);
+            importRoomFee.setFeeTypeCd(os[3] == null ? null : os[3].toString());
+            importRoomFee.setFeeName(os[4] == null ? null : os[4].toString());
             importRoomFee.setExpenseSubject(os[0] == null || (os[0] != null && os[1] != null)?os[1].toString():os[0].toString());
             if(startTime != null){
                 importRoomFee.setStartTime(startTime);
@@ -104,9 +110,9 @@
             if(endTime != null){
                 importRoomFee.setEndTime(endTime);
             }
-            if (os.length > 6){
-                importRoomFee.setCreateTime(os[7] == null ? null : excelDoubleToDate(os[7].toString()));
-                importRoomFee.setAmount(os[6] == null ? null : os[6].toString());
+            if (os.length > 7){
+                importRoomFee.setCreateTime(os[8] == null ? null : excelDoubleToDate(os[8].toString()));
+                importRoomFee.setAmount(os[7] == null ? null : os[7].toString());
             }else{
                 importRoomFee.setCreateTime(null);
                 importRoomFee.setAmount("0");
diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java
index 19f73c7..9dc1f30 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java
@@ -2,6 +2,9 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.account.AccountDto;
+import com.java110.dto.contract.ContractDto;
+import com.java110.dto.contract.ContractPartyaDto;
 import com.java110.dto.dict.DictDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
@@ -18,9 +21,12 @@
 import com.java110.dto.room.RoomDto;
 import com.java110.dto.user.UserDto;
 import com.java110.fee.cmd.fee.SaveRoomCreateFeeCmd;
+import com.java110.intf.acct.IAccountInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.dev.IDictV1InnerServiceSMO;
 import com.java110.intf.fee.*;
+import com.java110.intf.store.IContractInnerServiceSMO;
+import com.java110.intf.store.IContractPartyaInnerServiceSMO;
 import com.java110.intf.user.IMenuUserV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
@@ -78,9 +84,17 @@
     @Autowired
     private IDictV1InnerServiceSMO iDictV1InnerServiceSMO;
 
+    @Autowired
+    private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
+
+    @Autowired
+    private IContractPartyaInnerServiceSMO iContractPartyaInnerServiceSMO;
 
     @Autowired
     private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IContractInnerServiceSMO iContractInnerServiceSMO;
     //    @Autowired
 //    private IPayFeeMonth payFeeMonthImpl;
     @Override
@@ -107,7 +121,7 @@
 
         doImportRoomCreateFee(importRoomFee, batchId);
         doImportCarCreateFee(importRoomFee, batchId);
-
+        doImportContractFee(importRoomFee, batchId);
 
     }
 
@@ -176,6 +190,29 @@
      * @param batchId
      */
     private void doImportCarCreateFee(ImportRoomFee importRoomFee, String batchId) {
+        if (!FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(importRoomFee.getObjType())) {
+            return;
+        }
+        List<ImportRoomFee> cars = new ArrayList<>();
+        importRoomFee.setCarNum(importRoomFee.getPayerObjName());
+        cars.add(importRoomFee);
+
+
+        List<ImportRoomFee> importRoomFees = ownerCarInnerServiceSMOImpl.freshCarIds(cars);
+        for (ImportRoomFee tmpImportRoomFee : importRoomFees) {
+            if (StringUtil.isEmpty(tmpImportRoomFee.getPayerObjName())) {
+                throw new IllegalArgumentException(tmpImportRoomFee.getCarNum() + "涓嶅瓨鍦�");
+            }
+        }
+        doCreateFeeAndAttrs(importRoomFees.get(0), batchId);
+    }
+    /**
+     * 鍒涘缓杞﹁締璐圭敤
+     *
+     * @param importRoomFee
+     * @param batchId
+     */
+    private void doImportContractFee(ImportRoomFee importRoomFee, String batchId) {
         if (!FeeDto.PAYER_OBJ_TYPE_CAR.equals(importRoomFee.getObjType())) {
             return;
         }
@@ -223,8 +260,26 @@
         payFeePo.setCommunityId(importRoomFee.getCommunityId());
         payFeePo.setConfigId(feeConfigDtos.get(0).getConfigId());
         if (FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(importRoomFee.getObjType())) {
-            payFeePo.setPayerObjId(importRoomFee.getContractId());
+            ContractDto contractDto = new ContractDto();
+            contractDto.setContractCode(importRoomFee.getContractId());
+            List<ContractDto> contractDtos = iContractInnerServiceSMO.queryContracts(contractDto);
+            if(contractDtos.size() == 0){
+                throw new IllegalArgumentException("涓嶅瓨鍦ㄥ悎鍚岀紪鍙蜂负"+importRoomFee.getContractId()+"鐨勫悎鍚�");
+            }
+            importRoomFee.setFeeTypeCd(feeConfigDtos.get(0).getFeeTypeCd());
+            payFeePo.setFeeTypeCd(feeConfigDtos.get(0).getFeeTypeCd());
+            payFeePo.setContractFee(importRoomFee.getContractId());
+            ContractPartyaDto contractPartyaDto = new ContractPartyaDto();
+            contractPartyaDto.setPartyA(importRoomFee.getPayerObjName());
+            List<ContractPartyaDto> contractPartyaDtos = iContractPartyaInnerServiceSMO.queryContractPartyas(contractPartyaDto);
+            if (ListUtil.isNull(contractPartyaDtos)) {
+                throw new IllegalArgumentException("涓嶅瓨鍦ㄥ悎鍚屼富浣擄細"+importRoomFee.getPayerObjName());
+            }else if (contractPartyaDtos.size() > 1){
+                throw new IllegalArgumentException("鍚堝悓涓讳綋"+importRoomFee.getPayerObjName()+"瀛樺湪閲嶅悕");
+            }
+            payFeePo.setPayerObjId(contractPartyaDtos.get(0).getPartyaId());
             payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CONTRACT);
+            payFeePo.setIsContractFee("O");
         } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(importRoomFee.getObjType())) {
             payFeePo.setPayerObjId(importRoomFee.getCarId());
             payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
diff --git a/springboot/src/main/resources/application.yml b/springboot/src/main/resources/application.yml
index bb0552f..d404ca8 100644
--- a/springboot/src/main/resources/application.yml
+++ b/springboot/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active:  debug
+    active:  dev
 
 #  docker build -t lx .
 #

--
Gitblit v1.8.0