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.community.CommunityDto;
|
import com.java110.dto.importData.Vtil;
|
import com.java110.dto.meter.ImportExportMeterWaterDto;
|
import com.java110.dto.room.RoomDto;
|
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.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 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.time.LocalDate;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 水电抄表
|
* 方式1
|
*/
|
@Service("importMeterWaterFeeV2DataCleaning")
|
public class ImportMeterWaterFeeV2DataCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt {
|
|
@Autowired
|
private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
|
|
@Autowired
|
private IUserInnerServiceSMO userInnerServiceSMOImpl;
|
|
@Autowired
|
private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
|
|
@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());
|
|
|
Sheet sheet = null;
|
sheet = ImportExcelUtils.getSheet(workbook, "水费流水模板");
|
List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
|
for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
|
if (osIndex < 10) {
|
continue;
|
}
|
Object[] os = oList.get(osIndex);
|
if (os[0] == null && os[1] == null) {
|
continue;
|
}
|
|
MeterWaterPo po = new MeterWaterPo();
|
setCommunityId(po, os);
|
po.setbId("-1");
|
po.setMeterType(Vtil.defaultValue(os[7]));
|
po.setObjType("3333");
|
setRoomDto(po, os);
|
po.setPreDegrees(Vtil.defaultValue(os[21],null));
|
po.setMeterType("102026011915731141");
|
po.setCurDegrees(Vtil.defaultValue(os[22],null));
|
Date date = new Date();
|
date.setYear(defaultInteger(os[18]) - 1900);
|
date.setMonth(defaultInteger(os[19]));
|
po.setCurReadingTime(defaultInteger(os[18]) + "-" + defaultInteger(os[19]) + "-01 00:00:00");
|
po.setPreReadingTime(DateUtil.getAddMonthStringA(DateUtil.getDateFromStringA(po.getCurReadingTime()), -1));
|
po.setStatusCd("0");
|
po.setUserId(ValueUtil.defaultValue(paramIn.getString("userId")));
|
po.setConfigId(ValueUtil.defaultValue(paramIn.getString("configId"),"9220260120546511533"));
|
po.setFeeTypeCd(ValueUtil.defaultValue(paramIn.getString("feeTypeCd"),"630000017"));
|
po.setRemark(Vtil.defaultValue(os[29]));
|
po.setPrice(defaultDouble(os[25]));
|
po.setHandler(Vtil.defaultValue(os[9]));
|
po.setIsTransferred(Vtil.defaultValue(os[10]));
|
po.setCompanyNameAfterTransfer(Vtil.defaultValue(os[11]));
|
po.setTransferDate(Vtil.defaultValue(os[12]));
|
po.setLastPaymentDate(Vtil.defaultValue(os[21]));
|
po.setUnitPrice(Vtil.defaultValue(os[28]));
|
po.setInvoiceAmount(Vtil.defaultValue(os[30]));
|
po.setAmountDifference(Vtil.defaultValue(os[32]));
|
po.setHouseholdName(Vtil.defaultValue(os[8]));
|
po.setRemark2(Vtil.defaultValue(os[41]));
|
po.setAddress(Vtil.defaultValue(os[17]));
|
po.setWriteTime(Vtil.defaultValue(os[42]));
|
po.setWriter(Vtil.defaultValue(os[43]));
|
po.setAuditUserName(Vtil.defaultValue(os[44]));
|
try {
|
po.setCreateTime(DateUtil.getDateFromStringB(Vtil.defaultValue(os[45])));
|
} catch (Exception e) {
|
|
}
|
po.setPayDate(Vtil.defaultValue(os[40]));
|
po.setCheckApplyCompanyName(Vtil.defaultValue(os[2]));
|
po.setCheckApplyDeptProject(Vtil.defaultValue(os[3]));
|
po.setWaterFeePayer(Vtil.defaultValue(os[4]));
|
po.setAccountNumber(Vtil.defaultValue(os[5]));
|
po.setMeterReadBookNo(Vtil.defaultValue(os[6]));
|
po.setWaterConsumption(Vtil.defaultValue(os[24]));
|
po.setSewageTreatmentWater(Vtil.defaultValue(os[26]));
|
po.setCollectionStandard(Vtil.defaultValue(os[27]));
|
po.setArrearsUnpaid(Vtil.defaultValue(os[33]));
|
po.setLatePaymentFine(Vtil.defaultValue(os[34]));
|
po.setLatePaymentSurcharge(Vtil.defaultValue(os[35]));
|
po.setFeePaymentStatus(Vtil.defaultValue(os[36]));
|
po.setCarryOverBalance(Vtil.defaultValue(os[37]));
|
po.setTotalPayableAmount(Vtil.defaultValue(os[38]));
|
meterWaterPoList.add(po);
|
}
|
return meterWaterPoList;
|
}
|
|
private int defaultInteger(Object o) {
|
return o == null ? 0 : Integer.parseInt(o.toString());
|
}
|
private Double defaultDouble(Object o) {
|
return o == null ? 0 : Double.parseDouble(o.toString());
|
}
|
|
private void setRoomDto(MeterWaterPo po, Object[] os) {
|
po.setRoadName(Vtil.defaultValue(os[13]));
|
po.setFloorNum(Vtil.defaultValue(os[14]));
|
po.setUnitNum(Vtil.defaultValue(os[15]));
|
po.setRoomNum(Vtil.defaultValue(os[16]));
|
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());
|
}
|
else if (communityDtos.size() > 1) {
|
throw new IllegalArgumentException("查询小区异常:存在多个符合条件的小区:" + d.getCommunityCode() + d.getName());
|
}
|
po.setCommunityId(communityDtos.get(0).getCommunityId());
|
}
|
}
|