using WIDESEA_Core;
|
using WIDESEA_DTO;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_StorageBasicRepository
|
{
|
public class LocationStatusChangeRecordRepository : RepositoryBase<DtLocationStatusChangeRecord>, ILocationStatusChangeRecordRepository
|
{
|
public LocationStatusChangeRecordRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
|
{
|
}
|
|
/// <summary>
|
/// 添加货位变动记录
|
/// </summary>
|
/// <param name="changeRecordDto">数据模型</param>
|
/// <returns></returns>
|
public bool AddStatusChangeRecord(LocationChangeRecordDto changeRecordDto)
|
{
|
DtLocationStatusChangeRecord dtLocationStatusChangeRecord = new DtLocationStatusChangeRecord()
|
{
|
ChangeType = changeRecordDto.ChangeType,
|
LocationCode = changeRecordDto.LocationCode,
|
LocationId = changeRecordDto.LocationId,
|
Creater = "System",
|
TaskNum = changeRecordDto.TaskNum,
|
AfterStatus = changeRecordDto.AfterStatus,
|
BeforeStatus = changeRecordDto.BeforeStatus,
|
};
|
return AddData(dtLocationStatusChangeRecord) > 0;
|
}
|
/// <summary>
|
/// 添加货位变动记录
|
/// </summary>
|
/// <param name="locationInfo">更新实体</param>
|
/// <param name="lastStatus">变动前状态</param>
|
/// <param name="changeType">变动类型</param>
|
/// <param name="taskNum">任务号</param>
|
/// <exception cref="Exception"></exception>
|
public void AddLocationStatusChangeRecord(DtLocationInfo locationInfo, int lastStatus, int changeType, int? taskNum)
|
{
|
try
|
{
|
DtLocationStatusChangeRecord locationStatusChangeRecord = new DtLocationStatusChangeRecord()
|
{
|
AfterStatus = locationInfo.LocationStatus,
|
BeforeStatus = lastStatus,
|
ChangeType = changeType,
|
LocationCode = locationInfo.LocationCode,
|
LocationId = locationInfo.Id,
|
TaskNum = taskNum,
|
Creater = "System",
|
CreateDate = DateTime.Now,
|
};
|
|
base.AddData(locationStatusChangeRecord);
|
}
|
catch (Exception ex)
|
{
|
throw new Exception($"{ex.Message}");
|
}
|
}
|
|
public void AddLocationStatusChangeRecord(List<DtLocationInfo> locationInfos, int newStatus, int changeType, List<int>? taskNums)
|
{
|
try
|
{
|
List<DtLocationStatusChangeRecord> records = new List<DtLocationStatusChangeRecord>();
|
for (int i = 0; i < locationInfos.Count; i++)
|
{
|
DtLocationInfo locationInfo = locationInfos[i];
|
int? taskNum = (taskNums != null && taskNums.Count > 0 && taskNums.Count == locationInfos.Count) ? taskNums[i] : null;
|
DtLocationStatusChangeRecord locationStatusChangeRecord = new DtLocationStatusChangeRecord()
|
{
|
AfterStatus = newStatus,
|
BeforeStatus = locationInfo.LocationStatus,
|
ChangeType = changeType,
|
LocationCode = locationInfo.LocationCode,
|
LocationId = locationInfo.Id,
|
TaskNum = taskNum,
|
};
|
records.Add(locationStatusChangeRecord);
|
}
|
AddData(records);
|
}
|
catch (Exception ex)
|
{
|
throw new Exception($"{ex.Message}");
|
}
|
}
|
}
|
}
|