| java110-bean/src/main/java/com/java110/dto/importData/ImportMeterMachineDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterMachineDataCleaningAdapt.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| service-job/src/main/java/com/java110/job/importData/adapt/ImportMeterMachineQueueDataAdapt.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| springboot/src/main/java/com/java110/boot/importData/adapt/ImportMeterMachineDataCleaningAdapt.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| springboot/src/main/java/com/java110/boot/smo/DefaultAbstractComponentSMO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
java110-bean/src/main/java/com/java110/dto/importData/ImportMeterMachineDto.java
New file @@ -0,0 +1,107 @@ package com.java110.dto.importData; import java.io.Serializable; /** * {"machineId":"","machineName":"1-1-1智能水表","address":"1212","meterType":"102023062029980006","machineModel":"2002","roomId":"75202305221015270788000231", * "roomName":"1-1-1001","feeConfigId":"922023062058050004", * "implBean":"1","readDay":"1","readHours":"1", * "communityId":"2023052267100146" * } */ public class ImportMeterMachineDto implements Serializable { private String machineName; private String address; private String meterType; private String machineModel; private String roomName; private String feeName; private String implBean; private String communityId; private String value1; private String userId; public String getMachineName() { return machineName; } public void setMachineName(String machineName) { this.machineName = machineName; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getMeterType() { return meterType; } public void setMeterType(String meterType) { this.meterType = meterType; } public String getMachineModel() { return machineModel; } public void setMachineModel(String machineModel) { this.machineModel = machineModel; } public String getRoomName() { return roomName; } public void setRoomName(String roomName) { this.roomName = roomName; } public String getFeeName() { return feeName; } public void setFeeName(String feeName) { this.feeName = feeName; } public String getImplBean() { return implBean; } public void setImplBean(String implBean) { this.implBean = implBean; } public String getCommunityId() { return communityId; } public void setCommunityId(String communityId) { this.communityId = communityId; } public String getValue1() { return value1; } public void setValue1(String value1) { this.value1 = value1; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } } service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterMachineDataCleaningAdapt.java
New file @@ -0,0 +1,132 @@ 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.importData.ImportMeterMachineDto; import com.java110.dto.system.ComponentValidateResult; import com.java110.utils.util.Assert; 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.text.ParseException; import java.util.ArrayList; import java.util.List; /** * 水电表导入处理类 * * 导入请求参数中必须包含 * param.append('importAdapt', "importRoomOwner"); */ @Service("importMeterMachineDataCleaning") public class ImportMeterMachineDataCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt { @Override public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception{ List<ImportMeterMachineDto> importMeterMachineDtos = new ArrayList<ImportMeterMachineDto>(); //封装对象 getOwnerRooms(workbook, importMeterMachineDtos, result); //数据格式校验 validateRoomInfo(importMeterMachineDtos); return importMeterMachineDtos; } /** * 获取业主车辆信息 * * @param workbook * @param importMeterMachineDtos */ private void getOwnerRooms(Workbook workbook, List<ImportMeterMachineDto> importMeterMachineDtos, ComponentValidateResult result) throws ParseException { Sheet sheet = null; sheet = ImportExcelUtils.getSheet(workbook, "水电表"); List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet); ImportMeterMachineDto importMeterMachineDto = null; for (int osIndex = 0; osIndex < oList.size(); osIndex++) { Object[] os = oList.get(osIndex); if (osIndex == 0) { // 第一行是 头部信息 直接跳过 continue; } if (os == null || StringUtil.isNullOrNone(os[0])) { continue; } Assert.hasValue(os[0], (osIndex + 1) + "行名称不能为空"); 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) + "行厂家不能为空"); importMeterMachineDto = new ImportMeterMachineDto(); importMeterMachineDto.setCommunityId(result.getCommunityId()); importMeterMachineDto.setUserId(result.getUserId()); importMeterMachineDto.setMachineName(os[0].toString().trim()); importMeterMachineDto.setAddress(os[1].toString().trim()); importMeterMachineDto.setMeterType(os[2].toString().trim()); importMeterMachineDto.setMachineModel(os[3].toString().trim()); importMeterMachineDto.setRoomName(os[4].toString().trim()); importMeterMachineDto.setFeeName(os[5].toString().trim()); importMeterMachineDto.setImplBean(os[6].toString().trim()); if (os.length > 7 && !StringUtil.isNullOrNone(os[7])) { importMeterMachineDto.setValue1(os[7].toString().trim()); } importMeterMachineDtos.add(importMeterMachineDto); } } /** * 数据格式校验 * * @param importMeterMachineDtos */ private void validateRoomInfo(List<ImportMeterMachineDto> importMeterMachineDtos) { ImportMeterMachineDto importOwnerRoomDto = null; for (int roomIndex = 0; roomIndex < importMeterMachineDtos.size(); roomIndex++) { importOwnerRoomDto = importMeterMachineDtos.get(roomIndex); if (StringUtil.isEmpty(importOwnerRoomDto.getRoomName())) { throw new IllegalArgumentException((roomIndex + 1) + "行房屋不能为空"); } String[] item = importOwnerRoomDto.getRoomName().split("-",3); if(item.length != 3){ throw new IllegalArgumentException((roomIndex + 1) + "行房屋格式错误 必须为 楼栋-单元-房屋"); } if (StringUtil.isEmpty(importOwnerRoomDto.getAddress())) { throw new IllegalArgumentException((roomIndex + 1) + "行表号不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getMachineModel())) { throw new IllegalArgumentException((roomIndex + 1) + "行模式不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getFeeName())) { throw new IllegalArgumentException((roomIndex + 1) + "行费用项不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getMeterType())) { throw new IllegalArgumentException((roomIndex + 1) + "行表类型不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getImplBean())) { throw new IllegalArgumentException((roomIndex + 1) + "行厂家不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getMachineName())) { throw new IllegalArgumentException((roomIndex + 1) + "行名称不能为空"); } } } } service-job/src/main/java/com/java110/job/importData/adapt/ImportMeterMachineQueueDataAdapt.java
New file @@ -0,0 +1,44 @@ package com.java110.job.importData.adapt; import com.alibaba.fastjson.JSONObject; import com.java110.dto.importData.ImportMeterMachineDto; import com.java110.dto.importData.ImportOwnerRoomDto; import com.java110.dto.log.AssetImportLogDetailDto; import com.java110.job.importData.DefaultImportData; import com.java110.job.importData.IImportDataAdapt; import com.java110.utils.util.BeanConvertUtil; import org.springframework.stereotype.Service; import java.util.List; @Service("importMeterMachineQueueData") public class ImportMeterMachineQueueDataAdapt extends DefaultImportData implements IImportDataAdapt { @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); } } } /** * 导入数据 * * @param assetImportLogDetailDto */ private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) { JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent()); ImportMeterMachineDto importOwnerRoomDto = BeanConvertUtil.covertBean(data, ImportMeterMachineDto.class); // int flag = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto); // if (flag < 1) { // throw new IllegalArgumentException("导入失败"); // } } } springboot/src/main/java/com/java110/boot/importData/adapt/ImportMeterMachineDataCleaningAdapt.java
New file @@ -0,0 +1,135 @@ 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.dto.importData.ImportMeterMachineDto; import com.java110.dto.importData.ImportOwnerRoomDto; import com.java110.dto.owner.OwnerDto; import com.java110.dto.room.RoomDto; import com.java110.dto.system.ComponentValidateResult; import com.java110.utils.util.Assert; 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.text.ParseException; import java.util.ArrayList; import java.util.List; /** * 水电表导入处理类 * * 导入请求参数中必须包含 * param.append('importAdapt', "importRoomOwner"); */ @Service("importMeterMachineDataCleaning") public class ImportMeterMachineDataCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt { @Override public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception{ List<ImportMeterMachineDto> importMeterMachineDtos = new ArrayList<ImportMeterMachineDto>(); //封装对象 getOwnerRooms(workbook, importMeterMachineDtos, result); //数据格式校验 validateRoomInfo(importMeterMachineDtos); return importMeterMachineDtos; } /** * 获取业主车辆信息 * * @param workbook * @param importMeterMachineDtos */ private void getOwnerRooms(Workbook workbook, List<ImportMeterMachineDto> importMeterMachineDtos, ComponentValidateResult result) throws ParseException { Sheet sheet = null; sheet = ImportExcelUtils.getSheet(workbook, "水电表"); List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet); ImportMeterMachineDto importMeterMachineDto = null; for (int osIndex = 0; osIndex < oList.size(); osIndex++) { Object[] os = oList.get(osIndex); if (osIndex == 0) { // 第一行是 头部信息 直接跳过 continue; } if (os == null || StringUtil.isNullOrNone(os[0])) { continue; } Assert.hasValue(os[0], (osIndex + 1) + "行名称不能为空"); 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) + "行厂家不能为空"); importMeterMachineDto = new ImportMeterMachineDto(); importMeterMachineDto.setCommunityId(result.getCommunityId()); importMeterMachineDto.setUserId(result.getUserId()); importMeterMachineDto.setMachineName(os[0].toString().trim()); importMeterMachineDto.setAddress(os[1].toString().trim()); importMeterMachineDto.setMeterType(os[2].toString().trim()); importMeterMachineDto.setMachineModel(os[3].toString().trim()); importMeterMachineDto.setRoomName(os[4].toString().trim()); importMeterMachineDto.setFeeName(os[5].toString().trim()); importMeterMachineDto.setImplBean(os[6].toString().trim()); if (os.length > 7 && !StringUtil.isNullOrNone(os[7])) { importMeterMachineDto.setValue1(os[7].toString().trim()); } importMeterMachineDtos.add(importMeterMachineDto); } } /** * 数据格式校验 * * @param importMeterMachineDtos */ private void validateRoomInfo(List<ImportMeterMachineDto> importMeterMachineDtos) { ImportMeterMachineDto importOwnerRoomDto = null; for (int roomIndex = 0; roomIndex < importMeterMachineDtos.size(); roomIndex++) { importOwnerRoomDto = importMeterMachineDtos.get(roomIndex); if (StringUtil.isEmpty(importOwnerRoomDto.getRoomName())) { throw new IllegalArgumentException((roomIndex + 1) + "行房屋不能为空"); } String[] item = importOwnerRoomDto.getRoomName().split("-",3); if(item.length != 3){ throw new IllegalArgumentException((roomIndex + 1) + "行房屋格式错误 必须为 楼栋-单元-房屋"); } if (StringUtil.isEmpty(importOwnerRoomDto.getAddress())) { throw new IllegalArgumentException((roomIndex + 1) + "行表号不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getMachineModel())) { throw new IllegalArgumentException((roomIndex + 1) + "行模式不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getFeeName())) { throw new IllegalArgumentException((roomIndex + 1) + "行费用项不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getMeterType())) { throw new IllegalArgumentException((roomIndex + 1) + "行表类型不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getImplBean())) { throw new IllegalArgumentException((roomIndex + 1) + "行厂家不能为空"); } if (StringUtil.isEmpty(importOwnerRoomDto.getMachineName())) { throw new IllegalArgumentException((roomIndex + 1) + "行名称不能为空"); } } } } springboot/src/main/java/com/java110/boot/smo/DefaultAbstractComponentSMO.java
@@ -381,7 +381,7 @@ Assert.hasLength(pd.getUserId(), "用户未登录请先登录"); ResultVo resultVo = getCommunityStoreInfoSMOImpl.getStoreInfo(pd, restTemplate, pd.getUserId()); logger.debug("ruleId getStoreInfo :{}", resultVo.toString()); logger.debug("查询商户信息 getStoreInfo :{}", resultVo.toString()); return new ResponseEntity<String>(resultVo.getMsg(), resultVo.getCode() == ResultVo.CODE_OK ? HttpStatus.OK : HttpStatus.BAD_REQUEST); }