From dd6687b118561100e1677e88a9c2f5842a54c531 Mon Sep 17 00:00:00 2001
From: jialh <1972868360@qq.com>
Date: 星期四, 16 四月 2026 18:14:14 +0800
Subject: [PATCH] 水电话费

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportContractQueueDataAdapt.java |  242 ++++++++++++++++++-----------------------------
 1 files changed, 93 insertions(+), 149 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportContractQueueDataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportContractQueueDataAdapt.java
index 5b85eec..9f8b991 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportContractQueueDataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportContractQueueDataAdapt.java
@@ -1,54 +1,74 @@
 package com.java110.job.importData.adapt;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.core.annotation.Java110Transactional;
+import com.alibaba.fastjson.TypeReference;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.contract.ContractDto;
-import com.java110.dto.contract.ContractPartyaDto;
-import com.java110.dto.contract.ContractTypeDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.contract.*;
+import com.java110.dto.dict.DictDto;
+import com.java110.dto.importData.*;
 import com.java110.dto.log.AssetImportLogDetailDto;
-import com.java110.intf.store.IContractAttrInnerServiceSMO;
+import com.java110.dto.oweFeeCallable.OweFeeCallableDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.fee.dao.IApplyRoomDiscountServiceDao;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
+import com.java110.intf.dev.IDictV1InnerServiceSMO;
+import com.java110.intf.fee.IOweFeeCallableV1InnerServiceSMO;
 import com.java110.intf.store.IContractInnerServiceSMO;
-import com.java110.intf.store.IContractPartyaInnerServiceSMO;
-import com.java110.intf.store.IContractTypeInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
 import com.java110.job.importData.DefaultImportData;
 import com.java110.job.importData.IImportDataAdapt;
-import com.java110.po.contract.ContractAttrPo;
+import com.java110.po.community.CommunityPo;
 import com.java110.po.contract.ContractPo;
-import com.java110.utils.util.*;
+import com.java110.po.oweFeeCallable.OweFeeCallablePo;
+import com.java110.po.owner.OwnerPo;
+import com.java110.po.room.ApplyRoomDiscountPo;
+import com.java110.po.room.LitigationInfoPo;
+import com.java110.po.room.PayeeReceiveInfoPo;
+import com.java110.utils.util.BeanConvertUtil;
+import org.mybatis.spring.SqlSessionTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
- * 鎴垮眿缂磋垂淇℃伅瀵煎叆 閫傞厤鍣�
+ * 鎴夸骇淇℃伅瀵煎叆 閫傞厤鍣�
  * 鍓嶇璇锋眰 鏃� 蹇呴』浼犲叆
- * param.append('importAdapt', "importRoomOwner");
+ *   param.append('importAdapt', "importRoomOwner");
  */
-@Service("importContractQueueData")
+@Service("importContractV2QueueData")
 public class ImportContractQueueDataAdapt extends DefaultImportData implements IImportDataAdapt {
+
+    @Autowired
+    protected SqlSessionTemplate sqlSessionTemplate;
 
     @Autowired
     private IContractInnerServiceSMO contractInnerServiceSMOImpl;
 
     @Autowired
-    private IContractPartyaInnerServiceSMO contractPartyaInnerServiceSMOImpl;
-
-    @Autowired
-    private IContractTypeInnerServiceSMO contractTypeInnerServiceSMOImpl;
-
-    @Autowired
-    private IContractAttrInnerServiceSMO contractAttrInnerServiceSMOImpl;
-
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
 
     @Override
     public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
+        importDatas(assetImportLogDetailDtos);
+    }
 
-        for (AssetImportLogDetailDto assetImportLogDetailDto : assetImportLogDetailDtos) {
+    private void importDatas(List<AssetImportLogDetailDto> infos) {
+        String state = "";
+        String msg = "";
+        for (AssetImportLogDetailDto assetImportLogDetailDto : infos) {
             try {
-                importDatas(assetImportLogDetailDto);
+                doImportData(assetImportLogDetailDto);
                 updateImportLogDetailState(assetImportLogDetailDto.getDetailId());
             } catch (Exception e) {
                 e.printStackTrace();
@@ -58,145 +78,69 @@
 
     }
 
-    private void importDatas(AssetImportLogDetailDto assetImportLogDetailDto) {
-        List<ContractPo> contractPoList = new ArrayList<>();
+    /**
+     * 瀵煎叆鏁版嵁
+     *
+     * @param assetImportLogDetailDto
+     */
+    private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) {
         JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent());
-        ContractPo contractPo = BeanConvertUtil.covertBean(data, ContractPo.class);
-
-        try {
-            ContractPartyaDto contractPartyaDto = new ContractPartyaDto();
-            contractPartyaDto.setPartyA(contractPo.getaPartyaId());
-            contractPartyaDto.setCommunityId(contractPo.getCommunityId());
-            contractPartyaDto.setTypeId("1");
-            List<ContractPartyaDto> contractPartyaDtos = contractPartyaInnerServiceSMOImpl.queryContractPartyas(contractPartyaDto);
-            if (contractPartyaDtos.size() == 1){
-                contractPo.setaPartyaId(contractPartyaDtos.get(0).getPartyaId());
-                contractPo.setPartyA(contractPartyaDtos.get(0).getPartyA());
-            } else {
-                throw new IllegalArgumentException("瀛樺湪澶氫釜鍚嶄负"+contractPo.getaPartyaId()+"鐨勭敳鏂�");
+        AdContractInfoDto adContractInfo = data.getObject("adContractInfo", AdContractInfoDto.class);
+        ContractAmountDetailDto contractAmountDetail = data.getObject("contractAmountDetail", ContractAmountDetailDto.class);
+        ContractManagementShareDto contractManagementShare = data.getObject("contractManagementShare", ContractManagementShareDto.class);
+        ContractPaymentStatusDto contractPaymentStatus = data.getObject("contractPaymentStatus", ContractPaymentStatusDto.class);
+        List<ContractCollectionDetailDto> contractCollectionDetail =     data.getObject("contractCollectionDetailDtos",         new TypeReference<List<ContractCollectionDetailDto>>() {});        data.remove("adContractInfo");
+        data.remove("contractAmountDetail");
+        data.remove("contractManagementShare");
+        data.remove("contractPaymentStatus");
+        ContractDto contractDto = BeanConvertUtil.covertBean(data, ContractDto.class);
+//        ContractPo contractPo = BeanConvertUtil.covertBean(data, ContractPo.class);
+        contractDto.setContractAmountDetail(contractAmountDetail);
+        contractDto.setContractManagementShare(contractManagementShare);
+        contractDto.setAdContractInfo(adContractInfo);
+        contractDto.setContractPaymentStatus(contractPaymentStatus);
+        contractDto.setContractCollectionDetailDtos(contractCollectionDetail);
+        contractDto.setStartTime(Vtil.defaultValueToDate(contractDto.getStartTime(), "start", null));
+        contractDto.setEndTime(Vtil.defaultValueToDate(contractDto.getEndTime(), "end", null));
+//        int i = contractInnerServiceSMOImpl.queryContractsCount(contractDto);
+//
+//        if (i > 0) {
+//            throw new IllegalArgumentException("閲嶅鐨勫悎鍚�");
+//        }
+        if (Vtil.defaultValue(contractDto.getCommunityName()) != null) {
+            CommunityDto community = new CommunityDto();
+            community.setName(contractDto.getCommunityName());
+            List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(community);
+            if (communityDtos == null || communityDtos.size() == 0) {
+//            throw new IllegalArgumentException("鏈煡璇㈠埌" + community.getName() + "灏忓尯");
             }
-        } catch (IllegalArgumentException e){
-            throw new IllegalArgumentException("瀛樺湪澶氫釜鍚嶄负"+contractPo.getaPartyaId()+"鐨勭敳鏂�");
-        } catch (Exception e){
-            throw new IllegalArgumentException("鐢叉柟涓讳綋涓嶅瓨鍦�");
-        }
-
-
-        try {
-            ContractPartyaDto contractPartyaDto = new ContractPartyaDto();
-            contractPartyaDto.setPartyA(contractPo.getbPartyaId());
-            contractPartyaDto.setCommunityId(contractPo.getCommunityId());
-            contractPartyaDto.setTypeId("2");
-            List<ContractPartyaDto> contractPartyaDtos = contractPartyaInnerServiceSMOImpl.queryContractPartyas(contractPartyaDto);
-            if (contractPartyaDtos.size() == 1){
-                contractPo.setbPartyaId(contractPartyaDtos.get(0).getPartyaId());
-                contractPo.setPartyB(contractPartyaDtos.get(0).getPartyA());
-            } else {
-                throw new IllegalArgumentException("涓嶅瓨鍦ㄦ垨瀛樺湪澶氫釜鍚嶄负"+contractPo.getbPartyaId()+"鐨勪箼鏂�");
+            else {
+                contractDto.setCommunityId(communityDtos.get(0).getCommunityId());
             }
-        } catch (IllegalArgumentException e){
-            throw new IllegalArgumentException("涓嶅瓨鍦ㄦ垨瀛樺湪澶氫釜鍚嶄负"+contractPo.getbPartyaId()+"鐨勪箼鏂�");
-        } catch (Exception e){
-            throw new IllegalArgumentException("涔欐柟涓讳綋涓嶅瓨鍦�");
         }
-
-
-        try {
-            ContractPartyaDto contractPartyaDto = new ContractPartyaDto();
-            contractPartyaDto.setPartyA(contractPo.getcPartyaId());
-            contractPartyaDto.setCommunityId(contractPo.getCommunityId());
-            contractPartyaDto.setTypeId("3");
-            List<ContractPartyaDto> contractPartyaDtos = contractPartyaInnerServiceSMOImpl.queryContractPartyas(contractPartyaDto);
-            if (contractPartyaDtos.size() == 1){
-                contractPo.setcPartyaId(contractPartyaDtos.get(0).getPartyaId());
-                contractPo.setPartyC(contractPartyaDtos.get(0).getPartyA());
-            } else {
-                throw new IllegalArgumentException("涓嶅瓨鍦ㄦ垨瀛樺湪澶氫釜鍚嶄负"+contractPo.getcPartyaId()+"鐨勭涓夋柟");
+        contractInnerServiceSMOImpl.saveContract(contractDto);
+        sqlSessionTemplate.insert("adContractInfoDaoImpl.saveAdContractInfo", BeanConvertUtil.beanCovertMap(contractDto.getAdContractInfo()));
+        sqlSessionTemplate.insert("contractAmountDetailDaoImpl.saveContractAmountDetail", BeanConvertUtil.beanCovertMap(contractDto.getContractAmountDetail()));
+        sqlSessionTemplate.insert("contractManagementShareDaoImpl.saveContractManagementShare", BeanConvertUtil.beanCovertMap(contractDto.getContractManagementShare()));
+        sqlSessionTemplate.insert("contractPaymentStatusDaoImpl.saveContractPaymentStatus", BeanConvertUtil.beanCovertMap(contractDto.getContractPaymentStatus()));
+        if (contractDto.getContractCollectionDetailDtos() != null) {
+            for (ContractCollectionDetailDto ccd : contractDto.getContractCollectionDetailDtos()){
+                sqlSessionTemplate.insert("contractCollectionDetailDaoImpl.saveContractCollectionDetail", BeanConvertUtil.beanCovertMap(ccd));
             }
-        } catch (NullPointerException e){
-            e.printStackTrace();
-        } catch (IllegalArgumentException e){
-            throw new IllegalArgumentException("涓嶅瓨鍦ㄦ垨瀛樺湪澶氫釜鍚嶄负"+contractPo.getcPartyaId()+"鐨勭涓夋柟");
-        } catch (Exception e){
-            throw new IllegalArgumentException("绗笁鏂逛富浣撲笉瀛樺湪");
-        }
-
-
-        try {
-            ContractTypeDto contractTypeDto = new ContractTypeDto();
-            contractTypeDto.setCommunityId(contractPo.getCommunityId());
-            contractTypeDto.setTypeName(contractPo.getContractType());
-            List<ContractTypeDto> contractTypeDtos = contractTypeInnerServiceSMOImpl.queryContractTypes(contractTypeDto);
-            if (contractTypeDtos.size() == 1){
-                contractPo.setContractType(contractTypeDtos.get(0).getContractTypeId());
-            } else {
-                throw new IllegalArgumentException("涓嶅瓨鍦ㄦ垨瀛樺湪澶氫釜鍚嶄负"+contractPo.getContractType()+"鐨勫悎鍚岀被鍨�");
-            }
-        } catch (IllegalArgumentException e){
-            throw new IllegalArgumentException("涓嶅瓨鍦ㄦ垨瀛樺湪澶氫釜鍚嶄负"+contractPo.getContractType()+"鐨勫悎鍚岀被鍨�");
-        } catch (Exception e){
-            throw new IllegalArgumentException("鍚堝悓绫诲瀷涓嶅瓨鍦�");
-        }
-        try {
-            save(contractPo);
-        }catch (Exception e){
-            throw new IllegalArgumentException(e);
         }
 
     }
 
-    @Java110Transactional
-    public String save(ContractPo contractPo) {
-
-        //鏌ヨ 鍚堝悓鏄惁闇�瑕佸鏍�
-        ContractTypeDto contractTypeDto = new ContractTypeDto();
-        contractTypeDto.setContractTypeId(contractPo.getContractType());
-        contractTypeDto.setStoreId(contractPo.getStoreId());
-        contractTypeDto.setCommunityId(contractPo.getCommunityId());
-        List<ContractTypeDto> contractTypeDtos = contractTypeInnerServiceSMOImpl.queryContractTypes(contractTypeDto);
-
-        Assert.listOnlyOne(contractTypeDtos, "鏌ヨ鍚堝悓绫诲瀷澶辫触");
-
-
-        String audit = contractTypeDtos.get(0).getAudit();
-
-        if (ContractTypeDto.NO_AUDIT.equals(audit)) {
-            contractPo.setState("22");
-        } else {
-            contractPo.setState("11");
-        }
-        //鏍¢獙鍚堝悓缂栧彿鏄惁閲嶅
-        ContractDto contractDto = new ContractDto();
-        contractDto.setStoreId(contractPo.getStoreId());
-        contractDto.setContractCode(contractPo.getContractCode());
-        contractDto.setCommunityId(contractPo.getCommunityId());
-        List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
-
-        if (contractDtos != null && contractDtos.size() > 0) {
-            throw new IllegalArgumentException("鍚堝悓" + "[" + contractPo.getContractCode() + "]宸插瓨鍦�");
-        }
-
-        contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
-        contractPo.setContractParentId("");
-        int flag = contractInnerServiceSMOImpl.saveContract(contractPo);
-        if (flag < 0) {
-            throw new IllegalArgumentException("淇濆瓨澶辫触");
-        }
-        return  "淇濆瓨鎴愬姛";
+    private String defaultValueToDate(Object o) {
+        return o == null ? null : o.toString();
     }
 
-    private void saveContractAttr(JSONObject jsonObject, ContractPo contractPo) {
+    public String defaultValue(Object o) {
+        return o == null ? "" : o.toString();
+    }
 
-        ContractAttrPo contractAttrPo = new ContractAttrPo();
-        contractAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
-        contractAttrPo.setContractId(contractPo.getContractId());
-        contractAttrPo.setSpecCd(jsonObject.getString("specCd"));
-        contractAttrPo.setValue(jsonObject.getString("value"));
-        contractAttrPo.setStoreId(contractPo.getStoreId());
-        int count = contractAttrInnerServiceSMOImpl.saveContractAttr(contractAttrPo);
 
-        if (count < 1) {
-            throw new IllegalArgumentException("淇濆瓨灞炴�уけ璐�");
-        }
+    public BigDecimal defaultNum(Object o) {
+        return o == null ? new BigDecimal(0) : new BigDecimal(o.toString());
     }
 }

--
Gitblit v1.8.0