package com.template.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; 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.HouseNumberImportDto; import com.template.model.pojo.*; import com.template.model.result.CommonResult; import com.template.model.result.PageUtils; import com.template.model.vo.HouseNumberPageVo; import com.template.services.*; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** *

* 前端控制器 *

* * @author ceshi * @since 2023-11-09 */ @RestController public class HouseNumberController implements HouseNumberControllerAPI { @Autowired HouseNumberService houseNumberService; @Autowired ElectricEquipmentService electricEquipmentService; @Autowired WaterEquipmentService waterEquipmentService; @Autowired PermissionSettingService permissionSettingService; @Autowired HouseService houseService; @Override public CommonResult pullDownList(String permissionSettingId, int page, int size, String keyWord) { PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String hydropowerManagement = permissionSetting.getHydropowerManagement(); if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("4")) { return CommonResult.fail("此账号暂无该权限"); } if (ObjectUtils.isEmpty(page) && page <= 0) { page = 1; } if (ObjectUtils.isEmpty(size) && size <= 0) { size = 10; } LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); wrapper.like(ObjectUtils.isNotEmpty(keyWord),HouseNumber::getRoomNumber,keyWord) .orderByDesc(HouseNumber::getRoomNumber); IPage page1 = houseNumberService.page(new Page<>(page, size), wrapper); return CommonResult.ok(page1); } @Override public CommonResult binding(HouseNumberBindingDto houseNumberBindingDto) { String permissionSettingId = houseNumberBindingDto.getPermissionSettingId(); PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String hydropowerManagement = permissionSetting.getHydropowerManagement(); if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("1")) { return CommonResult.fail("此账号暂无该权限"); } int houseNumberId = houseNumberBindingDto.getHouseNumberId(); String meterNameElectric = houseNumberBindingDto.getMeterNameElectric(); HouseNumber houseNumber = houseNumberService.getById(houseNumberId); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("该房间不存在"); } LambdaQueryWrapper wrapperEE=new LambdaQueryWrapper<>(); wrapperEE.eq(ElectricEquipment::getMeterName,meterNameElectric); ElectricEquipment electricEquipment = electricEquipmentService.getOne(wrapperEE); if (ObjectUtils.isEmpty(electricEquipment)) { return CommonResult.fail("该电表设备不存在"); } String meterNameWater = houseNumberBindingDto.getMeterNameWater(); LambdaQueryWrapper wrapperWE=new LambdaQueryWrapper<>(); wrapperWE.eq(WaterEquipment::getMeterName,meterNameWater); WaterEquipment waterEquipment = waterEquipmentService.getOne(wrapperWE); if (ObjectUtils.isEmpty(waterEquipment)) { return CommonResult.fail("该水表设备不存在"); } // 判断电表设备id是否已经被绑定了 LambdaQueryWrapper wrarpperHN=new LambdaQueryWrapper<>(); Integer electricEquipmentId = electricEquipment.getId(); wrarpperHN.eq(HouseNumber::getElectricEquipmentId,electricEquipmentId); List list = houseNumberService.list(wrarpperHN); if (ObjectUtils.isNotEmpty(list)) { return CommonResult.fail("该电表设备已经被绑定"); } // 绑定电表 houseNumber.setElectricEquipmentId(electricEquipmentId+""); houseNumber.setElectricEquipmentMeterName(meterNameElectric); // 判断水表设备id是否已经被绑定了 LambdaQueryWrapper wrarpperHN2=new LambdaQueryWrapper<>(); Integer waterEquipmentId = waterEquipment.getId(); wrarpperHN2.eq(HouseNumber::getWaterEquipmentId,waterEquipmentId); List list2 = houseNumberService.list(wrarpperHN2); if (ObjectUtils.isNotEmpty(list2)) { return CommonResult.fail("该水表设备已经被绑定"); } // 绑定水表 houseNumber.setWaterEquipmentId(electricEquipmentId+""); houseNumber.setWaterEquipmentMeterName(meterNameWater); houseNumberService.updateById(houseNumber); return CommonResult.ok(); } @Override public CommonResult list(String permissionSettingId, int page, int size, String keyWord,String startTime,String endTime) { PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String hydropowerManagement = permissionSetting.getHydropowerManagement(); if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("4")) { return CommonResult.fail("此账号暂无该权限"); } if (ObjectUtils.isEmpty(page) && page <= 0) { page = 1; } if (ObjectUtils.isEmpty(size) && size <= 0) { size = 10; } PageUtils pageList =houseNumberService.pageList(page,size,keyWord,startTime,endTime); return CommonResult.ok(pageList); } @Override public CommonResult update(HouseNumberBindingDto houseNumberBindingDto) { String permissionSettingId = houseNumberBindingDto.getPermissionSettingId(); PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String hydropowerManagement = permissionSetting.getHydropowerManagement(); if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("2")) { return CommonResult.fail("此账号暂无该权限"); } int houseNumberId = houseNumberBindingDto.getHouseNumberId(); String meterNameElectric = houseNumberBindingDto.getMeterNameElectric(); HouseNumber houseNumber = houseNumberService.getById(houseNumberId); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("该房间不存在"); } LambdaQueryWrapper wrapperEE=new LambdaQueryWrapper<>(); wrapperEE.eq(ElectricEquipment::getMeterName,meterNameElectric); ElectricEquipment electricEquipment = electricEquipmentService.getOne(wrapperEE); if (ObjectUtils.isEmpty(electricEquipment)) { return CommonResult.fail("该电表设备不存在"); } String meterNameWater = houseNumberBindingDto.getMeterNameWater(); LambdaQueryWrapper wrapperWE=new LambdaQueryWrapper<>(); wrapperWE.eq(WaterEquipment::getMeterName,meterNameWater); WaterEquipment waterEquipment = waterEquipmentService.getOne(wrapperWE); if (ObjectUtils.isEmpty(waterEquipment)) { return CommonResult.fail("该水表设备不存在"); } // 判断电表设备id是否已经被绑定了 LambdaQueryWrapper wrarpperHN=new LambdaQueryWrapper<>(); Integer electricEquipmentId = electricEquipment.getId(); wrarpperHN.eq(HouseNumber::getElectricEquipmentId,electricEquipmentId); List list = houseNumberService.list(wrarpperHN); if (ObjectUtils.isNotEmpty(list)) { return CommonResult.fail("该电表设备已经被绑定"); } // 绑定电表 houseNumber.setElectricEquipmentId(electricEquipmentId+""); houseNumber.setElectricEquipmentMeterName(meterNameElectric); // 判断水表设备id是否已经被绑定了 LambdaQueryWrapper wrarpperHN2=new LambdaQueryWrapper<>(); Integer waterEquipmentId = waterEquipment.getId(); wrarpperHN2.eq(HouseNumber::getWaterEquipmentId,waterEquipmentId); List list2 = houseNumberService.list(wrarpperHN2); if (ObjectUtils.isNotEmpty(list2)) { return CommonResult.fail("该水表设备已经被绑定"); } // 绑定水表 houseNumber.setWaterEquipmentId(electricEquipmentId+""); houseNumber.setWaterEquipmentMeterName(meterNameWater); houseNumberService.updateById(houseNumber); return CommonResult.ok(); } @Override public CommonResult delete(HouseNumberDeleteBindingDto houseNumberDeleteBindingDto) { String permissionSettingId = houseNumberDeleteBindingDto.getPermissionSettingId(); PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String hydropowerManagement = permissionSetting.getHydropowerManagement(); if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("3")) { return CommonResult.fail("此账号暂无该权限"); } int houseNumberId = houseNumberDeleteBindingDto.getHouseNumberId(); HouseNumber houseNumber = houseNumberService.getById(houseNumberId); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("该房间不存在"); } // 删除电表 houseNumber.setElectricEquipmentId(""); houseNumber.setElectricEquipmentMeterName(""); // 删除水表 houseNumber.setWaterEquipmentId(""); houseNumber.setWaterEquipmentMeterName(""); houseNumberService.updateById(houseNumber); return CommonResult.ok(); } @Override public CommonResult listExport(HttpServletResponse response, String permissionSettingId, String keyWord, String startTime, String endTime) { PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId); if (ObjectUtils.isEmpty(permissionSetting)) { return CommonResult.fail("非法进入"); } // 判断该用户是否拥有权限 String hydropowerManagement = permissionSetting.getHydropowerManagement(); if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("5")) { return CommonResult.fail("此账号暂无该权限"); } List vos =houseNumberService.listExport(keyWord,startTime,endTime); // 导出 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("水电设备绑定表"); Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("序号"); headerRow.createCell(1).setCellValue("水表编码"); headerRow.createCell(2).setCellValue("电表编码"); headerRow.createCell(3).setCellValue("房型类型"); headerRow.createCell(4).setCellValue("房型名称"); headerRow.createCell(5).setCellValue("房间号"); if (ObjectUtils.isNotEmpty(vos) && vos.size() > 0) { for (int i = 0; i < vos.size(); i++) { Row dataRow1 = sheet.createRow(i + 1); HouseNumberPageVo vo = vos.get(i); dataRow1.createCell(0).setCellValue(i+1); dataRow1.createCell(1).setCellValue(vo.getWaterEquipmentMeterName()); dataRow1.createCell(2).setCellValue(vo.getElectricEquipmentMeterName()); Integer roomType = vo.getRoomType(); String houseType=""; if (1==roomType) { houseType="全日房"; }else { houseType="钟点房"; } dataRow1.createCell(3).setCellValue(houseType); dataRow1.createCell(4).setCellValue(vo.getHouseName()); dataRow1.createCell(5).setCellValue(vo.getHouseName()); } } // 将工作簿写入文件 ExcelUtils2.excelDownload(workbook, "水电设备绑定表.xlsx", response); return CommonResult.ok(); } @Override public CommonResult importList(MultipartFile file) throws Exception { List dtos= ExcelUtils.readMultipartFile(file, HouseNumberImportDto.class); ArrayList houseNumbers = new ArrayList<>(); for (int i = 0; i < dtos.size(); i++) { HouseNumberImportDto dto = dtos.get(i); Integer roomType = dto.getRoomType(); // 房间号 String roomNumber = dto.getRoomNumber(); // 房型 String houseName = dto.getHouseName(); // 判断当前房型是否存在当前房间号 House house=houseService.getHouseName(houseName,roomType); if (ObjectUtils.isEmpty(house)) { return CommonResult.fail("第"+(i+2)+"行,"+"不存在"+houseName+"该房型"); } Integer houseId = house.getId(); HouseNumber houseNumber=houseNumberService.getRoomNumber(houseId,roomNumber); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("第"+(i+2)+"行,"+"不存在"+roomNumber+"该房间号"); } String electricEquipmentMeterName = dto.getElectricEquipmentMeterName(); LambdaQueryWrapper 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 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()); houseNumbers.add(houseNumber); } boolean b = houseNumberService.saveOrUpdateBatch(houseNumbers); if (b) { return CommonResult.ok(); } return CommonResult.fail(); } }