package cn.com.ty.lift.batch.applet.constants;

import java.util.HashMap;
import java.util.Map;

/**
 * @author huangyuan
 * @date 2020/2/3
 * @description 数据统计常量
 */
public class DataStatisticsConstants {

    /**
     * 计划日期的时间格式
     */
    public static final String PLAN_DATE_FORMAT = "yyyy-MM-dd";

    /**
     * 间隔类型为年
     */
    public static final String INTERVAL_TYPE_YEAR = "intervalYear";

    /**
     * 间隔类型为月
     */
    public static final String INTERVAL_TYPE_MONTH = "intervalMonth";

    /**
     * 间隔类型为天
     */
    public static final String INTERVAL_TYPE_DAY = "intervalDay";

    /**
     * 间隔类型为小时
     */
    public static final String INTERVAL_TYPE_HOUR = "intervalHour";

    /**
     * 间隔类型为分
     */
    public static final String INTERVAL_TYPE_MINUTE = "intervalMinute";

    /**
     * 时间格式
     */
    public static final String DATA_STATISTICS_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 急修数据字段常量
     */
    public static final String EMERGENCY_REPAIR_DATA_FIELD = "emergencyRepairData";

    /**
     * 年检数据字段常量
     */
    public static final String ANNUAL_INSPECTION_DATA_FIELD = "annualInspectionData";

    /**
     * 合同数据字段常量
     */
    public static final String CONTRACT_DATA_FIELD = "contractData";

    /**
     * 电梯数据字段常量
     */
    public static final String LIFT_DATA_FIELD = "liftData";

    /**
     * 维保数据字段常量
     */
    public static final String MAINTENANCE_DATA_FIELD = "maintenanceData";

    /**
     * 收款数据字段常量
     */
    public static final String PAYMENT_DATA_FIELD = "paymentData";

    /**
     * 年检状态->数量
     */
    public static final Map<Integer, Long> ANNUAL_STATUS_TO_NUM = new HashMap<>();

    /**
     * 收款状态->数量
     */
    public static final Map<Integer, Double> PAYMENT_STATUS_TO_MONEY = new HashMap<>();

    /**
     * 合同状态->数量
     */
    public static final Map<Integer, Long> CONTRACT_TYPE_TO_NUM = new HashMap<>();

    /**
     * 年检状态数组 1:计划年检 2:实际完成 3:超期未检
     */
    public static final int[] ANNUAL_STATUS_ARRAY = {1, 2, 3};

    /**
     * 收款状态 1:计划应收 2:时间收款 3:超期未收 4:本期应收
     */
    public static final int[] PAYMENT_STATUS_ARRAY = {1, 2, 3, 4};

    /**
     * 合同状态 1:新增 2:执行中 3:丢失
     */
    public static final int[] CONTRACT_TYPE_ARRAY = {1, 2, 3};

    static {
        //初始化年检状态对应数量
        for (int status : ANNUAL_STATUS_ARRAY) {
            ANNUAL_STATUS_TO_NUM.put(status, 0L);
        }
        //初始化收款数据
        for (int status : PAYMENT_STATUS_ARRAY) {
            PAYMENT_STATUS_TO_MONEY.put(status, 0d);
        }
        //初始化合同数据
        for (int status : CONTRACT_TYPE_ARRAY) {
            CONTRACT_TYPE_TO_NUM.put(status, 0L);
        }
    }
}
