kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
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;
    }
}