|  |  |  | 
|---|
|  |  |  | namespace WIDESEA_StorageBasicRepository | 
|---|
|  |  |  | 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}"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|