using WIDESEA_Core; using WIDESEA_DTO; using WIDESEA_Model.Models; namespace WIDESEA_StorageBasicRepository { public class LocationStatusChangeRecordRepository : RepositoryBase, ILocationStatusChangeRecordRepository { public LocationStatusChangeRecordRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) { } /// /// 添加货位变动记录 /// /// 数据模型 /// 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; } /// /// 添加货位变动记录 /// /// 更新实体 /// 变动前状态 /// 变动类型 /// 任务号 /// 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 locationInfos, int newStatus, int changeType, List? taskNums) { try { List records = new List(); 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}"); } } } }