智慧厨房

This commit is contained in:
gaowdong 2025-06-18 16:53:03 +08:00
parent edd2a6053d
commit 8b25826a8c
3 changed files with 58 additions and 2 deletions

View File

@ -1,5 +1,6 @@
package com.bonus.canteen.core.kitchen.domain; package com.bonus.canteen.core.kitchen.domain;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -7,6 +8,7 @@ import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel; import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity; import com.bonus.common.core.web.domain.BaseEntity;
@ -84,6 +86,18 @@ public class KitchenDeviceSensorRecord extends BaseEntity {
@ApiModelProperty(value = "食堂名称") @ApiModelProperty(value = "食堂名称")
private String canteenName; 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 = "测量结果类型") @ApiModelProperty(value = "测量结果类型")
private List<Integer> sensorResultTypeList; private List<Integer> sensorResultTypeList;

View File

@ -1,6 +1,12 @@
package com.bonus.canteen.core.kitchen.service.impl; package com.bonus.canteen.core.kitchen.service.impl;
import java.math.BigDecimal;
import java.util.List; 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.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -39,7 +45,39 @@ public class KitchenDeviceSensorRecordServiceImpl implements IKitchenDeviceSenso
*/ */
@Override @Override
public List<KitchenDeviceSensorRecord> selectKitchenDeviceSensorRecordList(KitchenDeviceSensorRecord kitchenDeviceSensorRecord) { public List<KitchenDeviceSensorRecord> selectKitchenDeviceSensorRecordList(KitchenDeviceSensorRecord kitchenDeviceSensorRecord) {
return kitchenDeviceSensorRecordMapper.selectKitchenDeviceSensorRecordList(kitchenDeviceSensorRecord); List<KitchenDeviceSensorRecord> 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;
} }
/** /**

View File

@ -21,12 +21,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="deviceName" column="device_name" /> <result property="deviceName" column="device_name" />
<result property="canteenName" column="canteen_name" /> <result property="canteenName" column="canteen_name" />
<result property="measureType" column="measure_type" />
<result property="measureMaxValue" column="measure_max_value" />
<result property="measureMinValue" column="measure_min_value" />
</resultMap> </resultMap>
<sql id="selectKitchenDeviceSensorRecordVo"> <sql id="selectKitchenDeviceSensorRecordVo">
select record_id, batch_no, kdsr.device_id, kdsr.device_type, kdsr.measure_code, measure_data, 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, 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 from kitchen_device_sensor_record kdsr
left join kitchen_device_sensor_metric kdsm on kdsm.measure_code = kdsr.measure_code 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 left join kitchen_device_info kdi on kdi.device_id = kdsr.device_id