| | |
| | | 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; |
| | |
| | | |
| | | 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.*; |
| | | |
| | | |
| | |
| | | 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; |
| | |
| | | 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() { |
| | |
| | | return dataModel; |
| | | } |
| | | |
| | | public void onViewBtnClick() { |
| | | public void onViewBtnClick() throws ParseException { |
| | | if (this.selectContainerList == null |
| | | || this.selectContainerList.size() == 0) { |
| | | FacesUtils.warn("请选择数据。"); |
| | |
| | | renderLineChart(); |
| | | } |
| | | |
| | | public void onSelectPeriodType(){ |
| | | public void onSelectPeriodType() throws ParseException { |
| | | fetchChartSensorsList(); |
| | | renderLineChart(); |
| | | } |
| | | |
| | | public void onSelectContainer(){ |
| | | public void onSelectContainer() throws ParseException { |
| | | fetchChartSensorsList(); |
| | | renderLineChart(); |
| | | } |
| | |
| | | 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() { |
| | |
| | | if (periodType == 2) { |
| | | xAxis.setTickFormat("%m-%d"); |
| | | } |
| | | if (periodType == 3) { |
| | | if (periodType >= 3) { |
| | | xAxis.setTickFormat("%m-%d"); |
| | | } |
| | | xAxis.setTickAngle(-50); |
| | |
| | | // yAxis.setMax(10); |
| | | } |
| | | |
| | | |
| | | |
| | | public List<SysContainerSensors> getChartSensorsList() { |
| | | return chartSensorsList; |
| | | } |
| | |
| | | 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; |
| | | } |
| | | } |