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.*; 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; import java.util.Map; /** * 水电抄表 * 方式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 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 < 10) { continue; } Object[] os = oList.get(osIndex); if (os[0] == null && os[1] == null) { continue; } MeterWaterPo po = new MeterWaterPo(); setCommunityId(po, os, maps); 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.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(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, List> maps) { for (Map map : maps) { if (ValueUtil.defaultValue(os[0]).isEmpty()) { if (ValueUtil.defaultValue(os[1]).equals(map.get("name"))) { po.setCommunityId(map.get("communityId").toString()); return; } } else if (ValueUtil.defaultValue(os[1]).isEmpty()){ if (ValueUtil.defaultValue(os[0]).equals(map.get("communityCode"))) { po.setCommunityId(map.get("communityId").toString()); return; } } else { if (ValueUtil.defaultValue(os[0]).equals(map.get("communityCode")) && ValueUtil.defaultValue(os[1]).equals(map.get("name"))) { po.setCommunityId(map.get("communityId").toString()); return; } } } throw new IllegalArgumentException("未查询到小区:" + Vtil.appendHyphenToRight(ValueUtil.defaultValue(os[0])) + ValueUtil.defaultValue(os[1])); } }