package com.mortals.xhx.module.device.model;

import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.device.model.vo.DeviceModuleVo;
/**
* 设备模块信息实体对象
*
* @author zxfei
* @date 2022-06-27
*/

public class DeviceModuleEntity extends DeviceModuleVo {
    private static final long serialVersionUID = 1L;

    /** 模块名称 */
    private Long moduleId;
    /** 所属设备 */
    private Long deviceId;


    /** 开始 主键ID，主键，自增长 */
    private Long idStart;

    /** 结束 主键ID，主键，自增长 */
    private Long idEnd;

    /** 增加 主键ID，主键，自增长 */
    private Long idIncrement;

    /** 主键ID，主键，自增长列表 */
    private List <Long> idList;

    /** 开始 模块名称 */
    private Long moduleIdStart;

    /** 结束 模块名称 */
    private Long moduleIdEnd;

    /** 增加 模块名称 */
    private Long moduleIdIncrement;

    /** 模块名称列表 */
    private List <Long> moduleIdList;

    /** 开始 所属设备 */
    private Long deviceIdStart;

    /** 结束 所属设备 */
    private Long deviceIdEnd;

    /** 增加 所属设备 */
    private Long deviceIdIncrement;

    /** 所属设备列表 */
    private List <Long> deviceIdList;

    /** 开始 创建时间 */
    private String createTimeStart;

    /** 结束 创建时间 */
    private String createTimeEnd;

    /** 开始 更新用户 */
    private Long updateUserIdStart;

    /** 结束 更新用户 */
    private Long updateUserIdEnd;

    /** 增加 更新用户 */
    private Long updateUserIdIncrement;

    /** 更新用户列表 */
    private List <Long> updateUserIdList;

    /** 开始 更新时间 */
    private String updateTimeStart;

    /** 结束 更新时间 */
    private String updateTimeEnd;

    /** OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
    private List<DeviceModuleEntity> orConditionList;

    /** AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
    private List<DeviceModuleEntity> andConditionList;

    public DeviceModuleEntity(){}
    /**
    * 获取 模块名称
    * @return Long
    */
    public Long getModuleId(){
        return moduleId;
    }
    /**
    * 设置 模块名称
    * @param moduleId
    */
    public void setModuleId(Long moduleId){
        this.moduleId = moduleId;
    }
    /**
    * 获取 所属设备
    * @return Long
    */
    public Long getDeviceId(){
        return deviceId;
    }
    /**
    * 设置 所属设备
    * @param deviceId
    */
    public void setDeviceId(Long deviceId){
        this.deviceId = deviceId;
    }
            
    /**
    * 获取 开始 主键ID，主键，自增长
    * @return idStart
    */
    public Long getIdStart(){
        return this.idStart;
    }

    /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public void setIdStart(Long idStart){
        this.idStart = idStart;
    }

    /**
    * 获取 结束 主键ID，主键，自增长
    * @return $idEnd
    */
    public Long getIdEnd(){
        return this.idEnd;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public void setIdEnd(Long idEnd){
        this.idEnd = idEnd;
    }

    /**
    * 获取 增加 主键ID，主键，自增长
    * @return idIncrement
    */
    public Long getIdIncrement(){
        return this.idIncrement;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public void setIdIncrement(Long idIncrement){
        this.idIncrement = idIncrement;
    }

    /**
    * 获取 主键ID，主键，自增长
    * @return idList
    */
    public List<Long> getIdList(){
        return this.idList;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public void setIdList(List<Long> idList){
        this.idList = idList;
    }

    /**
    * 获取 开始 模块名称
    * @return moduleIdStart
    */
    public Long getModuleIdStart(){
        return this.moduleIdStart;
    }

    /**
    * 设置 开始 模块名称
    * @param moduleIdStart
    */
    public void setModuleIdStart(Long moduleIdStart){
        this.moduleIdStart = moduleIdStart;
    }

    /**
    * 获取 结束 模块名称
    * @return $moduleIdEnd
    */
    public Long getModuleIdEnd(){
        return this.moduleIdEnd;
    }

    /**
    * 设置 结束 模块名称
    * @param moduleIdEnd
    */
    public void setModuleIdEnd(Long moduleIdEnd){
        this.moduleIdEnd = moduleIdEnd;
    }

    /**
    * 获取 增加 模块名称
    * @return moduleIdIncrement
    */
    public Long getModuleIdIncrement(){
        return this.moduleIdIncrement;
    }

    /**
    * 设置 增加 模块名称
    * @param moduleIdIncrement
    */
    public void setModuleIdIncrement(Long moduleIdIncrement){
        this.moduleIdIncrement = moduleIdIncrement;
    }

    /**
    * 获取 模块名称
    * @return moduleIdList
    */
    public List<Long> getModuleIdList(){
        return this.moduleIdList;
    }

    /**
    * 设置 模块名称
    * @param moduleIdList
    */
    public void setModuleIdList(List<Long> moduleIdList){
        this.moduleIdList = moduleIdList;
    }

    /**
    * 获取 开始 所属设备
    * @return deviceIdStart
    */
    public Long getDeviceIdStart(){
        return this.deviceIdStart;
    }

    /**
    * 设置 开始 所属设备
    * @param deviceIdStart
    */
    public void setDeviceIdStart(Long deviceIdStart){
        this.deviceIdStart = deviceIdStart;
    }

    /**
    * 获取 结束 所属设备
    * @return $deviceIdEnd
    */
    public Long getDeviceIdEnd(){
        return this.deviceIdEnd;
    }

    /**
    * 设置 结束 所属设备
    * @param deviceIdEnd
    */
    public void setDeviceIdEnd(Long deviceIdEnd){
        this.deviceIdEnd = deviceIdEnd;
    }

    /**
    * 获取 增加 所属设备
    * @return deviceIdIncrement
    */
    public Long getDeviceIdIncrement(){
        return this.deviceIdIncrement;
    }

    /**
    * 设置 增加 所属设备
    * @param deviceIdIncrement
    */
    public void setDeviceIdIncrement(Long deviceIdIncrement){
        this.deviceIdIncrement = deviceIdIncrement;
    }

    /**
    * 获取 所属设备
    * @return deviceIdList
    */
    public List<Long> getDeviceIdList(){
        return this.deviceIdList;
    }

    /**
    * 设置 所属设备
    * @param deviceIdList
    */
    public void setDeviceIdList(List<Long> deviceIdList){
        this.deviceIdList = deviceIdList;
    }

    /**
    * 获取 开始 创建时间
    * @return createTimeStart
    */
    public String getCreateTimeStart(){
        return this.createTimeStart;
    }

    /**
    * 设置 开始 创建时间
    * @param createTimeStart
    */
    public void setCreateTimeStart(String createTimeStart){
        this.createTimeStart = createTimeStart;
    }

    /**
    * 获取 结束 创建时间
    * @return createTimeEnd
    */
    public String getCreateTimeEnd(){
        return this.createTimeEnd;
    }

    /**
    * 设置 结束 创建时间
    * @param createTimeEnd
    */
    public void setCreateTimeEnd(String createTimeEnd){
        this.createTimeEnd = createTimeEnd;
    }

    /**
    * 获取 开始 更新用户
    * @return updateUserIdStart
    */
    public Long getUpdateUserIdStart(){
        return this.updateUserIdStart;
    }

    /**
    * 设置 开始 更新用户
    * @param updateUserIdStart
    */
    public void setUpdateUserIdStart(Long updateUserIdStart){
        this.updateUserIdStart = updateUserIdStart;
    }

    /**
    * 获取 结束 更新用户
    * @return $updateUserIdEnd
    */
    public Long getUpdateUserIdEnd(){
        return this.updateUserIdEnd;
    }

    /**
    * 设置 结束 更新用户
    * @param updateUserIdEnd
    */
    public void setUpdateUserIdEnd(Long updateUserIdEnd){
        this.updateUserIdEnd = updateUserIdEnd;
    }

    /**
    * 获取 增加 更新用户
    * @return updateUserIdIncrement
    */
    public Long getUpdateUserIdIncrement(){
        return this.updateUserIdIncrement;
    }

    /**
    * 设置 增加 更新用户
    * @param updateUserIdIncrement
    */
    public void setUpdateUserIdIncrement(Long updateUserIdIncrement){
        this.updateUserIdIncrement = updateUserIdIncrement;
    }

    /**
    * 获取 更新用户
    * @return updateUserIdList
    */
    public List<Long> getUpdateUserIdList(){
        return this.updateUserIdList;
    }

    /**
    * 设置 更新用户
    * @param updateUserIdList
    */
    public void setUpdateUserIdList(List<Long> updateUserIdList){
        this.updateUserIdList = updateUserIdList;
    }

    /**
    * 获取 开始 更新时间
    * @return updateTimeStart
    */
    public String getUpdateTimeStart(){
        return this.updateTimeStart;
    }

    /**
    * 设置 开始 更新时间
    * @param updateTimeStart
    */
    public void setUpdateTimeStart(String updateTimeStart){
        this.updateTimeStart = updateTimeStart;
    }

    /**
    * 获取 结束 更新时间
    * @return updateTimeEnd
    */
    public String getUpdateTimeEnd(){
        return this.updateTimeEnd;
    }

    /**
    * 设置 结束 更新时间
    * @param updateTimeEnd
    */
    public void setUpdateTimeEnd(String updateTimeEnd){
        this.updateTimeEnd = updateTimeEnd;
    }

    /**
    * 设置  主键ID，主键，自增长
    * @param id
    */
    public DeviceModuleEntity id(Long id){
	    setId(id);
		return this;
    }
    /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public DeviceModuleEntity idStart(Long idStart){
		this.idStart = idStart;
		return this;
    }
    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public DeviceModuleEntity idEnd(Long idEnd){
		this.idEnd = idEnd;
		return this;
    }
    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public DeviceModuleEntity idIncrement(Long idIncrement){
		this.idIncrement = idIncrement;
		return this;
    }
    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public DeviceModuleEntity idList(List<Long> idList){
        this.idList = idList;
		return this;
    }
    /**
    * 设置  模块名称
    * @param moduleId
    */
    public DeviceModuleEntity moduleId(Long moduleId){
	    setModuleId(moduleId);
		return this;
    }
    /**
    * 设置 开始 模块名称
    * @param moduleIdStart
    */
    public DeviceModuleEntity moduleIdStart(Long moduleIdStart){
		this.moduleIdStart = moduleIdStart;
		return this;
    }
    /**
    * 设置 结束 模块名称
    * @param moduleIdEnd
    */
    public DeviceModuleEntity moduleIdEnd(Long moduleIdEnd){
		this.moduleIdEnd = moduleIdEnd;
		return this;
    }
    /**
    * 设置 增加 模块名称
    * @param moduleIdIncrement
    */
    public DeviceModuleEntity moduleIdIncrement(Long moduleIdIncrement){
		this.moduleIdIncrement = moduleIdIncrement;
		return this;
    }
    /**
    * 设置 模块名称
    * @param moduleIdList
    */
    public DeviceModuleEntity moduleIdList(List<Long> moduleIdList){
        this.moduleIdList = moduleIdList;
		return this;
    }
    /**
    * 设置  所属设备
    * @param deviceId
    */
    public DeviceModuleEntity deviceId(Long deviceId){
	    setDeviceId(deviceId);
		return this;
    }
    /**
    * 设置 开始 所属设备
    * @param deviceIdStart
    */
    public DeviceModuleEntity deviceIdStart(Long deviceIdStart){
		this.deviceIdStart = deviceIdStart;
		return this;
    }
    /**
    * 设置 结束 所属设备
    * @param deviceIdEnd
    */
    public DeviceModuleEntity deviceIdEnd(Long deviceIdEnd){
		this.deviceIdEnd = deviceIdEnd;
		return this;
    }
    /**
    * 设置 增加 所属设备
    * @param deviceIdIncrement
    */
    public DeviceModuleEntity deviceIdIncrement(Long deviceIdIncrement){
		this.deviceIdIncrement = deviceIdIncrement;
		return this;
    }
    /**
    * 设置 所属设备
    * @param deviceIdList
    */
    public DeviceModuleEntity deviceIdList(List<Long> deviceIdList){
        this.deviceIdList = deviceIdList;
		return this;
    }
    /**
    * 设置  更新用户
    * @param updateUserId
    */
    public DeviceModuleEntity updateUserId(Long updateUserId){
	    setUpdateUserId(updateUserId);
		return this;
    }
    /**
    * 设置 开始 更新用户
    * @param updateUserIdStart
    */
    public DeviceModuleEntity updateUserIdStart(Long updateUserIdStart){
		this.updateUserIdStart = updateUserIdStart;
		return this;
    }
    /**
    * 设置 结束 更新用户
    * @param updateUserIdEnd
    */
    public DeviceModuleEntity updateUserIdEnd(Long updateUserIdEnd){
		this.updateUserIdEnd = updateUserIdEnd;
		return this;
    }
    /**
    * 设置 增加 更新用户
    * @param updateUserIdIncrement
    */
    public DeviceModuleEntity updateUserIdIncrement(Long updateUserIdIncrement){
		this.updateUserIdIncrement = updateUserIdIncrement;
		return this;
    }
    /**
    * 设置 更新用户
    * @param updateUserIdList
    */
    public DeviceModuleEntity updateUserIdList(List<Long> updateUserIdList){
        this.updateUserIdList = updateUserIdList;
		return this;
    }
    /**
    * 获取 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @return orConditionList
    */
    public List<DeviceModuleEntity> getOrConditionList(){
        return this.orConditionList;
    }

    /**
    * 设置 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @param orConditionList
    */
    public DeviceModuleEntity setOrConditionList(List<DeviceModuleEntity> orConditionList){
        this.orConditionList = orConditionList;
        return this;
    }

    /**
    * 获取 AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @return andConditionList
    */
    public List<DeviceModuleEntity> getAndConditionList(){
        return this.andConditionList;
    }

    /**
    * 设置 AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @param andConditionList
    */
    public DeviceModuleEntity setAndConditionList(List<DeviceModuleEntity> andConditionList){
        this.andConditionList = andConditionList;
        return this;
    }

    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof DeviceModuleEntity) {
            DeviceModuleEntity tmp = (DeviceModuleEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",moduleId:").append(getModuleId());
        sb.append(",deviceId:").append(getDeviceId());
        return sb.toString();
    }

    public void initAttrValue(){
            this.moduleId = null;
            this.deviceId = null;
    }
}