package cn.ibizlab.core.sample.domain;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.math.BigInteger;
import java.util.HashMap;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.util.ObjectUtils;
import org.springframework.util.DigestUtils;
import cn.ibizlab.util.domain.EntityBase;
import cn.ibizlab.util.annotation.DEField;
import cn.ibizlab.util.enums.DEPredefinedFieldType;
import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import cn.ibizlab.util.helper.DataObject;
import cn.ibizlab.util.enums.DupCheck;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.baomidou.mybatisplus.annotation.*;
import cn.ibizlab.util.domain.EntityMP;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;

/**
 * 实体[微组件]
 */
@Getter
@Setter
@NoArgsConstructor
@JsonIgnoreProperties(value = "handler")
@TableName(value = "T_MICROCOMPONENT", resultMap = "MicroComponentResultMap")
public class MicroComponent extends EntityMP implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 建立时间
     */
    @DEField(preType = DEPredefinedFieldType.CREATEDATE)
    @TableField(value = "createdate", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    @JSONField(name = "createdate", format = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("createdate")
    private Timestamp createdate;
    /**
     * 建立人
     */
    @DEField(preType = DEPredefinedFieldType.CREATEMAN)
    @TableField(value = "createman", fill = FieldFill.INSERT)
    @JSONField(name = "createman")
    @JsonProperty("createman")
    private String createman;
    /**
     * 微组件名称
     */
    @TableField(value = "microcomponentname")
    @JSONField(name = "microcomponentname")
    @JsonProperty("microcomponentname")
    private String microcomponentname;
    /**
     * 微组件标识
     */
    @DEField(isKeyField = true)
    @TableId(value = "microcomponentid", type = IdType.ASSIGN_UUID)
    @JSONField(name = "microcomponentid")
    @JsonProperty("microcomponentid")
    private String microcomponentid;
    /**
     * 更新时间
     */
    @DEField(preType = DEPredefinedFieldType.UPDATEDATE)
    @TableField(value = "updatedate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    @JSONField(name = "updatedate", format = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("updatedate")
    private Timestamp updatedate;
    /**
     * 更新人
     */
    @DEField(preType = DEPredefinedFieldType.UPDATEMAN)
    @TableField(value = "updateman")
    @JSONField(name = "updateman")
    @JsonProperty("updateman")
    private String updateman;
    /**
     * 属性
     */
    @TableField(value = "field")
    @JSONField(name = "field")
    @JsonProperty("field")
    private String field;
    /**
     * 属性2
     */
    @TableField(value = "field2")
    @JSONField(name = "field2")
    @JsonProperty("field2")
    private String field2;
    /**
     * 属性3
     */
    @TableField(value = "field3")
    @JSONField(name = "field3")
    @JsonProperty("field3")
    private String field3;
    /**
     * 属性4
     */
    @TableField(value = "field4")
    @JSONField(name = "field4")
    @JsonProperty("field4")
    private String field4;
    /**
     * 属性5
     */
    @TableField(value = "field5")
    @JSONField(name = "field5")
    @JsonProperty("field5")
    private String field5;
    /**
     * 属性6
     */
    @TableField(value = "field6")
    @JSONField(name = "field6")
    @JsonProperty("field6")
    private String field6;
    /**
     * 属性7
     */
    @TableField(value = "field7")
    @JSONField(name = "field7")
    @JsonProperty("field7")
    private String field7;
    /**
     * 属性8
     */
    @TableField(value = "field8")
    @JSONField(name = "field8")
    @JsonProperty("field8")
    private String field8;
    /**
     * 属性9
     */
    @TableField(value = "field9")
    @JSONField(name = "field9")
    @JsonProperty("field9")
    private String field9;
    /**
     * 属性10
     */
    @TableField(value = "field10")
    @JSONField(name = "field10")
    @JsonProperty("field10")
    private String field10;
    /**
     * 属性11
     */
    @TableField(value = "field11")
    @JSONField(name = "field11")
    @JsonProperty("field11")
    private String field11;
    /**
     * 属性12
     */
    @TableField(value = "field12")
    @JSONField(name = "field12")
    @JsonProperty("field12")
    private String field12;
    /**
     * 属性13
     */
    @TableField(value = "field13")
    @JSONField(name = "field13")
    @JsonProperty("field13")
    private String field13;
    /**
     * 属性14
     */
    @TableField(value = "field14")
    @JSONField(name = "field14")
    @JsonProperty("field14")
    private String field14;
    /**
     * 属性15
     */
    @TableField(value = "field15")
    @JSONField(name = "field15")
    @JsonProperty("field15")
    private String field15;
    /**
     * 属性16
     */
    @TableField(value = "field16")
    @JSONField(name = "field16")
    @JsonProperty("field16")
    private String field16;
    /**
     * 属性17
     */
    @TableField(value = "field17")
    @JSONField(name = "field17")
    @JsonProperty("field17")
    private String field17;
    /**
     * 属性18
     */
    @TableField(value = "field18")
    @JSONField(name = "field18")
    @JsonProperty("field18")
    private String field18;
    /**
     * 属性19
     */
    @TableField(value = "field19")
    @JSONField(name = "field19")
    @JsonProperty("field19")
    private String field19;
    /**
     * 属性20
     */
    @TableField(value = "field20")
    @JSONField(name = "field20")
    @JsonProperty("field20")
    private String field20;
    /**
     * 属性21
     */
    @TableField(value = "field21")
    @JSONField(name = "field21")
    @JsonProperty("field21")
    private String field21;
    /**
     * 属性22
     */
    @TableField(value = "field22")
    @JSONField(name = "field22")
    @JsonProperty("field22")
    private String field22;
    /**
     * 属性23
     */
    @TableField(value = "field23")
    @JSONField(name = "field23")
    @JsonProperty("field23")
    private String field23;
    /**
     * 属性24
     */
    @TableField(value = "field24")
    @JSONField(name = "field24")
    @JsonProperty("field24")
    private String field24;
    /**
     * 属性25
     */
    @TableField(value = "field25")
    @JSONField(name = "field25")
    @JsonProperty("field25")
    private String field25;
    /**
     * 属性26
     */
    @TableField(value = "field26")
    @JSONField(name = "field26")
    @JsonProperty("field26")
    private String field26;
    /**
     * 属性27
     */
    @TableField(value = "field27")
    @JSONField(name = "field27")
    @JsonProperty("field27")
    private String field27;
    /**
     * 属性28
     */
    @TableField(value = "field28")
    @JSONField(name = "field28")
    @JsonProperty("field28")
    private String field28;
    /**
     * 属性29
     */
    @TableField(value = "field29")
    @JSONField(name = "field29")
    @JsonProperty("field29")
    private String field29;
    /**
     * 属性30
     */
    @TableField(value = "field30")
    @JSONField(name = "field30")
    @JsonProperty("field30")
    private String field30;
    /**
     * 属性31
     */
    @TableField(value = "field31")
    @JSONField(name = "field31")
    @JsonProperty("field31")
    private String field31;
    /**
     * 属性32
     */
    @TableField(value = "field32")
    @JSONField(name = "field32")
    @JsonProperty("field32")
    private String field32;
    /**
     * 属性33
     */
    @TableField(value = "field33")
    @JSONField(name = "field33")
    @JsonProperty("field33")
    private String field33;
    /**
     * 属性34
     */
    @TableField(value = "field34")
    @JSONField(name = "field34")
    @JsonProperty("field34")
    private String field34;
    /**
     * 属性35
     */
    @TableField(value = "field35")
    @JSONField(name = "field35")
    @JsonProperty("field35")
    private String field35;
    /**
     * 属性36
     */
    @TableField(value = "field36")
    @JSONField(name = "field36")
    @JsonProperty("field36")
    private String field36;
    /**
     * 属性37
     */
    @TableField(value = "field37")
    @JSONField(name = "field37")
    @JsonProperty("field37")
    private String field37;
    /**
     * 属性38
     */
    @TableField(value = "field38")
    @JSONField(name = "field38")
    @JsonProperty("field38")
    private String field38;
    /**
     * 属性39
     */
    @TableField(value = "field39")
    @JSONField(name = "field39")
    @JsonProperty("field39")
    private String field39;
    /**
     * 属性40
     */
    @TableField(value = "field40")
    @JSONField(name = "field40")
    @JsonProperty("field40")
    private String field40;



    /**
     * 设置 [微组件名称]
     */
    public void setMicrocomponentname(String microcomponentname) {
        this.microcomponentname = microcomponentname;
        this.modify("microcomponentname", microcomponentname);
    }

    /**
     * 设置 [属性]
     */
    public void setField(String field) {
        this.field = field;
        this.modify("field", field);
    }

    /**
     * 设置 [属性2]
     */
    public void setField2(String field2) {
        this.field2 = field2;
        this.modify("field2", field2);
    }

    /**
     * 设置 [属性3]
     */
    public void setField3(String field3) {
        this.field3 = field3;
        this.modify("field3", field3);
    }

    /**
     * 设置 [属性4]
     */
    public void setField4(String field4) {
        this.field4 = field4;
        this.modify("field4", field4);
    }

    /**
     * 设置 [属性5]
     */
    public void setField5(String field5) {
        this.field5 = field5;
        this.modify("field5", field5);
    }

    /**
     * 设置 [属性6]
     */
    public void setField6(String field6) {
        this.field6 = field6;
        this.modify("field6", field6);
    }

    /**
     * 设置 [属性7]
     */
    public void setField7(String field7) {
        this.field7 = field7;
        this.modify("field7", field7);
    }

    /**
     * 设置 [属性8]
     */
    public void setField8(String field8) {
        this.field8 = field8;
        this.modify("field8", field8);
    }

    /**
     * 设置 [属性9]
     */
    public void setField9(String field9) {
        this.field9 = field9;
        this.modify("field9", field9);
    }

    /**
     * 设置 [属性10]
     */
    public void setField10(String field10) {
        this.field10 = field10;
        this.modify("field10", field10);
    }

    /**
     * 设置 [属性11]
     */
    public void setField11(String field11) {
        this.field11 = field11;
        this.modify("field11", field11);
    }

    /**
     * 设置 [属性12]
     */
    public void setField12(String field12) {
        this.field12 = field12;
        this.modify("field12", field12);
    }

    /**
     * 设置 [属性13]
     */
    public void setField13(String field13) {
        this.field13 = field13;
        this.modify("field13", field13);
    }

    /**
     * 设置 [属性14]
     */
    public void setField14(String field14) {
        this.field14 = field14;
        this.modify("field14", field14);
    }

    /**
     * 设置 [属性15]
     */
    public void setField15(String field15) {
        this.field15 = field15;
        this.modify("field15", field15);
    }

    /**
     * 设置 [属性16]
     */
    public void setField16(String field16) {
        this.field16 = field16;
        this.modify("field16", field16);
    }

    /**
     * 设置 [属性17]
     */
    public void setField17(String field17) {
        this.field17 = field17;
        this.modify("field17", field17);
    }

    /**
     * 设置 [属性18]
     */
    public void setField18(String field18) {
        this.field18 = field18;
        this.modify("field18", field18);
    }

    /**
     * 设置 [属性19]
     */
    public void setField19(String field19) {
        this.field19 = field19;
        this.modify("field19", field19);
    }

    /**
     * 设置 [属性20]
     */
    public void setField20(String field20) {
        this.field20 = field20;
        this.modify("field20", field20);
    }

    /**
     * 设置 [属性21]
     */
    public void setField21(String field21) {
        this.field21 = field21;
        this.modify("field21", field21);
    }

    /**
     * 设置 [属性22]
     */
    public void setField22(String field22) {
        this.field22 = field22;
        this.modify("field22", field22);
    }

    /**
     * 设置 [属性23]
     */
    public void setField23(String field23) {
        this.field23 = field23;
        this.modify("field23", field23);
    }

    /**
     * 设置 [属性24]
     */
    public void setField24(String field24) {
        this.field24 = field24;
        this.modify("field24", field24);
    }

    /**
     * 设置 [属性25]
     */
    public void setField25(String field25) {
        this.field25 = field25;
        this.modify("field25", field25);
    }

    /**
     * 设置 [属性26]
     */
    public void setField26(String field26) {
        this.field26 = field26;
        this.modify("field26", field26);
    }

    /**
     * 设置 [属性27]
     */
    public void setField27(String field27) {
        this.field27 = field27;
        this.modify("field27", field27);
    }

    /**
     * 设置 [属性28]
     */
    public void setField28(String field28) {
        this.field28 = field28;
        this.modify("field28", field28);
    }

    /**
     * 设置 [属性29]
     */
    public void setField29(String field29) {
        this.field29 = field29;
        this.modify("field29", field29);
    }

    /**
     * 设置 [属性30]
     */
    public void setField30(String field30) {
        this.field30 = field30;
        this.modify("field30", field30);
    }

    /**
     * 设置 [属性31]
     */
    public void setField31(String field31) {
        this.field31 = field31;
        this.modify("field31", field31);
    }

    /**
     * 设置 [属性32]
     */
    public void setField32(String field32) {
        this.field32 = field32;
        this.modify("field32", field32);
    }

    /**
     * 设置 [属性33]
     */
    public void setField33(String field33) {
        this.field33 = field33;
        this.modify("field33", field33);
    }

    /**
     * 设置 [属性34]
     */
    public void setField34(String field34) {
        this.field34 = field34;
        this.modify("field34", field34);
    }

    /**
     * 设置 [属性35]
     */
    public void setField35(String field35) {
        this.field35 = field35;
        this.modify("field35", field35);
    }

    /**
     * 设置 [属性36]
     */
    public void setField36(String field36) {
        this.field36 = field36;
        this.modify("field36", field36);
    }

    /**
     * 设置 [属性37]
     */
    public void setField37(String field37) {
        this.field37 = field37;
        this.modify("field37", field37);
    }

    /**
     * 设置 [属性38]
     */
    public void setField38(String field38) {
        this.field38 = field38;
        this.modify("field38", field38);
    }

    /**
     * 设置 [属性39]
     */
    public void setField39(String field39) {
        this.field39 = field39;
        this.modify("field39", field39);
    }

    /**
     * 设置 [属性40]
     */
    public void setField40(String field40) {
        this.field40 = field40;
        this.modify("field40", field40);
    }


    /**
     * 复制当前对象数据到目标对象(粘贴重置)
     * @param targetEntity 目标数据对象
     * @param bIncEmpty  是否包括空值
     * @param <T>
     * @return
     */
    @Override
    public <T> T copyTo(T targetEntity, boolean bIncEmpty) {
        this.reset("microcomponentid");
        return super.copyTo(targetEntity, bIncEmpty);
    }
}


