diff --git a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java index b117611..0704742 100644 --- a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java @@ -350,4 +350,8 @@ public interface DeviceInstallMapper extends BaseMapper { " and device_addr = #{pumpId} ") String selectSinglePumpId(@Param("buildingId") String buildingId, @Param("pumpId") String pumpId); + + @ResultMap("rs") + @Select("select * from device_install where building_id = #{buildingId} and device_type = #{deviceType} ") + List selectOfflineDevice(String buildingId, String deviceType); } diff --git a/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java index b63e336..68b802a 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java @@ -1,17 +1,17 @@ package com.mh.user.service.impl; import com.mh.common.utils.StringUtils; +import com.mh.user.constants.Constant; import com.mh.user.entity.*; -import com.mh.user.mapper.DeviceFloorMapper; -import com.mh.user.mapper.DeviceInstallMapper; -import com.mh.user.mapper.NowDataMapper; -import com.mh.user.mapper.NowPublicDataMapper; +import com.mh.user.mapper.*; import com.mh.user.model.DeviceModel; import com.mh.user.model.PumpModel; import com.mh.user.model.WaterLevelModel; import com.mh.user.service.BuildingService; +import com.mh.user.service.DealDataService; import com.mh.user.service.DeviceInstallService; import com.mh.user.service.NowDataService; +import com.mh.user.utils.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,9 +46,14 @@ public class NowDataServiceImpl implements NowDataService { @Autowired BuildingService buildingService; + @Autowired + DealDataService dealDataService; + ReentrantLock lockA = new ReentrantLock(); ReentrantLock lockB = new ReentrantLock(); + @Autowired + private AreaMapper areaMapper; @Override public void saveNowData(NowDataEntity nowDataEntity) { @@ -169,7 +174,11 @@ public class NowDataServiceImpl implements NowDataService { DeviceInstallEntity deviceInstallEntity=deviceInstallMapper.selectDevice(deviceAddr,deviceType,buildingId); String buildingName=buildingService.queryBuildingName(buildingId); data.setBuildingName(buildingName); - if (deviceType.equals("温控")) { + // 获取项目名称 + String name = dealDataService.customName(); + if (deviceType.equals("温控") + && !name.contains(Constant.CUSTOM_NAME_HUAXIA) + && !name.contains(Constant.CUSTOM_NAME_HUARUAN) ) { //为了兼容旧系统,旧系统热泵信息保存在楼面表,从楼面表获取热泵资料 PumpModel pump=deviceFloorMapper.selectDeviceId2("热泵",buildingId); String pumpId="1"; @@ -343,12 +352,34 @@ public class NowDataServiceImpl implements NowDataService { public List queryNowData(String buildingId) { nowDataMapper.updateTempSet(buildingId); nowDataMapper.updateLevelSet(buildingId); - return nowDataMapper.queryNowData(buildingId); + List nowDataEntities = nowDataMapper.queryNowData(buildingId); + List list = deviceInstallMapper.selectOfflineDevice(buildingId, "压变"); + if (list != null && list.size() > 0) { + for (DeviceInstallEntity deviceInstallEntity : list) { + if (!DateUtil.isToday(deviceInstallEntity.getLastDate())) { + // 使用stream流nowDataEntities,批量更新waterLevel="离线" + nowDataEntities.stream() + .filter(nowDataEntity -> buildingId.equals(nowDataEntity.getBuildingId())) + .forEach(nowDataEntity -> nowDataEntity.setWaterLevel("离线")); + } + } + } + return nowDataEntities; } @Override public NowDataEntity queryNowDataByPump(String buildingId,String pumpId) { - return nowDataMapper.queryNowDataByPump(buildingId,pumpId); + // 查询当前楼栋离线的设备 + List list = deviceInstallMapper.selectOfflineDevice(buildingId, "压变"); + NowDataEntity nowDataEntity = nowDataMapper.queryNowDataByPump(buildingId, pumpId); + if (list != null && list.size() > 0) { + for (DeviceInstallEntity deviceInstallEntity : list) { + if (!DateUtil.isToday(deviceInstallEntity.getLastDate())) { + nowDataEntity.setWaterLevel("离线"); + } + } + } + return nowDataEntity; } @Override