Browse Source

添加房型导入模板,房型导入接口

liu 1 year ago
parent
commit
0504c4240c

+ 8 - 0
src/main/java/com/template/api/HouseNumberControllerAPI.java

@@ -66,5 +66,13 @@ public interface HouseNumberControllerAPI {
     CommonResult deleteHouseNumber(@RequestParam Integer houseNumberId);
 
 
+    @GetMapping("/houseNumberExport")
+    @ApiOperation(value = "房间导入模板", notes = "房间导入模板", httpMethod = "GET")
+    void houseNumberExport(HttpServletResponse response);
+
+    @PostMapping("/importHouseNumbers")
+    @ApiOperation(value = "房间水电编码导入", notes = "房间水电编码导入", httpMethod = "POST")
+    CommonResult importHouseNumbers(@RequestParam("file") MultipartFile file) throws Exception;
+
 
 }

+ 123 - 5
src/main/java/com/template/controller/HouseNumberController.java

@@ -16,6 +16,7 @@ import com.template.model.result.PageUtils;
 import com.template.model.vo.HouseNumberListVo;
 import com.template.model.vo.HouseNumberPageVo;
 import com.template.model.vo.HouseNumberPullDownVo;
+import com.template.model.vo.HouseNumbersImportDto;
 import com.template.services.*;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -29,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -424,8 +426,8 @@ public class HouseNumberController implements HouseNumberControllerAPI {
         ArrayList<HouseNumberPullDownVo> vos = new ArrayList<>();
         for (Building building : buildingList) {
             HouseNumberPullDownVo vo = new HouseNumberPullDownVo();
-            vo.setId(building.getId()+1000000);
-            vo.setRoomNumber(building.getBuilding()+"/"+building.getElement());
+            vo.setId(building.getId() + 1000000);
+            vo.setRoomNumber(building.getBuilding() + "/" + building.getElement());
             List<HouseNumber> ownerClasses = list.stream().filter(e -> e.getBuildingId().equals(building.getId())).collect(Collectors.toList());
             if (ownerClasses != null && ownerClasses.size() > 0) {
                 vo.setVos(ownerClasses);
@@ -620,9 +622,9 @@ public class HouseNumberController implements HouseNumberControllerAPI {
                     hl.setNfcFunction(0);
                     houseLockService.save(hl);
                 }
-            }else {
+            } else {
                 if (ObjectUtils.isNotEmpty(houseLock)) {
-                   houseLockService.removeById(houseLock.getId());
+                    houseLockService.removeById(houseLock.getId());
                 }
             }
         } catch (Exception e) {
@@ -633,6 +635,7 @@ public class HouseNumberController implements HouseNumberControllerAPI {
         return CommonResult.ok();
     }
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public CommonResult deleteHouseNumber(Integer houseNumberId) {
@@ -649,14 +652,129 @@ public class HouseNumberController implements HouseNumberControllerAPI {
                 houseLockService.removeById(houseLock.getId());
             }
             houseNumberService.removeById(houseNumberId);
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             return CommonResult.fail();
         }
         return CommonResult.ok();
     }
 
+    @Override
+    public void houseNumberExport(HttpServletResponse response) {
+        //        导出
+
+        // 表头数据
+        List<Object> head = Arrays.asList("楼栋", "单元", "房间号", "房型类型", "房型名称", "门锁设备型号", "水表编码", "电表编码");
+
+
+        // 用户1数据
+        List<Object> user1 = new ArrayList<>();
+        user1.add("17栋");
+        user1.add("1单元");
+        user1.add("17-101");
+        user1.add("全日房");
+        user1.add("大床房");
+        user1.add("047863CA78E0");
+        user1.add("202308000088");
+        user1.add("120302136367");
+
+
+        List<Object> user2 = new ArrayList<>();
+        user2.add("17栋");
+        user2.add("1单元");
+        user2.add("17-102");
+        user2.add("钟点房");
+        user2.add("大床房");
+        user2.add("047863CA78E0");
+        user2.add("202308000088");
+        user2.add("120302136367");
+        // 将数据汇总
+        List<List<Object>> sheetDataList = new ArrayList<>();
+        sheetDataList.add(head);
+        sheetDataList.add(user1);
+        sheetDataList.add(user2);
+// 导出数据
+        ExcelUtils.export(response, "房间导入模板", sheetDataList);
+
+    }
+
+    @Override
+    public CommonResult importHouseNumbers(MultipartFile file) throws Exception {
+        List<HouseNumbersImportDto> dtos = ExcelUtils.readMultipartFile(file, HouseNumbersImportDto.class);
+
+        ArrayList<HouseNumber> houseNumbers = new ArrayList<>();
+        for (int i = 0; i < dtos.size(); i++) {
+            HouseNumbersImportDto dto = dtos.get(i);
+            HouseNumber houseNumber = new HouseNumber();
+
+//            判断是否存在该楼栋单元
+            String building = dto.getBuilding();
+            String element = dto.getElement();
+
+            LambdaQueryWrapper<Building> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(Building::getBuilding, building)
+                    .eq(Building::getElement, element);
+            Building one = buildingService.getOne(wrapper);
+            if (ObjectUtils.isEmpty(one)) {
+                return CommonResult.fail("第" + (i + 2) + "行," + "不存在" + building+"/"+element + "该楼栋单元");
+            }
+            Integer bId = one.getId();
+            houseNumber.setBuildingId(bId);
+
+//            判断是否存在该房型
+            Integer roomType = dto.getRoomType();
+//            房型
+            String houseName = dto.getHouseName();
+
+            //            判断当前房型是否存在当前房间号
+            House house = houseService.getHouseName(houseName, roomType);
+            if (ObjectUtils.isEmpty(house)) {
+                return CommonResult.fail("第" + (i + 2) + "行," + "不存在" + houseName + "该房型");
+            }
+            houseNumber.setHouseId(house.getId()+"");
+
+//            判断该房间号是否已经存在
+            //            房间号
+            String roomNumber = dto.getRoomNumber();
+            HouseNumber hn = houseNumberService.getBRoomNumber(bId, roomNumber);
+            if (ObjectUtils.isNotEmpty(hn)) {
+                return CommonResult.fail("第" + (i + 2) + "行," + "该楼栋单元下已存在" + roomNumber + "该房间号");
+            }
+            houseNumber.setRoomNumber(roomNumber);
+
+            String electricEquipmentMeterName = dto.getElectricEquipmentMeterName();
+            LambdaQueryWrapper<ElectricEquipment> wrapperEE = new LambdaQueryWrapper<>();
+            wrapperEE.eq(ElectricEquipment::getMeterName, electricEquipmentMeterName);
+            ElectricEquipment electricEquipment = electricEquipmentService.getOne(wrapperEE);
+
+            if (ObjectUtils.isEmpty(electricEquipment)) {
+                return CommonResult.fail("第" + (i + 2) + "行," + "不存在" + electricEquipmentMeterName + "该电表设备号");
+            }
+
+            String waterEquipmentMeterName = dto.getWaterEquipmentMeterName();
+            LambdaQueryWrapper<WaterEquipment> wrapperWE = new LambdaQueryWrapper<>();
+            wrapperWE.eq(WaterEquipment::getMeterName, waterEquipmentMeterName);
+            WaterEquipment waterEquipment = waterEquipmentService.getOne(wrapperWE);
+            if (ObjectUtils.isEmpty(waterEquipment)) {
+                return CommonResult.fail("第" + (i + 2) + "行," + "不存在" + waterEquipmentMeterName + "该水表设备号");
+            }
 
+            houseNumber.setElectricEquipmentId(electricEquipment.getId() + "");
+            houseNumber.setElectricEquipmentMeterName(electricEquipment.getMeterName());
+            houseNumber.setWaterEquipmentId(waterEquipment.getId() + "");
+            houseNumber.setWaterEquipmentMeterName(waterEquipment.getMeterName());
+
+            houseNumber.setHouseStatus(1);
+            houseNumber.setElectricType("2");
+
+            houseNumbers.add(houseNumber);
+        }
+        boolean b = houseNumberService.saveBatch(houseNumbers);
+        if (b) {
+            return CommonResult.ok();
+        }
+        return CommonResult.fail();
+    }
 
 
 }

+ 9 - 0
src/main/java/com/template/controller/LoginController.java

@@ -479,6 +479,11 @@ public class LoginController implements LoginControllerAPI {
                 functionPointVo4.setStatus(1);
                 vos15.add(functionPointVo4);
 
+                FunctionPointVo functionPointVo5 = new FunctionPointVo();
+                functionPointVo5.setFunctionPoint("导入");
+                functionPointVo5.setStatus(1);
+                vos15.add(functionPointVo5);
+
             } else {
                 FunctionPointVo functionPointVo1 = ifContains(houseNumberManagement, "1");
                 functionPointVo1.setFunctionPoint("添加");
@@ -496,6 +501,10 @@ public class LoginController implements LoginControllerAPI {
                 functionPointVo4.setFunctionPoint("查看界面");
                 vos15.add(functionPointVo4);
 
+                FunctionPointVo functionPointVo5 = ifContains(houseNumberManagement, "5");
+                functionPointVo5.setFunctionPoint("导入");
+                vos15.add(functionPointVo5);
+
             }
             menuBarVo15.setFunctionPoints(vos15);
             menuBarVos.add(menuBarVo15);

+ 34 - 0
src/main/java/com/template/model/vo/HouseNumbersImportDto.java

@@ -0,0 +1,34 @@
+package com.template.model.vo;
+
+import com.template.annotation.ExcelImport;
+import lombok.Data;
+
+@Data
+public class HouseNumbersImportDto {
+
+    @ExcelImport(value = "楼栋")
+    private String building;
+
+    @ExcelImport(value = "单元")
+    private String element;
+
+    @ExcelImport("房间号")
+    private String roomNumber;
+
+    @ExcelImport(value = "房型类型",kv = "1-全日房;2-钟点房")
+    private Integer roomType;
+
+    @ExcelImport("房型名称")
+    private String houseName;
+
+    @ExcelImport("门锁设备型号")
+    private String doorLock;
+
+    @ExcelImport(value = "水表编码")
+    private String waterEquipmentMeterName;
+
+    @ExcelImport(value = "电表编码")
+    private String electricEquipmentMeterName;
+
+
+}

+ 2 - 0
src/main/java/com/template/services/HouseNumberService.java

@@ -49,4 +49,6 @@ public interface HouseNumberService extends IService<HouseNumber> {
 
 
     List<HouseNumber> getHouseId(String houseId);
+
+    HouseNumber getBRoomNumber(Integer bId, String roomNumber);
 }

+ 9 - 0
src/main/java/com/template/services/impl/HouseNumberServiceImpl.java

@@ -124,5 +124,14 @@ public class HouseNumberServiceImpl extends ServiceImpl<HouseNumberMapper, House
         return list;
     }
 
+    @Override
+    public HouseNumber getBRoomNumber(Integer bId, String roomNumber) {
+        LambdaQueryWrapper<HouseNumber> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(HouseNumber::getBuildingId,bId)
+                .eq(HouseNumber::getRoomNumber,roomNumber);
+        HouseNumber houseNumber = this.getOne(wrapper);
+        return houseNumber;
+    }
+
 
 }