Sfoglia il codice sorgente

水电表导入开发中

Your Name 2 anni fa
parent
commit
903cda6d40

+ 107 - 0
java110-bean/src/main/java/com/java110/dto/importData/ImportMeterMachineDto.java

@@ -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;
+    }
+}

+ 132 - 0
service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterMachineDataCleaningAdapt.java

@@ -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) + "行名称不能为空");
+            }
+        }
+    }
+}

+ 44 - 0
service-job/src/main/java/com/java110/job/importData/adapt/ImportMeterMachineQueueDataAdapt.java

@@ -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("导入失败");
+//        }
+
+    }
+}

+ 135 - 0
springboot/src/main/java/com/java110/boot/importData/adapt/ImportMeterMachineDataCleaningAdapt.java

@@ -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) + "行名称不能为空");
+            }
+        }
+    }
+}

+ 1 - 1
springboot/src/main/java/com/java110/boot/smo/DefaultAbstractComponentSMO.java

@@ -381,7 +381,7 @@ public class DefaultAbstractComponentSMO extends AbstractComponentSMO {
         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);
     }