package com.java110.api.importData.adapt;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.api.importData.DefaultImportDataAdapt;
|
import com.java110.api.importData.IImportDataCleaningAdapt;
|
import com.java110.core.factory.GenerateCodeFactory;
|
import com.java110.dto.contract.*;
|
import com.java110.dto.importData.ImportOwnerRoomDto;
|
import com.java110.dto.importData.Vtil;
|
import com.java110.dto.system.ComponentValidateResult;
|
import com.java110.utils.util.Assert;
|
import com.java110.utils.util.DateUtil;
|
import com.java110.utils.util.ImportExcelUtils;
|
import org.apache.commons.lang.time.DateUtils;
|
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Workbook;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.text.ParseException;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 房产数据导入处理类
|
*
|
* 导入请求参数中必须包含
|
* param.append('importAdapt', "importRoomOwner");
|
*/
|
@Service("importContractV2DataCleaning")
|
public class ImportContractCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt {
|
@Override
|
public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception{
|
|
List<ContractDto> ownerRooms = new ArrayList<ContractDto>();
|
//封装对象
|
getConracts(workbook, ownerRooms, result);
|
|
return ownerRooms;
|
}
|
|
int qbl = 0;
|
|
/**
|
* 获取业主车辆信息
|
*
|
* @param workbook
|
* @param contractDtos
|
*/
|
private void getConracts(Workbook workbook, List<ContractDto> contractDtos, ComponentValidateResult result) throws ParseException {
|
Sheet sheet = null;
|
sheet = ImportExcelUtils.getSheet(workbook, "广告合同汇总表");
|
List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
|
ImportOwnerRoomDto importOwnerRoomDto = null;
|
for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
|
if (osIndex < 5) {
|
continue;
|
}
|
|
if (oList.get(osIndex)[0] == null) {
|
break;
|
}
|
|
Object[] os = oList.get(osIndex);
|
if (os == null) { // 新增空值判断
|
os = new Object[142]; // 空数组则直接创建长度为 142 的数组
|
} else if (os.length < 142) {
|
os = Arrays.copyOf(os, 142);
|
}
|
|
ContractDto contractDto = new ContractDto();
|
contractDto.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
|
contractDto.setPropertyCompany(defaultValue(os[qbl + 1]));
|
contractDto.setCommunityName(defaultValue(os[qbl + 2]));
|
contractDto.setState(defaultValue(os[qbl + 3]));
|
contractDto.setStartTime(Vtil.defaultValueToDate(os[qbl + 4]));
|
contractDto.setEndTime(Vtil.defaultValueToDate(os[qbl + 5]));
|
contractDto.setSigningTime(Vtil.defaultValueToDate(os[qbl + 6]));
|
contractDto.setContractTerm(defaultValue(os[qbl + 7]));
|
contractDto.setContractCode(defaultValue(os[qbl + 8]));
|
contractDto.setIsArchived(defaultValue(os[qbl + 9]));
|
contractDto.setContractType(defaultValue(os[qbl + 11]));
|
contractDto.setHasSupplementAgreement(defaultValue(os[qbl + 12]));
|
contractDto.setContractReminderDate(Vtil.defaultValueToDate(os[qbl + 13]));
|
contractDto.setPartyA(defaultValue(os[qbl + 14]));
|
contractDto.setPartyB(defaultValue(os[qbl + 1]));
|
contractDto.setSignatoryAddress(defaultValue(os[qbl + 15]));
|
contractDto.setContractName(defaultValue(os[qbl + 14]) + defaultValue(os[qbl + 8]));
|
contractDto.setaContacts(defaultValue(os[qbl + 16]));
|
contractDto.setaLink(defaultValue(os[qbl + 17]));
|
contractDto.setContactEmail(defaultValue(os[qbl + 18]));
|
contractDto.setContactWechat(defaultValue(os[qbl + 19]));
|
contractDto.setRemarks(defaultValue(os[qbl + 20]));
|
|
setAci(contractDto, os);
|
setCad(contractDto, os);
|
setCms(contractDto, os);
|
setCps(contractDto, os);
|
setCcds(contractDto, os);
|
contractDto.setStoreId(result.getStoreId());
|
|
contractDtos.add(contractDto);
|
}
|
}
|
|
private void setCcds(ContractDto contractDto, Object[] os) {
|
List<ContractCollectionDetailDto> contractCollectionDetailDtos = new ArrayList<>();
|
for (int j = 0; j < 10; j++) {
|
try {
|
int index = j * 10 + 53;
|
// if (os[index] == null || os[index].equals("")) {
|
// return;
|
// }
|
ContractCollectionDetailDto ccd = new ContractCollectionDetailDto();
|
ccd.setContractId(contractDto.getContractId());
|
|
ccd.setChargeType(Vtil.defaultValue(os[index]));
|
ccd.setInvoiceReceiptNo(Vtil.defaultValue(os[index+1]));
|
ccd.setWhiteListArchiveNo(Vtil.defaultValue(os[index+2]));
|
|
ccd.setCollectionPeriodStart(Vtil.defaultValueToDate(os[qbl + index + 3]));
|
ccd.setQueryCollectionPeriodEnd(Vtil.defaultValueToDate(os[qbl + index + 4]));
|
ccd.setCollectionAmount(defaultValue(os[qbl + index + 5]));
|
ccd.setCollectionDate(defaultValue(os[qbl + index + 6]));
|
ccd.setCollectionAmount(defaultValue(os[qbl + index + 7]));
|
ccd.setSpecialReduction(defaultValue(os[qbl + index + 8]));
|
ccd.setUnpaidMoney(defaultValue(os[qbl + index + 9]));
|
contractCollectionDetailDtos.add(ccd);
|
} catch (Exception e){
|
continue;
|
}
|
}
|
contractDto.setContractCollectionDetailDtos(contractCollectionDetailDtos);
|
}
|
|
private void setCps(ContractDto contractDto, Object[] os) {
|
ContractPaymentStatusDto cps = new ContractPaymentStatusDto();
|
cps.setContractId(contractDto.getContractId());
|
cps.setPaymentStatus(defaultValue(os[qbl + 44]));
|
cps.setReceivableAmount(defaultValue(os[qbl + 45]));
|
cps.setReceivedAmount(defaultValue(os[qbl + 46]));
|
cps.setUnpaidAmount(defaultValue(os[qbl + 47]));
|
cps.setSpecialDiscount(defaultValue(os[qbl + 48]));
|
cps.setCollectionProgress(defaultValue(os[qbl + 49]));
|
cps.setFinalCollectionDeadline(defaultValue(os[qbl + 50]));
|
cps.setCollectionReminderStatus(defaultValue(os[qbl + 51]));
|
cps.setRemark(defaultValue(os[qbl + 52]));
|
|
contractDto.setContractPaymentStatus(cps);
|
}
|
|
private void setCms(ContractDto contractDto, Object[] os) {
|
ContractManagementShareDto cms = new ContractManagementShareDto();
|
cms.setContractId(contractDto.getContractId());
|
cms.setManagementRatio(defaultValue(os[qbl + 40]));
|
cms.setOurCompanyAmount(defaultValue(os[qbl + 41]));
|
cms.setOurCommitteeShare(defaultValue(os[qbl + 42]));
|
cms.setOurCompanyReceivable(defaultValue(os[qbl + 43]));
|
|
contractDto.setContractManagementShare(cms);
|
}
|
|
private void setCad(ContractDto contractDto, Object[] os) {
|
ContractAmountDetailDto cad = new ContractAmountDetailDto();
|
cad.setContractId(contractDto.getContractId());
|
cad.setTotalContractAmount(defaultValue(os[qbl + 27]));
|
cad.setUnitPrice(defaultValue(os[qbl + 28]));
|
cad.setAnnualAmount(defaultValue(os[qbl + 29]));
|
cad.setTotalAmount(defaultValue(os[qbl + 30]));
|
cad.setSettlementMethod(defaultValue(os[qbl + 31]));
|
|
cad.setAccountInfo(defaultValue(os[qbl + 32]));
|
cad.setMainMeterNo(defaultValue(os[qbl + 33]));
|
cad.setSubMeterNo(defaultValue(os[qbl + 34]));
|
cad.setDeposit(defaultValue(os[qbl + 35]));
|
cad.setSettlementCycle(defaultValue(os[qbl + 38]));
|
cad.setPaymentRemark(defaultValue(os[qbl + 39]));
|
//
|
// cad.setSettlementAmount(defaultValue(os[qbl + 32]));
|
// cad.setFeeType(defaultValue(os[qbl + 33]));
|
// cad.setAccountInfo(defaultValue(os[qbl + 34]));
|
// cad.setMainMeterNo(defaultValue(os[qbl + 35]));
|
// cad.setSubMeterNo(defaultValue(os[qbl + 36]));
|
// cad.setLastMonthReading(defaultValue(os[qbl + 37]));
|
// cad.setCurrentMonthReading(defaultValue(os[qbl + 38]));
|
// cad.setCurrentPeriodConsumption(defaultValue(os[qbl + 39]));
|
// cad.setElectricityUnitPrice(defaultValue(os[qbl + 40]));
|
// cad.setElectricityFee(defaultValue(os[qbl + 41]));
|
// cad.setDeposit(defaultValue(os[qbl + 42]));
|
// cad.setSettlementCycle(defaultValue(os[qbl + 43]));
|
// cad.setPaymentRemark(defaultValue(os[qbl + 44]));
|
|
contractDto.setContractAmountDetail(cad);
|
}
|
|
private void setAci(ContractDto contractDto,Object[] os) {
|
AdContractInfoDto aci = new AdContractInfoDto();
|
aci.setContractId(contractDto.getContractId());
|
aci.setAdType(defaultValue(os[qbl + 21]));
|
aci.setSubType(defaultValue(os[qbl + 22]));
|
aci.setCooperationForm(defaultValue(os[qbl + 23]));
|
aci.setBuildingElevatorCount(defaultValue(os[qbl + 24]));
|
aci.setOnlineQuantity(defaultValue(os[qbl + 25]));
|
aci.setFacilityLocation(defaultValue(os[qbl + 26]));
|
|
contractDto.setAdContractInfo(aci);
|
}
|
|
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());
|
}
|
|
}
|