chengf
2026-01-27 b6184e2ddf3db37a94f7efb3b619bbc64642a292
service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java
@@ -7,6 +7,7 @@
import com.java110.dto.importData.ImportRoomFee;
import com.java110.dto.system.ComponentValidateResult;
import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
import com.java110.intf.store.IContractPartyaInnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
@@ -18,7 +19,9 @@
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 一次性费用导入
@@ -33,27 +36,102 @@
    @Autowired
    private IUserInnerServiceSMO userInnerServiceSMOImpl;
//    @Override
//    public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception {
//        List<ImportRoomFee> importRoomFees = new ArrayList<ImportRoomFee>();
//        if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(paramIn.getString("objType"))) {
//            getRooms(workbook, importRoomFees);
//        }else{
//            getCars(workbook, importRoomFees);
//        }
////        getRoomsAndCars(workbook, importRoomFees);
//        generatorBatch(paramIn);
//        for (ImportRoomFee importRoomFee : importRoomFees) {
//            importRoomFee.setBatchId(paramIn.getString("batchId"));
//            importRoomFee.setUserId(paramIn.getString("userId"));
//            importRoomFee.setStoreId(paramIn.getString("storeId"));
//            importRoomFee.setCommunityId(paramIn.getString("communityId"));
//            importRoomFee.setFeeTypeCd(paramIn.getString("feeTypeCd"));
//            importRoomFee.setObjType(paramIn.getString("objType"));
//
//        }
//        return importRoomFees;
//    }
    @Override
    public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception {
        List<ImportRoomFee> importRoomFees = new ArrayList<ImportRoomFee>();
        if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(paramIn.getString("objType"))) {
            getRooms(workbook, importRoomFees);
        }else{
            getCars(workbook, importRoomFees);
        }
        getRoomsAndCars(workbook, importRoomFees);
        generatorBatch(paramIn);
        for (ImportRoomFee importRoomFee : importRoomFees) {
            importRoomFee.setBatchId(paramIn.getString("batchId"));
            importRoomFee.setUserId(paramIn.getString("userId"));
            importRoomFee.setStoreId(paramIn.getString("storeId"));
            importRoomFee.setCommunityId(paramIn.getString("communityId"));
            importRoomFee.setFeeTypeCd(paramIn.getString("feeTypeCd"));
            importRoomFee.setObjType(paramIn.getString("objType"));
            importRoomFee.setImportFileName(paramIn.getString("importFileName"));
//            importRoomFee.setFeeTypeCd(paramIn.getString("feeTypeCd"));
        }
        return importRoomFees;
    }
    private void getRoomsAndCars(Workbook workbook, List<ImportRoomFee> importRoomFees) {
        Sheet sheet = null;
        sheet = ImportExcelUtils.getSheet(workbook, "费用导入模板");
        List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
        ImportRoomFee importRoomFee = null;
        Map<Integer, Object> debugs = new HashMap<Integer, Object>();
        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
            Object[] os = oList.get(osIndex);
            if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if (os.length < 9){
                continue;
            }
            if((os[0] == null && os[2] == null && os[1] == null)){
                break;
            }
            String startTime = handleExcelDateString(os[5].toString());
            String endTime = handleExcelDateString(os[6].toString());
            Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY/MM/DD 文本格式");
            Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY/MM/DD 文本格式");
            importRoomFee = new ImportRoomFee();
            if(!(os[0] == null && os[1] == null)){
                importRoomFee.setPayerObjName(os[0] == null || (os[0] != null && os[1] != null)?os[1].toString():os[0].toString());
                importRoomFee.setObjType(os[0] == null || (os[0] != null && os[1] != null) ? "6666" : "3333");
                importRoomFee.setExpenseSubject(os[0] == null || (os[0] != null && os[1] != null)?os[1].toString():os[0].toString());
            }else{
                importRoomFee.setPayerObjName(os[2] == null?null:os[2].toString());
                importRoomFee.setObjType(os[2] == null?null:os[2].toString());
                importRoomFee.setExpenseSubject(os[2] == null?null:os[2].toString());
            }
            importRoomFee.setIsContractFee(os[0] != null && os[1] ==null && os[2] != null ? "O" : null);
            if(os[2] != null){
                importRoomFee.setObjType("7777");
            }
            importRoomFee.setContractId(os[0] != null && os[1] ==null && os[2] != null ? os[2].toString() : null);
            importRoomFee.setFeeTypeCd(os[3] == null ? null : os[3].toString());
            importRoomFee.setFeeName(os[4] == null ? null : os[4].toString());
            if(startTime != null){
                importRoomFee.setStartTime(startTime);
            }
            if(endTime != null){
                importRoomFee.setEndTime(endTime);
            }
            if (os.length > 7){
                importRoomFee.setCreateTime(os[8] == null ? null : excelDoubleToDate(os[8].toString()));
                importRoomFee.setAmount(os[7] == null ? null : os[7].toString());
            }else{
                importRoomFee.setCreateTime(null);
                importRoomFee.setAmount("0");
            }
            importRoomFees.add(importRoomFee);
        }
    }
    /**
     * 获取 房屋信息
     *