From a8be8f9371b6fc03b66d212b2902d08f93b087dd Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期三, 02 七月 2025 13:55:55 +0800 Subject: [PATCH] 新增任务查询方法并优化逻辑在 `ITaskService.cs` 中添加了新的 `QueryExecutingConveyorLineTask` 方法,支持根据托盘号和下一地址查询任务,同时调整了原有方法的参数以保留旧功能。在 `TaskService.cs` 中新增重载方法,允许根据下一地址和条形码查询任务。在 `CommonConveyorLine_GWJob.cs` 中更新了 `ConveyorLineOutFinish` 方法,简化了任务查询逻辑并删除了多余的注释代码。同时,增加了对 `taskNext` 的处理逻辑,确保在任务未找到时的相应处理,并更新在途数据的逻辑,提升数据一致性和准确性。 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 84 insertions(+), 1 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs index ec5bbe8..f91b37d 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Location/LocationStatusChangeRecordRepository.cs @@ -1,9 +1,92 @@ -锘縩amespace WIDESEA_StorageBasicRepository +锘縰sing 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}"); + } + } } } \ No newline at end of file -- Gitblit v1.9.3