Переглянути джерело

Merge branch 'master' of https://e.coding.net/chuanghaikeji/smarCampus/iHotel_student_houtai into develop-wxl

wanxl 1 рік тому
батько
коміт
1c4a166d0d

+ 9 - 9
src/main/java/com/template/api/HouseNumberControllerAPI.java

@@ -3,7 +3,7 @@ package com.template.api;
 import com.template.model.dto.HouseNumberBindingDto;
 import com.template.model.dto.HouseNumberDeleteBindingDto;
 import com.template.model.dto.HouseNumberDto;
-import com.template.model.pojo.HouseNumber;
+import com.template.model.dto.HouseNumberUpdateDto;
 import com.template.model.result.CommonResult;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
@@ -47,22 +47,22 @@ public interface HouseNumberControllerAPI {
     CommonResult houseNumberPullDown();
 
 
-    @PostMapping("/saveHouseNuber")
+    @PostMapping("/saveHouseNumber")
     @ApiOperation(value = "添加房间", notes = "添加房间", httpMethod = "POST")
-    CommonResult saveHouseNuber(@RequestBody HouseNumberDto houseNumberDto);
+    CommonResult saveHouseNumber(@RequestBody HouseNumberDto houseNumberDto);
 
 
-    @GetMapping("/listHouseNuber")
+    @GetMapping("/listHouseNumber")
     @ApiOperation(value = "房间列表查询", notes = "房间列表查询", httpMethod = "GET")
-    CommonResult getPageHouseNuber(@RequestParam int page,@RequestParam int size, String keyWord,Integer buildingId,Integer houseId);
+    CommonResult getPageHouseNumber(@RequestParam int page,@RequestParam int size, String keyWord,Integer buildingId,Integer houseId);
 
-    @PostMapping("/updateHouseNuber")
+    @PostMapping("/updateHouseNumber")
     @ApiOperation(value = "房间编辑", notes = "房间编辑", httpMethod = "POST")
-    CommonResult updateHouseNuber(@RequestBody HouseNumber houseNumber);
+    CommonResult updateHouseNumber(@RequestBody HouseNumberUpdateDto dto);
 
 
-    @GetMapping("/deleteHouseNuber")
+    @GetMapping("/deleteHouseNumber")
     @ApiOperation(value = "房间删除", notes = "房间删除", httpMethod = "GET")
-    CommonResult deleteHouseNuber(@RequestParam Integer houseNumberId);
+    CommonResult deleteHouseNumber(@RequestParam Integer houseNumberId);
 
 }

+ 129 - 12
src/main/java/com/template/controller/HouseNumberController.java

@@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.api.HouseNumberControllerAPI;
 import com.template.common.utils.ExcelUtils;
 import com.template.common.utils.ExcelUtils2;
-import com.template.model.dto.HouseNumberBindingDto;
-import com.template.model.dto.HouseNumberDeleteBindingDto;
-import com.template.model.dto.HouseNumberDto;
-import com.template.model.dto.HouseNumberImportDto;
+import com.template.model.dto.*;
 import com.template.model.pojo.*;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
@@ -442,7 +439,7 @@ public class HouseNumberController implements HouseNumberControllerAPI {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public CommonResult saveHouseNuber(HouseNumberDto houseNumberDto) {
+    public CommonResult saveHouseNumber(HouseNumberDto houseNumberDto) {
         String electricEquipmentMeterName = houseNumberDto.getElectricEquipmentMeterName();
         LambdaQueryWrapper<ElectricEquipment> wrapperE = new LambdaQueryWrapper<>();
         wrapperE.eq(ElectricEquipment::getMeterName, electricEquipmentMeterName);
@@ -498,10 +495,12 @@ public class HouseNumberController implements HouseNumberControllerAPI {
                 String state = particular.getString("state");
 //        电量
                 String battery = particular.getString("battery");
+                houseLock.setElectricQuantity(battery);
+
 //            网络状态
-                houseLock.setNetworkState("1");
+                houseLock.setNetworkState(state);
 //            设备状态
-                houseLock.setEquipmentState("1");
+                houseLock.setEquipmentState(state);
 //            房 间号
                 houseLock.setNetworkType("WiFi");
                 houseLock.setWifiMac("WIFIMAC");
@@ -516,7 +515,7 @@ public class HouseNumberController implements HouseNumberControllerAPI {
     }
 
     @Override
-    public CommonResult getPageHouseNuber(int page, int size, String keyWord, Integer buildingId, Integer houseId) {
+    public CommonResult getPageHouseNumber(int page, int size, String keyWord, Integer buildingId, Integer houseId) {
 
         PageUtils<HouseNumberListVo> voPageUtils = houseNumberService.getpage(page, size, keyWord, buildingId, houseId);
 
@@ -525,13 +524,131 @@ public class HouseNumberController implements HouseNumberControllerAPI {
     }
 
     @Override
-    public CommonResult updateHouseNuber(HouseNumber houseNumber) {
-        return null;
+    @Transactional(rollbackFor = Exception.class)
+    public CommonResult updateHouseNumber(HouseNumberUpdateDto dto) {
+        HouseNumber byId = houseNumberService.getById(dto.getId());
+        if (ObjectUtils.isEmpty(byId)) {
+            return CommonResult.fail("参数异常");
+        }
+        try {
+
+            String electricEquipmentMeterName1 = byId.getElectricEquipmentMeterName();
+            String electricEquipmentMeterName = dto.getElectricEquipmentMeterName();
+            if (!electricEquipmentMeterName1.equals(electricEquipmentMeterName)) {
+                LambdaQueryWrapper<ElectricEquipment> wrapperE = new LambdaQueryWrapper<>();
+                wrapperE.eq(ElectricEquipment::getMeterName, electricEquipmentMeterName);
+                ElectricEquipment electricEquipment = electricEquipmentService.getOne(wrapperE);
+                if (ObjectUtils.isEmpty(electricEquipment)) {
+                    return CommonResult.fail("电表设备不存在");
+                }
+                byId.setElectricEquipmentId(electricEquipment.getId() + "");
+            }
+
+            String waterEquipmentMeterName1 = byId.getWaterEquipmentMeterName();
+            String waterEquipmentMeterName = dto.getWaterEquipmentMeterName();
+            if (!waterEquipmentMeterName1.equals(waterEquipmentMeterName)) {
+                LambdaQueryWrapper<WaterEquipment> wrapperW = new LambdaQueryWrapper<>();
+                wrapperW.eq(WaterEquipment::getMeterName, waterEquipmentMeterName);
+                WaterEquipment waterEquipment = waterEquipmentService.getOne(wrapperW);
+                if (ObjectUtils.isEmpty(waterEquipment)) {
+                    return CommonResult.fail("水表设备不存在");
+                }
+                byId.setWaterEquipmentId(waterEquipment.getId() + "");
+            }
+            houseNumberService.updateById(byId);
+            LambdaQueryWrapper<HouseLock> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(HouseLock::getHouseNumberId, dto.getId());
+            HouseLock houseLock = houseLockService.getOne(wrapper);
+            String doorLock = dto.getDoorLock();
+            if (ObjectUtils.isNotEmpty(doorLock)) {
+                if (ObjectUtils.isNotEmpty(houseLock)) {
+                    String equipmentType = houseLock.getEquipmentType();
+                    if (!equipmentType.equals(doorLock)) {
+                        JSONObject particular = null;
+                        try {
+                            particular = passwordIssController.particular(doorLock);
+                        } catch (Exception e) {
+                            return CommonResult.fail("门锁异常");
+                        }
+                        //        设备连接状态
+                        String state = particular.getString("state");
+//        电量
+                        String battery = particular.getString("battery");
+                        houseLock.setEquipmentType(doorLock);
+                        houseLock.setElectricQuantity(battery);
+
+//            网络状态
+                        houseLock.setNetworkState(state);
+//            设备状态
+                        houseLock.setEquipmentState(state);
+                        //            绑定时间
+                        houseLock.setBindingTime(new Date());
+
+                        houseLockService.updateById(houseLock);
+                    }
+                } else {
+                    HouseLock hl = new HouseLock();
+                    hl.setHouseNumberId(dto.getId());
+                    hl.setEquipmentType(dto.getDoorLock());
+                    //            绑定时间
+                    hl.setBindingTime(new Date());
+                    JSONObject particular = null;
+                    try {
+                        particular = passwordIssController.particular(doorLock);
+                    } catch (Exception e) {
+                        return CommonResult.fail("门锁异常");
+                    }
+
+//        设备连接状态
+                    String state = particular.getString("state");
+//        电量
+                    String battery = particular.getString("battery");
+                    hl.setElectricQuantity(battery);
+
+//            网络状态
+                    hl.setNetworkState(state);
+//            设备状态
+                    hl.setEquipmentState(state);
+//            房 间号
+                    hl.setNetworkType("WiFi");
+                    hl.setWifiMac("WIFIMAC");
+                    hl.setNfcFunction(0);
+                    houseLockService.save(hl);
+                }
+            }else {
+                if (ObjectUtils.isNotEmpty(houseLock)) {
+                   houseLockService.removeById(houseLock.getId());
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return CommonResult.fail();
+        }
+
+        return CommonResult.ok();
     }
 
     @Override
-    public CommonResult deleteHouseNuber(Integer houseNumberId) {
-        return null;
+    @Transactional(rollbackFor = Exception.class)
+    public CommonResult deleteHouseNumber(Integer houseNumberId) {
+        HouseNumber houseNumber = houseNumberService.getById(houseNumberId);
+        if (ObjectUtils.isEmpty(houseNumber)) {
+            return CommonResult.fail("参数异常");
+        }
+
+        LambdaQueryWrapper<HouseLock> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(HouseLock::getHouseNumberId, houseNumberId);
+        HouseLock houseLock = houseLockService.getOne(wrapper);
+        try {
+            if (ObjectUtils.isNotEmpty(houseLock)) {
+                houseLockService.removeById(houseLock.getId());
+            }
+            houseNumberService.removeById(houseNumberId);
+        }catch (Exception e){
+            e.printStackTrace();
+            return CommonResult.fail();
+        }
+        return CommonResult.ok();
     }
 
 

+ 30 - 0
src/main/java/com/template/model/dto/HouseNumberUpdateDto.java

@@ -0,0 +1,30 @@
+package com.template.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class HouseNumberUpdateDto {
+
+    private Integer id;
+
+    @ApiModelProperty(value = "楼栋id")
+    private Integer buildingId;
+
+    @ApiModelProperty(value = "房型id")
+    private String houseId;
+
+    @ApiModelProperty(value = "房间号")
+    private String roomNumber;
+
+
+    @ApiModelProperty(value = "电表设备编码")
+    private String electricEquipmentMeterName;
+
+
+    @ApiModelProperty(value = "水表设备编码")
+    private String waterEquipmentMeterName;
+
+    private String doorLock;
+
+}

+ 13 - 3
src/main/java/com/template/model/vo/HouseNumberListVo.java

@@ -7,8 +7,11 @@ import lombok.Data;
 public class HouseNumberListVo {
     private Integer id;
 
-    @ApiModelProperty(value = "楼栋id")
-    private Integer buildingId;
+    @ApiModelProperty(value = "楼栋")
+    private String building;
+
+    @ApiModelProperty(value = "单元")
+    private String element;
 
     @ApiModelProperty(value = "房型id")
     private String houseId;
@@ -31,6 +34,13 @@ public class HouseNumberListVo {
     @ApiModelProperty(value = "水表设备id")
     private String waterEquipmentId;
 
-    private String lock;
+    @ApiModelProperty(value = "门锁")
+    private String doorLock;
+
+    @ApiModelProperty(value = "房间名称")
+    private String roomName;
+
+    @ApiModelProperty(value = "房间类型(1:全日房,2:钟点房)")
+    private Integer roomType;
 
 }

+ 31 - 1
src/main/resources/mapper/template/HouseNumberMapper.xml

@@ -285,7 +285,37 @@
         ORDER BY h.id
     </select>
     <select id="getpage" resultType="com.template.model.vo.HouseNumberListVo">
-
+        SELECT
+            b.building as building,
+            b.element,
+            hl.equipment_type as doorLock,
+            h.room_name as roomName,
+            h.room_type as roomType,
+            hn.id,
+            hn.room_number AS roomNumber,
+            hn.house_status AS houseStatus,
+            hn.electric_type AS electricType,
+            hn.electric_equipment_id AS electricEquipmentId,
+            hn.electric_equipment_meter_name AS electricEquipmentMeterName,
+            hn.water_equipment_id AS waterEquipmentId,
+            hn.water_equipment_meter_name AS waterEquipmentMeterName
+        FROM
+            `house_number` hn
+                LEFT JOIN building b ON b.id = hn.building_id
+                LEFT JOIN house_lock hl ON hl.house_number_id = hn.id
+                LEFT JOIN house h ON h.id = hn.house_id
+        WHERE
+            hn.deleted=0
+        <if test="keyWord != null and keyWord != ''">
+          AND hn.room_number LIKE '%' #{keyWord} '%'
+        </if>
+        <if test="buildingId != null and buildingId != ''">
+            AND b.id= #{buildingId}
+        </if>
+        <if test="houseId != null and houseId != ''">
+            AND h.id= #{houseId}
+        </if>
+        ORDER BY b.building,b.element
     </select>