package com.nanometer.smartlab.controller; import com.nanometer.smartlab.entity.HazardousWaste; import com.nanometer.smartlab.entity.dto.HazardousWasteUser; import com.nanometer.smartlab.entity.enumtype.Waster; import com.nanometer.smartlab.service.HazardousWasteService; import com.nanometer.smartlab.util.FacesUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import javax.faces.event.ActionListener; import java.util.*; @Controller @Scope("session") public class HazardousWasteController extends BaseController{ private static Logger logger = Logger.getLogger(HazardousWasteController.class); private LazyDataModel dataModel; private Date startTime; private Date endTime; private String status; private String applyPerson; private String project; private String department; private String tid; private List statusList = new ArrayList<> (); private boolean isSearch = false; private boolean isAnalysSearch = false; private LazyDataModel analysisDataModel; private HazardousWaste selectedOne; @Resource private HazardousWasteService hazardousWasteService; public LazyDataModel getDataModel() { if (this.dataModel == null) { this.dataModel = new LazyDataModel() { public List load (int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { if (getUser().getWaster() != null){ if (getUser().getWaster().equals(Waster.MANAGE)){ int pageCount = hazardousWasteService.countAll(startTime,endTime,status,applyPerson,project,department,tid); this.setRowCount(pageCount); if (pageCount > 0) list = hazardousWasteService.selectAll(startTime,endTime,status,applyPerson,project,department,tid,first, pageSize); }else if (StringUtils.isNotBlank(getUser().getProject())){ int pageCount = hazardousWasteService.countAll(startTime,endTime,status,applyPerson,getUser().getProject(),department,tid); this.setRowCount(pageCount); if (pageCount > 0) list = hazardousWasteService.selectAll(startTime,endTime,status,applyPerson,getUser().getProject(),department,tid,first, pageSize); } }else { this.setRowCount(0); } //查询更换模式 if (isSearch) { isSearch = false; } selectedOne = null; } catch (Exception e) { logger.error("error occured.", e); } return list; } @Override public HazardousWaste getRowData(String rowKey) { // Iterator iterator = this.iterator(); // HazardousWaste su = null; // while (iterator.hasNext()) { // su = iterator.next(); // if ( su.getId().equals(Long.parseLong(rowKey))) { // return su; // } // } return hazardousWasteService.selectById(Long.parseLong(rowKey)); } }; } return dataModel; } public void modelChange() { this.isSearch = true; } public void setDataModel(LazyDataModel dataModel) { this.dataModel = dataModel; } public LazyDataModel getAnalysisDataModel() { if (this.analysisDataModel == null) { this.analysisDataModel = new LazyDataModel() { public List load (int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { if (getUser().getWaster() != null){ if (getUser().getWaster().equals(Waster.MANAGE)){ int pageCount = hazardousWasteService.countStatistics(startTime,endTime,status,applyPerson,project,department); this.setRowCount(pageCount); if (pageCount > 0) list = hazardousWasteService.selectStatistics(startTime,endTime,status,applyPerson,project,department,first, pageSize); }else if (StringUtils.isNotBlank(getUser().getProject())){ int pageCount = hazardousWasteService.countStatistics(startTime,endTime,status,applyPerson,getUser().getProject(),department); this.setRowCount(pageCount); if (pageCount > 0) list = hazardousWasteService.selectStatistics(startTime,endTime,status,applyPerson,getUser().getProject(),department,first, pageSize); } }else { this.setRowCount(0); } //查询更换模式 if (isAnalysSearch) { isAnalysSearch = false; } } catch (Exception e) { logger.error("error occured.", e); } return list; } @Override public HazardousWaste getRowData(String rowKey) { // Iterator iterator = this.iterator(); // HazardousWaste su = null; // while (iterator.hasNext()) { // su = iterator.next(); // if ( su.getId().equals(Long.parseLong(rowKey))) { // return su; // } // } return null; } }; } return analysisDataModel; } public void modelAnalysisChange() { this.isAnalysSearch = true; } public void setAnalysisDataModel(LazyDataModel dataModel) { this.analysisDataModel = dataModel; } public Date getStartTime() { return startTime; } public void setStartTime(Date startTime) { this.startTime = startTime; } public Date getEndTime() { return endTime; } public void setEndTime(Date endTime) { this.endTime = endTime; } public boolean isSearch() { return isSearch; } public void setSearch(boolean search) { isSearch = search; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getApplyPerson() { return applyPerson; } public void setApplyPerson(String applyPerson) { this.applyPerson = applyPerson; } public String getProject() { return project; } public void setProject(String project) { this.project = project; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } public List getStatusList() { statusList = new ArrayList<> (); statusList.add("全部"); statusList.add("待确认"); statusList.add("已确认"); statusList.add("已拒绝"); statusList.add("已取消"); return statusList; } public void export2Excel() { List list = new ArrayList<>(); if (getUser().getWaster() != null){ if (getUser().getWaster().equals(Waster.MANAGE)){ list = hazardousWasteService.exportList(startTime,endTime,status,applyPerson,project,department,tid); }else if (StringUtils.isNotBlank(getUser().getProject())){ list = hazardousWasteService.exportList(startTime,endTime,status,applyPerson,getUser().getProject(),department,tid); } } try{ hazardousWasteService.export2Excel(list); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn("导出失败"); } } public void exportStatistics2Excel(){ List list = new ArrayList<>(); if (getUser().getWaster() != null){ if (getUser().getWaster().equals(Waster.MANAGE)){ list = hazardousWasteService.exportStatisticsList(startTime,endTime,status,applyPerson,project,department); }else if (StringUtils.isNotBlank(getUser().getProject())){ list = hazardousWasteService.exportStatisticsList(startTime,endTime,status,applyPerson,getUser().getProject(),department); } } try{ hazardousWasteService.exportStatistics2Excel(list); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn("导出失败"); } } public void cancelOne(){ //待确认状态的才能取消 if (this.selectedOne == null) { FacesUtils.warn("请选择"); return; } if (!"待确认".equals(this.selectedOne.getStatus())) { FacesUtils.warn("非待确认不能取消"); return; } try { this.selectedOne.setStatus("已取消"); hazardousWasteService.updateWaste(this.selectedOne); FacesUtils.warn("操作成功"); } catch (Exception e) { e.printStackTrace(); FacesUtils.warn("操作失败"); } } public void recoverOne(){ if (this.selectedOne == null) { FacesUtils.warn("请选择"); return; } if (!"已取消".equals(this.selectedOne.getStatus())) { FacesUtils.warn("非已取消不能恢复"); return; } try { this.selectedOne.setStatus("待确认"); hazardousWasteService.updateWaste(this.selectedOne); FacesUtils.warn("操作成功"); } catch (Exception e) { e.printStackTrace(); FacesUtils.warn("操作失败"); } } public String getTid() { return tid; } public void setTid(String tid) { this.tid = tid; } public HazardousWaste getSelectedOne() { return selectedOne; } public void setSelectedOne(HazardousWaste selectedOne) { this.selectedOne = selectedOne; } }