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 +++++++++++++++++++
 src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml              |    4 +-
 src/main/java/com/nanometer/smartlab/entity/SysWarehouseStatus.java             |   10 +++++
 src/main/webapp/warehouse_mng.xhtml                                             |   42 ++++++++++++++++++++
 4 files changed, 92 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml
index 0fd4f51..099ff6c 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml
@@ -6,9 +6,9 @@
 
   <insert id="insertOne" parameterType="com.nanometer.smartlab.entity.SysWarehouseStatus">
     insert into sys_warehouse_status
-    (type,name,temperature,humidity,creator,create_time,valid_flag,warehouse_id,select_date)
+    (type,name,temperature,humidity,creator,create_time,valid_flag,warehouse_id,select_date,warning)
     values
-    (#{type},#{name},#{temperature},#{humidity},#{creator},#{createTime},1,#{warehouseId},#{selectDate})
+    (#{type},#{name},#{temperature},#{humidity},#{creator},#{createTime},1,#{warehouseId},#{selectDate},#{warning})
   </insert>
 
 </mapper>
diff --git a/src/main/java/com/nanometer/smartlab/entity/SysWarehouseStatus.java b/src/main/java/com/nanometer/smartlab/entity/SysWarehouseStatus.java
index 3bbfef9..b3dd167 100644
--- a/src/main/java/com/nanometer/smartlab/entity/SysWarehouseStatus.java
+++ b/src/main/java/com/nanometer/smartlab/entity/SysWarehouseStatus.java
@@ -27,6 +27,8 @@
 
     private String warehouseId;
 
+    private String warning;
+
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date selectDate;
 
@@ -109,4 +111,12 @@
     public void setSelectDate(Date selectDate) {
         this.selectDate = selectDate;
     }
+
+    public String getWarning() {
+        return warning;
+    }
+
+    public void setWarning(String warning) {
+        this.warning = warning;
+    }
 }
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);
     }
 }
diff --git a/src/main/webapp/warehouse_mng.xhtml b/src/main/webapp/warehouse_mng.xhtml
index 391df19..c8c96c7 100644
--- a/src/main/webapp/warehouse_mng.xhtml
+++ b/src/main/webapp/warehouse_mng.xhtml
@@ -68,6 +68,26 @@
 						value="#{'楼号:'.concat(row.location1).concat(' - 地址号:'.concat(row.location2))}"></h:outputText>
 				</p:column>
 
+				<p:column headerText="温度最大值" width="50">
+					<h:outputText
+							value="#{row.temperatureMax}"></h:outputText>
+				</p:column>
+
+				<p:column headerText="温度最小值" width="50">
+					<h:outputText
+							value="#{row.temperatureMin}"></h:outputText>
+				</p:column>
+
+				<p:column headerText="湿度最大值" width="50">
+					<h:outputText
+							value="#{row.humidityMax}"></h:outputText>
+				</p:column>
+
+				<p:column headerText="湿度最小值" width="50">
+					<h:outputText
+							value="#{row.humidityMin}"></h:outputText>
+				</p:column>
+
 				<p:column headerText="负责部门">
 					<h:outputText value="#{baseMetaService.getBaseMetaValue(row.department)}"/>
 				</p:column>
@@ -115,6 +135,26 @@
 					<f:selectItems value="#{baseMetaService.getBaseMetaList(constants.BASE_META_GROUP_USER_DEPARTMENT)}"
 								   var="item" itemLabel="#{item.metaValue}" itemValue="#{item.id}"></f:selectItems>
 				</p:selectOneMenu>
+
+				<p:outputLabel value="温度最大值"></p:outputLabel>
+				<p:inputNumber value="#{warehouseMngController.sysWarehouse.temperatureMax}"
+							   modifyValueOnWheel="false"
+							   decimalPlaces="4"/>
+
+				<p:outputLabel value="温度最小值"></p:outputLabel>
+				<p:inputNumber value="#{warehouseMngController.sysWarehouse.temperatureMin}"
+							   modifyValueOnWheel="false"
+							   decimalPlaces="4"/>
+
+				<p:outputLabel value="湿度最大值"></p:outputLabel>
+				<p:inputNumber value="#{warehouseMngController.sysWarehouse.humidityMax}"
+							   modifyValueOnWheel="false"
+							   decimalPlaces="4"/>
+
+				<p:outputLabel value="湿度最大值"></p:outputLabel>
+				<p:inputNumber value="#{warehouseMngController.sysWarehouse.humidityMin}"
+							   modifyValueOnWheel="false"
+							   decimalPlaces="4"/>
 			</p:panelGrid>
 			<p:panel styleClass="btn">
 				<p:commandButton value="保存"
@@ -126,4 +166,4 @@
 		</h:form>
 	</p:dialog>
 </ui:composition>
-</html>
\ No newline at end of file
+</html>

--
Gitblit v1.9.2