From 25eca015c9edb5a8ab3fd9d68a8fd785619c1372 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期一, 28 二月 2022 11:24:48 +0800 Subject: [PATCH] 仓库状态温湿度阈值警报字段 --- src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java | 40 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 39 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java index 6fe341b..0479715 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.service; import com.nanometer.smartlab.dao.SysWarehouseStatusDao; +import com.nanometer.smartlab.entity.SysWarehouse; import com.nanometer.smartlab.entity.SysWarehouseStatus; import com.nanometer.smartlab.exception.BusinessException; import com.nanometer.smartlab.exception.ExceptionEnumCode; @@ -9,21 +10,58 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; @Service public class SysWarehouseStatusServiceImpl implements SysWarehouseStatusService { @Resource private SysWarehouseStatusDao sysWarehouseStatusDao; + @Resource + private SysWarehouseService sysWarehouseService; @Override public void addOne(SysWarehouseStatus one) { - if (one.getTemperature() == null || one.getHumidity() == null || one.getSelectDate() == null) { + if (one.getTemperature() == null || one.getHumidity() == null || one.getSelectDate() == null ||one.getWarehouseId() == null) { throw new BusinessException(ExceptionEnumCode.PARAM_NULL, "参数不能为空"); } if (StringUtils.isBlank(one.getName()) || StringUtils.isBlank(one.getType())) { throw new BusinessException(ExceptionEnumCode.PARAM_NULL, "字符不能为空"); } + SysWarehouse sysWarehouse = sysWarehouseService.getSysWarehouse(one.getWarehouseId()); + if (sysWarehouse == null) { + throw new BusinessException(ExceptionEnumCode.PARAM_NULL, "查询不到仓库"); + } + //温度 + BigDecimal temperatureMax = sysWarehouse.getTemperatureMax(); + BigDecimal temperatureMin = sysWarehouse.getTemperatureMin(); + if (temperatureMax == null || temperatureMin == null) { + throw new BusinessException(ExceptionEnumCode.PARAM_NULL, "仓库未设置温度阈值"); + } + //湿度 + BigDecimal humidityMax = sysWarehouse.getHumidityMax(); + BigDecimal humidityMin = sysWarehouse.getHumidityMin(); + if (humidityMax == null || humidityMin == null) { + throw new BusinessException(ExceptionEnumCode.PARAM_NULL, "仓库未设置湿度阈值"); + } + + BigDecimal temperature = one.getTemperature(); + BigDecimal humidity = one.getHumidity(); + StringBuffer warningSb = new StringBuffer(); + if (temperature.compareTo(temperatureMin) < 0) { + warningSb.append("温度小于仓库设置最小值;"); + } + if (temperature.compareTo(temperatureMax) > 0) { + warningSb.append("温度超过仓库设置最大值;"); + } + if (humidity.compareTo(humidityMin) < 0) { + warningSb.append("湿度小于仓库设置最小值;"); + } + if (humidity.compareTo(humidityMax) > 0) { + warningSb.append("湿度大于仓库设置最大值;"); + } + + one.setWarning(warningSb.toString()); sysWarehouseStatusDao.insertOne(one); } } -- Gitblit v1.9.2