lyfO_o
2021-10-22 fe59eb7ea9e69a14f5a7b7ddabd244f2dc134788
src/main/java/com/nanometer/smartlab/controller/HazardousWasteController.java
@@ -2,7 +2,11 @@
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;
@@ -10,10 +14,8 @@
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.faces.event.ActionListener;
import java.util.*;
@Controller
@Scope("session")
@@ -25,8 +27,16 @@
    private Date startTime;
    private Date endTime;
    private boolean isSearch;
    private String status;
    private String applyPerson;
    private String project;
    private String department;
    private String tid;
    private List<String> statusList = new ArrayList<> ();
    private boolean isSearch = false;
    private boolean isAnalysSearch = false;
    private LazyDataModel<HazardousWaste> analysisDataModel;
    private HazardousWaste selectedOne;
    @Resource
    private HazardousWasteService hazardousWasteService;
@@ -40,16 +50,26 @@
                    List<HazardousWaste> list = null;
                    try {
                        int pageCount = hazardousWasteService.countAll(startTime,endTime);
                        this.setRowCount(pageCount);
                        if (pageCount > 0)
                            list = hazardousWasteService.selectAll(startTime,endTime, isSearch ? 0 : first, pageSize);
                        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);
                    }
@@ -58,15 +78,15 @@
                @Override
                public HazardousWaste getRowData(String rowKey) {
                    Iterator<HazardousWaste> iterator = this.iterator();
                    HazardousWaste su = null;
                    while (iterator.hasNext()) {
                        su = iterator.next();
                        if ( su.getId().equals(Long.parseLong(rowKey))) {
                            return su;
                        }
                    }
                    return null;
//                    Iterator<HazardousWaste> 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));
                }
            };
        }
@@ -77,10 +97,68 @@
        this.isSearch = true;
    }
    public void setDataModel(LazyDataModel<HazardousWaste> dataModel) {
        this.dataModel = dataModel;
    }
    public LazyDataModel<HazardousWaste> getAnalysisDataModel() {
        if (this.analysisDataModel == null) {
            this.analysisDataModel = new LazyDataModel<HazardousWaste>() {
                public List<HazardousWaste> load
                        (int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
                    List<HazardousWaste> 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<HazardousWaste> 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<HazardousWaste> dataModel) {
        this.analysisDataModel = dataModel;
    }
    public Date getStartTime() {
@@ -106,4 +184,137 @@
    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<String> getStatusList() {
        statusList = new ArrayList<> ();
        statusList.add("全部");
        statusList.add("待确认");
        statusList.add("已确认");
        statusList.add("已拒绝");
        statusList.add("已取消");
        return statusList;
    }
    public void export2Excel() {
        List<Map> 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<Map> 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;
    }
}