using System; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Wms.DataExchange.Domain.Shared; namespace Win_in.Sfs.Wms.DataExchange.Domain; public abstract class ExternalDataBase : SfsAggregateRootBase { /// /// 数据类型 /// public string DataType { get; set; } /// /// 数据表类型 /// public EnumExchangeTableType TableType { get; set; } = EnumExchangeTableType.None; /// /// 数据动作 /// public EnumExchangeDataAction DataAction { get; set; } /// /// 生效日期 /// public DateTime EffectiveDate { get; protected internal set; } = DateTime.Today; /// /// 数据状态 /// public EnumExchangeDataStatus Status { get; protected internal set; } = EnumExchangeDataStatus.Unread; /// /// 来源系统 /// public string SourceSystem { get; set; } /// /// 来源数据ID /// public string SourceDataId { get; set; } /// /// 来源数据组码 /// public string SourceDataGroupCode { get; set; } /// /// 来源数据明细码 /// public string SourceDataDetailCode { get; set; } /// /// 来源数据内容 /// public string SourceDataContent { get; set; } /// /// 写入时间 /// public DateTime WriteTime { get; set; } = DateTime.Now; /// /// 写入者 /// public string Writer { get; set; } /// /// 目标数据ID /// public string DestinationDataId { get; set; } /// /// 目标数据内容 /// public string DestinationDataContent { get; set; } /// /// 目标系统 /// public string DestinationSystem { get; set; } /// /// 读取时间 /// public DateTime? ReadTime { get; set; } = DateTime.Now; /// /// 读取者 /// public string Reader { get; set; } /// /// 错误代码 /// public EnumExchangeDataErrorCode ErrorCode { get; protected internal set; } /// /// 错误信息 /// public string ErrorMessage { get; protected internal set; } /// /// 重试次数 /// public int RetryTimes { get; protected internal set; } public void SetEffectiveDate(DateTime newDate) { EffectiveDate = newDate; } public void SetError(EnumExchangeDataErrorCode errorCode, string errorMessage, string remark = null) { Status = EnumExchangeDataStatus.Error; ErrorCode = errorCode; ErrorMessage = errorMessage; Remark = remark; RetryTimes++; } public void Hold(string remark = null) { Status = EnumExchangeDataStatus.Hold; Remark = remark; } public virtual void Reset(string remark = null) { Status = EnumExchangeDataStatus.Unread; ErrorCode = EnumExchangeDataErrorCode.None; ErrorMessage = ""; Remark = remark; RetryTimes = 0; } public void Take(string remark = null) { Status = EnumExchangeDataStatus.Processing; Remark = remark; } public void SetSuccess(string remark = null) { Status = EnumExchangeDataStatus.Success; ErrorCode = EnumExchangeDataErrorCode.None; ErrorMessage = ""; Remark = remark; } }