From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java | 137 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 113 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java b/src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java index 6ddf9e1..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() { @@ -85,29 +112,30 @@ } catch (Exception e) { logger.error("error occured.", e); } + selectContainerList = null; return list; } @Override public ContainerStatusMngDto getRowData(String rowKey) { - Iterator<ContainerStatusMngDto> iterator = this.iterator(); - if (iterator != null) { - ContainerStatusMngDto su = null; - while (iterator.hasNext()) { - su = iterator.next(); - if (rowKey.equals(su.getId())) { - return su; - } - } - } - return null; +// Iterator<ContainerStatusMngDto> iterator = this.iterator(); +// if (iterator != null) { +// ContainerStatusMngDto su = null; +// while (iterator.hasNext()) { +// su = iterator.next(); +// if (rowKey.equals(su.getId())) { +// return su; +// } +// } +// } + return sysContainerSensorsService.getRowData(rowKey); } }; } return dataModel; } - public void onViewBtnClick() { + public void onViewBtnClick() throws ParseException { if (this.selectContainerList == null || this.selectContainerList.size() == 0) { FacesUtils.warn("请选择数据。"); @@ -206,12 +234,12 @@ renderLineChart(); } - public void onSelectPeriodType(){ + public void onSelectPeriodType() throws ParseException { fetchChartSensorsList(); renderLineChart(); } - public void onSelectContainer(){ + public void onSelectContainer() throws ParseException { fetchChartSensorsList(); renderLineChart(); } @@ -224,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() { @@ -273,9 +326,10 @@ if (periodType == 2) { xAxis.setTickFormat("%m-%d"); } - if (periodType == 3) { + if (periodType >= 3) { xAxis.setTickFormat("%m-%d"); } + xAxis.setTickAngle(-50); // axis.setMax(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm")); // axis.setMin(minDate); // axis.setTickFormat("%Y-%m-%d %H:%M"); @@ -288,6 +342,8 @@ // yAxis.setMax(10); } + + public List<SysContainerSensors> getChartSensorsList() { return chartSensorsList; } @@ -295,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