package com.sinosig.service.web.dto;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.math.BigInteger;
import java.util.Map;
import java.util.HashMap;
import java.io.Serializable;
import java.math.BigDecimal;
import com.sinosig.core.module.valuerule.anno.syxxx.*;
import com.sinosig.core.module.domain.SYXXX;
import org.springframework.cglib.beans.BeanCopier;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 服务DTO对象[SYXXXDTO]
 */
public class SYXXXDTO implements Serializable {

	private static final long serialVersionUID = 1L;

    /**
     * 属性 [BJMP]
     *
     */

    @SYXXXBjmpDefault(info = "默认规则")
    private Integer Bjmp;

    @JsonIgnore
    private boolean BjmpDirtyFlag;

    /**
     * 属性 [CIDID]
     *
     */

    @SYXXXCIDIdDefault(info = "默认规则")
    private String CIDId;

    @JsonIgnore
    private boolean CIDIdDirtyFlag;

    /**
     * 属性 [FL]
     *
     */

    @SYXXXFlDefault(info = "默认规则")
    private Double Fl;

    @JsonIgnore
    private boolean FlDirtyFlag;

    /**
     * 属性 [JZBF]
     *
     */

    @SYXXXJzbfDefault(info = "默认规则")
    private BigDecimal Jzbf;

    @JsonIgnore
    private boolean JzbfDirtyFlag;

    /**
     * 属性 [PTFHXS]
     *
     */

    @SYXXXPtfhxsDefault(info = "默认规则")
    private Double Ptfhxs;

    @JsonIgnore
    private boolean PtfhxsDirtyFlag;

    /**
     * 属性 [SJBF]
     *
     */

    @SYXXXSjbfDefault(info = "默认规则")
    private BigDecimal Sjbf;

    @JsonIgnore
    private boolean SjbfDirtyFlag;

    /**
     * 属性 [SYXXXID]
     *
     */

    @SYXXXSYXXXIdDefault(info = "默认规则")
    private String SYXXXId;

    @JsonIgnore
    private boolean SYXXXIdDirtyFlag;

    /**
     * 属性 [SYXXXNAME]
     *
     */

    @SYXXXSYXXXNameDefault(info = "默认规则")
    private String SYXXXName;

    @JsonIgnore
    private boolean SYXXXNameDirtyFlag;

    /**
     * 属性 [TKDM]
     *
     */

    @SYXXXTkdmDefault(info = "默认规则")
    private String Tkdm;

    @JsonIgnore
    private boolean TkdmDirtyFlag;

    /**
     * 属性 [TKMC]
     *
     */

    @SYXXXTkmcDefault(info = "默认规则")
    private String Tkmc;

    @JsonIgnore
    private boolean TkmcDirtyFlag;

    /**
     * 属性 [UPDATEDATE]
     *
     */

    @SYXXXUpdateDateDefault(info = "默认规则")
    private Timestamp UpdateDate;

    @JsonIgnore
    private boolean UpdateDateDirtyFlag;

    /**
     * 属性 [ZRXE]
     *
     */

    @SYXXXZrxeDefault(info = "默认规则")
    private BigDecimal Zrxe;

    @JsonIgnore
    private boolean ZrxeDirtyFlag;

    /**
     * 属性 [ZZXS]
     *
     */

    @SYXXXZzxsDefault(info = "默认规则")
    private Double Zzxs;

    @JsonIgnore
    private boolean ZzxsDirtyFlag;


    /**
     * 获取 [BJMP]
     */
    @JsonProperty("bjmp")
    public Integer getBjmp(){
        return Bjmp ;
    }

    /**
     * 设置 [BJMP]
     */
    @JsonProperty("bjmp")
    public void setBjmp(Integer  bjmp){
        this.Bjmp = bjmp ;
        this.BjmpDirtyFlag = true ;
    }

    /**
     * 获取 [BJMP]脏标记
     */
    @JsonIgnore
    public boolean getBjmpDirtyFlag(){
        return BjmpDirtyFlag ;
    }

    /**
     * 获取 [CIDID]
     */
    @JsonProperty("cidid")
    public String getCIDId(){
        return CIDId ;
    }

    /**
     * 设置 [CIDID]
     */
    @JsonProperty("cidid")
    public void setCIDId(String  cIDId){
        this.CIDId = cIDId ;
        this.CIDIdDirtyFlag = true ;
    }

    /**
     * 获取 [CIDID]脏标记
     */
    @JsonIgnore
    public boolean getCIDIdDirtyFlag(){
        return CIDIdDirtyFlag ;
    }

    /**
     * 获取 [FL]
     */
    @JsonProperty("fl")
    public Double getFl(){
        return Fl ;
    }

    /**
     * 设置 [FL]
     */
    @JsonProperty("fl")
    public void setFl(Double  fl){
        this.Fl = fl ;
        this.FlDirtyFlag = true ;
    }

    /**
     * 获取 [FL]脏标记
     */
    @JsonIgnore
    public boolean getFlDirtyFlag(){
        return FlDirtyFlag ;
    }

    /**
     * 获取 [JZBF]
     */
    @JsonProperty("jzbf")
    public BigDecimal getJzbf(){
        return Jzbf ;
    }

    /**
     * 设置 [JZBF]
     */
    @JsonProperty("jzbf")
    public void setJzbf(BigDecimal  jzbf){
        this.Jzbf = jzbf ;
        this.JzbfDirtyFlag = true ;
    }

    /**
     * 获取 [JZBF]脏标记
     */
    @JsonIgnore
    public boolean getJzbfDirtyFlag(){
        return JzbfDirtyFlag ;
    }

    /**
     * 获取 [PTFHXS]
     */
    @JsonProperty("ptfhxs")
    public Double getPtfhxs(){
        return Ptfhxs ;
    }

    /**
     * 设置 [PTFHXS]
     */
    @JsonProperty("ptfhxs")
    public void setPtfhxs(Double  ptfhxs){
        this.Ptfhxs = ptfhxs ;
        this.PtfhxsDirtyFlag = true ;
    }

    /**
     * 获取 [PTFHXS]脏标记
     */
    @JsonIgnore
    public boolean getPtfhxsDirtyFlag(){
        return PtfhxsDirtyFlag ;
    }

    /**
     * 获取 [SJBF]
     */
    @JsonProperty("sjbf")
    public BigDecimal getSjbf(){
        return Sjbf ;
    }

    /**
     * 设置 [SJBF]
     */
    @JsonProperty("sjbf")
    public void setSjbf(BigDecimal  sjbf){
        this.Sjbf = sjbf ;
        this.SjbfDirtyFlag = true ;
    }

    /**
     * 获取 [SJBF]脏标记
     */
    @JsonIgnore
    public boolean getSjbfDirtyFlag(){
        return SjbfDirtyFlag ;
    }

    /**
     * 获取 [SYXXXID]
     */
    @JsonProperty("syxxxid")
    public String getSYXXXId(){
        return SYXXXId ;
    }

    /**
     * 设置 [SYXXXID]
     */
    @JsonProperty("syxxxid")
    public void setSYXXXId(String  sYXXXId){
        this.SYXXXId = sYXXXId ;
        this.SYXXXIdDirtyFlag = true ;
    }

    /**
     * 获取 [SYXXXID]脏标记
     */
    @JsonIgnore
    public boolean getSYXXXIdDirtyFlag(){
        return SYXXXIdDirtyFlag ;
    }

    /**
     * 获取 [SYXXXNAME]
     */
    @JsonProperty("syxxxname")
    public String getSYXXXName(){
        return SYXXXName ;
    }

    /**
     * 设置 [SYXXXNAME]
     */
    @JsonProperty("syxxxname")
    public void setSYXXXName(String  sYXXXName){
        this.SYXXXName = sYXXXName ;
        this.SYXXXNameDirtyFlag = true ;
    }

    /**
     * 获取 [SYXXXNAME]脏标记
     */
    @JsonIgnore
    public boolean getSYXXXNameDirtyFlag(){
        return SYXXXNameDirtyFlag ;
    }

    /**
     * 获取 [TKDM]
     */
    @JsonProperty("tkdm")
    public String getTkdm(){
        return Tkdm ;
    }

    /**
     * 设置 [TKDM]
     */
    @JsonProperty("tkdm")
    public void setTkdm(String  tkdm){
        this.Tkdm = tkdm ;
        this.TkdmDirtyFlag = true ;
    }

    /**
     * 获取 [TKDM]脏标记
     */
    @JsonIgnore
    public boolean getTkdmDirtyFlag(){
        return TkdmDirtyFlag ;
    }

    /**
     * 获取 [TKMC]
     */
    @JsonProperty("tkmc")
    public String getTkmc(){
        return Tkmc ;
    }

    /**
     * 设置 [TKMC]
     */
    @JsonProperty("tkmc")
    public void setTkmc(String  tkmc){
        this.Tkmc = tkmc ;
        this.TkmcDirtyFlag = true ;
    }

    /**
     * 获取 [TKMC]脏标记
     */
    @JsonIgnore
    public boolean getTkmcDirtyFlag(){
        return TkmcDirtyFlag ;
    }

    /**
     * 获取 [UPDATEDATE]
     */
    @JsonProperty("updatedate")
    public Timestamp getUpdateDate(){
        return UpdateDate ;
    }

    /**
     * 设置 [UPDATEDATE]
     */
    @JsonProperty("updatedate")
    public void setUpdateDate(Timestamp  updateDate){
        this.UpdateDate = updateDate ;
        this.UpdateDateDirtyFlag = true ;
    }

    /**
     * 获取 [UPDATEDATE]脏标记
     */
    @JsonIgnore
    public boolean getUpdateDateDirtyFlag(){
        return UpdateDateDirtyFlag ;
    }

    /**
     * 获取 [ZRXE]
     */
    @JsonProperty("zrxe")
    public BigDecimal getZrxe(){
        return Zrxe ;
    }

    /**
     * 设置 [ZRXE]
     */
    @JsonProperty("zrxe")
    public void setZrxe(BigDecimal  zrxe){
        this.Zrxe = zrxe ;
        this.ZrxeDirtyFlag = true ;
    }

    /**
     * 获取 [ZRXE]脏标记
     */
    @JsonIgnore
    public boolean getZrxeDirtyFlag(){
        return ZrxeDirtyFlag ;
    }

    /**
     * 获取 [ZZXS]
     */
    @JsonProperty("zzxs")
    public Double getZzxs(){
        return Zzxs ;
    }

    /**
     * 设置 [ZZXS]
     */
    @JsonProperty("zzxs")
    public void setZzxs(Double  zzxs){
        this.Zzxs = zzxs ;
        this.ZzxsDirtyFlag = true ;
    }

    /**
     * 获取 [ZZXS]脏标记
     */
    @JsonIgnore
    public boolean getZzxsDirtyFlag(){
        return ZzxsDirtyFlag ;
    }



    public SYXXX toDO() {

        SYXXX srfdomain = new SYXXX();
        if(getBjmpDirtyFlag())
            srfdomain.setBjmp(Bjmp);
        if(getCIDIdDirtyFlag())
            srfdomain.setCIDId(CIDId);
        if(getFlDirtyFlag())
            srfdomain.setFl(Fl);
        if(getJzbfDirtyFlag())
            srfdomain.setJzbf(Jzbf);
        if(getPtfhxsDirtyFlag())
            srfdomain.setPtfhxs(Ptfhxs);
        if(getSjbfDirtyFlag())
            srfdomain.setSjbf(Sjbf);
        if(getSYXXXIdDirtyFlag())
            srfdomain.setSYXXXId(SYXXXId);
        if(getSYXXXNameDirtyFlag())
            srfdomain.setSYXXXName(SYXXXName);
        if(getTkdmDirtyFlag())
            srfdomain.setTkdm(Tkdm);
        if(getTkmcDirtyFlag())
            srfdomain.setTkmc(Tkmc);
        if(getUpdateDateDirtyFlag())
            srfdomain.setUpdateDate(UpdateDate);
        if(getZrxeDirtyFlag())
            srfdomain.setZrxe(Zrxe);
        if(getZzxsDirtyFlag())
            srfdomain.setZzxs(Zzxs);
        return srfdomain;
    }

    public void fromDO(SYXXX srfdomain) {

        if(srfdomain.getBjmpDirtyFlag())
            this.setBjmp(srfdomain.getBjmp());
        if(srfdomain.getCIDIdDirtyFlag())
            this.setCIDId(srfdomain.getCIDId());
        if(srfdomain.getFlDirtyFlag())
            this.setFl(srfdomain.getFl());
        if(srfdomain.getJzbfDirtyFlag())
            this.setJzbf(srfdomain.getJzbf());
        if(srfdomain.getPtfhxsDirtyFlag())
            this.setPtfhxs(srfdomain.getPtfhxs());
        if(srfdomain.getSjbfDirtyFlag())
            this.setSjbf(srfdomain.getSjbf());
        if(srfdomain.getSYXXXIdDirtyFlag())
            this.setSYXXXId(srfdomain.getSYXXXId());
        if(srfdomain.getSYXXXNameDirtyFlag())
            this.setSYXXXName(srfdomain.getSYXXXName());
        if(srfdomain.getTkdmDirtyFlag())
            this.setTkdm(srfdomain.getTkdm());
        if(srfdomain.getTkmcDirtyFlag())
            this.setTkmc(srfdomain.getTkmc());
        if(srfdomain.getUpdateDateDirtyFlag())
            this.setUpdateDate(srfdomain.getUpdateDate());
        if(srfdomain.getZrxeDirtyFlag())
            this.setZrxe(srfdomain.getZrxe());
        if(srfdomain.getZzxsDirtyFlag())
            this.setZzxs(srfdomain.getZzxs());

    }

    public List<SYXXXDTO> fromDOPage(List<SYXXX> poPage)   {
        if(poPage == null)
            return null;
        List<SYXXXDTO> dtos=new ArrayList<SYXXXDTO>();
        for(SYXXX domain : poPage) {
            SYXXXDTO dto = new SYXXXDTO();
            dto.fromDO(domain);
            dtos.add(dto);
        }
        return dtos;
    }
}

