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 meterWaterPoList = new ArrayList(); List> maps = BeanConvertUtil.beanCovertMapListC(communityInnerServiceSMOImpl.queryCommunitys(new CommunityDto())); Sheet sheet = null; sheet = ImportExcelUtils.getSheet(workbook, "电费流水"); List 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> maps) { for (Map 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])); } }