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