using OASystem.Domain.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace OASystem.Domain.Entities.Groups
{
///
/// 团组流程管控
///
[SugarTable("Grp_Schedule")]
public class Grp_ScheduleInfo : EntityBase
{
///
/// 团组Id
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int DiId { get; set; }
///
/// 当前主流程
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public GrpSchedulePrimaryStepEnum PrimaryStep { get; set; }
/////
///// 当前子流程
/////
//[SugarColumn(IsNullable = true, ColumnDataType = "int")]
//public int DetailStep { get; set; }
///
/// 预计开始时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime ExpectBeginDt { get; set; }
///
/// 预计结束时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime ExpectEndDt { get; set; }
///
/// 实际开始时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime RealBeginDt { get; set; }
///
/// 实际结束时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime RealEndDt { get; set; }
///
/// 总负责人(SysUser.Id)
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int Leader { get; set; }
///
/// 异常状态0:正常,1:异常
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int Exception { get; set; }
}
///
/// 团组流程管控详细进度
/// 因为要实现DeepClone 字段必须在同一类下所以不能继承EntityBase
///
[SugarTable("Grp_ScheduleDetail")]
[Serializable]
public class Grp_ScheduleDetailInfo : ICloneable
{
///
/// 编号
///
[SugarColumn(ColumnDescription = "主键", IsPrimaryKey = true, IsIdentity = true, IsNullable = false)]
public int Id { get; set; }
///
/// 创建者Id
///
[SugarColumn(ColumnDescription = "创建者Id", IsNullable = true, ColumnDataType = "int")]
public int CreateUserId { get; set; }
///
/// 创建时间
///
[SugarColumn(ColumnDescription = "创建时间", IsNullable = true, ColumnDataType = "DateTime")]
public DateTime CreateTime { get; set; } = DateTime.Now;
///
/// 删除者Id
///
[SugarColumn(ColumnDescription = "删除者Id", IsNullable = true, ColumnDataType = "int")]
public int? DeleteUserId { get; set; }
///
/// 删除时间
///
[SugarColumn(ColumnDescription = "删除时间", IsNullable = true, ColumnDataType = "varchar(30)")]
public string DeleteTime { get; set; }
///
/// 备注
///
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
public string Remark { get; set; }
///
/// 是否删除
///
[SugarColumn(ColumnDescription = "是否删除", IsNullable = true, ColumnDataType = "int")]
public int IsDel { get; set; }
///
/// 团组流程Id
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int ScheduleId { get; set; }
///
/// 等级
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int SLevel { get; set; }
///
/// 流程
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int Step { get; set; }
///
/// 父级流程
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int ParentStep { get; set; }
///
/// 流程状态
///
/// - 0:待分配(未开始)
/// - 1:进行中
/// - 2:已完成
///
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int StepStatus { get; set; }
///
/// 负责人员(SysUser.Id)
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int Duty { get; set; }
///
/// 工作内容
///
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
public string JobContent { get; set; }
///
/// 预计开始时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime ExpectBeginDt { get; set; }
///
/// 预计结束时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime ExpectEndDt { get; set; }
///
/// 实际开始时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime RealBeginDt { get; set; }
///
/// 实际结束时间
///
[SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
public DateTime RealEndDt { get; set; }
///
/// 异常状态0:正常,1:异常
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int Exception { get; set; }
public object Clone()
{
return this.MemberwiseClone();
}
public Grp_ScheduleDetailInfo DeepClone()
{
using (Stream objectStream = new MemoryStream())
{
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(objectStream, this);
objectStream.Seek(0, SeekOrigin.Begin);
return formatter.Deserialize(objectStream) as Grp_ScheduleDetailInfo;
}
}
}
///
/// 团组流程管控人员配置
///
[SugarTable("Grp_SchedulePerson")]
public class Grp_SchedulePersonInfo : EntityBase
{
///
/// 流程Id
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int ScheduleId { get; set; }
///
/// 人员编号(SysUser.Id)
///
[SugarColumn(IsNullable = true, ColumnDataType = "int")]
public int SysUserId { get; set; }
///
/// 人员姓名
///
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
public string SysUserName { get; set; }
///
/// 负责工作
///
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
public string JobStr { get; set; }
}
}