package com.weiqi.mis.bo;


import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName WxXrPemsOrderResult
 * @Description 订单列表
 * @createTime 2024-09-22 23:48:00
 */

public class WxXrPemsOrderResult {
    private int count;
    private List<WxXrPemsOrderItemResult> wxXrPemsOrderItemResultList;

    public List<WxXrPemsOrderItemResult> getWxXrPemsOrderItemResultList() {
        return wxXrPemsOrderItemResultList == null ? new ArrayList<>() : wxXrPemsOrderItemResultList;
    }

    /**
     * **************低怠速检测数据定义:**************
     * CO检测值	超标级别	数据定义
     * [0,0.24)	A	较低排放
     * [0.24,0.40)	B	临界超标
     * [0.40,1.6)	C	一般超标
     * [1.6,∞)	D	严重超标
     *
     * HC检测值	超标级别	数据定义
     * [0,24)	A	较低排放
     * [24,40)	B	临界超标
     * [40,160)	C	一般超标
     * [160,∞)	D	严重超标
     *
     * NOX检测值	超标级别	数据定义
     * [0,16)	A	较低排放
     * [16,20)	B	临界超标
     * [20,60)	C	一般超标
     * [60,∞)	D	严重超标
     *
     * λ检测值	数值分类	数据定义
     * [0,0.9)	R3	过浓
     * [0.9,0.95)	R2	偏浓
     * [0.95,0.98)	R1	较浓
     * [0.98,1.03)	N	正常
     * [1.03,1.05)	L1	较稀
     * [1.05,∞)	L2	偏稀
     *
     * **************高怠速检测数据定义:**************
     *
     * CO检测值	超标级别	数据定义
     * [0,0.18)	A	较低排放
     * [0.18,0.30)	B	临界超标
     * [0.30,1.2)	C	一般超标
     * [1.2,∞)	D	严重超标
     *
     * HC检测值	超标级别	数据定义
     * [0,18)	A	较低排放
     * [18,30)	B	临界超标
     * [30,120)	C	一般超标
     * [120,∞)	D	严重超标
     *
     * NOX检测值	超标级别	数据定义
     * [0,24)	A	较低排放
     * [24,30)	B	临界超标
     * [30,90)	C	一般超标
     * [90,∞)	D	严重超标
     *
     * λ检测值	数值分类	数据定义
     * [0,0.9)	R3	过浓
     * [0.9,0.95)	R2	偏浓
     * [0.95,0.98)	R1	较浓
     * [0.98,1.03)	N	正常
     * [1.03,1.05)	L1	较稀
     * [1.05,∞)	L2	偏稀
     * */

    public static class WxXrPemsOrderItemResult{
        /**
         * id
         * */
        private Integer id;
        /**
         * 工单号
         * */
        private String orderNo;
        /**
         * 车辆照片
         * */
        private String vehicleSrc;
        /**
         * 车牌号
         * */
        private String plateNumber;
        /**
         * 车型名称
         * */
        private String vehicleType;
        /**
         * 检测时间 HH-MM-DD hh:mm
         * */
        private String checkUpDateTime;
        /**
         * 最后一位检修员名称
         * */
        private String pemsUserName;
        /**
         * 订单状态
         *             1 未处理
         *             2 检测中
         *             4 检测完成
         * */
        private int status;
        /**
         * 订单状态
         *             1 未处理
         *             2 检测中
         *             4 检测完成
         * */
        private String orderStatus;

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public String getOrderNo() {
            return orderNo;
        }

        public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }

        public String getVehicleSrc() {
            return vehicleSrc;
        }

        public void setVehicleSrc(String vehicleSrc) {
            this.vehicleSrc = vehicleSrc;
        }

        public String getPlateNumber() {
            return plateNumber;
        }

        public void setPlateNumber(String plateNumber) {
            this.plateNumber = plateNumber;
        }

        public String getVehicleType() {
            return vehicleType;
        }

        public void setVehicleType(String vehicleType) {
            this.vehicleType = vehicleType;
        }

        public String getCheckUpDateTime() {
            return checkUpDateTime;
        }

        public void setCheckUpDateTime(String checkUpDateTime) {
            this.checkUpDateTime = checkUpDateTime;
        }

        public String getPemsUserName() {
            return pemsUserName;
        }

        public void setPemsUserName(String pemsUserName) {
            this.pemsUserName = pemsUserName;
        }

        public int getStatus() {
            return status;
        }

        public void setStatus(int status) {
            this.status = status;
        }

        public String getOrderStatus() {
            return orderStatus;
        }

        public void setOrderStatus(String orderStatus) {
            this.orderStatus = orderStatus;
        }

        public double gethLambda() {
            return hLambda;
        }

        public void sethLambda(double hLambda) {
            this.hLambda = hLambda;
        }

        public void sethLambdaDetection(String hLambdaDetection) {
            this.hLambdaDetection = hLambdaDetection;
        }

        public double gethCO() {
            return hCO;
        }

        public void sethCO(double hCO) {
            this.hCO = hCO;
        }

        public void sethCODetection(String hCODetection) {
            this.hCODetection = hCODetection;
        }

        public double gethHC() {
            return hHC;
        }

        public void sethHC(double hHC) {
            this.hHC = hHC;
        }

        public void sethHCDetection(String hHCDetection) {
            this.hHCDetection = hHCDetection;
        }

        public double getlLambda() {
            return lLambda;
        }

        public void setlLambda(double lLambda) {
            this.lLambda = lLambda;
        }

        public void setlLambdaDetection(String lLambdaDetection) {
            this.lLambdaDetection = lLambdaDetection;
        }

        public double getlCO() {
            return lCO;
        }

        public void setlCO(double lCO) {
            this.lCO = lCO;
        }

        public void setlCODetection(String lCODetection) {
            this.lCODetection = lCODetection;
        }

        public double getlHC() {
            return lHC;
        }

        public void setlHC(double lHC) {
            this.lHC = lHC;
        }

        public void setlHCDetection(String lHCDetection) {
            this.lHCDetection = lHCDetection;
        }

        /**
         * 高怠速——Lambda
         * */
        private double hLambda;
        private String hLambdaDetection;

//        /**
//         * 高怠速——O2
//         * */
//        private double categoryHighO2;
        /**
         * 高怠速——CO
         * */
        private double hCO;
        private String hCODetection;
//        /**
//         * 高怠速——CO2
//         * */
//        private double categoryHighCO2;
        /**
         * 高怠速——HC
         * */
        private double hHC;
        private String hHCDetection;
//        /**
//         * 高怠速——NO
//         * */
//        private double categoryHighNO;


        /**
         * 低怠速——Lambda
         * */
        private double lLambda;
        /**
         * 低怠速——Lambda检测结果
         * */
        private String lLambdaDetection;
//        /**
//         * 低怠速——O2
//         * */
//        private double categoryLowO2;
        /**
         * 低怠速——CO
         * */
        private double lCO;
        /**
         * 低怠速——CO检测结果
         * */
        private String lCODetection;
//        /**
//         * 低怠速——CO2
//         * */
//        private double categoryLowCO2;
        /**
         * 低怠速——HC
         * */
        private double lHC;
        /**
         * 低怠速——HC检测结果
         * */
        private String lHCDetection;
//        /**
//         * 低怠速——NO
//         * */
//        private double categoryLowNO;


        /**
         * 高怠速——Lambda检测结果
         * * λ检测值	数值分类	数据定义
         *      * [0,0.9)	R3	过浓
         *      * [0.9,0.95)	R2	偏浓
         *      * [0.95,0.98)	R1	较浓
         *      * [0.98,1.03)	N	正常
         *      * [1.03,1.05)	L1	较稀
         *      * [1.05,∞)	L2	偏稀
         * */
        public String gethLambdaDetection() {
            List<String> listMap = new ArrayList<>();
            listMap.add("0,0.9,λ过浓");
            listMap.add("0.9,0.95,λ偏浓");
            listMap.add("0.95,0.98,λ较浓");
            listMap.add("0.98,1.03,λ正常");
            listMap.add("1.03,1.05,λ较稀");
            listMap.add("1.05,10000000,λ偏稀");
            String value = getText(listMap, hLambda);
            return value;
        }

        /**
         * 高怠速——CO检测结果
         * * CO检测值	超标级别	数据定义
         *      * [0,0.18)	A	较低排放
         *      * [0.18,0.30)	B	临界超标
         *      * [0.30,1.2)	C	一般超标
         *      * [1.2,∞)	D	严重超标
         * */
        public String gethCODetection() {
            List<String> listMap = new ArrayList<>();
            listMap.add("0,0.18,CO较低排放");
            listMap.add("0.18,0.30,CO临界超标");
            listMap.add("0.30,1.2,CO一般超标");
            listMap.add("1.2,10000000,CO严重超标");
            String value = getText(listMap, hCO);
            return value;
        }

        /**
         * 高怠速——HC检测结果
         * * HC检测值	超标级别	数据定义
         *      * [0,18)	A	较低排放
         *      * [18,30)	B	临界超标
         *      * [30,120)	C	一般超标
         *      * [120,∞)	D	严重超标
         * */
        public String gethHCDetection() {
            List<String> listMap = new ArrayList<>();
            listMap.add("0,18,HC较低排放");
            listMap.add("18,30,HC临界超标");
            listMap.add("30,120,HC一般超标");
            listMap.add("120,10000000,HC严重超标");
            String value = getText(listMap, hHC);
            return value;
        }

        /**
         * λ检测值	数值分类	数据定义
         * [0,0.9)	R3	过浓
         * [0.9,0.95)	R2	偏浓
         * [0.95,0.98)	R1	较浓
         * [0.98,1.03)	N	正常
         * [1.03,1.05)	L1	较稀
         * [1.05,∞)	L2	偏稀
         * */
        public String getlLambdaDetection() {
            List<String> listMap = new ArrayList<>();
            listMap.add("0,0.9,λ过浓");
            listMap.add("0.9,0.95,λ偏浓");
            listMap.add("0.95,0.98,λ较浓");
            listMap.add("0.98,1.03,λ正常");
            listMap.add("1.03,1.05,λ较稀");
            listMap.add("1.05,10000000,λ偏稀");
            String value = getText(listMap, lLambda);
            return value;
        }

        /**
         * CO检测值	超标级别	数据定义
         * [0,0.24)	A	较低排放
         * [0.24,0.40)	B	临界超标
         * [0.40,1.6)	C	一般超标
         * [1.6,∞)	D	严重超标
         * */
        public String getlCODetection() {
            List<String> listMap = new ArrayList<>();
            listMap.add("0,0.24,CO较低排放");
            listMap.add("0.24,0.40,CO临界超标");
            listMap.add("0.40,1.6,CO一般超标");
            listMap.add("1.6,10000000,CO严重超标");
            String value = getText(listMap, lCO);
            return value;
        }

        /**
         * HC检测值	超标级别	数据定义
         * [0,24)	A	较低排放
         * [24,40)	B	临界超标
         * [40,160)	C	一般超标
         * [160,∞)	D	严重超标
         * */
        public String getlHCDetection() {
            List<String> listMap = new ArrayList<>();
            listMap.add("0,24,HC较低排放");
            listMap.add("24,40,HC临界超标");
            listMap.add("40,160,HC一般超标");
            listMap.add("160,10000000,HC严重超标");
            String value = getText(listMap, lHC);
            return value;
        }

        private String getText(List<String> listMap, double value){
            if(Double.compare(value, 0) == 0){
                return "暂无";
            }
            for(int i=0; i<listMap.size(); i++){
                String[] arr = listMap.get(i).split(",");
                double min = Double.valueOf(arr[0]);
                double max = Double.valueOf(arr[1]);
                String text = arr[2];
                int comparisonResult1 = Double.compare(value, min);
                int comparisonResult2 = Double.compare(value, max);
                if(comparisonResult1 >= 0 && comparisonResult2 == -1){
                    return text;
                }
            }
            return "暂无";
        }
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public void setWxXrPemsOrderItemResultList(List<WxXrPemsOrderItemResult> wxXrPemsOrderItemResultList) {
        this.wxXrPemsOrderItemResultList = wxXrPemsOrderItemResultList;
    }
}
