diff --git a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java index b5a611c..360292b 100644 --- a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java @@ -101,16 +101,12 @@ public class DeviceController extends BladeController { * 设备表 巡检计划设备列表,按照实验室、楼层、房间匹配 */ @GetMapping("/limsList") - public R> limsList(Device device) { + public R> limsList(Device device) { // 参数校验 if (device.getLimsId() == null || device.getFloorId() == null || device.getRoomId() == null) { return R.success("参数为空!"); } - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Device.class) - .eq(Device::getLimsId, device.getLimsId()) - .eq(Device::getFloorId, device.getFloorId()) - .eq(Device::getRoomId, device.getRoomId()); - return R.data(deviceService.list(wrapper)); + return R.data(deviceService.limsList(device)); } private String sanitizeInput(String input) { diff --git a/src/main/java/org/springblade/modules/business/service/IDeviceService.java b/src/main/java/org/springblade/modules/business/service/IDeviceService.java index 49abef4..c78a874 100644 --- a/src/main/java/org/springblade/modules/business/service/IDeviceService.java +++ b/src/main/java/org/springblade/modules/business/service/IDeviceService.java @@ -48,4 +48,5 @@ public interface IDeviceService extends BaseService { void importGoods(List data, Boolean isCovered); + List limsList(Device device); } diff --git a/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java index 2479e59..b1ecbd0 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java @@ -3,6 +3,7 @@ package org.springblade.modules.business.service.impl; import com.aliyun.oss.ServiceException; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -198,8 +199,31 @@ public class DeviceServiceImpl extends BaseServiceImpl imp } } + @Override + public List limsList(Device device) { + List deviceVOList = new ArrayList<>(); + // 按照实验室、楼层、房间匹配巡检计划设备列表 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Device.class) + .eq(Device::getLimsId, device.getLimsId()) + .eq(Device::getFloorId, device.getFloorId()) + .eq(Device::getRoomId, device.getRoomId()); + List devices = this.list(wrapper); + // 查询关联的设备巡检数据 + List maintenances = maintenanceService.list(Wrappers.lambdaQuery(DeviceMaintenance.class).in(DeviceMaintenance::getDeviceId, devices.stream().map(Device::getId).toList())); + // 组装视图返回 + devices.forEach(devic -> { + DeviceVO deviceVO = BeanUtil.copyProperties(devic, DeviceVO.class); + if (deviceVO != null) { + deviceVO.setMaintenances(maintenances.stream().filter(maintenance -> maintenance.getDeviceId().equals(devic.getId())).toList()); + deviceVOList.add(deviceVO); + } + }); + return deviceVOList; + } + /** * 获取两个list相同数据 + * * @param list1 * @param list2 * @return