chengf
2026-01-30 b8bf2507bc7b23c90bc6dc71ea2460e277d3800a
导入测试
18个文件已修改
890 ■■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/importData/ImportOwnerRoomDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/Vtil.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/meter/MeterWaterDto.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/room/RoomDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/community/RoomServiceDaoImplMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/community/RoomV1ServiceDaoImplMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/MeterWaterServiceDaoImplMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/user/OwnerCarV1ServiceDaoImplMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterWaterFeeV2DataCleaningAdapt.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomOwnerDataV2CleaningAdapt.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/importData/adapt/ImportElectricityFeeV2QueueDataAdapt.java 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/importData/adapt/ImportMeterWaterFeeV2QueueDataAdapt.java 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/importData/adapt/ImportPhoneBillFeeV2QueueDataAdapt.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomOwnerV2QueueDataAdapt.java 299 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportOwnerRoomDto.java
@@ -50,6 +50,26 @@
    private String isEvChargerInstalled;
    private String householdPoliceStation;
    private String propertyFeeMonth;
    private String monthlyUnitPrice;
    public String getPropertyFeeMonth() {
        return propertyFeeMonth;
    }
    public void setPropertyFeeMonth(String propertyFeeMonth) {
        this.propertyFeeMonth = propertyFeeMonth;
    }
    public String getMonthlyUnitPrice() {
        return monthlyUnitPrice;
    }
    public void setMonthlyUnitPrice(String monthlyUnitPrice) {
        this.monthlyUnitPrice = monthlyUnitPrice;
    }
    public String getDoorRoomNum() {
        return doorRoomNum;
    }
java110-bean/src/main/java/com/java110/dto/importData/Vtil.java
@@ -1,10 +1,36 @@
package com.java110.dto.importData;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.format.ResolverStyle;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Locale;
public class Vtil {
    public static String defaultValue(Object o) {
        return o == null ? "" : o.toString();
    }
    public static String defaultValueToNumber(Object obj) {
        // 1. 处理null值
        if (obj == null) {
            return "";
        }
        // 2. 将对象转为字符串(兼容各种类型)
        String originalStr = String.valueOf(obj);
        // 3. 使用正则表达式替换所有非数字字符
        // \\D 匹配所有非数字字符(等价于 [^0-9])
        String numericStr = originalStr.replaceAll("\\D", "");
        // 4. 返回处理后的纯数字字符串
        return numericStr;
    }
    public static Double defaultDouble(Object o) {
        return o == null || o.equals("") ? null : Double.parseDouble(defaultValue(o));
@@ -31,5 +57,65 @@
        return str + "-";
    }
    public static String defaultValueToDate(Object o) {
        // 空值直接返回null(原有逻辑)
        if (o == null || o.toString().isEmpty()) {
            return null;
        }
        try {
            // 尝试将对象转换为数字(兼容Excel日期序列号,如44747)
            double excelDateNum = Double.parseDouble(o.toString());
            // Excel 1900日期系统基准(修正闰日bug,实际基准是1899-12-30)
            Calendar calendar = Calendar.getInstance();
            calendar.set(1899, 11, 30, 0, 0, 0); // 月份从0开始,11代表12月
            calendar.set(Calendar.MILLISECOND, 0);
            // 计算对应的实际日期
            calendar.add(Calendar.DAY_OF_MONTH, (int) excelDateNum);
            // 格式化为yyyy-MM-dd的日期字符串
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(calendar.getTime());
        } catch (NumberFormatException e) {
            // 非数字类型,执行原有逻辑返回toString()
            return o.toString();
        }
    }
    public static String defaultValueToDate(Object o, String state) {
        // 空值直接返回null(原有逻辑)
        if (o == null || o.toString().isEmpty() || o.toString().equals("0")) {
            return null;
        }
        String input = o.toString().trim();
        // 定义年月格式的解析器
        DateTimeFormatter ymFormatter = DateTimeFormatter.ofPattern("yyyy/M")
                .withLocale(Locale.CHINA)
                .withResolverStyle(ResolverStyle.LENIENT); // 宽松解析,兼容各种合法格式
        try {
            // 先解析为YearMonth(专门处理年月的类,不会缺少日期维度)
            YearMonth yearMonth = YearMonth.parse(input, ymFormatter);
            // 根据state参数处理日期
            if ("start".equals(state)) {
                // state为start时返回当月第一天
                LocalDate firstDay = yearMonth.atDay(1);
                return firstDay.toString();
            } else if ("end".equals(state)) {
                // state为end时返回当月最后一天
                LocalDate lastDay = yearMonth.atEndOfMonth();
                return lastDay.toString();
            }
        } catch (DateTimeParseException e) {
            // 不是20xx/01格式,忽略解析异常,执行原有逻辑
        }
        // 非目标格式或state不匹配时,返回原始字符串(原有逻辑)
        return input;
    }
}
java110-bean/src/main/java/com/java110/dto/meter/MeterWaterDto.java
@@ -59,6 +59,17 @@
    private String autoDeduction; // 自动扣款
    private String remark2; // 备注2
    private String roadName;
    public String getRoadName() {
        return roadName;
    }
    public void setRoadName(String roadName) {
        this.roadName = roadName;
    }
    public String getRemark() {
        return remark;
    }
java110-bean/src/main/java/com/java110/dto/room/RoomDto.java
@@ -39,6 +39,7 @@
    private String userId;
    private String roomId;
    private String[] roomIds;
    private String roomNumIsNull;
    private String layer;
    private String[] layers;
    private String builtUpArea;
@@ -206,6 +207,14 @@
        this.propertyCertificateNo = propertyCertificateNo;
    }
    public String getRoomNumIsNull() {
        return roomNumIsNull;
    }
    public void setRoomNumIsNull(String roomNumIsNull) {
        this.roomNumIsNull = roomNumIsNull;
    }
    public String getIsEvChargerInstalled() {
        return isEvChargerInstalled;
    }
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java
@@ -378,9 +378,9 @@
            //2+14+4+6
            //7920230518235714886
            if (longId) {
                return prefix + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_DEFAULT) + nextId("%06d");
                return prefix + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_MILLI) + nextId("%06d");
            } else {
                return prefix + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H) + nextId("%04d");
                return prefix + DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_MILLI) + nextId("%04d");
            }
        }
        //调用服务
java110-db/src/main/resources/mapper/community/RoomServiceDaoImplMapper.xml
@@ -168,7 +168,11 @@
        t.room_sub_type,t.room_rent,t.room_area,t.room_sub_type roomSubType,t.room_rent roomRent,t.room_area roomArea
        from building_room t
        left join building_unit bu on bu.unit_id = t.unit_id
        left join f_floor ff on ff.floor_id = bu.floor_id
        where 1 =1
        <if test="floorNum !=null and floorNum != ''">
            and ff.floor_num = #{floorNum}
        </if>
        <if test="feeCoefficient !=null and feeCoefficient != ''">
            and t.fee_coefficient= #{feeCoefficient}
        </if>
@@ -826,6 +830,9 @@
        <if test="roomNum !=null and roomNum != ''">
            and t.room_num= #{roomNum}
        </if>
        <if test="roomNumIsNull != null">
            and t.room_num = ''
        </if>
        <if test="roomNumLike !=null and roomNumLike != ''">
            and t.`room_num` like concat('%', #{roomNumLike},'%')
        </if>
java110-db/src/main/resources/mapper/community/RoomV1ServiceDaoImplMapper.xml
@@ -10,11 +10,11 @@
        insert into building_room(
        section,remark,room_sub_type,room_area,user_id,room_id,layer,fee_coefficient,built_up_area,
        room_num,unit_id,state,community_id,apartment,room_type,room_rent,door_room_num,property_type,property_address,house_certificate_no,
        road_name, buy_date, sell_date, sell_state, room_buyer, eoc
        road_name, buy_date, sell_date, sell_state, room_buyer, eoc, monthly_unit_price, property_fee_month
        ) values (
        #{section},#{remark},#{roomSubType},#{roomArea},#{userId},#{roomId},#{layer},#{feeCoefficient},#{builtUpArea},#{roomNum},#{unitId},#{state},
        #{communityId},#{apartment},#{roomType},#{roomRent},#{doorRoomNum},#{propertyType},#{propertyAddress},#{houseCertificateNo},
        #{roadName},#{buyDate},#{sellDate},#{sellState},#{roomBuyer},#{eoc}
        #{roadName},#{buyDate},#{sellDate},#{sellState},#{roomBuyer},#{eoc},#{monthlyUnitPrice},#{propertyFeeMonth}
        )
    </insert>
java110-db/src/main/resources/mapper/fee/MeterWaterServiceDaoImplMapper.xml
@@ -235,10 +235,12 @@
        t.late_payment_surcharge latePaymentSurcharge,
        t.fee_payment_status feePaymentStatus,
        t.carry_over_balance carryOverBalance,
        t.total_payable_amount totalPayableAmount
        t.total_payable_amount totalPayableAmount,
        br.road_name roadName
        from meter_water t
        left join meter_type mt on t.meter_type = mt.type_id and mt.status_cd = '0'
        left join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        left join building_room br on br.room_id = t.obj_id
        where 1 =1
        <if test="remark !=null and remark != ''">
            and t.remark= #{remark}
java110-db/src/main/resources/mapper/user/OwnerCarV1ServiceDaoImplMapper.xml
@@ -12,7 +12,18 @@
        car_type, start_time, end_time, state, community_id, member_id, b_id,lease_type,
        first_payment_date, payment_deadline_date, unit_price_per_month, annual_receivable_amount)
        values (#{carBrand}, #{carNum}, #{psId}, #{remark}, #{ownerId}, #{carTypeCd}, #{userId}, #{carId}, #{carColor},
        #{carType}, #{startTime}, #{endTime}, #{state}, #{communityId}, #{memberId}, '-1',#{leaseType},
        #{carType},
        <!-- 正确处理start_time:为空则赋值NULL,否则取参数值 -->
        <choose>
            <when test="startTime == null or startTime == ''">NULL</when>
            <otherwise>#{startTime}</otherwise>
        </choose>,
        <!-- 正确处理end_time:为空则赋值NULL,否则取参数值 -->
        <choose>
            <when test="endTime == null or endTime == ''">NULL</when>
            <otherwise>#{endTime}</otherwise>
        </choose>,
        #{state}, #{communityId}, #{memberId}, '-1',#{leaseType},
        #{firstPaymentDate}, #{paymentDeadlineDate}, #{unitPricePerMonth}, #{annualReceivableAmount})
    </insert>
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -16,6 +16,7 @@
 * Created by wuxw on 2017/7/24.
 */
public class DateUtil {
    public static final String DATE_FORMATE_STRING_MILLI = "yyyyMMddHHmmssSSS"; // 17位:年月日时分秒毫秒
    private static DateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterWaterFeeV2DataCleaningAdapt.java
@@ -14,10 +14,7 @@
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.po.meter.MeterWaterPo;
import com.java110.po.payFee.PayFeeAuditPo;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ImportExcelUtils;
import com.java110.utils.util.StringUtil;
import com.java110.utils.util.*;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +24,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 水电抄表
@@ -47,7 +45,7 @@
    @Override
    public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception {
        List<MeterWaterPo> meterWaterPoList = new ArrayList<MeterWaterPo>();
        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(new CommunityDto());
        List<Map<String, Object>> maps = BeanConvertUtil.beanCovertMapListC(communityInnerServiceSMOImpl.queryCommunitys(new CommunityDto()));
        Sheet sheet = null;
@@ -63,7 +61,7 @@
            }
            MeterWaterPo po = new MeterWaterPo();
            setCommunityId(po, os);
            setCommunityId(po, os, maps);
            po.setbId("-1");
            po.setMeterType(Vtil.defaultValue(os[7]));
            po.setObjType("3333");
@@ -136,17 +134,25 @@
        po.setObjName(po.getRoadName() + "-" + po.getFloorNum() + "-" + po.getUnitNum() + "-" + po.getRoomNum());
    }
    public void setCommunityId(MeterWaterPo po, Object[] os) {
        CommunityDto d = new CommunityDto();
        d.setCommunityCode(Vtil.defaultValue(os[0]));
        d.setName(Vtil.defaultValue(os[1]));
        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(d);
        if (communityDtos.isEmpty()) {
            throw new IllegalArgumentException("未查询到小区:" + d.getCommunityCode() + d.getName());
    public void setCommunityId(MeterWaterPo po, Object[] os, List<Map<String, Object>> maps) {
        for (Map<String, Object> map : maps) {
            if (ValueUtil.defaultValue(os[0]).isEmpty()) {
                if (ValueUtil.defaultValue(os[1]).equals(map.get("name"))) {
                    po.setCommunityId(map.get("communityId").toString());
                    return;
                }
            } else if (ValueUtil.defaultValue(os[1]).isEmpty()){
                if (ValueUtil.defaultValue(os[0]).equals(map.get("communityCode"))) {
                    po.setCommunityId(map.get("communityId").toString());
                    return;
                }
            } else {
                if (ValueUtil.defaultValue(os[0]).equals(map.get("communityCode")) && ValueUtil.defaultValue(os[1]).equals(map.get("name"))) {
                    po.setCommunityId(map.get("communityId").toString());
                    return;
                }
            }
        }
        else if (communityDtos.size() > 1) {
            throw new IllegalArgumentException("查询小区异常:存在多个符合条件的小区:" + d.getCommunityCode() + d.getName());
        }
        po.setCommunityId(communityDtos.get(0).getCommunityId());
        throw new IllegalArgumentException("未查询到小区:" + Vtil.appendHyphenToRight(ValueUtil.defaultValue(os[0])) + ValueUtil.defaultValue(os[1]));
    }
}
service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java
@@ -1,29 +1,34 @@
package com.java110.api.importData.adapt;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.components.ValueUtil;
import com.java110.api.importData.DefaultImportDataAdapt;
import com.java110.api.importData.IImportDataCleaningAdapt;
import com.java110.dto.PropertyWhiteListFlowDto;
import com.java110.dto.community.CommunityDto;
import com.java110.dto.importData.ImportRoomFee;
import com.java110.dto.importData.Vtil;
import com.java110.dto.system.ComponentValidateResult;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.po.meter.MeterWaterPo;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ImportExcelUtils;
import com.java110.utils.util.StringUtil;
import com.java110.utils.util.*;
import org.apache.commons.lang.time.DateUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
@Service("importPropertyWhiteListFlowDataCleaning")
public class ImportPropertyWhiteListfFlowAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt {
@@ -54,18 +59,27 @@
    }
    public String getCommunityId(Object[] os) {
        CommunityDto d = new CommunityDto();
        d.setCommunityCode(defaultValue(os[1]));
        d.setName(defaultValue(os[2]));
        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(d);
        if (communityDtos.isEmpty()) {
            throw new IllegalArgumentException("未查询到小区:" + d.getCommunityCode() + d.getName());
    public void setCommunityId(PropertyWhiteListFlowDto po, Object[] os, List<Map<String, Object>> maps) {
        for (Map<String, Object> map : maps) {
            if (ValueUtil.defaultValue(os[1]).isEmpty()) {
                if (ValueUtil.defaultValue(os[2]).equals(map.get("name"))) {
                    po.setCommunityId(map.get("communityId").toString());
                    return;
                }
            } else if (ValueUtil.defaultValue(os[2]).isEmpty()){
                if (ValueUtil.defaultValue(os[1]).equals(map.get("communityCode"))) {
                    po.setCommunityId(map.get("communityId").toString());
                    return;
                }
            } else {
                if (ValueUtil.defaultValue(os[1]).equals(map.get("communityCode")) && ValueUtil.defaultValue(os[1]).equals(map.get("name"))) {
                    po.setCommunityId(map.get("communityId").toString());
                    return;
                }
            }
        }
        else if (communityDtos.size() > 1) {
            throw new IllegalArgumentException("查询小区异常:存在多个符合条件的小区:" + d.getCommunityCode() + d.getName());
        }
        return communityDtos.get(0).getCommunityId();
        throw new IllegalArgumentException("未查询到小区:" + Vtil.appendHyphenToRight(ValueUtil.defaultValue(os[1])) + ValueUtil.defaultValue(os[2]));
    }
@@ -80,7 +94,7 @@
        PropertyWhiteListFlowDto white = null;
        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
            Object[] os = oList.get(osIndex);
            if (osIndex == 1) { // 第一行是 头部信息 直接跳过
            if (osIndex == 0) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if (StringUtil.isNullOrNone(os[3])) {
@@ -91,22 +105,23 @@
            white = new PropertyWhiteListFlowDto();
            String chargeTime = excelDoubleToDate(os[3].toString());
            String changeStart = defaultValueToDate(os[11]);
            String changeEnd = defaultValueToDate(os[12]);
            String bankDepositDate =  defaultValueToDate(os[16]);
            String changeStart = Vtil.defaultValueToDate(os[11],"start");
            String changeEnd = Vtil.defaultValueToDate(os[12],"end");
            String bankDepositDate =  Vtil.defaultValueToDate(os[16]);
            String inputTime = null;
            if(os[24] != null){
                inputTime = defaultValueToDate(os[24]);
                inputTime = Vtil.defaultValueToDate(os[24]);
            }
            white.setChargeTime(chargeTime);//收费时间
            white.setInvoiceReceiptNo(defaultValueToDate(os[4]));//发票
            white.setInvoiceReceiptNo(Vtil.defaultValueToDate(os[4]));//发票
            white.setRoomId(os[5] == null ? null : os[5].toString());//房号
            white.setPropertyAddress(os[5] == null ? null : os[5].toString());//业主地址
            white.setDoorRoomNum((os[6] == null ? "" : os[6].toString() + "-") + (os[7] == null ? "" : os[7].toString() + "-") + (os[8] == null ? "" : os[8].toString()) );//门市号
            if (white.getDoorRoomNum().isEmpty()){
                white.setDoorRoomNum(null);
            }
            white.setCommunityId(getCommunityId(os));
            List<Map<String, Object>> maps = BeanConvertUtil.beanCovertMapListC(communityInnerServiceSMOImpl.queryCommunitys(new CommunityDto()));
            setCommunityId(white, os, maps);
            white.setSecondaryFeeTypeCd(os[13] == null ? null : os[13].toString());//收费内容
            white.setChargeAmount(os[14] == null ? null : os[14].toString());//收费金额
            white.setCharger(os[15] == null ? null : os[15].toString());//收费人
@@ -125,7 +140,7 @@
            white.setCategory22(os[31] == null ? null : os[31].toString());//25项收费分类
            white.setRoomNumber(os[9] == null ? null : os[9].toString());
            white.setReceiptYear(os[27] == null ? null : os[27].toString());
            white.setReceiptYearMonth(defaultValueToDate(os[26]));
            white.setReceiptYearMonth(Vtil.defaultValueToDate(os[26]));
            white.setPendingProblem(os[30] == null ? null : os[30].toString());
//            if (os.length > 23){
//                white.setFrequency(os[23] == null ? null : os[23].toString());
@@ -209,31 +224,4 @@
//            whiteLists.add(white);
//        }
//    }
    private String defaultValueToDate(Object o) {
        // 空值直接返回null(原有逻辑)
        if (o == null) {
            return null;
        }
        try {
            // 尝试将对象转换为数字(兼容Excel日期序列号,如44747)
            double excelDateNum = Double.parseDouble(o.toString());
            // Excel 1900日期系统基准(修正闰日bug,实际基准是1899-12-30)
            Calendar calendar = Calendar.getInstance();
            calendar.set(1899, 11, 30, 0, 0, 0); // 月份从0开始,11代表12月
            calendar.set(Calendar.MILLISECOND, 0);
            // 计算对应的实际日期
            calendar.add(Calendar.DAY_OF_MONTH, (int) excelDateNum);
            // 格式化为yyyy-MM-dd的日期字符串
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(calendar.getTime());
        } catch (NumberFormatException e) {
            // 非数字类型,执行原有逻辑返回toString()
            return o.toString();
        }
    }
}
service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomOwnerDataV2CleaningAdapt.java
@@ -62,12 +62,12 @@
                throw new IllegalArgumentException("Excel长度过长!");
            }
//            Assert.hasValue(os[3], (osIndex + 1) + "行项目编码不能为空");
            Assert.hasValue(os[5], (osIndex + 1) + "行路不能为空");
            Assert.hasValue(os[7], (osIndex + 1) + "行门号不能为空");
            Assert.hasValue(os[8], (osIndex + 1) + "行室号不能为空");
            Assert.hasValue("住宅物业费 导入新模板中" + os[5], (osIndex + 1) + "行路不能为空");
//            Assert.hasValue("住宅物业费 导入新模板中" + os[7], (osIndex + 1) + "行门号不能为空");
//            Assert.hasValue("住宅物业费 导入新模板中" + os[8], (osIndex + 1) + "行室号不能为空");
//            Assert.hasValue(os[9], (osIndex + 1) + "行门室号不能为空");
            Assert.hasValue(os[10], (osIndex + 1) + "行业主地址不能为空");
            Assert.hasValue(os[16], (osIndex + 1) + "行住宅面积不能为空");
            Assert.hasValue("住宅物业费 导入新模板中" + os[10], (osIndex + 1) + "行业主地址不能为空");
            Assert.hasValue("住宅物业费 导入新模板中" + os[16], (osIndex + 1) + "行住宅面积不能为空");
            os[169] = result.getUserId();
@@ -86,12 +86,12 @@
            Object[] os = new Object[170];
            System.arraycopy(oList.get(osIndex), 0, os, 0, oList.get(osIndex).length);
//            Assert.hasValue(os[3], (osIndex + 1) + "行项目编码不能为空");
            Assert.hasValue(os[5], (osIndex + 1) + "行路不能为空");
            Assert.hasValue(os[7], (osIndex + 1) + "行门号不能为空");
            Assert.hasValue(os[8], (osIndex + 1) + "行室号不能为空");
            Assert.hasValue("商铺物业费 导入新模板中" + os[5], (osIndex + 1) + "行路不能为空");
//            Assert.hasValue("商铺物业费 导入新模板中" + os[7], (osIndex + 1) + "行门号不能为空");
//            Assert.hasValue("商铺物业费 导入新模板中" + os[8], (osIndex + 1) + "行室号不能为空");
//            Assert.hasValue(os[9], (osIndex + 1) + "行门室号不能为空");
            Assert.hasValue(os[10], (osIndex + 1) + "行业主地址不能为空");
            Assert.hasValue(os[16], (osIndex + 1) + "行住宅面积不能为空");
            Assert.hasValue("商铺物业费 导入新模板中" + os[10], (osIndex + 1) + "行业主地址不能为空");
            Assert.hasValue("商铺物业费 导入新模板中" + os[16], (osIndex + 1) + "行住宅面积不能为空");
            os[169] = result.getUserId();
service-job/src/main/java/com/java110/job/importData/adapt/ImportElectricityFeeV2QueueDataAdapt.java
@@ -76,24 +76,25 @@
    private void addFee(MeterWaterPo po, JSONObject reqJson, String batchId, AssetImportLogDetailDto assetImportLogDetailDto) {
        PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
        payFeePo.setIncomeObjId(reqJson.getString("storeId"));
        payFeePo.setAmount(po.getUnitPrice());
        if (payFeePo.getAmount().equals("")){
            payFeePo.setAmount("-1");
        }
//        payFeePo.setSecondaryFeeTypeCd("888800010190");
        payFeePo.setFeeTypeCd(po.getFeeTypeCd());
        payFeePo.setConfigId(po.getConfigId());
//        payFeePo.setPayerObjType("3333");
        payFeePo.setPayerObjId(po.getObjId());
        payFeePo.setBatchId(batchId);
        payFeePo.setStartTime(po.getCurReadingTime());
        payFeePo.setEndTime(po.getPreReadingTime());
        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
        payFeePo.setbId("-1");
        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
        payFeePo.setState(FeeDto.STATE_DOING);
        payFeePo.setState(FeeDto.STATE_FINISH);
        int i = meterWaterInnerServiceSMOImpl.queryMeterWatersCount(BeanConvertUtil.covertBean(BeanConvertUtil.beanCovertMap(po), MeterWaterDto.class));
        if (i > 0) {
            throw new IllegalArgumentException("重复的电费导入");
        }
        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
        payFeePo.setBatchId(batchId);
        payFeePo.setbId("-1");
        payFeePo.setIncomeObjId("102025062610470035");
        payFeePo.setUserId("-1");
@@ -102,10 +103,6 @@
        po.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
        po.setFeeId(payFeePo.getFeeId());
        meterWaterPos.add(po);
        int i = meterWaterInnerServiceSMOImpl.queryMeterWatersCount(BeanConvertUtil.covertBean(BeanConvertUtil.beanCovertMap(po), MeterWaterDto.class));
        if (i > 0) {
            throw new IllegalArgumentException("重复的电费导入");
        }
        meterWaterInnerServiceSMOImpl.saveMeterWaters(meterWaterPos);
        int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
@@ -179,47 +176,50 @@
    private void validateRoom(MeterWaterPo po, AssetImportLogDetailDto assetImportLogDetailDto) {
        RoomDto roomDto = new RoomDto();
        roomDto.setRoadName(po.getRoadName());
        roomDto.setFloorNum(po.getFloorNum());
        roomDto.setFloorNum(Vtil.defaultValueToNumber(po.getFloorNum()));
        roomDto.setCommunityId(po.getCommunityId());
        roomDto.setUnitNum(po.getUnitNum());
        roomDto.setRoomNum(po.getRoomNum());
        roomDto.setUnitNum(Vtil.defaultValueToNumber(po.getUnitNum()));
        roomDto.setRoomNum(Vtil.defaultValueToNumber(po.getRoomNum()));
        if (roomDto.getRoomNum().isEmpty()) {
            roomDto.setRoomNumIsNull("yes");
        }
        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
        if (roomDtos.isEmpty()) {
//            throw new IllegalArgumentException("未查询到房屋:" + po.getObjName());
            ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
            importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
            importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
            importOwnerRoomDto.setUserId(po.getUserId());
            importOwnerRoomDto.setLayerCount("0");
            importOwnerRoomDto.setLayer("0");
            importOwnerRoomDto.setLift("未知");
            importOwnerRoomDto.setSection("10102");
            importOwnerRoomDto.setOwnerTypeCd("1001");
            importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
            importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
            importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
            importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
            //---------
            importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
            importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
            importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
            importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
            importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
            importOwnerRoomDto.setPropertyAddress(
                    roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
            );//业主地址
            importOwnerRoomDto.setBuiltUpArea("0");//面积
            importOwnerRoomDto.setRoomArea("0");//面积
            importOwnerRoomDto.setRoomRent("0");//面积
            importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
            importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
            int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
            if (i == 0) {
                throw new IllegalArgumentException("房屋添加错误");
            }
            po.setObjId(importOwnerRoomDto.getRoomId());
            throw new IllegalArgumentException("未查询到房屋:" + po.getObjName());
//            ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
//            importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
//            importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
//            importOwnerRoomDto.setUserId(po.getUserId());
//            importOwnerRoomDto.setLayerCount("0");
//            importOwnerRoomDto.setLayer("0");
//            importOwnerRoomDto.setLift("未知");
//            importOwnerRoomDto.setSection("10102");
//            importOwnerRoomDto.setOwnerTypeCd("1001");
//            importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
//            importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
//            importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
//            importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
//            //---------
//
//            importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
//            importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
//            importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
//            importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
//            importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
//            importOwnerRoomDto.setPropertyAddress(
//                    roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
//            );//业主地址
//            importOwnerRoomDto.setBuiltUpArea("0");//面积
//            importOwnerRoomDto.setRoomArea("0");//面积
//            importOwnerRoomDto.setRoomRent("0");//面积
//            importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
//            importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
//            int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
//
//            if (i == 0) {
//                throw new IllegalArgumentException("房屋添加错误");
//            }
//            po.setObjId(importOwnerRoomDto.getRoomId());
        } else if (roomDtos.size() > 1) {
            throw new IllegalArgumentException("存在重复的房屋:" + po.getObjName());
        } else {
service-job/src/main/java/com/java110/job/importData/adapt/ImportMeterWaterFeeV2QueueDataAdapt.java
@@ -80,8 +80,6 @@
    private void addFee(MeterWaterPo po, JSONObject reqJson, String batchId, AssetImportLogDetailDto assetImportLogDetailDto) {
        PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
        payFeePo.setIncomeObjId(reqJson.getString("storeId"));
        payFeePo.setAmount(po.getUnitPrice());
        if (payFeePo.getAmount().equals("")){
            payFeePo.setAmount("-1");
@@ -91,25 +89,26 @@
        payFeePo.setConfigId(po.getConfigId());
//        payFeePo.setPayerObjType("3333");
        payFeePo.setPayerObjId(po.getObjId());
        payFeePo.setBatchId(batchId);
        payFeePo.setStartTime(po.getCurReadingTime());
        payFeePo.setEndTime(po.getPreReadingTime());
        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
        payFeePo.setbId(assetImportLogDetailDto.getLogId());
        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
        payFeePo.setState(FeeDto.STATE_DOING);
        payFeePo.setState(FeeDto.STATE_FINISH);
        payFeePo.setIncomeObjId("102025062610470035");
        payFeePo.setUserId(po.getUserId());
        reqJson.put("feeId", payFeePo.getFeeId());
        ArrayList<MeterWaterPo> meterWaterPos = new ArrayList<>();
        po.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
        po.setFeeId(payFeePo.getFeeId());
        meterWaterPos.add(po);
        int i = meterWaterInnerServiceSMOImpl.queryMeterWatersCount(BeanConvertUtil.covertBean(BeanConvertUtil.beanCovertMap(po), MeterWaterDto.class));
        if (i > 0) {
            throw new IllegalArgumentException("重复的水费导入");
        }
        payFeePo.setbId(assetImportLogDetailDto.getLogId());
        payFeePo.setUserId(po.getUserId());
        payFeePo.setBatchId(batchId);
        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
        po.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
        po.setFeeId(payFeePo.getFeeId());
        ArrayList<MeterWaterPo> meterWaterPos = new ArrayList<>();
        meterWaterPos.add(po);
        reqJson.put("feeId", payFeePo.getFeeId());
        FeeAttrPo feeAttrPo = new FeeAttrPo();
        feeAttrPo.setCommunityId(reqJson.getString("communityId"));
        feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
@@ -183,47 +182,50 @@
    private void validateRoom(MeterWaterPo po, AssetImportLogDetailDto assetImportLogDetailDto) {
        RoomDto roomDto = new RoomDto();
        roomDto.setRoadName(po.getRoadName());
        roomDto.setFloorNum(po.getFloorNum());
        roomDto.setFloorNum(Vtil.defaultValueToNumber(po.getFloorNum()));
        roomDto.setCommunityId(po.getCommunityId());
        roomDto.setUnitNum(po.getUnitNum());
        roomDto.setRoomNum(po.getRoomNum());
        roomDto.setUnitNum(Vtil.defaultValueToNumber(po.getUnitNum()));
        roomDto.setRoomNum(Vtil.defaultValueToNumber(po.getRoomNum()));
        if (roomDto.getRoomNum().isEmpty()) {
            roomDto.setRoomNumIsNull("yes");
        }
        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
        if (roomDtos.isEmpty()) {
//            throw new IllegalArgumentException("未查询到房屋:" + po.getObjName());
            ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
            importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
            importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
            importOwnerRoomDto.setUserId(po.getUserId());
            importOwnerRoomDto.setLayerCount("0");
            importOwnerRoomDto.setLayer("0");
            importOwnerRoomDto.setLift("未知");
            importOwnerRoomDto.setSection("10102");
            importOwnerRoomDto.setOwnerTypeCd("1001");
            importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
            importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
            importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
            importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
            //---------
            importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
            importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
            importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
            importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
            importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
            importOwnerRoomDto.setPropertyAddress(
                    roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
            );//业主地址
            importOwnerRoomDto.setBuiltUpArea("0");//面积
            importOwnerRoomDto.setRoomArea("0");//面积
            importOwnerRoomDto.setRoomRent("0");//面积
            importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
            importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
            int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
            if (i == 0) {
                throw new IllegalArgumentException("房屋添加错误");
            }
            po.setObjId(importOwnerRoomDto.getRoomId());
            throw new IllegalArgumentException("未查询到房屋:" + po.getObjName());
//            ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
//            importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
//            importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
//            importOwnerRoomDto.setUserId(po.getUserId());
//            importOwnerRoomDto.setLayerCount("0");
//            importOwnerRoomDto.setLayer("0");
//            importOwnerRoomDto.setLift("未知");
//            importOwnerRoomDto.setSection("10102");
//            importOwnerRoomDto.setOwnerTypeCd("1001");
//            importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
//            importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
//            importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
//            importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
//            //---------
//
//            importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
//            importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
//            importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
//            importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
//            importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
//            importOwnerRoomDto.setPropertyAddress(
//                    roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
//            );//业主地址
//            importOwnerRoomDto.setBuiltUpArea("0");//面积
//            importOwnerRoomDto.setRoomArea("0");//面积
//            importOwnerRoomDto.setRoomRent("0");//面积
//            importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
//            importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
//            int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
//
//            if (i == 0) {
//                throw new IllegalArgumentException("房屋添加错误");
//            }
//            po.setObjId(importOwnerRoomDto.getRoomId());
        } else if (roomDtos.size() > 1) {
            throw new IllegalArgumentException("存在重复的房屋:" + po.getObjName());
        } else {
service-job/src/main/java/com/java110/job/importData/adapt/ImportPhoneBillFeeV2QueueDataAdapt.java
@@ -100,7 +100,6 @@
        PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
        payFeePo.setCommunityId(po.getCommunityId());
        payFeePo.setFeeId(po.getFeeId());
        payFeePo.setIncomeObjId(reqJson.getString("storeId"));
        payFeePo.setAmount(po.getPayableAmount());
        if (payFeePo.getAmount().isEmpty()){
            payFeePo.setAmount("-1");
@@ -116,7 +115,7 @@
        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
        payFeePo.setbId("-1");
        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
        payFeePo.setState(FeeDto.STATE_DOING);
        payFeePo.setState(FeeDto.STATE_FINISH);
        payFeePo.setIncomeObjId("102025062610470035");
        payFeePo.setUserId("-1");
@@ -198,48 +197,51 @@
    private void validateRoom(PhoneBillFlow po) {
        RoomDto roomDto = new RoomDto();
        roomDto.setRoadName(po.getRoadName());
        roomDto.setFloorNum(po.getFloorNum());
        roomDto.setFloorNum(Vtil.defaultValueToNumber(po.getFloorNum()));
        roomDto.setCommunityId(po.getCommunityId());
        roomDto.setUnitNum(po.getUnitNum());
        roomDto.setRoomNum(po.getRoomNum());
        roomDto.setUnitNum(Vtil.defaultValueToNumber(po.getUnitNum()));
        roomDto.setRoomNum(Vtil.defaultValueToNumber(po.getRoomNum()));
        if (roomDto.getRoomNum().isEmpty()) {
            roomDto.setRoomNumIsNull("yes");
        }
        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
        if (roomDtos.isEmpty()) {
//            throw new IllegalArgumentException("未查询到房屋:" + po.getObjName());
            ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
            importOwnerRoomDto.setUserId(po.getUserId());
            importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
            importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
            importOwnerRoomDto.setUserId(po.getUserId());
            importOwnerRoomDto.setLayerCount("0");
            importOwnerRoomDto.setLayer("0");
            importOwnerRoomDto.setLift("未知");
            importOwnerRoomDto.setSection("10102");
            importOwnerRoomDto.setOwnerTypeCd("1001");
            importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
            importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
            importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
            importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
            //---------
            importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
            importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
            importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
            importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
            importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
            importOwnerRoomDto.setPropertyAddress(
                    roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
            );//业主地址
            importOwnerRoomDto.setBuiltUpArea("0");//面积
            importOwnerRoomDto.setRoomArea("0");//面积
            importOwnerRoomDto.setRoomRent("0");//面积
            importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
            importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
            int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
            if (i == 0) {
                throw new IllegalArgumentException("房屋添加错误");
            }
            po.setRoomId(importOwnerRoomDto.getRoomId());
            throw new IllegalArgumentException("未查询到房屋:" + po.getAddress());
//            ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
//            importOwnerRoomDto.setUserId(po.getUserId());
//            importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
//            importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
//            importOwnerRoomDto.setUserId(po.getUserId());
//            importOwnerRoomDto.setLayerCount("0");
//            importOwnerRoomDto.setLayer("0");
//            importOwnerRoomDto.setLift("未知");
//            importOwnerRoomDto.setSection("10102");
//            importOwnerRoomDto.setOwnerTypeCd("1001");
//            importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
//            importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
//            importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
//            importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
//            //---------
//
//            importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
//            importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
//            importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
//            importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
//            importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
//            importOwnerRoomDto.setPropertyAddress(
//                    roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
//            );//业主地址
//            importOwnerRoomDto.setBuiltUpArea("0");//面积
//            importOwnerRoomDto.setRoomArea("0");//面积
//            importOwnerRoomDto.setRoomRent("0");//面积
//            importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
//            importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
//            int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
//
//            if (i == 0) {
//                throw new IllegalArgumentException("房屋添加错误");
//            }
//            po.setRoomId(importOwnerRoomDto.getRoomId());
        } else if (roomDtos.size() > 1) {
            throw new IllegalArgumentException("存在重复的房屋,详见导入详情");
        } else {
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomOwnerV2QueueDataAdapt.java
@@ -22,6 +22,7 @@
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.oweFeeCallable.OweFeeCallablePo;
import com.java110.po.owner.OwnerPo;
import com.java110.po.room.ApplyRoomDiscountPo;
@@ -101,6 +102,8 @@
     * @param assetImportLogDetailDto
     */
    private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) {
        int a = 6;
        JSONArray objects = JSONObject.parseArray(assetImportLogDetailDto.getContent());
        ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
@@ -114,6 +117,8 @@
        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");
@@ -121,7 +126,16 @@
        dictDto.setName(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(defaultValue(objects.get(1)));
            dictV1InnerServiceSMOImpl.saveDict(dictPo);
            dictDtos = dictV1InnerServiceSMOImpl.queryDictAndSpecs(dictDto);
            if (dictDtos.isEmpty()) {
                throw new IllegalArgumentException("导入失败:字典中不存在物业类型:" + defaultValue(objects.get(1)));
            }
        }
        importOwnerRoomDto.setRoomSubType(dictDtos.get(0).getStatusCd());
        //----------
@@ -204,41 +218,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(defaultValue(objects.get(21+a)));
            ownerPoTo2.setLink(link);
            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(defaultValue(objects.get(16+a)));//面积
        importOwnerRoomDto.setRoomArea(defaultValue(objects.get(16+a)));//面积
        importOwnerRoomDto.setRoomRent(defaultValue(objects.get(16+a)));//面积
        importOwnerRoomDto.setBuyDate(defaultValueToDate(objects.get(20+a)));//购入日期
        importOwnerRoomDto.setSellDate(defaultValueToDate(objects.get(22+a)));//卖出日期
        importOwnerRoomDto.setSellState(defaultValue(objects.get(23+a)));//房屋状态
        importOwnerRoomDto.setEoc(defaultNum(objects.get(24)).toString());//设备运行费
        importOwnerRoomDto.setEoc(defaultNum(objects.get(24+a)).toString());//设备运行费
        //-----TODO 待导入  催缴信息
        if (!defaultValue(objects.get(27)).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(defaultValueToDate(objects.get(25+a)));
            ownerCollection.setCollectionEndDate(defaultValueToDate(objects.get(26+a)));
            ownerCollection.setAmount(defaultValue(objects.get(27+a)));
            ownerCollection.setFirstCollector(defaultValue(objects.get(28+a)));
            ownerCollection.setSecondCollectorName(defaultValue(objects.get(29+a)));
            ownerCollection.setSecondCollectorPhone(defaultValue(objects.get(30+a)));
            ownerCollection.setSecondCollectorAddress(defaultValue(objects.get(31+a)));
            ownerCollection.setReceiptNumber(defaultValue(objects.get(32+a)));
            ownerCollection.setReceiptPhotoUrl(defaultValue(objects.get(33+a)));
            ownerCollection.setRemark(defaultValue(objects.get(34+a)));
        }
        //-----
        //-----打折信息 TODO 未添加重复校验
        if (!defaultValue(objects.get(38)).isEmpty()) {
        if (!defaultValue(objects.get(38+a)).isEmpty()) {
            ApplyRoomDiscountPo applyRoomDiscountPo = new ApplyRoomDiscountPo();//打折
            applyRoomDiscountPo.setArdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ardId));
            applyRoomDiscountPo.setCommunityId(importOwnerRoomDto.getCommunityId());
@@ -246,29 +260,29 @@
            applyRoomDiscountPo.setRoomName(importOwnerRoomDto.getPropertyAddress());
            applyRoomDiscountPo.setDiscountId("132025112781200067");
            applyRoomDiscountPo.setApplyType("152025112756040048");
            applyRoomDiscountPo.setFixedDiscountValue(defaultNum(objects.get(36)));
            applyRoomDiscountPo.setDiscountedAmount(defaultNum(objects.get(37)));
            applyRoomDiscountPo.setFixedDiscountValue(defaultNum(objects.get(36+a)));
            applyRoomDiscountPo.setDiscountedAmount(defaultNum(objects.get(37+a)));
            // 2. 定义格式化器(注意:SimpleDateFormat 线程不安全,每次使用新建实例)
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/M");
            try {
                SimpleDateFormat outputSdf = new SimpleDateFormat("yyyy-MM-dd");
                applyRoomDiscountPo.setStartTime(defaultValueToDate(objects.get(38)));
                applyRoomDiscountPo.setEndTime(defaultValueToDate(objects.get(39)));
                applyRoomDiscountPo.setStartTime(defaultValueToDate(objects.get(38+a)));
                applyRoomDiscountPo.setEndTime(defaultValueToDate(objects.get(39+a)));
            }catch (Exception e){
                throw new IllegalArgumentException("导入失败:处理折扣日期区间时出错");
            }
            applyRoomDiscountPo.setDiscountArchiveDate(defaultValueToDate(objects.get(40)));
            applyRoomDiscountPo.setCreateRemark(defaultValue(objects.get(41)));
            applyRoomDiscountPo.setCheckRemark("审批人:" + defaultValue(objects.get(42)));
            applyRoomDiscountPo.setReviewRemark("审批人:" + defaultValue(objects.get(43)));
            applyRoomDiscountPo.setDiscountArchiveDate(defaultValueToDate(objects.get(40+a)));
            applyRoomDiscountPo.setCreateRemark(defaultValue(objects.get(41+a)));
            applyRoomDiscountPo.setCheckRemark("审批人:" + defaultValue(objects.get(42+a)));
            applyRoomDiscountPo.setReviewRemark("审批人:" + 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(defaultValue(objects.get(44+a)));
            try {
                applyRoomDiscountServiceDaoImpl.saveApplyRoomDiscountInfo(BeanConvertUtil.beanCovertMap(applyRoomDiscountPo));
            }catch (Exception e){
@@ -278,81 +292,127 @@
        //-----
        //-----业主信息
        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)).equals("") ?"2" :  defaultValue(objects.get(48)));
        importOwnerRoomDto.setTel(defaultValue(objects.get(45+a)));//手机号
        importOwnerRoomDto.setIdCard(defaultValue(objects.get(46+a)));//身份证
        importOwnerRoomDto.setAddress(defaultValue(objects.get(47+a)));//TODO 导入逻辑未添加该字段  联络地址
        importOwnerRoomDto.setSex(defaultValue(objects.get(48+a)).equals("") ?"2" :  defaultValue(objects.get(48+a)));
        importOwnerRoomDto.setOwnerName(defaultValue(objects.get(11)));
        importOwnerRoomDto.setHouseholdPoliceStation(defaultValue(objects.get(50)));
        importOwnerRoomDto.setPropertyCertificateNo(defaultValue(objects.get(51)));
        importOwnerRoomDto.setIsEvChargerInstalled(defaultValue(objects.get(52)));
        importOwnerRoomDto.setHouseholdPoliceStation(defaultValue(objects.get(50+a)));
        importOwnerRoomDto.setPropertyCertificateNo(defaultValue(objects.get(51+a)));
        importOwnerRoomDto.setIsEvChargerInstalled(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(57+a),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("");
            oweFeeCallablePo.setPayerObjName(importOwnerRoomDto.getPropertyAddress());
            oweFeeCallablePo.setPayerObjType("3333");
            oweFeeCallablePo.setRemark(defaultValue(objects.get(57+a)));
            oweFeeCallablePo.setStaffId("302025062612580518");
            oweFeeCallablePo.setStaffName("刘志勇");
            oweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
            oweFeeCallablePo.setStartTime(defaultValueToDate(objects.get(56+a)));//TODO 时间段需要拆分
            oweFeeCallablePo.setEndTime(defaultValueToDate(objects.get(56+a)));
            oweFeeCallablePo.setCreateTime(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 + 59+a;
                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(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+a)));
                int save = applyRoomDiscountServiceDaoImpl.saveHouseMailRecord(BeanConvertUtil.beanCovertMap(houseMailRecord));
            }
            //----对方收款单位表
            PayeeReceiveInfoPo payeeReceiveInfoPo = new PayeeReceiveInfoPo();
            payeeReceiveInfoPo.setCallableId(oweFeeCallablePo.getOfcId());
            payeeReceiveInfoPo.setCallerName(defaultValue(objects.get(80+a)));
            payeeReceiveInfoPo.setContactInfo(defaultValue(objects.get(81+a)));
            payeeReceiveInfoPo.setPayeeInfo(defaultValue(objects.get(82+a)));
            payeeReceiveInfoPo.setInvoiceNo(defaultValue(objects.get(83+a)));
            payeeReceiveInfoPo.setInvoiceDate(objects.getDate(84+a));
            payeeReceiveInfoPo.setReceiptNo(defaultValue(objects.get(85+a)));
            payeeReceiveInfoPo.setReceiptDate(objects.getDate(86+a));
            payeeReceiveInfoPo.setReceiptNote(defaultValue(objects.get(87+a)));
            payeeReceiveInfoPo.setReceiptNoteDate(objects.getDate(88+a));
            payeeReceiveInfoPo.setImageFile(defaultValue(objects.get(89+a)));
            payeeReceiveInfoPo.setOurCompanyReceiveDate(objects.getDate(90+a));
            payeeReceiveInfoPo.setAttachmentFile(defaultValue(objects.get(91+a)));
            payeeReceiveInfoPo.setOwnerId(importOwnerRoomDto.getOwnerId());
            payeeReceiveInfoPo.setRoomId(importOwnerRoomDto.getRoomId());
            int insert = sqlSessionTemplate.insert("payeeReceiveInfoServiceDaoImpl.savePayeeReceiveInfo",
                    BeanConvertUtil.beanCovertMap(payeeReceiveInfoPo));
            //----
            //----法院审理程序
            if (!defaultValue(objects.get(132+a)).isEmpty()) {
                CourtTrialProcedure courtTrialProcedure = new CourtTrialProcedure();
                courtTrialProcedure.setCallableId(oweFeeCallablePo.getOfcId());
                courtTrialProcedure.setOwnerId(importOwnerRoomDto.getOwnerId());
                courtTrialProcedure.setAcceptCourtName(defaultValue(objects.get(132+a)));
                courtTrialProcedure.setJudgeName(defaultValue(objects.get(133+a)));
                courtTrialProcedure.setJudgeContact(defaultValue(objects.get(134+a)));
                courtTrialProcedure.setJudgeNoticeAcceptDate(defaultValueToDate(objects.get(135+a)));
                courtTrialProcedure.setCourtMediationDate(defaultValueToDate(objects.get(136+a)));
                courtTrialProcedure.setMediationResult(defaultValue(objects.get(137+a)));
                courtTrialProcedure.setSubpoenaSignDate(defaultValueToDate(objects.get(138+a)));
                courtTrialProcedure.setUndeliveredDate(defaultValueToDate(objects.get(139+a)));
                courtTrialProcedure.setCourtSessionDate1(defaultValueToDate(objects.get(140+a)));
                courtTrialProcedure.setCourtSessionDate2(defaultValueToDate(objects.get(141+a)));
                courtTrialProcedure.setCaseNumber(defaultValue(objects.get(142+a)));
                courtTrialProcedure.setCourtSessionResult(defaultValue(objects.get(143+a)));
                courtTrialProcedure.setJudgmentDate(defaultValueToDate(objects.get(144+a)));
                courtTrialProcedure.setJudgmentResult(defaultValue(objects.get(145+a)));
                courtTrialProcedure.setRemark(defaultValue(objects.get(146+a)));
                applyRoomDiscountServiceDaoImpl.saveCourtTrialProcedure(BeanConvertUtil.beanCovertMap(courtTrialProcedure));
            }
            //-----
            //法院执行程序
            if (!defaultValue(objects.get(147+a)).isEmpty()) {
                CourtExecutionProcedure courtExecutionProcedure = new CourtExecutionProcedure();
                courtExecutionProcedure.setCallableId(oweFeeCallablePo.getOfcId());
                courtExecutionProcedure.setOwnerId(importOwnerRoomDto.getOwnerId());
                courtExecutionProcedure.setApplyTime(defaultValueToDate(objects.get(147+a)));
                courtExecutionProcedure.setJudgmentDocNumber(defaultValue(objects.get(148+a)));
                courtExecutionProcedure.setArrearsPeriod(defaultValue(objects.get(149+a)));
                courtExecutionProcedure.setArrearsAmount(defaultValue(objects.get(150+a)));
                courtExecutionProcedure.setLateFee(defaultValue(objects.get(151+a)));
                courtExecutionProcedure.setAcceptanceFee(defaultValue(objects.get(152+a)));
                courtExecutionProcedure.setOtherFee(defaultValue(objects.get(153+a)));
                courtExecutionProcedure.setTotalAmount(defaultValue(objects.get(154+a)));
                courtExecutionProcedure.setRemark(defaultValue(objects.get(160+a)));
                applyRoomDiscountServiceDaoImpl.saveCourtExecutionProcedure(BeanConvertUtil.beanCovertMap(courtExecutionProcedure));
            }
        }
        //----对方收款单位表
        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));
        //----添加电联
        List<MailCallRecord> mailCallRecords = new ArrayList<MailCallRecord>();
@@ -412,49 +472,6 @@
            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");
        importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
@@ -475,7 +492,7 @@
    private String defaultValueToDate(Object o) {
        // 空值直接返回null(原有逻辑)
        if (o == null) {
        if (o == null || o.toString().isEmpty() || o.toString().equals("0")) {
            return null;
        }
springboot/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: debug
    active: devlocal
import:
  line: