From 8b25826a8ca5b75ef08cb19b74a929af1ee77f43 Mon Sep 17 00:00:00 2001 From: gaowdong Date: Wed, 18 Jun 2025 16:53:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E6=85=A7=E5=8E=A8=E6=88=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/KitchenDeviceSensorRecord.java | 14 +++++++ .../KitchenDeviceSensorRecordServiceImpl.java | 40 ++++++++++++++++++- .../KitchenDeviceSensorRecordMapper.xml | 6 ++- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/domain/KitchenDeviceSensorRecord.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/domain/KitchenDeviceSensorRecord.java index 7da2588..e0413f2 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/domain/KitchenDeviceSensorRecord.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/domain/KitchenDeviceSensorRecord.java @@ -1,5 +1,6 @@ package com.bonus.canteen.core.kitchen.domain; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -7,6 +8,7 @@ import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.bonus.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; import lombok.Data; import lombok.ToString; import com.bonus.common.core.web.domain.BaseEntity; @@ -84,6 +86,18 @@ public class KitchenDeviceSensorRecord extends BaseEntity { @ApiModelProperty(value = "食堂名称") private String canteenName; + @ApiModelProperty(value = "测量结果名称") + private String sensorResultTypeName; + + @ApiModelProperty(value = "测量指标类型") + private Integer measureType; + + @ApiModelProperty(value = "测量指标最大值") + private BigDecimal measureMaxValue; + + @ApiModelProperty(value = "测量指标最小值") + private BigDecimal measureMinValue; + @ApiModelProperty(value = "测量结果类型") private List sensorResultTypeList; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/service/impl/KitchenDeviceSensorRecordServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/service/impl/KitchenDeviceSensorRecordServiceImpl.java index cffaa28..0b16a9c 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/service/impl/KitchenDeviceSensorRecordServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/kitchen/service/impl/KitchenDeviceSensorRecordServiceImpl.java @@ -1,6 +1,12 @@ package com.bonus.canteen.core.kitchen.service.impl; +import java.math.BigDecimal; import java.util.List; +import java.util.Objects; + +import cn.hutool.core.collection.CollUtil; +import com.alibaba.excel.util.StringUtils; +import com.bonus.canteen.core.kitchen.domain.constants.DeviceSensorResultEnum; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -39,7 +45,39 @@ public class KitchenDeviceSensorRecordServiceImpl implements IKitchenDeviceSenso */ @Override public List selectKitchenDeviceSensorRecordList(KitchenDeviceSensorRecord kitchenDeviceSensorRecord) { - return kitchenDeviceSensorRecordMapper.selectKitchenDeviceSensorRecordList(kitchenDeviceSensorRecord); + List kitchenDeviceSensorRecordList = kitchenDeviceSensorRecordMapper + .selectKitchenDeviceSensorRecordList(kitchenDeviceSensorRecord); + if(CollUtil.isNotEmpty(kitchenDeviceSensorRecordList)) { + kitchenDeviceSensorRecordList.forEach(record -> { + if("temperature".equals(record.getMeasureCode()) && StringUtils.isNotBlank(record.getMeasureData())) { + if(new BigDecimal(record.getMeasureData()).compareTo(record.getMeasureMaxValue()) > 0) { + record.setSensorResultTypeName(DeviceSensorResultEnum.TEMPERATURE_HIGH.getDesc()); + }else if(new BigDecimal(record.getMeasureData()).compareTo(record.getMeasureMaxValue()) < 0) { + record.setSensorResultTypeName(DeviceSensorResultEnum.TEMPERATURE_LOW.getDesc()); + } else { + record.setSensorResultTypeName(DeviceSensorResultEnum.NORMAL.getDesc()); + } + } + if("humidity".equals(record.getMeasureCode()) && StringUtils.isNotBlank(record.getMeasureData())) { + if(new BigDecimal(record.getMeasureData()).compareTo(record.getMeasureMaxValue()) > 0) { + record.setSensorResultTypeName(DeviceSensorResultEnum.HUMIDITY_HIGH.getDesc()); + }else if(new BigDecimal(record.getMeasureData()).compareTo(record.getMeasureMaxValue()) < 0) { + record.setSensorResultTypeName(DeviceSensorResultEnum.HUMIDITY_LOW.getDesc()); + } else { + record.setSensorResultTypeName(DeviceSensorResultEnum.NORMAL.getDesc()); + } + } + if("smoke".equals(record.getMeasureCode()) && StringUtils.isNotBlank(record.getMeasureData())) { + if(new BigDecimal(record.getMeasureData()).compareTo(record.getMeasureMaxValue()) > 0) { + record.setSensorResultTypeName(DeviceSensorResultEnum.SMOKE_HIGH.getDesc()); + } else { + record.setSensorResultTypeName(DeviceSensorResultEnum.NORMAL.getDesc()); + } + } + }); + } + + return kitchenDeviceSensorRecordList; } /** diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/kitchen/KitchenDeviceSensorRecordMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/kitchen/KitchenDeviceSensorRecordMapper.xml index 1ccea98..38353d7 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/kitchen/KitchenDeviceSensorRecordMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/kitchen/KitchenDeviceSensorRecordMapper.xml @@ -21,12 +21,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + select record_id, batch_no, kdsr.device_id, kdsr.device_type, kdsr.measure_code, measure_data, gateway_device_id, device_time, kdsr.sub_place, kdsr.canteen_id, kdsr.area_id, kdsr.create_by, - kdsr.create_time, kdsr.update_by, kdsr.update_time, kdi.device_name, bc.canteen_name + kdsr.create_time, kdsr.update_by, kdsr.update_time, kdi.device_name, bc.canteen_name, + kdsm.measure_type, kdsm.measure_max_value, kdsm.measure_min_value from kitchen_device_sensor_record kdsr left join kitchen_device_sensor_metric kdsm on kdsm.measure_code = kdsr.measure_code left join kitchen_device_info kdi on kdi.device_id = kdsr.device_id