java110-bean/src/main/java/com/java110/dto/meter/ImportExportMeterWaterDto.java
@@ -28,6 +28,14 @@ private String roomNum; private double price; private String storeId; private String configId; private String userId; private String feeTypeCd; private String batchId; public String getRemark() { return remark; @@ -124,4 +132,44 @@ public void setPrice(double price) { this.price = price; } public String getStoreId() { return storeId; } public void setStoreId(String storeId) { this.storeId = storeId; } public String getConfigId() { return configId; } public void setConfigId(String configId) { this.configId = configId; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getFeeTypeCd() { return feeTypeCd; } public void setFeeTypeCd(String feeTypeCd) { this.feeTypeCd = feeTypeCd; } public String getBatchId() { return batchId; } public void setBatchId(String batchId) { this.batchId = batchId; } } service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
@@ -1,11 +1,26 @@ package com.java110.api.importData; import com.alibaba.fastjson.JSONObject; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.payFee.PayFeeBatchDto; import com.java110.dto.user.UserDto; import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO; import com.java110.intf.user.IUserInnerServiceSMO; import com.java110.po.payFee.PayFeeBatchPo; import com.java110.utils.util.Assert; import org.springframework.beans.factory.annotation.Autowired; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class DefaultImportDataAdapt { @Autowired private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl; @Autowired private IUserInnerServiceSMO userInnerServiceSMOImpl; protected boolean hasSpecialCharacters(String str) { if (str.contains("-") || str.contains("#") || str.contains("?") || str.contains("&")) { return true; @@ -48,4 +63,31 @@ return tDate; } /** * 生成批次号 * * @param reqJson */ protected void generatorBatch(JSONObject reqJson) { PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); payFeeBatchPo.setCreateUserId(reqJson.getString("userId")); UserDto userDto = new UserDto(); userDto.setUserId(reqJson.getString("userId")); List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto); Assert.listOnlyOne(userDtos, "用户不存在"); payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName()); payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL); payFeeBatchPo.setMsg("正常"); int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo); if (flag < 1) { throw new IllegalArgumentException("生成批次失败"); } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } } service-api/src/main/java/com/java110/api/importData/adapt/ImportCarHistoryFeeDetailDataCleaningAdapt.java
@@ -143,26 +143,6 @@ * * @param reqJson */ private void generatorBatch(JSONObject reqJson) { PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); payFeeBatchPo.setCreateUserId(reqJson.getString("userId")); UserDto userDto = new UserDto(); userDto.setUserId(reqJson.getString("userId")); List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto); Assert.listOnlyOne(userDtos, "用户不存在"); payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName()); payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL); payFeeBatchPo.setMsg("正常"); int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo); if (flag < 1) { throw new IllegalArgumentException("生成批次失败"); } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } } service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterWaterFeeDataCleaningAdapt.java
New file @@ -0,0 +1,105 @@ package com.java110.api.importData.adapt; import com.alibaba.fastjson.JSONObject; import com.java110.api.importData.DefaultImportDataAdapt; import com.java110.api.importData.IImportDataCleaningAdapt; import com.java110.dto.meter.ImportExportMeterWaterDto; import com.java110.dto.system.ComponentValidateResult; import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO; import com.java110.intf.user.IUserInnerServiceSMO; 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.util.ArrayList; import java.util.List; /** * 水电抄表 * 方式1 */ @Service("importMeterWaterFeeDataCleaning") public class ImportMeterWaterFeeDataCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt { @Autowired private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl; @Autowired private IUserInnerServiceSMO userInnerServiceSMOImpl; @Override public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception { List<ImportExportMeterWaterDto> rooms = new ArrayList<ImportExportMeterWaterDto>(); //获取楼信息 getRooms(workbook, rooms); generatorBatch(paramIn); for (ImportExportMeterWaterDto importRoomFee : rooms) { importRoomFee.setBatchId(paramIn.getString("batchId")); importRoomFee.setUserId(paramIn.getString("userId")); importRoomFee.setStoreId(paramIn.getString("storeId")); importRoomFee.setFeeTypeCd(paramIn.getString("feeTypeCd")); importRoomFee.setConfigId(paramIn.getString("configId")); importRoomFee.setMeterType(paramIn.getString("meterType")); importRoomFee.setCommunityId(paramIn.getString("communityId")); } return rooms; } /** * 获取 房屋信息 * * @param workbook * @param rooms */ private void getRooms(Workbook workbook, List<ImportExportMeterWaterDto> rooms) { Sheet sheet = null; sheet = ImportExcelUtils.getSheet(workbook, "房屋费用信息"); List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet); ImportExportMeterWaterDto importRoomFee = null; for (int osIndex = 0; osIndex < oList.size(); osIndex++) { Object[] os = oList.get(osIndex); if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过 continue; } if (StringUtil.isNullOrNone(os[0])) { continue; } Assert.hasValue(os[1], (osIndex + 1) + "单元编号不能为空"); Assert.hasValue(os[2], (osIndex + 1) + "房屋编号不能为空"); Assert.hasValue(os[3], (osIndex + 1) + "上期度数不能为空"); Assert.hasValue(os[4], (osIndex + 1) + "上期度数时间不能为空"); Assert.hasValue(os[5], (osIndex + 1) + "本期度数不能为空"); Assert.hasValue(os[6], (osIndex + 1) + "本期度数时间不能为空"); // String startTime = excelDoubleToDate(os[4].toString()); String endTime = excelDoubleToDate(os[6].toString()); Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD 文本格式"); Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD 文本格式"); importRoomFee = new ImportExportMeterWaterDto(); importRoomFee.setFloorNum(os[0].toString()); importRoomFee.setUnitNum(os[1].toString()); importRoomFee.setRoomNum(os[2].toString()); importRoomFee.setPreDegrees(os[3].toString()); importRoomFee.setPreReadingTime(startTime); importRoomFee.setCurDegrees(os[5].toString()); importRoomFee.setCurReadingTime(endTime); importRoomFee.setPrice(-1); rooms.add(importRoomFee); if (Double.parseDouble(importRoomFee.getCurDegrees()) < Double.parseDouble(importRoomFee.getPreDegrees())) { throw new IllegalArgumentException((osIndex + 1) + "行本期读数小于上期读数"); } } } } service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomHistoryFeeDetailDataCleaningAdapt.java
@@ -147,31 +147,4 @@ } } /** * 生成批次号 * * @param reqJson */ private void generatorBatch(JSONObject reqJson) { PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); payFeeBatchPo.setCreateUserId(reqJson.getString("userId")); UserDto userDto = new UserDto(); userDto.setUserId(reqJson.getString("userId")); List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto); Assert.listOnlyOne(userDtos, "用户不存在"); payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName()); payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL); payFeeBatchPo.setMsg("正常"); int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo); if (flag < 1) { throw new IllegalArgumentException("生成批次失败"); } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } } service-job/src/main/java/com/java110/job/importData/adapt/ImportMeterWaterFeeQueueDataAdapt.java
New file @@ -0,0 +1,259 @@ package com.java110.job.importData.adapt; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.contract.ContractRoomDto; import com.java110.dto.fee.FeeAttrDto; import com.java110.dto.fee.FeeDto; import com.java110.dto.log.AssetImportLogDetailDto; import com.java110.dto.meter.ImportExportMeterWaterDto; import com.java110.dto.meter.MeterWaterDto; import com.java110.dto.owner.OwnerDto; import com.java110.dto.room.RoomDto; import com.java110.intf.community.IParkingSpaceInnerServiceSMO; import com.java110.intf.community.IRoomInnerServiceSMO; import com.java110.intf.fee.IFeeAttrInnerServiceSMO; import com.java110.intf.fee.IFeeInnerServiceSMO; import com.java110.intf.fee.IMeterWaterInnerServiceSMO; import com.java110.intf.store.IContractRoomInnerServiceSMO; import com.java110.intf.user.IOwnerInnerServiceSMO; import com.java110.job.importData.DefaultImportData; import com.java110.job.importData.IImportDataAdapt; import com.java110.po.fee.FeeAttrPo; import com.java110.po.fee.PayFeePo; import com.java110.po.meter.MeterWaterPo; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service("importMeterWaterFeeQueueData") public class ImportMeterWaterFeeQueueDataAdapt extends DefaultImportData implements IImportDataAdapt { @Autowired private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl; @Autowired private IRoomInnerServiceSMO roomInnerServiceSMOImpl; @Autowired private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl; @Autowired private IFeeInnerServiceSMO feeInnerServiceSMOImpl; @Autowired private IContractRoomInnerServiceSMO contractRoomInnerServiceSMOImpl; @Autowired private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl; @Autowired private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl; // @Autowired // private IPayFeeMonth payFeeMonthImpl; @Override public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) { for (AssetImportLogDetailDto assetImportLogDetailDto : assetImportLogDetailDtos) { try { doImportData(assetImportLogDetailDto); updateImportLogDetailState(assetImportLogDetailDto.getDetailId()); } catch (Exception e) { e.printStackTrace(); updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e); } } } private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) { JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent()); ImportExportMeterWaterDto importExportMeterWaterDto = BeanConvertUtil.covertBean(data, ImportExportMeterWaterDto.class); String communityId = importExportMeterWaterDto.getCommunityId(); String storeId = importExportMeterWaterDto.getStoreId(); String configId = importExportMeterWaterDto.getConfigId(); String userId = importExportMeterWaterDto.getUserId(); String feeTypeCd = importExportMeterWaterDto.getFeeTypeCd(); String batchId = importExportMeterWaterDto.getBatchId(); String meterType = importExportMeterWaterDto.getMeterType(); JSONObject meteWaterJson = null; List<PayFeePo> fees = new ArrayList<>(); List<MeterWaterPo> meterWaterPos = new ArrayList<>(); List<FeeAttrPo> feeAttrPos = new ArrayList<>(); dealImportExportMeterWater(importExportMeterWaterDto, communityId, storeId, configId, userId, feeTypeCd, fees, meterWaterPos, feeAttrPos, batchId, meterType ); if (fees.size() < 1 || meterWaterPos.size() < 1) { throw new IllegalArgumentException("批量抄表失败"); } feeInnerServiceSMOImpl.saveFee(fees); if (feeAttrPos.size() > 0) { feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos); } meterWaterInnerServiceSMOImpl.saveMeterWaters(meterWaterPos); // todo 这里异步的方式计算 月数据 和欠费数据 List<String> feeIds = new ArrayList<>(); for (PayFeePo feePo : fees) { feeIds.add(feePo.getFeeId()); } // payFeeMonthImpl.doGeneratorFeeMonths(feeIds, fees.get(0).getCommunityId()); } private void dealImportExportMeterWater(ImportExportMeterWaterDto importExportMeterWaterDto, String communityId, String storeId, String configId, String userId, String feeTypeCd, List<PayFeePo> fees, List<MeterWaterPo> meterWaterPos, List<FeeAttrPo> feeAttrPos, String batchId, String meterType) { RoomDto roomDto = new RoomDto(); roomDto.setCommunityId(communityId); roomDto.setFloorNum(importExportMeterWaterDto.getFloorNum()); roomDto.setUnitNum(importExportMeterWaterDto.getUnitNum()); roomDto.setRoomNum(importExportMeterWaterDto.getRoomNum()); List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto); Assert.listOnlyOne(roomDtos, "房屋未找到或找到多条" + importExportMeterWaterDto.getFloorNum() + "-" + importExportMeterWaterDto.getUnitNum() + "-" + importExportMeterWaterDto.getRoomNum()); String roomName = importExportMeterWaterDto.getFloorNum() + "-" + importExportMeterWaterDto.getUnitNum() + "-" + importExportMeterWaterDto.getRoomNum(); importExportMeterWaterDto.setMeterType(meterType); //查询房屋是否有合同 ContractRoomDto contractRoomDto = new ContractRoomDto(); contractRoomDto.setRoomId(roomDtos.get(0).getRoomId()); List<ContractRoomDto> contractRoomDtos = contractRoomInnerServiceSMOImpl.queryContractRooms(contractRoomDto); PayFeePo payFeePo = new PayFeePo(); payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId, true)); payFeePo.setIncomeObjId(storeId); payFeePo.setAmount("-1"); payFeePo.setStartTime(importExportMeterWaterDto.getPreReadingTime()); payFeePo.setEndTime(importExportMeterWaterDto.getPreReadingTime()); payFeePo.setPayerObjId(roomDtos.get(0).getRoomId()); payFeePo.setBatchId(batchId); //payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); if (contractRoomDtos != null && contractRoomDtos.size() > 0) { payFeePo.setPayerObjId(contractRoomDtos.get(0).getContractId()); //payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CONTRACT); FeeAttrPo feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(communityId); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true)); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_IMPORT_FEE_NAME); String feeName = roomName; if ("1010".equals(importExportMeterWaterDto.getMeterType())) { feeName += "水费"; } else if ("2020".equals(importExportMeterWaterDto.getMeterType())) { feeName += "电费"; } else { feeName += "燃气费"; } feeAttrPo.setValue(feeName); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPos.add(feeAttrPo); } //todo 保存房屋名称 FeeAttrPo feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(communityId); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME); feeAttrPo.setValue(roomName); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true)); feeAttrPos.add(feeAttrPo); OwnerDto ownerDto = new OwnerDto(); ownerDto.setCommunityId(communityId); ownerDto.setRoomId(roomDtos.get(0).getRoomId()); List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto); if (ownerDtos != null && ownerDtos.size() > 0) { feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(communityId); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID); feeAttrPo.setValue(ownerDtos.get(0).getOwnerId()); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true)); feeAttrPos.add(feeAttrPo); feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(communityId); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK); feeAttrPo.setValue(ownerDtos.get(0).getLink()); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true)); feeAttrPos.add(feeAttrPo); feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(communityId); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME); feeAttrPo.setValue(ownerDtos.get(0).getName()); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true)); feeAttrPos.add(feeAttrPo); } payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE); payFeePo.setState(FeeDto.STATE_DOING); //todo 如果 当前读数小于等于上期读数 //todo 这里注释,本来想着 方便物业再不用去缴费 读数为0 的,结果物业还习惯不了 总以为读数为0 的没有抄表成功,不会去结束费用中查看 // if (Double.parseDouble(importExportMeterWaterDto.getCurDegrees()) <= Double.parseDouble(importExportMeterWaterDto.getPreDegrees())) { // payFeePo.setState(FeeDto.STATE_FINISH); // } payFeePo.setUserId(userId); payFeePo.setFeeTypeCd(feeTypeCd); payFeePo.setConfigId(configId); payFeePo.setCommunityId(communityId); fees.add(payFeePo); MeterWaterPo meterWaterPo = new MeterWaterPo(); meterWaterPo.setCommunityId(communityId); meterWaterPo.setCurDegrees(importExportMeterWaterDto.getCurDegrees()); meterWaterPo.setCurReadingTime(importExportMeterWaterDto.getCurReadingTime()); meterWaterPo.setFeeId(payFeePo.getFeeId()); meterWaterPo.setMeterType(importExportMeterWaterDto.getMeterType()); meterWaterPo.setObjId(roomDtos.get(0).getRoomId()); meterWaterPo.setObjName(importExportMeterWaterDto.getFloorNum() + "-" + importExportMeterWaterDto.getUnitNum() + "-" + importExportMeterWaterDto.getRoomNum()); meterWaterPo.setObjType(MeterWaterDto.OBJ_TYPE_ROOM); meterWaterPo.setPreDegrees(importExportMeterWaterDto.getPreDegrees()); meterWaterPo.setPreReadingTime(importExportMeterWaterDto.getPreReadingTime()); meterWaterPo.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId, true)); meterWaterPo.setRemark(importExportMeterWaterDto.getRemark()); meterWaterPo.setPrice(importExportMeterWaterDto.getPrice()); meterWaterPos.add(meterWaterPo); } } springboot/src/main/java/com/java110/boot/importData/DefaultImportDataAdapt.java
@@ -1,9 +1,26 @@ package com.java110.boot.importData; import com.alibaba.fastjson.JSONObject; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.payFee.PayFeeBatchDto; import com.java110.dto.user.UserDto; import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO; import com.java110.intf.user.IUserInnerServiceSMO; import com.java110.po.payFee.PayFeeBatchPo; import com.java110.utils.util.Assert; import org.springframework.beans.factory.annotation.Autowired; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class DefaultImportDataAdapt { @Autowired private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl; @Autowired private IUserInnerServiceSMO userInnerServiceSMOImpl; protected boolean hasSpecialCharacters(String str) { @@ -48,4 +65,31 @@ return tDate; } /** * 生成批次号 * * @param reqJson */ protected void generatorBatch(JSONObject reqJson) { PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); payFeeBatchPo.setCreateUserId(reqJson.getString("userId")); UserDto userDto = new UserDto(); userDto.setUserId(reqJson.getString("userId")); List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto); Assert.listOnlyOne(userDtos, "用户不存在"); payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName()); payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL); payFeeBatchPo.setMsg("正常"); int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo); if (flag < 1) { throw new IllegalArgumentException("生成批次失败"); } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } } springboot/src/main/java/com/java110/boot/importData/adapt/ImportCarHistoryFeeDetailDataCleaningAdapt.java
@@ -140,31 +140,4 @@ } } /** * 生成批次号 * * @param reqJson */ private void generatorBatch(JSONObject reqJson) { PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); payFeeBatchPo.setCreateUserId(reqJson.getString("userId")); UserDto userDto = new UserDto(); userDto.setUserId(reqJson.getString("userId")); List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto); Assert.listOnlyOne(userDtos, "用户不存在"); payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName()); payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL); payFeeBatchPo.setMsg("正常"); int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo); if (flag < 1) { throw new IllegalArgumentException("生成批次失败"); } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } } springboot/src/main/java/com/java110/boot/importData/adapt/ImportMeterWaterFeeDataCleaningAdapt.java
New file @@ -0,0 +1,101 @@ package com.java110.boot.importData.adapt; import com.alibaba.fastjson.JSONObject; import com.java110.boot.importData.DefaultImportDataAdapt; import com.java110.boot.importData.IImportDataCleaningAdapt; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.importData.ImportRoomFee; import com.java110.dto.meter.ImportExportMeterWaterDto; import com.java110.dto.payFee.PayFeeBatchDto; import com.java110.dto.system.ComponentValidateResult; import com.java110.dto.user.UserDto; import com.java110.po.payFee.PayFeeBatchPo; 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.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 水电抄表 * 方式1 */ @Service("importMeterWaterFeeDataCleaning") public class ImportMeterWaterFeeDataCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt { @Override public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception { List<ImportExportMeterWaterDto> rooms = new ArrayList<ImportExportMeterWaterDto>(); //获取楼信息 getRooms(workbook, rooms); generatorBatch(paramIn); for (ImportExportMeterWaterDto importRoomFee : rooms) { importRoomFee.setBatchId(paramIn.getString("batchId")); importRoomFee.setUserId(paramIn.getString("userId")); importRoomFee.setStoreId(paramIn.getString("storeId")); importRoomFee.setFeeTypeCd(paramIn.getString("feeTypeCd")); importRoomFee.setConfigId(paramIn.getString("configId")); importRoomFee.setMeterType(paramIn.getString("meterType")); importRoomFee.setCommunityId(paramIn.getString("communityId")); } return rooms; } /** * 获取 房屋信息 * * @param workbook * @param rooms */ private void getRooms(Workbook workbook, List<ImportExportMeterWaterDto> rooms) { Sheet sheet = null; sheet = ImportExcelUtils.getSheet(workbook, "房屋费用信息"); List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet); ImportExportMeterWaterDto importRoomFee = null; for (int osIndex = 0; osIndex < oList.size(); osIndex++) { Object[] os = oList.get(osIndex); if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过 continue; } if (StringUtil.isNullOrNone(os[0])) { continue; } Assert.hasValue(os[1], (osIndex + 1) + "单元编号不能为空"); Assert.hasValue(os[2], (osIndex + 1) + "房屋编号不能为空"); Assert.hasValue(os[3], (osIndex + 1) + "上期度数不能为空"); Assert.hasValue(os[4], (osIndex + 1) + "上期度数时间不能为空"); Assert.hasValue(os[5], (osIndex + 1) + "本期度数不能为空"); Assert.hasValue(os[6], (osIndex + 1) + "本期度数时间不能为空"); // String startTime = excelDoubleToDate(os[4].toString()); String endTime = excelDoubleToDate(os[6].toString()); Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD 文本格式"); Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD 文本格式"); importRoomFee = new ImportExportMeterWaterDto(); importRoomFee.setFloorNum(os[0].toString()); importRoomFee.setUnitNum(os[1].toString()); importRoomFee.setRoomNum(os[2].toString()); importRoomFee.setPreDegrees(os[3].toString()); importRoomFee.setPreReadingTime(startTime); importRoomFee.setCurDegrees(os[5].toString()); importRoomFee.setCurReadingTime(endTime); importRoomFee.setPrice(-1); rooms.add(importRoomFee); if (Double.parseDouble(importRoomFee.getCurDegrees()) < Double.parseDouble(importRoomFee.getPreDegrees())) { throw new IllegalArgumentException((osIndex + 1) + "行本期读数小于上期读数"); } } } } springboot/src/main/java/com/java110/boot/importData/adapt/ImportRoomHistoryFeeDetailDataCleaningAdapt.java
@@ -147,31 +147,5 @@ } } /** * 生成批次号 * * @param reqJson */ private void generatorBatch(JSONObject reqJson) { PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); payFeeBatchPo.setCreateUserId(reqJson.getString("userId")); UserDto userDto = new UserDto(); userDto.setUserId(reqJson.getString("userId")); List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto); Assert.listOnlyOne(userDtos, "用户不存在"); payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName()); payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL); payFeeBatchPo.setMsg("正常"); int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo); if (flag < 1) { throw new IllegalArgumentException("生成批次失败"); } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } }