| | |
| | | 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.core.factory.GenerateCodeFactory; |
| | | import com.java110.dto.community.CommunityDto; |
| | | import com.java110.dto.importData.Vtil; |
| | | import com.java110.dto.meter.ImportExportMeterWaterDto; |
| | | import com.java110.dto.meter.MeterTypeDto; |
| | | import com.java110.dto.room.RoomDto; |
| | | import com.java110.dto.system.ComponentValidateResult; |
| | | import com.java110.intf.community.ICommunityInnerServiceSMO; |
| | | import com.java110.intf.fee.IMeterTypeV1InnerServiceSMO; |
| | | import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO; |
| | | import com.java110.intf.user.IUserInnerServiceSMO; |
| | | import com.java110.po.meter.MeterWaterPo; |
| | |
| | | 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; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 水电抄表 |
| | |
| | | |
| | | @Autowired |
| | | private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IMeterTypeV1InnerServiceSMO meterTypeV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IUserInnerServiceSMO userInnerServiceSMOImpl; |
| | |
| | | Sheet sheet = null; |
| | | sheet = ImportExcelUtils.getSheet(workbook, "水费流水模板"); |
| | | List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet); |
| | | Map waterType = new HashMap(); |
| | | for (int osIndex = 0; osIndex < oList.size(); osIndex++) { |
| | | if (osIndex < 10) { |
| | | continue; |
| | |
| | | MeterWaterPo po = new MeterWaterPo(); |
| | | setCommunityId(po, os, maps); |
| | | po.setbId("-1"); |
| | | po.setMeterType(Vtil.defaultValue(os[7])); |
| | | setMeterType(os, po, waterType); |
| | | po.setObjType("3333"); |
| | | setRoomDto(po, os); |
| | | po.setPreDegrees(Vtil.defaultValue(os[21],null)); |
| | | po.setMeterType("102026011915731141"); |
| | | po.setCurDegrees(Vtil.defaultValue(os[22],null)); |
| | | po.setPreDegrees(Vtil.defaultValue(os[22],null)); |
| | | po.setCurDegrees(Vtil.defaultValue(os[23],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.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.setUserId(Vtil.defaultValue(paramIn.getString("userId"))); |
| | | po.setConfigId(Vtil.defaultValue(paramIn.getString("configId"),"9220260120546511533")); |
| | | po.setFeeTypeCd(Vtil.defaultValue(paramIn.getString("feeTypeCd"),"630000017")); |
| | | po.setRemark(Vtil.defaultValue(os[29])); |
| | | po.setPrice(defaultDouble(os[25])); |
| | | po.setHandler(Vtil.defaultValue(os[9])); |
| | |
| | | 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.setWriteTime(Vtil.defaultValueToDate(os[43])); |
| | | po.setWriter(Vtil.defaultValue(os[42])); |
| | | po.setAuditUserName(Vtil.defaultValueToDate(os[44])); |
| | | // try { |
| | | // po.setCreateTime(DateUtil.getDateFromStringB(Vtil.defaultValueToDate(os[45]))); |
| | | // } catch (Exception e) { |
| | | // |
| | | // } |
| | | po.setPayDate(Vtil.defaultValueToDate(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.setMeterReadBookNo(Vtil.defaultValue(os[6]));; |
| | | po.setWaterConsumption(Vtil.defaultValue(os[24])); |
| | | po.setSewageTreatmentWater(Vtil.defaultValue(os[26])); |
| | | po.setCollectionStandard(Vtil.defaultValue(os[27])); |
| | |
| | | meterWaterPoList.add(po); |
| | | } |
| | | return meterWaterPoList; |
| | | } |
| | | |
| | | |
| | | private void setMeterType(Object[] os, MeterWaterPo po, Map waterType) { |
| | | MeterTypeDto meterTypeDto = new MeterTypeDto(); |
| | | meterTypeDto.setTypeName(Vtil.defaultValue(os[7],"导入水费")); |
| | | meterTypeDto.setCommunityId(po.getCommunityId()); |
| | | Object orDefault = waterType.getOrDefault(meterTypeDto.getTypeName(), "无数据"); |
| | | if (!orDefault.equals("无数据")){ |
| | | po.setMeterType(orDefault.toString()); |
| | | } |
| | | else { |
| | | List<MeterTypeDto> meterTypeDtos = meterTypeV1InnerServiceSMOImpl.queryMeterTypes(meterTypeDto); |
| | | if (meterTypeDtos == null || meterTypeDtos.isEmpty()) { |
| | | meterTypeDto.setRemark(meterTypeDto.getTypeName()); |
| | | meterTypeDto.setStatusCd("0"); |
| | | meterTypeDto.setTypeId(GenerateCodeFactory.getGeneratorId("10")); |
| | | po.setMeterType(meterTypeDto.getTypeId()); |
| | | int i = meterTypeV1InnerServiceSMOImpl.saveMeterTypeToDto(meterTypeDto); |
| | | if (i == 0) { |
| | | throw new IllegalArgumentException("导入失败"); |
| | | } |
| | | } else { |
| | | po.setMeterType(meterTypeDtos.get(0).getTypeId()); |
| | | } |
| | | } |
| | | waterType.put(meterTypeDto.getTypeName(), po.getMeterType()); |
| | | |
| | | } |
| | | |
| | | private int defaultInteger(Object o) { |
| | |
| | | |
| | | public void setCommunityId(MeterWaterPo po, Object[] os, List<Map<String, Object>> maps) { |
| | | for (Map<String, Object> map : maps) { |
| | | if (ValueUtil.defaultValue(os[0]).isEmpty()) { |
| | | if (ValueUtil.defaultValue(os[1]).equals(map.get("name"))) { |
| | | if (Vtil.defaultValue(os[0]) == null) { |
| | | if (Vtil.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"))) { |
| | | } else if (Vtil.defaultValue(os[1]) == null){ |
| | | if (Vtil.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"))) { |
| | | if (Vtil.defaultValue(os[0]).equals(map.get("communityCode")) && Vtil.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])); |
| | | po.setCommunityCode(Vtil.defaultValue(os[0])); |
| | | po.setCommunityName(Vtil.defaultValue(os[1])); |
| | | po.setCommunityId(null); |
| | | } |
| | | } |