From 3ae57f026d9199f587fd25160e98d19572a30541 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期三, 30 三月 2022 16:53:33 +0800
Subject: [PATCH] 1.柜子温湿浓度最大小值 2.新增柜子搜索当年月份

---
 src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 100 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java b/src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java
index 4361ea5..93455e5 100644
--- a/src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java
@@ -5,12 +5,14 @@
 import com.google.common.collect.Maps;
 import com.nanometer.smartlab.entity.*;
 import com.nanometer.smartlab.entity.dto.ContainerStatusMngDto;
+import com.nanometer.smartlab.model.SelectItemModel;
 import com.nanometer.smartlab.service.SysContainerSensorsService;
 import com.nanometer.smartlab.service.SysLaboratoryContainerService;
 import com.nanometer.smartlab.service.SysLaboratoryService;
 import com.nanometer.smartlab.service.SysWarehouseContainerService;
 import com.nanometer.smartlab.util.FacesUtils;
 import com.nanometer.smartlab.util.Utils;
+import org.apache.commons.collections4.map.SingletonMap;
 import org.apache.commons.lang.RandomStringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateFormatUtils;
@@ -26,6 +28,10 @@
 
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
+import javax.faces.model.SelectItem;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -34,6 +40,8 @@
 public class ContainerStatusMngController extends BaseController {
 
     private static Logger logger = Logger.getLogger(ContainerStatusMngController.class);
+    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
+    private static SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
 
     @Resource
     private SysContainerSensorsService sysContainerSensorsService;
@@ -56,6 +64,25 @@
     private SysContainerSensors selectedSysContainerSensors;
 
     private List<SysContainerSensors> chartSensorsList;
+
+    private Map<String,BigDecimal> temperatureMap = new HashMap<>();
+    private Map<String,BigDecimal> humidityMap = new HashMap<>();
+    private Map<String,BigDecimal> vocMap = new HashMap<>();
+
+
+    private List<SelectItemModel> dateRangeList = new ArrayList<SelectItemModel>(){{
+        Calendar instance = Calendar.getInstance();
+        int year = instance.get(Calendar.YEAR);
+        add(new SelectItemModel(){{setName("本日");setValue("1");}});
+        add(new SelectItemModel(){{setName("本周");setValue("2");}});
+        add(new SelectItemModel(){{setName("本月");setValue("3");}});
+        for (int i = 1; i <= 12; i++) {
+            SelectItemModel item = new SelectItemModel();
+            item.setName(year +"年"+ i + "月");
+            item.setValue(year + String.format("%02d",i));
+            add(item);
+        }
+    }};
 
 
     public LazyDataModel<ContainerStatusMngDto> getDataModel() {
@@ -108,7 +135,7 @@
         return dataModel;
     }
 
-    public void onViewBtnClick() {
+    public void onViewBtnClick() throws ParseException {
         if (this.selectContainerList == null
                 || this.selectContainerList.size() == 0) {
             FacesUtils.warn("请选择数据。");
@@ -207,12 +234,12 @@
         renderLineChart();
     }
 
-    public void onSelectPeriodType(){
+    public void onSelectPeriodType() throws ParseException {
         fetchChartSensorsList();
         renderLineChart();
     }
 
-    public void onSelectContainer(){
+    public void onSelectContainer() throws ParseException {
         fetchChartSensorsList();
         renderLineChart();
     }
@@ -225,19 +252,44 @@
         this.containerSelectorList = containerSelectorList;
     }
 
-    public void fetchChartSensorsList(){
+    public void fetchChartSensorsList() throws ParseException {
         String beginDate = null;
+        String endDate = null;
 
-        if(periodType == 1){
-            beginDate = DateFormatUtils.ISO_DATE_FORMAT.format(new Date());
-        } else if(periodType == 2){
-            beginDate = Utils.getWeekMonday("yyyy-MM-dd");
-        } else if(periodType ==3){
-            beginDate = DateFormatUtils.ISO_DATE_FORMAT.format(DateUtils.truncate(new Date(),Calendar.MONTH));
+        switch (periodType) {
+            case 1: beginDate = DateFormatUtils.ISO_DATE_FORMAT.format(new Date());break;
+            case 2:  beginDate = Utils.getWeekMonday("yyyy-MM-dd");break;
+            case 3:  beginDate =  DateFormatUtils.ISO_DATE_FORMAT.format(DateUtils.truncate(new Date(),Calendar.MONTH));break;
+            default:
+
+                Date parse = sdf.parse(periodType + "");
+                Calendar instance = Calendar.getInstance();
+                instance.setTime(parse);
+                instance.set(Calendar.DAY_OF_MONTH, 1);
+                beginDate = sdf2.format(instance.getTime()) +" 00:00:00";
+
+                instance.set(Calendar.DAY_OF_MONTH,instance.getActualMaximum(Calendar.DAY_OF_MONTH));;
+                endDate = sdf2.format(instance.getTime()) +" 23:59:59";
+
+                //1月
         }
 
-        Map params = ImmutableMap.of("containerId",selectedContainerId,"beginUpdateTime", beginDate,"orderby","update_time asc");
-        chartSensorsList = sysContainerSensorsService.getListBySelective(params);
+
+
+        if (endDate != null) {
+            Map params = ImmutableMap.of("containerId",selectedContainerId,"beginUpdateTime", beginDate,"endUpdateTime", endDate,"orderby","update_time asc");
+            chartSensorsList = sysContainerSensorsService.getListBySelective(params);
+        }else{
+            Map params = ImmutableMap.of("containerId",selectedContainerId,"beginUpdateTime", beginDate,"orderby","update_time asc");
+            chartSensorsList = sysContainerSensorsService.getListBySelective(params);
+        }
+
+        temperatureMap = sysContainerSensorsService.selectMaxTemperature(selectedContainerId, beginDate, endDate);
+        humidityMap = sysContainerSensorsService.selectMaxHumidity(selectedContainerId,beginDate,endDate);
+        vocMap = sysContainerSensorsService.selectMaxVoc(selectedContainerId, beginDate, endDate);
+
+//        this.maxHumidity = sysContainerSensorsService.selectMaxHumidity(selectedContainerId,beginDate,endDate);
+//        this.maxVoc = sysContainerSensorsService.selectMaxVoc(selectedContainerId,beginDate,endDate);
     }
 
     public void renderLineChart() {
@@ -274,7 +326,7 @@
         if (periodType == 2) {
             xAxis.setTickFormat("%m-%d");
         }
-        if (periodType == 3) {
+        if (periodType >= 3) {
             xAxis.setTickFormat("%m-%d");
         }
         xAxis.setTickAngle(-50);
@@ -290,6 +342,8 @@
 //        yAxis.setMax(10);
     }
 
+
+
     public List<SysContainerSensors> getChartSensorsList() {
         return chartSensorsList;
     }
@@ -297,4 +351,37 @@
     public void setChartSensorsList(List<SysContainerSensors> chartSensorsList) {
         this.chartSensorsList = chartSensorsList;
     }
+
+
+    public List<SelectItemModel> getDateRangeList() {
+        return dateRangeList;
+    }
+
+    public void setDateRangeList(List<SelectItemModel> dateRangeList) {
+        this.dateRangeList = dateRangeList;
+    }
+
+    public Map<String, BigDecimal> getTemperatureMap() {
+        return temperatureMap;
+    }
+
+    public void setTemperatureMap(Map<String, BigDecimal> temperatureMap) {
+        this.temperatureMap = temperatureMap;
+    }
+
+    public Map<String, BigDecimal> getHumidityMap() {
+        return humidityMap;
+    }
+
+    public void setHumidityMap(Map<String, BigDecimal> humidityMap) {
+        this.humidityMap = humidityMap;
+    }
+
+    public Map<String, BigDecimal> getVocMap() {
+        return vocMap;
+    }
+
+    public void setVocMap(Map<String, BigDecimal> vocMap) {
+        this.vocMap = vocMap;
+    }
 }

--
Gitblit v1.9.2