chengf
2026-02-25 64b14b0549344f13b191e2c26ed199f62655c43f
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomOwnerV2QueueDataAdapt.java
@@ -5,22 +5,30 @@
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.community.CommunityDto;
import com.java110.dto.dict.DictDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.importData.*;
import com.java110.dto.log.AssetImportLogDetailDto;
import com.java110.dto.menu.MenuDto;
import com.java110.dto.oweFeeCallable.OweFeeCallableDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.room.RoomDto;
import com.java110.fee.api.ApplyRoomDiscountApi;
import com.java110.fee.bmo.fee.IFeeBMO;
import com.java110.fee.dao.IApplyRoomDiscountServiceDao;
import com.java110.fee.dao.IPayFeeConfigV1ServiceDao;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
import com.java110.intf.community.IMenuInnerServiceSMO;
import com.java110.intf.dev.IDictV1InnerServiceSMO;
import com.java110.intf.fee.IOweFeeCallableV1InnerServiceSMO;
import com.java110.intf.fee.*;
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.dict.DictPo;
import com.java110.po.fee.FeeAttrPo;
import com.java110.po.fee.PayFeePo;
import com.java110.po.oweFeeCallable.OweFeeCallablePo;
import com.java110.po.owner.OwnerPo;
import com.java110.po.room.ApplyRoomDiscountPo;
@@ -29,6 +37,7 @@
import com.java110.utils.cache.MappingCache;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -71,7 +80,15 @@
    @Autowired
    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
    @Autowired
    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
    @Autowired
    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMO;
    @Autowired
    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMO;
    @Override
    public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
        importDatas(assetImportLogDetailDtos);
@@ -88,7 +105,12 @@
                updateImportLogDetailState(assetImportLogDetailDto.getDetailId());
            } catch (Exception e) {
                e.printStackTrace();
                updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
                if (e.getMessage().contains("### Error updating database")){
                    updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), "未知错误,请联系管理员");
                }
                else {
                    updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
                }
            }
        }
@@ -100,12 +122,14 @@
     * @param assetImportLogDetailDto
     */
    private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) {
        int a = 6;
        JSONArray objects = JSONObject.parseArray(assetImportLogDetailDto.getContent());
        ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
        importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
        importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
        importOwnerRoomDto.setUserId(objects.getString(167));
        importOwnerRoomDto.setUserId(objects.getString(169));
        importOwnerRoomDto.setLayerCount("0");
        importOwnerRoomDto.setLayer("0");
        importOwnerRoomDto.setLift("未知");
@@ -113,27 +137,38 @@
        importOwnerRoomDto.setOwnerTypeCd("1001");
        importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
        importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
        importOwnerRoomDto.setMonthlyUnitPrice(objects.getString(23));
        importOwnerRoomDto.setPropertyFeeMonth(objects.getString(24));
        //--------设置物业类型
        DictDto dictDto = new DictDto();
        dictDto.setTableName("building_room");
        dictDto.setTableColumns("room_sub_type");
        dictDto.setName(defaultValue(objects.get(1)));
        dictDto.setName(Vtil.defaultValue(objects.get(1)));
        List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDictAndSpecs(dictDto);
        if (dictDtos.isEmpty()) {
            throw new IllegalArgumentException("导入失败:字典中不存在物业类型:" + defaultValue(objects.get(1)));
            DictPo dictPo = new DictPo();
            dictPo.setStatusCd(GenerateCodeFactory.getGeneratorId("2"));
            dictPo.setTableName("building_room");
            dictPo.setTableColumns("room_sub_type");
            dictPo.setName(Vtil.defaultValue(objects.get(1)));
            dictV1InnerServiceSMOImpl.saveDict(dictPo);
            dictDtos = dictV1InnerServiceSMOImpl.queryDictAndSpecs(dictDto);
            if (dictDtos.isEmpty()) {
                throw new IllegalArgumentException("导入失败:字典中不存在物业类型:" + Vtil.defaultValue(objects.get(1)));
            }
        }
        importOwnerRoomDto.setRoomSubType(dictDtos.get(0).getStatusCd());
        //----------
        importOwnerRoomDto.setPropertyType(defaultValue(objects.get(2)));//住宅类型
        importOwnerRoomDto.setPropertyType(Vtil.defaultValue(objects.get(2)));//住宅类型
        //--------匹配小区
        CommunityDto communityDto = new CommunityDto();
        communityDto.setCommunityCode(defaultValue(objects.get(3)));
        communityDto.setName(defaultValue(objects.get(4)));
        communityDto.setCommunityCode(Vtil.defaultValue(objects.get(3)));
        communityDto.setName(Vtil.defaultValue(objects.get(4)));
        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
        if (communityDtos.isEmpty()) {
            throw new IllegalArgumentException("导入失败:小区中不存在小区编码为‘" + defaultValue(objects.get(1)) + "’的小区");
            throw new IllegalArgumentException("导入失败:小区中不存在小区编码为‘" + Vtil.defaultValue(objects.get(1)) + "’的小区");
        } else if (communityDtos.size() > 1) {
            String communityNames = communityDtos.stream()
                    .map(CommunityDto::getName) // 提取每个小区的名称
@@ -145,18 +180,45 @@
        importOwnerRoomDto.setCommunityId(communityId);//小区编号
        //---------
        importOwnerRoomDto.setRoadName(defaultValue(objects.get(5)));//路名
        importOwnerRoomDto.setFloorNum(defaultValue(objects.get(6)));//弄
        importOwnerRoomDto.setUnitNum(defaultValue(objects.get(7)));//门
        importOwnerRoomDto.setRoomNum(defaultValue(objects.get(8)));//室
        importOwnerRoomDto.setDoorRoomNum(defaultValue(objects.get(9)));//门市号
        importOwnerRoomDto.setPropertyAddress(defaultValue(objects.get(10)));//业主地址
        importOwnerRoomDto.setRoomBuyer(defaultValue(objects.get(11)));//购房人
        importOwnerRoomDto.setRoadName(Vtil.defaultValue(objects.get(5)));//路名
        importOwnerRoomDto.setFloorNum(Vtil.defaultValue(objects.get(6)));//弄
        importOwnerRoomDto.setUnitNum(Vtil.defaultValue(objects.get(7)));//门
        importOwnerRoomDto.setRoomNum(Vtil.defaultValue(objects.get(8)));//室
        importOwnerRoomDto.setDoorRoomNum(Vtil.defaultValue(objects.get(9)));//门市号
        importOwnerRoomDto.setPropertyAddress(Vtil.defaultValue(objects.get(10)));//业主地址
        importOwnerRoomDto.setRoomBuyer(Vtil.defaultValue(objects.get(11)));//购房人
        RoomDto roomDto = new RoomDto();
        roomDto.setCommunityId(importOwnerRoomDto.getCommunityId());
        roomDto.setRoadName(importOwnerRoomDto.getRoadName());
        roomDto.setFloorNum(importOwnerRoomDto.getFloorNum());
        roomDto.setUnitNum(importOwnerRoomDto.getUnitNum());
        roomDto.setRoomNum(importOwnerRoomDto.getRoomNum());
        if (roomDto.getRoomNum() ==null || roomDto.getRoomNum().equals("")){
            roomDto.setPropertyType("商铺");
        }
        List<Object> objects1 = sqlSessionTemplate.selectList("roomServiceDaoImpl.getRoomInfo", BeanConvertUtil.beanCovertMap(roomDto));
        if (!objects1.isEmpty()) {
            throw new IllegalArgumentException("重复的房屋");
        }
        List<FeeConfigDto> feeDtos = null;
        if (!importOwnerRoomDto.getCommunityId().isEmpty()){
            FeeConfigDto feeConfigDto = new FeeConfigDto();
            feeConfigDto.setCommunityId(importOwnerRoomDto.getCommunityId());
            feeConfigDto.setSecondaryFeeTypeCdName(importOwnerRoomDto.getPropertyType());
            feeDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
            if (feeDtos.isEmpty()) {
                throw new IllegalArgumentException("物业类型`"+importOwnerRoomDto.getPropertyType()+"`未查询到收费项");
            }
        }
        //---------家庭成员、租客
        OwnerPo ownerPoTo3 = new OwnerPo();//
        if (!defaultValue(objects.get(13)).isEmpty()) {
            String link = defaultValue(objects.get(13));
        if (!Vtil.defaultValue(objects.get(13)).isEmpty()) {
            String link = Vtil.defaultValue(objects.get(13));
            OwnerDto ownerDto = new OwnerDto();
            ownerDto.setLink(link);
            ownerDto.setCommunityId(communityId);
@@ -169,15 +231,15 @@
            ownerPoTo3.setState(OwnerDto.STATE_FINISH);
            ownerPoTo3.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
            ownerPoTo3.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_MEMBER);
            ownerPoTo3.setName(defaultValue(objects.get(12)));
            ownerPoTo3.setName(Vtil.defaultValue(objects.get(12)));
            ownerPoTo3.setLink(link);
            ownerPoTo3.setSex("");
            ownerPoTo3.setSex("2");
            ownerPoTo3.setPersonRole(OwnerDto.PERSON_ROLE_MEMBER);
        }
        OwnerPo ownerPoTo2 = new OwnerPo();//TODO 租客未导入
        if (!defaultValue(objects.get(15)).isEmpty()) {
            String link = defaultValue(objects.get(15));
        if (!Vtil.defaultValue(objects.get(15)).isEmpty()) {
            String link = Vtil.defaultValue(objects.get(15));
            OwnerDto ownerDto = new OwnerDto();
            ownerDto.setLink(link);
            ownerDto.setCommunityId(communityId);
@@ -191,41 +253,41 @@
            ownerPoTo2.setState(OwnerDto.STATE_FINISH);
            ownerPoTo2.setPersonType(OwnerDto.PERSON_ROLE_RENT);
            ownerPoTo2.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_MEMBER);
            ownerPoTo2.setName(defaultValue(objects.get(21)));
            ownerPoTo2.setName(Vtil.defaultValue(objects.get(21+a)));
            ownerPoTo2.setLink(link);
            ownerPoTo2.setSex("");
            ownerPoTo2.setSex("2");
            ownerPoTo2.setPersonRole(OwnerDto.PERSON_ROLE_MEMBER);
        }
        //---------
        importOwnerRoomDto.setBuiltUpArea(defaultValue(objects.get(16)));//面积
        importOwnerRoomDto.setRoomArea(defaultValue(objects.get(16)));//面积
        importOwnerRoomDto.setRoomRent(defaultValue(objects.get(16)));//面积
        importOwnerRoomDto.setBuyDate(defaultValueToDate(objects.get(20)));//购入日期
        importOwnerRoomDto.setSellDate(defaultValueToDate(objects.get(22)));//卖出日期
        importOwnerRoomDto.setSellState(defaultValue(objects.get(23)));//房屋状态
        importOwnerRoomDto.setBuiltUpArea(Vtil.defaultValue(objects.get(16)));//面积
        importOwnerRoomDto.setRoomArea(Vtil.defaultValue(objects.get(16)));//面积
        importOwnerRoomDto.setRoomRent(Vtil.defaultValue(objects.get(16)));//面积
        importOwnerRoomDto.setBuyDate(Vtil.defaultValueToDate(objects.get(28)));//购入日期
        importOwnerRoomDto.setSellDate(Vtil.defaultValueToDate(objects.get(26)));//卖出日期
        importOwnerRoomDto.setSellState(Vtil.defaultValue(objects.get(23+a)));//房屋状态
        importOwnerRoomDto.setEoc(defaultNum(objects.get(24)).toString());//设备运行费
        importOwnerRoomDto.setEoc(Vtil.defaultNum(objects.get(24+a)).toString());//设备运行费
        //-----TODO 待导入  催缴信息
        if (!defaultValue(objects.get(27)).isEmpty()) {
        if (!Vtil.defaultValue(objects.get(31)).isEmpty()) {
            OwnerCollectionDto ownerCollection = new OwnerCollectionDto();
            ownerCollection.setOwnerId(importOwnerRoomDto.getOwnerId());
            ownerCollection.setRoomId(importOwnerRoomDto.getRoomId());
            ownerCollection.setCollectionStartDate(defaultValueToDate(objects.get(25)));
            ownerCollection.setCollectionEndDate(defaultValueToDate(objects.get(26)));
            ownerCollection.setAmount(defaultValue(objects.get(27)));
            ownerCollection.setFirstCollector(defaultValue(objects.get(28)));
            ownerCollection.setSecondCollectorName(defaultValue(objects.get(29)));
            ownerCollection.setSecondCollectorPhone(defaultValue(objects.get(30)));
            ownerCollection.setSecondCollectorAddress(defaultValue(objects.get(31)));
            ownerCollection.setReceiptNumber(defaultValue(objects.get(32)));
            ownerCollection.setReceiptPhotoUrl(defaultValue(objects.get(33)));
            ownerCollection.setRemark(defaultValue(objects.get(34)));
            ownerCollection.setCollectionStartDate(Vtil.defaultValueToDate(objects.get(25+a)));
            ownerCollection.setCollectionEndDate(Vtil.defaultValueToDate(objects.get(26+a)));
            ownerCollection.setAmount(Vtil.defaultValue(objects.get(27+a)));
            ownerCollection.setFirstCollector(Vtil.defaultValue(objects.get(28+a)));
            ownerCollection.setSecondCollectorName(Vtil.defaultValue(objects.get(29+a)));
            ownerCollection.setSecondCollectorPhone(Vtil.defaultValue(objects.get(30+a)));
            ownerCollection.setSecondCollectorAddress(Vtil.defaultValue(objects.get(31+a)));
            ownerCollection.setReceiptNumber(Vtil.defaultValue(objects.get(32+a)));
            ownerCollection.setReceiptPhotoUrl(Vtil.defaultValue(objects.get(33+a)));
            ownerCollection.setRemark(Vtil.defaultValue(objects.get(34+a)));
        }
        //-----
        //-----打折信息 TODO 未添加重复校验
        if (!defaultValue(objects.get(46)).isEmpty()) {
        if (!Vtil.defaultValue(objects.get(42)).isEmpty()) {
            ApplyRoomDiscountPo applyRoomDiscountPo = new ApplyRoomDiscountPo();//打折
            applyRoomDiscountPo.setArdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ardId));
            applyRoomDiscountPo.setCommunityId(importOwnerRoomDto.getCommunityId());
@@ -233,212 +295,208 @@
            applyRoomDiscountPo.setRoomName(importOwnerRoomDto.getPropertyAddress());
            applyRoomDiscountPo.setDiscountId("132025112781200067");
            applyRoomDiscountPo.setApplyType("152025112756040048");
            applyRoomDiscountPo.setFixedDiscountValue(defaultNum(objects.get(36)));
            applyRoomDiscountPo.setDiscountedAmount(defaultNum(objects.get(37)));
            // 2. 定义格式化器(注意:SimpleDateFormat 线程不安全,每次使用新建实例)
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/M");
            try {
                SimpleDateFormat outputSdf = new SimpleDateFormat("yyyy-MM-dd");
                applyRoomDiscountPo.setStartTime(outputSdf.format(sdf.parse(defaultValue(objects.get(38)))));
                applyRoomDiscountPo.setEndTime(outputSdf.format(sdf.parse(defaultValue(objects.get(39)))));
            }catch (Exception e){
                throw new IllegalArgumentException("导入失败:处理折扣日期区间时出错");
            }
            applyRoomDiscountPo.setDiscountArchiveDate(defaultValue(objects.get(40)));
            applyRoomDiscountPo.setCreateRemark(defaultValue(objects.get(41)));
            applyRoomDiscountPo.setCheckRemark("审批人:" + defaultValue(objects.get(42)));
            applyRoomDiscountPo.setReviewRemark("审批人:" + defaultValue(objects.get(43)));
            applyRoomDiscountPo.setFixedDiscountValue(Vtil.defaultNum(objects.get(36+a)));
            applyRoomDiscountPo.setDiscountedAmount(Vtil.defaultNum(objects.get(37+a)));
            applyRoomDiscountPo.setStartTime(Vtil.defaultValueToDate(objects.get(38+a),"start", null));
            applyRoomDiscountPo.setEndTime(Vtil.defaultValueToDate(objects.get(39+a), "end", null));
            applyRoomDiscountPo.setDiscountArchiveDate(Vtil.defaultValueToDate(objects.get(40+a)));
            applyRoomDiscountPo.setCreateRemark(Vtil.defaultValue(objects.get(41+a)));
            applyRoomDiscountPo.setCheckRemark("审批人:" + Vtil.defaultValue(objects.get(42+a)));
            applyRoomDiscountPo.setReviewRemark("审批人:" + Vtil.defaultValue(objects.get(43+a)));
            applyRoomDiscountPo.setCreateUserTel("无");
            applyRoomDiscountPo.setCreateUserName("由系统导入");
            applyRoomDiscountPo.setState("4");
            applyRoomDiscountPo.setStatusCd("0");
            applyRoomDiscountPo.setInUse("0");
            applyRoomDiscountPo.setReturnWay("1001");
            applyRoomDiscountPo.setRelatedAttachments(defaultValue(objects.get(44)));
            applyRoomDiscountPo.setRelatedAttachments(Vtil.defaultValue(objects.get(44+a)));
            try {
                applyRoomDiscountServiceDaoImpl.saveApplyRoomDiscountInfo(BeanConvertUtil.beanCovertMap(applyRoomDiscountPo));
            }catch (Exception e){
                throw new IllegalArgumentException("导入失败");
                throw new IllegalArgumentException("导入失败:打折信息导入存在错误");
            }
        }
        //-----
        //-----业主信息
        importOwnerRoomDto.setTel(defaultValue(objects.get(45)));//手机号
        importOwnerRoomDto.setIdCard(defaultValue(objects.get(46)));//身份证
        importOwnerRoomDto.setAddress(defaultValue(objects.get(47)));//TODO 导入逻辑未添加该字段  联络地址
        importOwnerRoomDto.setSex(defaultValue(objects.get(48)));
        importOwnerRoomDto.setOwnerName(defaultValue(objects.get(49)));
        importOwnerRoomDto.setHouseholdPoliceStation(defaultValue(objects.get(50)));
        importOwnerRoomDto.setPropertyCertificateNo(defaultValue(objects.get(51)));
        importOwnerRoomDto.setIsEvChargerInstalled(defaultValue(objects.get(52)));
        importOwnerRoomDto.setTel(Vtil.defaultValue(objects.get(45+a)));//手机号
        importOwnerRoomDto.setIdCard(Vtil.defaultValue(objects.get(46+a)));//身份证
        importOwnerRoomDto.setAddress(Vtil.defaultValue(objects.get(47+a)));//TODO 导入逻辑未添加该字段  联络地址
        importOwnerRoomDto.setSex(Vtil.defaultValue(objects.get(48+a)).equals("") ?"2" :  Vtil.defaultValue(objects.get(48+a)));
        importOwnerRoomDto.setOwnerName(Vtil.defaultValue(objects.get(11)));
        importOwnerRoomDto.setHouseholdPoliceStation(Vtil.defaultValue(objects.get(50+a)));
        importOwnerRoomDto.setPropertyCertificateNo(Vtil.defaultValue(objects.get(51+a)));
        importOwnerRoomDto.setIsEvChargerInstalled(Vtil.defaultValue(objects.get(52+a)));
        OweFeeCallablePo oweFeeCallablePo = new OweFeeCallablePo();
        oweFeeCallablePo.setOfcId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
        oweFeeCallablePo.setAmountdOwed("0");
        oweFeeCallablePo.setCallableWay(OweFeeCallableDto.CALLABLE_WAY_PRINT);
        oweFeeCallablePo.setOfcId(GenerateCodeFactory.getGeneratorId("11"));
        oweFeeCallablePo.setFeeId("");
        oweFeeCallablePo.setFeeName("导入催收信息");
        oweFeeCallablePo.setCommunityId(communityId);
        oweFeeCallablePo.setConfigId("");
        oweFeeCallablePo.setOwnerId(importOwnerRoomDto.getOwnerId());
        oweFeeCallablePo.setOwnerName(importOwnerRoomDto.getOwnerName());
        oweFeeCallablePo.setPayerObjId("");
        oweFeeCallablePo.setPayerObjName(importOwnerRoomDto.getPropertyAddress());
        oweFeeCallablePo.setPayerObjType("3333");
        oweFeeCallablePo.setRemark(defaultValue(objects.get(57)));
        oweFeeCallablePo.setStaffId("302025062612580518");
        oweFeeCallablePo.setStaffName("刘志勇");
        oweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
        oweFeeCallablePo.setStartTime(defaultValueToDate(objects.get(56)));//TODO 时间段需要拆分
        oweFeeCallablePo.setEndTime(defaultValueToDate(objects.get(56)));
        oweFeeCallablePo.setCreateTime(defaultValueToDate(objects.get(53)));
        int flag = oweFeeCallableV1InnerServiceSMOImpl.saveOweFeeCallable(oweFeeCallablePo);
        if (flag < 1) {
            throw new IllegalArgumentException("催收信息导入失败");
        }
        for (int i = 0; i < 5 ; i++) {
            int index = i*4 + 59;
            if(objects.get(index) == null){
                break;
        if (Vtil.defaultValue(objects.get(61),null) != null) {
            OweFeeCallablePo oweFeeCallablePo = new OweFeeCallablePo();
            oweFeeCallablePo.setOfcId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
            oweFeeCallablePo.setAmountdOwed("0");
            oweFeeCallablePo.setCallableWay(OweFeeCallableDto.CALLABLE_WAY_PRINT);
            oweFeeCallablePo.setOfcId(GenerateCodeFactory.getGeneratorId("11"));
            oweFeeCallablePo.setFeeId("");
            oweFeeCallablePo.setFeeName("导入催收信息");
            oweFeeCallablePo.setCommunityId(communityId);
            oweFeeCallablePo.setConfigId("");
            oweFeeCallablePo.setOwnerId(importOwnerRoomDto.getOwnerId());
            oweFeeCallablePo.setOwnerName(importOwnerRoomDto.getOwnerName());
            oweFeeCallablePo.setPayerObjId(importOwnerRoomDto.getRoomId());
            oweFeeCallablePo.setPayerObjName(importOwnerRoomDto.getPropertyAddress());
            oweFeeCallablePo.setPayerObjType("3333");
            oweFeeCallablePo.setRemark(Vtil.defaultValue(objects.get(57+a)) + "\n\n催收时段:" + Vtil.defaultValueToDate(objects.get(61)));
            oweFeeCallablePo.setStaffId("302025062612580518");
            oweFeeCallablePo.setStaffName("刘志勇");
            oweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
//            oweFeeCallablePo.setStartTime(Vtil.defaultValueToDate(objects.get(61)));//TODO 时间段需要拆分
//            oweFeeCallablePo.setEndTime(Vtil.defaultValueToDate(objects.get(61)));
            oweFeeCallablePo.setCreateTime(Vtil.defaultValueToDate(objects.get(53+a)));
            int flag = oweFeeCallableV1InnerServiceSMOImpl.saveOweFeeCallable(oweFeeCallablePo);
            if (flag < 1) {
                throw new IllegalArgumentException("催收信息导入失败");
            }
            HouseMailRecord houseMailRecord = new HouseMailRecord();
            houseMailRecord.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_houseId));
            houseMailRecord.setOwnerId(importOwnerRoomDto.getOwnerId());
            houseMailRecord.setHouseId(importOwnerRoomDto.getRoomId());
            houseMailRecord.setCallableId(oweFeeCallablePo.getOfcId());
            houseMailRecord.setCreateTime(defaultValueToDate(objects.get(index)));
            houseMailRecord.setMailNo(defaultValue(objects.get(index+1)));
            houseMailRecord.setServiceFee(defaultValue(objects.get(index+2)));
            houseMailRecord.setMailResult(defaultValue(objects.get(index+3)));
            houseMailRecord.setRemark(defaultValue(objects.get(79)));
            int save = applyRoomDiscountServiceDaoImpl.saveHouseMailRecord(BeanConvertUtil.beanCovertMap(houseMailRecord));
        }
            for (int i = 0; i < 5 ; i++) {
                int index = i*4 + 65;
                if(objects.get(index) == null){
                    break;
                }
                HouseMailRecord houseMailRecord = new HouseMailRecord();
                houseMailRecord.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_houseId));
                houseMailRecord.setOwnerId(importOwnerRoomDto.getOwnerId());
                houseMailRecord.setHouseId(importOwnerRoomDto.getRoomId());
                houseMailRecord.setCallableId(oweFeeCallablePo.getOfcId());
                houseMailRecord.setCreateTime(Vtil.defaultValueToDate(objects.get(index)));
                houseMailRecord.setMailNo(Vtil.defaultValue(objects.get(index+1)));
                houseMailRecord.setServiceFee(Vtil.defaultValue(objects.get(index+2)));
                houseMailRecord.setMailResult(Vtil.defaultValue(objects.get(index+3)));
                houseMailRecord.setRemark(Vtil.defaultValue(objects.get(79+a)));
        //----对方收款单位表
        PayeeReceiveInfoPo payeeReceiveInfoPo = new PayeeReceiveInfoPo();
        payeeReceiveInfoPo.setCallableId(oweFeeCallablePo.getOfcId());
        payeeReceiveInfoPo.setCallerName(defaultValue(objects.get(80)));
        payeeReceiveInfoPo.setContactInfo(defaultValue(objects.get(81)));
        payeeReceiveInfoPo.setPayeeInfo(defaultValue(objects.get(82)));
        payeeReceiveInfoPo.setInvoiceNo(defaultValue(objects.get(83)));
        payeeReceiveInfoPo.setInvoiceDate(objects.getDate(84));
        payeeReceiveInfoPo.setReceiptNo(defaultValue(objects.get(85)));
        payeeReceiveInfoPo.setReceiptDate(objects.getDate(86));
        payeeReceiveInfoPo.setReceiptNote(defaultValue(objects.get(87)));
        payeeReceiveInfoPo.setReceiptNoteDate(objects.getDate(88));
        payeeReceiveInfoPo.setImageFile(defaultValue(objects.get(89)));
        payeeReceiveInfoPo.setOurCompanyReceiveDate(objects.getDate(90));
        payeeReceiveInfoPo.setAttachmentFile(defaultValue(objects.get(91)));
        payeeReceiveInfoPo.setOwnerId(importOwnerRoomDto.getOwnerId());
        payeeReceiveInfoPo.setRoomId(importOwnerRoomDto.getRoomId());
        int insert = sqlSessionTemplate.insert("payeeReceiveInfoServiceDaoImpl.savePayeeReceiveInfo",
                BeanConvertUtil.beanCovertMap(payeeReceiveInfoPo));
                int save = applyRoomDiscountServiceDaoImpl.saveHouseMailRecord(BeanConvertUtil.beanCovertMap(houseMailRecord));
            }
        //----添加电联
        List<MailCallRecord> mailCallRecords = new ArrayList<MailCallRecord>();
        for (int i = 0 ; i < 9 ; i++) {
            int index = i * 3 + 92;
            if(defaultValue(objects.get(index)).isEmpty()){
            //----对方收款单位表
            PayeeReceiveInfoPo payeeReceiveInfoPo = new PayeeReceiveInfoPo();
            payeeReceiveInfoPo.setCallableId(oweFeeCallablePo.getOfcId());
            payeeReceiveInfoPo.setCallerName(Vtil.defaultValue(objects.get(88)));
            payeeReceiveInfoPo.setContactInfo(Vtil.defaultValue(objects.get(89)));
            payeeReceiveInfoPo.setPayeeInfo(Vtil.defaultValue(objects.get(90)));
            payeeReceiveInfoPo.setInvoiceNo(Vtil.defaultValue(objects.get(91)));
            payeeReceiveInfoPo.setInvoiceDate(objects.getDate(92));
            payeeReceiveInfoPo.setReceiptNo(Vtil.defaultValue(objects.get(93)));
            payeeReceiveInfoPo.setReceiptDate(objects.getDate(94));
            payeeReceiveInfoPo.setReceiptNote(Vtil.defaultValue(objects.get(95)));
            payeeReceiveInfoPo.setReceiptNoteDate(objects.getDate(96));
            payeeReceiveInfoPo.setImageFile(Vtil.defaultValue(objects.get(97)));
            payeeReceiveInfoPo.setOurCompanyReceiveDate(objects.getDate(98));
            payeeReceiveInfoPo.setAttachmentFile(Vtil.defaultValue(objects.get(99)));
            payeeReceiveInfoPo.setOwnerId(importOwnerRoomDto.getOwnerId());
            payeeReceiveInfoPo.setRoomId(importOwnerRoomDto.getRoomId());
            int insert = sqlSessionTemplate.insert("payeeReceiveInfoServiceDaoImpl.savePayeeReceiveInfo",
                    BeanConvertUtil.beanCovertMap(payeeReceiveInfoPo));
            //----
            //----法院审理程序
            if (!Vtil.defaultValue(objects.get(141)).isEmpty()) {
                CourtTrialProcedure courtTrialProcedure = new CourtTrialProcedure();
                courtTrialProcedure.setCallableId(oweFeeCallablePo.getOfcId());
                courtTrialProcedure.setOwnerId(importOwnerRoomDto.getOwnerId());
                courtTrialProcedure.setAcceptCourtName(Vtil.defaultValue(objects.get(132+a)));
                courtTrialProcedure.setJudgeName(Vtil.defaultValue(objects.get(133+a)));
                courtTrialProcedure.setJudgeContact(Vtil.defaultValue(objects.get(134+a)));
                courtTrialProcedure.setJudgeNoticeAcceptDate(Vtil.defaultValueToDate(objects.get(135+a)));
                courtTrialProcedure.setCourtMediationDate(Vtil.defaultValueToDate(objects.get(136+a)));
                courtTrialProcedure.setMediationResult(Vtil.defaultValue(objects.get(137+a)));
                courtTrialProcedure.setSubpoenaSignDate(Vtil.defaultValueToDate(objects.get(138+a)));
                courtTrialProcedure.setUndeliveredDate(Vtil.defaultValueToDate(objects.get(139+a)));
                courtTrialProcedure.setCourtSessionDate1(Vtil.defaultValueToDate(objects.get(140+a)));
                courtTrialProcedure.setCourtSessionDate2(Vtil.defaultValueToDate(objects.get(141+a)));
                courtTrialProcedure.setCaseNumber(Vtil.defaultValue(objects.get(142+a)));
                courtTrialProcedure.setCourtSessionResult(Vtil.defaultValue(objects.get(143+a)));
                courtTrialProcedure.setJudgmentDate(Vtil.defaultValueToDate(objects.get(144+a)));
                courtTrialProcedure.setJudgmentResult(Vtil.defaultValue(objects.get(145+a)));
                courtTrialProcedure.setRemark(Vtil.defaultValue(objects.get(146+a)));
                applyRoomDiscountServiceDaoImpl.saveCourtTrialProcedure(BeanConvertUtil.beanCovertMap(courtTrialProcedure));
            }
            //-----
            //法院执行程序
            if (!Vtil.defaultValue(objects.get(147+a)).isEmpty()) {
                CourtExecutionProcedure courtExecutionProcedure = new CourtExecutionProcedure();
                courtExecutionProcedure.setCallableId(oweFeeCallablePo.getOfcId());
                courtExecutionProcedure.setOwnerId(importOwnerRoomDto.getOwnerId());
                courtExecutionProcedure.setApplyTime(Vtil.defaultValueToDate(objects.get(147+a)));
                courtExecutionProcedure.setJudgmentDocNumber(Vtil.defaultValue(objects.get(148+a)));
                courtExecutionProcedure.setArrearsPeriod(Vtil.defaultValue(objects.get(149+a)));
                courtExecutionProcedure.setArrearsAmount(Vtil.defaultValue(objects.get(150+a)));
                courtExecutionProcedure.setLateFee(Vtil.defaultValue(objects.get(151+a)));
                courtExecutionProcedure.setAcceptanceFee(Vtil.defaultValue(objects.get(152+a)));
                courtExecutionProcedure.setOtherFee(Vtil.defaultValue(objects.get(153+a)));
                courtExecutionProcedure.setTotalAmount(Vtil.defaultValue(objects.get(154+a)));
                courtExecutionProcedure.setRemark(Vtil.defaultValue(objects.get(160+a)));
                applyRoomDiscountServiceDaoImpl.saveCourtExecutionProcedure(BeanConvertUtil.beanCovertMap(courtExecutionProcedure));
            }
            //----添加电联
            List<Object> mailCallRecords = new ArrayList<Object>();
            for (int i = 0 ; i < 9 ; i++) {
                int index = i * 3 + 86;
                if(Vtil.defaultValue(objects.get(index)).isEmpty()){
//                if (i == 0){
//                    MailCallRecord mailCallRecord = new MailCallRecord();
//                    mailCallRecord.setRemark(objects.get(115).toString());
//
//                    int save = applyRoomDiscountServiceDaoImpl.saveMailCallRecord(BeanConvertUtil.beanCovertMap(mailCallRecord));
//                }
                break;
                    break;
                }
                MailCallRecord mailCallRecord = new MailCallRecord();
                mailCallRecord.setMailId(oweFeeCallablePo.getOfcId());
                mailCallRecord.setCallDate(Vtil.defaultValueToDate(objects.get(index + (i == 0 ? 0 : 12))));
                mailCallRecord.setCallResult(Vtil.defaultValue(objects.get(index+1 + (i == 0 ? 0 : 12))));
                mailCallRecord.setCallContact(Vtil.defaultValue(objects.get(index+2 + 12)));
                mailCallRecord.setRemark(Vtil.defaultValue(objects.get(125)));
                mailCallRecords.add(mailCallRecord);
            }
            MailCallRecord mailCallRecord = new MailCallRecord();
            mailCallRecord.setCallDate(defaultValueToDate(objects.get(index)));
            mailCallRecord.setCallResult(defaultValue(objects.get(index+1)));
            mailCallRecord.setCallContact(defaultValue(objects.get(index+2)));
            mailCallRecord.setRemark(defaultValue(objects.get(119)));
            mailCallRecords.add(mailCallRecord);
            if (mailCallRecords.size() > 0) {
                Map<String, Object> param = new HashMap<>();
                param.put("mailCallRecordList", BeanConvertUtil.beanCovertMapList(mailCallRecords));
                sqlSessionTemplate.insert("mailCallRecordServiceDaoImpl.batchSaveMailCallRecord", param);
            }
            //----
        }
        if (mailCallRecords.size() > 0) {
            Map<String, Object> param = new HashMap<>();
            param.put("payeeReceiveList", BeanConvertUtil.beanCovertMap(mailCallRecords));
            sqlSessionTemplate.insert("payeeReceiveInfoServiceDaoImpl.batchSavePayeeReceiveInfo", param);
        }
        //----
        //产调日期
        if (!defaultValue(objects.get(120)).isEmpty()) {
        if (!Vtil.defaultValue(objects.get(126)).isEmpty()) {
            OwnerPropertySurvey ownerPropertySurvey = new OwnerPropertySurvey();
            ownerPropertySurvey.setOwnerId(importOwnerRoomDto.getOwnerId());
            ownerPropertySurvey.setRoomId(importOwnerRoomDto.getRoomId());
            ownerPropertySurvey.setSurveyWarrantApplyDate(defaultValueToDate(objects.get(123)));
            ownerPropertySurvey.setPropertySurveyDate(defaultValueToDate(objects.get(120)));
            ownerPropertySurvey.setName(defaultValue(objects.get(121)));
            ownerPropertySurvey.setExtraDate(defaultValueToDate(objects.get(122)));
            ownerPropertySurvey.setSurveyWarrantApplyDate(Vtil.defaultValueToDate(objects.get(129)));
            ownerPropertySurvey.setPropertySurveyDate(Vtil.defaultValueToDate(objects.get(126)));
            ownerPropertySurvey.setName(Vtil.defaultValue(objects.get(127)));
            ownerPropertySurvey.setExtraDate(Vtil.defaultValueToDate(objects.get(128)));
            int save = applyRoomDiscountServiceDaoImpl.saveOwnerPropertySurvey(BeanConvertUtil.beanCovertMap(ownerPropertySurvey));
        }
        //----
        //诉讼
        if (!defaultValue(objects.get(124)).isEmpty()) {
        if (!Vtil.defaultValue(objects.get(130)).isEmpty()) {
            LitigationInfoPo litigationInfoPo = new LitigationInfoPo();
            litigationInfoPo.setLitigationDate(objects.getDate(124));
            litigationInfoPo.setArrearsPeriod(defaultValue(objects.get(125)));
            litigationInfoPo.setArrearsAmount(objects.getBigDecimal(126));
            litigationInfoPo.setLateFee(objects.getBigDecimal(127));
            litigationInfoPo.setAcceptanceFee(objects.getBigDecimal(128));
            litigationInfoPo.setOtherFee(objects.getBigDecimal(129));
            litigationInfoPo.setTotalAmount(objects.getBigDecimal(130));
            litigationInfoPo.setSubmitter(defaultValue(objects.get(131)));
            litigationInfoPo.setLitigationDate(Vtil.defaultValue(objects.get(130)));
            litigationInfoPo.setArrearsPeriod(Vtil.defaultValue(objects.get(131)));
            litigationInfoPo.setArrearsAmount(Vtil.defaultValue(objects.get(132)));
            litigationInfoPo.setLateFee(Vtil.defaultValue(objects.get(133)));
            litigationInfoPo.setAcceptanceFee(Vtil.defaultValue(objects.get(134)));
            litigationInfoPo.setOtherFee(Vtil.defaultValue(objects.get(135)));
            litigationInfoPo.setTotalAmount(Vtil.defaultValue(objects.get(136)));
            litigationInfoPo.setSubmitter(Vtil.defaultValue(objects.get(137)));
            litigationInfoPo.setOwnerId(importOwnerRoomDto.getOwnerId());
            sqlSessionTemplate.insert("litigationInfoServiceDaoImpl.saveLitigationInfo",
                    BeanConvertUtil.beanCovertMap(litigationInfoPo));
        }
        //----
        //----法院审理程序
        if (!defaultValue(objects.get(132)).isEmpty()) {
            CourtTrialProcedure courtTrialProcedure = new CourtTrialProcedure();
            courtTrialProcedure.setCallableId(oweFeeCallablePo.getOfcId());
            courtTrialProcedure.setOwnerId(importOwnerRoomDto.getOwnerId());
            courtTrialProcedure.setAcceptCourtName(defaultValue(objects.get(132)));
            courtTrialProcedure.setJudgeName(defaultValue(objects.get(133)));
            courtTrialProcedure.setJudgeContact(defaultValue(objects.get(134)));
            courtTrialProcedure.setJudgeNoticeAcceptDate(defaultValueToDate(objects.get(135)));
            courtTrialProcedure.setCourtMediationDate(defaultValueToDate(objects.get(136)));
            courtTrialProcedure.setMediationResult(defaultValue(objects.get(137)));
            courtTrialProcedure.setSubpoenaSignDate(defaultValueToDate(objects.get(138)));
            courtTrialProcedure.setUndeliveredDate(defaultValueToDate(objects.get(139)));
            courtTrialProcedure.setCourtSessionDate1(defaultValueToDate(objects.get(140)));
            courtTrialProcedure.setCourtSessionDate2(defaultValueToDate(objects.get(141)));
            courtTrialProcedure.setCaseNumber(defaultValue(objects.get(142)));
            courtTrialProcedure.setCourtSessionResult(defaultValue(objects.get(143)));
            courtTrialProcedure.setJudgmentDate(defaultValueToDate(objects.get(144)));
            courtTrialProcedure.setJudgmentResult(defaultValue(objects.get(145)));
            courtTrialProcedure.setRemark(defaultValue(objects.get(146)));
            applyRoomDiscountServiceDaoImpl.saveCourtTrialProcedure(BeanConvertUtil.beanCovertMap(courtTrialProcedure));
        }
        //-----
        //法院执行程序
        if (!defaultValue(objects.get(147)).isEmpty()) {
            CourtExecutionProcedure courtExecutionProcedure = new CourtExecutionProcedure();
            courtExecutionProcedure.setCallableId(oweFeeCallablePo.getOfcId());
            courtExecutionProcedure.setOwnerId(importOwnerRoomDto.getOwnerId());
            courtExecutionProcedure.setApplyTime(defaultValueToDate(objects.get(147)));
            courtExecutionProcedure.setJudgmentDocNumber(defaultValue(objects.get(148)));
            courtExecutionProcedure.setArrearsPeriod(defaultValue(objects.get(149)));
            courtExecutionProcedure.setArrearsAmount(defaultValue(objects.get(150)));
            courtExecutionProcedure.setLateFee(defaultValue(objects.get(151)));
            courtExecutionProcedure.setAcceptanceFee(defaultValue(objects.get(152)));
            courtExecutionProcedure.setOtherFee(defaultValue(objects.get(153)));
            courtExecutionProcedure.setTotalAmount(defaultValue(objects.get(154)));
            courtExecutionProcedure.setRemark(defaultValue(objects.get(160)));
            applyRoomDiscountServiceDaoImpl.saveCourtExecutionProcedure(BeanConvertUtil.beanCovertMap(courtExecutionProcedure));
        }
        importOwnerRoomDto.setRoomState(importOwnerRoomDto.getOwnerName().equals("") ? "2004" : "2001");
@@ -449,21 +507,40 @@
        if (ownerDtos.size() == 1) {
            ownerPoTo2.setUserId(ownerDtos.get(0).getUserId());
            ownerPoTo3.setUserId(ownerDtos.get(0).getUserId());
            ownerV1InnerServiceSMOImpl.saveOwner(ownerPoTo2);
            ownerV1InnerServiceSMOImpl.saveOwner(ownerPoTo3);
            if (ownerPoTo2.getLink() != null) {
                ownerV1InnerServiceSMOImpl.saveOwner(ownerPoTo2);
            }
            if (ownerPoTo2.getLink() != null) {
                ownerV1InnerServiceSMOImpl.saveOwner(ownerPoTo3);
            }
        }
    }
    private String defaultValueToDate(Object o) {
        return o == null ? null : o.toString();
    }
    public String defaultValue(Object o) {
        return o == null ? "" : o.toString();
    }
    public BigDecimal defaultNum(Object o) {
        return o == null ? new BigDecimal(0) : new BigDecimal(o.toString());
        for (int i = 0 ; i < feeDtos.size(); i++) {
            FeeConfigDto feeDto = feeDtos.get(i);
            PayFeePo payFeePo = new PayFeePo();
            payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
            payFeePo.setbId("-1");
            payFeePo.setFeeTypeCd(feeDto.getFeeTypeCd());
            payFeePo.setSecondaryFeeTypeCd(feeDto.getSecondaryFeeTypeCd());
            payFeePo.setCommunityId(importOwnerRoomDto.getCommunityId());
            payFeePo.setPayerObjId(importOwnerRoomDto.getRoomId());
            payFeePo.setIncomeObjId("102025062610470035");
            payFeePo.setStartTime(feeDto.getStartTime());
            payFeePo.setEndTime(feeDto.getStartTime());
            payFeePo.setUserId(importOwnerRoomDto.getUserId());
            payFeePo.setStatusCd("0");
            payFeePo.setFeeFlag(feeDto.getFeeFlag());
            payFeePo.setConfigId(feeDto.getConfigId());
            payFeePo.setState("2008001");
            payFeePo.setPayerObjType("3333");
            payFeePo.setBatchId(assetImportLogDetailDto.getLogId());
            payFeeV1InnerServiceSMO.savePayFee(payFeePo);
            List<FeeAttrPo> feeAttrPos = new ArrayList<>();
            feeAttrPos.add(new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390007" , importOwnerRoomDto.getOwnerId()));
            feeAttrPos.add(new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390010" , feeDto.getEndTime().split(" ")[0] + " 23:59:59"));
            feeAttrPos.add(new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390009" , importOwnerRoomDto.getTel()));
            feeAttrPos.add(new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390008" , importOwnerRoomDto.getOwnerName()));
            feeAttrPos.add(new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390012" , importOwnerRoomDto.getDoorRoomNum()));
            int i1 = feeAttrInnerServiceSMO.saveFeeAttrs(feeAttrPos);
        }
    }
}