lyfO_o
2022-03-30 3ae57f026d9199f587fd25160e98d19572a30541
1.柜子温湿浓度最大小值
2.新增柜子搜索当年月份
已修改5个文件
已添加1个文件
208 ■■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/controller/ContainerStatusMngController.java 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysContainerSensorsDao.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysContainerSensorsDao.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/model/SelectItemModel.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysContainerSensorsService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/SysContainerSensorsServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
src/main/java/com/nanometer/smartlab/dao/SysContainerSensorsDao.java
@@ -4,6 +4,7 @@
import com.nanometer.smartlab.entity.dto.ContainerStatusMngDto;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@@ -14,4 +15,10 @@
    int countAll(Map<String, Object> map);
    ContainerStatusMngDto getRowData(@Param("id") String rowKey);
    Map<String,BigDecimal> selectMaxTemperature(@Param("id") String selectedContainerId,@Param("beginDate") String beginDate,@Param("endDate") String endDate);
    Map<String, BigDecimal> selectMaxHumidity(@Param("id")String selectedContainerId,@Param("beginDate")  String beginDate, @Param("endDate") String endDate);
    Map<String, BigDecimal> selectMaxVoc(@Param("id")String selectedContainerId, @Param("beginDate") String beginDate,@Param("endDate")  String endDate);
}
src/main/java/com/nanometer/smartlab/dao/SysContainerSensorsDao.xml
@@ -156,6 +156,9 @@
      <if test="beginUpdateTime != null ">
        and s.update_time >= #{beginUpdateTime}
      </if>
      <if test="endUpdateTime != null ">
        and s.update_time &lt;= #{endUpdateTime}
      </if>
    </where>
  </sql>
  <sql id="sql_limit">
@@ -261,4 +264,34 @@
    </select>
  <select id="selectMaxTemperature" resultType="java.util.Map">
    select max(s.temp) maxTemperature,min(s.temp) minTemperature
    from sys_container_sensors as s
    where
    s.container_id = #{id}
    and s.update_time &gt;= #{beginDate}
      <if test="endDate != null">
        and s.update_time &lt; #{endDate}
      </if>
  </select>
  <select id="selectMaxHumidity" resultType="java.util.Map">
    select max(s.humidity) maxHumidity, min(s.humidity) minHumidity
    from sys_container_sensors as s
    where
    s.container_id = #{id}
    and s.update_time &gt;= #{beginDate}
    <if test="endDate != null">
      and s.update_time &lt; #{endDate}
    </if>
  </select>
  <select id="selectMaxVoc" resultType="java.util.Map">
    select max(s.voc1) maxVoc, min(s.voc1) minVoc
    from sys_container_sensors as s
    where
    s.container_id = #{id}
    and s.update_time &gt;= #{beginDate}
    <if test="endDate != null">
      and s.update_time &lt; #{endDate}
    </if>
  </select>
</mapper>
src/main/java/com/nanometer/smartlab/model/SelectItemModel.java
对比新文件
@@ -0,0 +1,23 @@
package com.nanometer.smartlab.model;
public class SelectItemModel {
    private String name;
    private Object value;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Object getValue() {
        return value;
    }
    public void setValue(Object value) {
        this.value = value;
    }
}
src/main/java/com/nanometer/smartlab/service/SysContainerSensorsService.java
@@ -5,6 +5,7 @@
import com.nanometer.smartlab.entity.dto.ContainerStatusMngDto;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -30,5 +31,11 @@
    ContainerStatusMngDto getRowData(String rowKey);
    Map<String,BigDecimal> selectMaxTemperature(String selectedContainerId, String beginDate, String endDate);
    Map selectMaxHumidity(String selectedContainerId, String beginDate, String endDate);
    Map selectMaxVoc(String selectedContainerId, String beginDate, String endDate);
    //获得
}
src/main/java/com/nanometer/smartlab/service/SysContainerSensorsServiceImpl.java
@@ -7,8 +7,11 @@
import com.nanometer.smartlab.entity.SysLaboratoryContainer;
import com.nanometer.smartlab.entity.SysWarehouseContainer;
import com.nanometer.smartlab.entity.dto.ContainerStatusMngDto;
import com.nanometer.smartlab.exception.BusinessException;
import com.nanometer.smartlab.exception.ExceptionEnumCode;
import com.nanometer.smartlab.util.Constants;
import com.nanometer.smartlab.util.IDUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.log4j.Logger;
@@ -18,6 +21,7 @@
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.*;
@@ -114,5 +118,26 @@
        return sysContainerSensorsDao.getRowData(rowKey);
    }
    @Override
    public Map<String,BigDecimal> selectMaxTemperature(String selectedContainerId, String beginDate, String endDate) {
        if (StringUtils.isBlank(selectedContainerId))
            throw new BusinessException(ExceptionEnumCode.PARAM_NULL,"参数为空");
        return sysContainerSensorsDao.selectMaxTemperature( selectedContainerId,  beginDate,  endDate);
    }
    @Override
    public Map<String,BigDecimal> selectMaxHumidity(String selectedContainerId, String beginDate, String endDate) {
        if (StringUtils.isBlank(selectedContainerId))
            throw new BusinessException(ExceptionEnumCode.PARAM_NULL,"参数为空");
        return sysContainerSensorsDao.selectMaxHumidity(selectedContainerId,  beginDate,  endDate);
    }
    @Override
    public Map<String,BigDecimal> selectMaxVoc(String selectedContainerId, String beginDate, String endDate) {
        if (StringUtils.isBlank(selectedContainerId))
            throw new BusinessException(ExceptionEnumCode.PARAM_NULL,"参数为空");
        return sysContainerSensorsDao.selectMaxVoc(selectedContainerId,  beginDate,  endDate);
    }
}