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.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.BeanConvertUtil;
|
import com.java110.utils.util.DateUtil;
|
import com.java110.utils.util.ImportExcelUtils;
|
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.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 水电抄表
|
* 方式1
|
*/
|
@Service("importElectricityFeeV2DataCleaning")
|
public class ImportElectricityFeeV2DataCleaningAdapt 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<Map<String, Object>> maps = BeanConvertUtil.beanCovertMapListC(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 < 9) {
|
continue;
|
}
|
Object[] os = oList.get(osIndex);
|
if (os[0] == null && os[1] == null) {
|
continue;
|
}
|
|
// if (ValueUtil.defaultValue(os[22]).equals("") || ValueUtil.defaultValue(os[23]).equals("")) {
|
// throw new IllegalArgumentException((osIndex + 1) + "行请填写本期度数和上期度数");
|
// }
|
MeterWaterPo po = new MeterWaterPo();
|
setCommunityId(po, os, maps);
|
po.setConfigId(ValueUtil.defaultValue(paramIn.getString("configId"),"922026011955390006"));
|
po.setFeeTypeCd(ValueUtil.defaultValue(paramIn.getString("feeTypeCd"),"630000007"));
|
po.setbId("-1");
|
po.setMeterType(ValueUtil.defaultValue(os[3]));
|
po.setObjType("3333");
|
setRoomDto(po, os);
|
po.setPreDegrees(ValueUtil.defaultValueToNull(os[22]));
|
po.setMeterType("102025090794960328");
|
po.setCurDegrees(ValueUtil.defaultValueToNull(os[23]));
|
Date date = new Date();
|
date.setYear(defaultInteger(os[18]) - 1900);
|
date.setMonth(defaultInteger(os[19]));
|
po.setPreReadingTime(defaultInteger(os[18]) + "-" + defaultInteger(os[19]) + "-01 00:00:00");
|
po.setCurReadingTime(Vtil.processDateEnhanced(DateUtil.getDateFromStringA(po.getPreReadingTime()), "end", DateUtil.DATE_FORMATE_STRING_A, null ,null));
|
po.setStatusCd("0");
|
po.setUserId(paramIn.getString("userId"));
|
po.setRemark(ValueUtil.defaultValue(os[28]));
|
po.setCommunityCode(Vtil.appendHyphenToRight(ValueUtil.defaultValue(os[0])));
|
po.setCommunityName(ValueUtil.defaultValue(os[1]));
|
try {
|
po.setPrice(Vtil.defaultDouble(os[26]));
|
} catch (Exception e) {
|
po.setRemark(po.getRemark() + ";双电费:" + Vtil.defaultValue(os[26]));
|
}
|
po.setPowerSupplyBureau(ValueUtil.defaultValue(os[4]));
|
po.setHouseholdName(ValueUtil.defaultValue(os[5]));
|
po.setHouseholdNumber(ValueUtil.defaultValue(os[6]));
|
po.setElectricMeterId(ValueUtil.defaultValue(os[7]));
|
po.setHandler(ValueUtil.defaultValue(os[8]));
|
po.setIsTransferred(ValueUtil.defaultValue(os[9]));
|
po.setCompanyNameAfterTransfer(ValueUtil.defaultValue(os[10]));
|
po.setTransferDate(ValueUtil.defaultValue(os[11]));
|
po.setCorrespondingHouseholdCount(ValueUtil.defaultValue(os[17]));
|
po.setLastPaymentDate(ValueUtil.defaultValue(os[20]));
|
po.setReadingType(ValueUtil.defaultValue(os[21]));
|
po.setMultiplyingFactor(ValueUtil.defaultValue(os[24]));
|
po.setUnitPrice(ValueUtil.defaultValue(os[27]));
|
po.setInvoiceAmount(ValueUtil.defaultValue(os[29]));
|
po.setAmountDifference(ValueUtil.defaultValue(os[31]));
|
po.setAutoDeduction(ValueUtil.defaultValue(os[32]));
|
po.setRemark2(ValueUtil.defaultValue(os[34]));
|
po.setAddress(ValueUtil.defaultValue(os[16]));
|
po.setWriter(ValueUtil.defaultValue(os[35]));
|
po.setWriteTime(ValueUtil.defaultValue(os,36));
|
po.setAuditUserName(ValueUtil.defaultValue(os,37));
|
try {
|
po.setCreateTime(DateUtil.getDateFromStringB(ValueUtil.defaultValue(os[38])));
|
} catch (Exception e) {
|
|
}
|
po.setPayDate(ValueUtil.defaultValue(os[33]));
|
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(ValueUtil.defaultValue(os[12]));
|
po.setFloorNum(ValueUtil.defaultValue(os[13]));
|
po.setUnitNum(ValueUtil.defaultValue(os[14]));
|
po.setRoomNum(ValueUtil.defaultValue(os[15]));
|
po.setObjName(po.getRoadName() + "-" + po.getFloorNum() + "-" + po.getUnitNum() + "-" + po.getRoomNum());
|
}
|
|
|
public void setCommunityId(MeterWaterPo po, Object[] os, List<Map<String, Object>> maps) {
|
for (Map<String, Object> map : maps) {
|
if (ValueUtil.defaultValue(os[0]).isEmpty() && ValueUtil.defaultValue(os[1]).isEmpty()){
|
throw new IllegalArgumentException("小区名称和小区编号均为空");
|
}
|
if (ValueUtil.defaultValue(os[0]).isEmpty()) {
|
if (Vtil.defaultValue(map.get("name")).contains(ValueUtil.defaultValue(os[1]))) {
|
po.setCommunityId(map.get("communityId").toString());
|
return;
|
}
|
} else if (ValueUtil.defaultValue(os[1]).isEmpty()){
|
if (Vtil.defaultValue(map.get("communityCode")).equals(ValueUtil.defaultValue(os[0]))) {
|
po.setCommunityId(map.get("communityId").toString());
|
return;
|
}
|
} else {
|
if (Vtil.defaultValue(map.get("communityCode")).equals(ValueUtil.defaultValue(os[0])) && Vtil.defaultValue(map.get("name")).contains(ValueUtil.defaultValue(os[1]))) {
|
po.setCommunityId(map.get("communityId").toString());
|
return;
|
}
|
}
|
}
|
po.setCommunityId(null);
|
po.setCommunityCode(ValueUtil.defaultValue(os[0]));
|
po.setCommunityName(ValueUtil.defaultValue(os[1]));
|
}
|
}
|