package org.jeecg.modules.workOrder.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 派工预设
 * @Author: jeecg-boot
 * @Date:   2025-06-11
 * @Version: V1.0
 */
@Data
@TableName("bu_work_division_set")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bu_work_division_set对象", description="派工预设")
public class WorkDivisionSet implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private java.lang.String id;
	/**班组/部门*/
	@Excel(name = "班组/部门", width = 15)
    @ApiModelProperty(value = "班组/部门")
    private java.lang.String createDept;
	/**createBy*/
    @ApiModelProperty(value = "createBy")
    private java.lang.String createBy;
	/**createTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "createTime")
    private java.util.Date createTime;
	/**updateBy*/
    @ApiModelProperty(value = "updateBy")
    private java.lang.String updateBy;
	/**updateTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "updateTime")
    private java.util.Date updateTime;
	/**修程/故障类型*/
	@Excel(name = "修程/故障类型", width = 15)
    @ApiModelProperty(value = "修程/故障类型")
    private java.lang.String regularId;
	/**人员编号*/
	@Excel(name = "人员编号", width = 15)
    @ApiModelProperty(value = "人员编号")
    private java.lang.String executor;
	/**人员类型：0负责人，1配合人*/
	@Excel(name = "人员类型", width = 15)
    @ApiModelProperty(value = "人员类型")
    @Dict(dicCode = "tor_type")
    private java.lang.Integer torType;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
	/**是否删除0否1是*/
	@Excel(name = "是否删除0否1是", width = 15)
    @ApiModelProperty(value = "是否删除0否1是")
    private java.lang.Integer deleteFlag;

    /**
     * 人员配置列表
     * 一个 executor 对应一个 torType
     */
    @TableField(exist = false)
    private List<ExecutorItem> executorList;
    /**
     * 内部类：人员 + 类型
     */
    @Data
    public static class ExecutorItem implements Serializable {
        private static final long serialVersionUID = 1L;
        /** 人员ID */
        private String executor;
        /** 人员类型：0负责人，1配合人 */
        private Integer torType;
    }
    @TableField(exist = false)
    private String executorName;
    @TableField(exist = false)
    private String execPhone;
    @TableField(exist = false)
    @Dict(dictTable = "sys_position",dicText = "name",dicCode = "code")
    private String postage;
}
