| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/UpLocationStatusDTO.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
@@ -102,11 +102,20 @@ /// </summary> [Description("æåæºå°çº¿è¾¹")] F03, /// <summary> /// 线边å°åºå /// </summary> [Description("线边å°åºå ")] STURR STURR, /// <summary> /// ä»ä½å°ä»ä½ /// </summary> [Description("ä»ä½å°ä»ä½")] STUPTBY } public enum TaskInboundTypeEnum ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/UpLocationStatusDTO.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEAWCS_DTO.WMS { public class UpLocationStatusDTO { /// <summary> /// ä»åºid /// </summary> public int WarehouseId { get; set; } /// <summary> /// ç¦ç¨ç¶æï¼0 å¯ç¨ï¼3 ç¦ç¨ï¼ /// </summary> public int EnableStatus { get; set; } /// <summary> /// è´§ä½ç¼å·å表 /// </summary> public string[] LocationNubList { get; set; } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -318,5 +318,13 @@ /// <param name="wMSUpOrDown"></param> /// <returns></returns> WebResponseContent UpOrDownContainer(WMSUpOrDownContainerDTO wMSUpOrDown); /// <summary> /// æ´æ°ä»åºåºä½ç¶æï¼å¯ç¨ç¦ç¨ /// </summary> /// <param name="upLocationStatusDTO"></param> /// <returns></returns> WebResponseContent UpLocationStatus(UpLocationStatusDTO upLocationStatusDTO); } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs
@@ -117,5 +117,18 @@ WebResponseContent content = _taskService.LocationInquiry(getLocationInfo); return WMSReturnMethod.ReturnWMS(content); } /// <summary> /// æ´æ°ä¸åä»åºçåºä½ç¶æï¼ç¦ç¨å¯ç¨ /// </summary> /// <param name="upLocationStatusDTO"></param> /// <returns></returns> [HttpGet, HttpPost, Route("UpLocationStatus"), AllowAnonymous] public WMSReturn UpLocationStatus([FromBody]UpLocationStatusDTO upLocationStatusDTO) { WebResponseContent content = _taskService.UpLocationStatus(upLocationStatusDTO); return WMSReturnMethod.ReturnWMS(content); } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/HKTaskMethods.cs
@@ -34,6 +34,10 @@ try { Dt_HKLocationInfo? hKLocationInfo = null; if (taskType==(int)TaskTypeEnum.STURR) { var reslut=_stationInfo.Repository.QueryFirst(x=>x.StationCode==taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹è´§ä½ã{taskDTO.fromLocationCode}ã"); } #region ç¹å°ç¹ if (!string.IsNullOrEmpty(taskDTO.toLocationCode)) { @@ -126,12 +130,20 @@ WebResponseContent content = new WebResponseContent(); try { //4楼åºå å°æåæº Dt_HKLocationInfo? hKLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); if (hKLocationInfo.LocationStatus != LocationStatusEnum.InStock.ObjToInt()) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½ååºä½ç¶æä¸å¯åºåºï¼"); if (hKLocationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{hKLocationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é ï¼"); //åºå å°åºå¤çç¹å°ç¹ä»»å¡ï¼æ¯å¦éè¦å¤æè´§ä½ç¶æï¼ Dt_Task dt_Task = new Dt_Task() //åºå å°ç°è¾¹çç¹å°ç¹ä»»å¡ï¼æ¯å¦éè¦å¤æè´§ä½ç¶æï¼ if (taskType == (int)TaskTypeEnum.STU0003) { var reslut = _stationInfo.Repository.QueryFirst(x => x.StationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹è´§ä½ã{taskDTO.fromLocationCode}ã"); if (reslut.StationStatus != (int)LocationStatusEnum.Free) { throw new Exception($"ç»ç¹ç«å°ã{taskDTO.toLocationCode}ãç¶æä¸ä¸ºç©ºé²ï¼"); } } Dt_Task dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), WMSTaskNum = taskDTO.taskCode, @@ -352,6 +364,26 @@ hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); } break; case TaskTypeEnum.STUPTBY: { TargetRouteDto target = new TargetRouteDto() { code = task.CurrentAddress, operation = "DELIVERY",//åè´§ seq = 0, type = "STORAGE", }; TargetRouteDto targetRoute = new TargetRouteDto() { code = task.NextAddress, operation = "DELIVERY",//éè´§ seq = 1, type = "STORAGE", }; hIKROBOTTaskSubmit.targetRoute.Add(target); hIKROBOTTaskSubmit.targetRoute.Add(targetRoute); } break; case TaskTypeEnum.CPMoveInventory: break; default: ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs
@@ -214,12 +214,12 @@ //å ¥åº å°ä¸æ¥¼ä¸ä¸ªç«å°çä½ç½® if (taskType == (int)TaskTypeEnum.Q3RK)//6-1楼 { var ionInfo = _stationMangerService.Repository.QueryFirst(x => x.StationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹ç«å°ã{taskDTO.toLocationCode}ãï¼"); var StationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == taskDTO.fromLocationCode ) ?? throw new Exception($"æªæ¾å°{taskDTO.fromLocationCode}èµ·ç¹è´§ä½"); var ionInfo = _stationMangerService.Repository.QueryFirst(x => x.StationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹ç«å°ã{taskDTO.toLocationCode}ãï¼"); var StationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°{taskDTO.fromLocationCode}èµ·ç¹è´§ä½"); if (StationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{StationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é ï¼"); if (StationInfo.StationStatus != (int)LocationStatusEnum.InStock) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½åç¶æä¸å¯ä»¥åºåº"); if (StationInfo.FloorNumber != "FF") throw new Exception($"ã{taskDTO.fromLocationCode}ãçæ¥¼å±åä»»å¡ç±»å楼å±ä¸å¹é "); dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), @@ -245,7 +245,7 @@ var ionInfo = _stationMangerService.Repository.QueryFirst(x => x.StationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹ç«å°ã{taskDTO.fromLocationCode}ãï¼"); if (ionInfo.Remark != taskDTO.containerCode) throw new Exception($"èµ·ç¹ç«å°ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{ionInfo.Remark}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é ï¼"); dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), @@ -297,14 +297,14 @@ try { #region æ¯å¦éè¦å¤æå¹³åºåºä½ç¶æ var reslut= ValidateLocationForTask(taskType,taskDTO); var reslut = ValidateLocationForTask(taskType, taskDTO); if (!reslut.Status) { throw new Exception(reslut.Message); } #endregion Dt_Task dt_Task = new Dt_Task() Dt_Task dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), WMSTaskNum = taskDTO.taskCode, @@ -378,5 +378,57 @@ return content; } #endregion #region /// <summary> /// 海康ä»ä½å°ä»ä½çè¿è¾ä»»å¡ /// </summary> /// <param name="taskDTO"></param> /// <param name="taskType"></param> /// <returns></returns> public WebResponseContent HKSTUPTP(TaskDTO taskDTO, int taskType) { WebResponseContent content = new WebResponseContent(); try { var KLocationInfo = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); if (KLocationInfo.LocationStatus != (int)LocationStatusEnum.InStock) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½ååºä½ç¶æä¸æ¯æè´§ï¼"); if (KLocationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"å½ååºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{KLocationInfo.PalletCode}ãä¸ä»»å¡çæç®±å·ã{taskDTO.containerCode}ãä¸å¹é "); var KLocationInfo2 = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºä½ã{taskDTO.toLocationCode}ãï¼"); if (KLocationInfo2.LocationStatus != (int)LocationStatusEnum.Free) throw new Exception($"ç»ç¹åºä½ã{taskDTO.toLocationCode}ãå½ååºä½ç¶æä¸æ¯ç©ºé²ï¼"); var dt_Task = new Dt_Task() { TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), WMSTaskNum = taskDTO.taskCode, //WMSId = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), Grade = taskDTO.taskPriority, PalletCode = taskDTO.containerCode, Roadway = "1", TaskState = (int)TaskStatusEnum.New, TaskType = taskType, SourceAddress = taskDTO.fromLocationCode, CurrentAddress = taskDTO.fromLocationCode, NextAddress = taskDTO.toLocationCode, TargetAddress = taskDTO.toLocationCode, Creater = "WMS", }; content = SendHIKROBOTTask(dt_Task); if (!content.Status) throw new Exception(content.Message); dt_Task.Dispatchertime = DateTime.Now; BaseDal.AddData(dt_Task); } catch (Exception ex) { content.Error(ex.Message); } return content; } #endregion } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -198,6 +198,10 @@ content = CJCarryTaske(task, item.taskType); objects.Add(content.Data); break; case (int)TaskTypeEnum.STUPTBY: content = HKSTUPTP(task, item.taskType); objects.Add(content.Data); break; #endregion default: objects.Add(new @@ -388,7 +392,7 @@ bool isAGV = dt_Task.TaskType == (int)TaskTypeEnum.CPInbound || dt_Task.TaskType == (int)TaskTypeEnum.CPOutbound; //海康 bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.F01 || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK; bool isHK = dt_Task.TaskType == (int)TaskTypeEnum.F01 || dt_Task.TaskType == (int)TaskTypeEnum.RK3F || dt_Task.TaskType == (int)TaskTypeEnum.CK3F || dt_Task.TaskType == (int)TaskTypeEnum.Q1TSJ4 || dt_Task.TaskType == (int)TaskTypeEnum.STU0003 || dt_Task.TaskType == (int)TaskTypeEnum.F02 || dt_Task.TaskType == (int)TaskTypeEnum.CHUKU1 || dt_Task.TaskType == (int)TaskTypeEnum.Q3RK || dt_Task.TaskType == (int)TaskTypeEnum.Q3CK||dt_Task.TaskType == (int)TaskTypeEnum.STUPTBY; //ä¿®æ¹åæ¬ä»»å¡ä¼å 级 dt_Task.Grade = updateTaskPriority.taskPriority; #region å¯ä¹å£« @@ -452,11 +456,15 @@ initPriority = updateTaskPriority.taskPriority//ä¼å 级 }; Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(HIKROBOTTaskGrade)); if (apiInfo == null) throw new Exception("æªæ¾å°åå车AGVä»»å¡ä¸åæ¥å£é 置信æ¯ï¼è¯·æ£æ¥æ¥å£é ç½®"); string response = HttpHelper.Post(apiInfo.ApiAddress, Hkrequest.Serialize()); if (apiInfo == null) throw new Exception("æªæ¾å°æµ·åº·AGVä»»å¡ä¸åæ¥å£é 置信æ¯ï¼è¯·æ£æ¥æ¥å£é ç½®"); var headers = new Dictionary<string, string> { { "X-lr-request-id", DateTimeOffset.Now.ToUnixTimeSeconds().ToString() + dt_Task.WMSTaskNum } }; string response = HttpHelper.Post(apiInfo.ApiAddress, Hkrequest.Serialize(), headers: headers); HIKROBOTReturn hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); content.OK(data: hIKROBOTReturn); if (hIKROBOTReturn.code == "SUCCESS0" && hIKROBOTReturn.message == "æå") if (hIKROBOTReturn.code == "SUCCESS" && hIKROBOTReturn.message == "æå") { BaseDal.UpdateData(dt_Task); content.OK("ä¿®æ¹{dt_Task.WMSTaskNum}ä»»å¡ä¼å 级æå", dt_Task); @@ -514,7 +522,16 @@ var rgv = new List<Dt_RGVLocationInfo>(); var kls = new List<Dt_KLSLocationInfo>(); var hk = new List<Dt_HKLocationInfo>(); var pk = new List<Dt_StationInfo>(); List<Dt_StationInfo> pk = new List<Dt_StationInfo>(); if (wMSUpdateLocationArea==null) { return content.Error("请æ±åæ°ä¸è½ä¸ºç©º"); } var validWarehouseIds = new[] { 1, 2, 3, 4 }; if (!validWarehouseIds.Contains(wMSUpdateLocationArea.WarehouseId)) { return content.Error($"æ æçä»åºIDï¼{wMSUpdateLocationArea.WarehouseId}ï¼ææå¼ä¸ºï¼1-æååºï¼2-颿åºï¼3-è´§åºï¼4-è£åªåº"); } if (wMSUpdateLocationArea.WarehouseId == 1) { var rgvList = _rGVLocationInfoService.Repository.QueryData(x => wMSUpdateLocationArea.LocationCodes.Contains(x.LocationCode)).ToList(); @@ -523,6 +540,7 @@ item.WarehouseId = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); } rgv.AddRange(rgvList); _rGVLocationInfoService.Repository.UpdateData(rgv); } if (wMSUpdateLocationArea.WarehouseId == 2) { @@ -533,6 +551,7 @@ item.WarehouseId = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); } kls.AddRange(KLSLocationInfoList); _kLSLocationInfoService.Repository.UpdateData(kls); } if (wMSUpdateLocationArea.WarehouseId == 3) { @@ -542,21 +561,18 @@ item.WarehouseId = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); } hk.AddRange(hkList); _hKLocationInfoService.Repository.UpdateData(hk); } if (wMSUpdateLocationArea.WarehouseId == 4) { var pkList = _stationInfo.Repository.QueryData(x => wMSUpdateLocationArea.LocationCodes.Contains(x.StationCode)).ToList(); foreach (var item in pk) foreach (var item in pkList) { item.StationRegion = wMSUpdateLocationArea.UpdateAreaCode.ObjToInt(); } pk.AddRange(pkList); _stationInfo.Repository.UpdateData(pk); } Db.Ado.BeginTran(); _rGVLocationInfoService.UpdateData(rgv); _kLSLocationInfoService.UpdateData(kls); _hKLocationInfoService.UpdateData(hk); Db.Ado.CommitTran(); content.OK(); } catch (Exception ex) @@ -1596,5 +1612,253 @@ } /// <summary> /// æ´æ°åºä½å¯ç¨ç¦ç¨ç¶æ /// </summary> /// <param name="upLocationStatusDTO"></param> /// <returns></returns> public WebResponseContent UpLocationStatus(UpLocationStatusDTO upLocationStatusDTO) { WebResponseContent content = new WebResponseContent(); List<object> resultList = new List<object>(); try { // åæ°éªè¯ if (upLocationStatusDTO == null) { return content.Error("请æ±åæ°ä¸è½ä¸ºç©º"); } if (upLocationStatusDTO.LocationNubList == null || upLocationStatusDTO.LocationNubList.Length == 0) { return content.Error("è´§ä½ç¼å·å表ä¸è½ä¸ºç©º"); } // æ ¹æ® EnableStatus çå¼å¤ææ¯å¯ç¨è¿æ¯ç¦ç¨ // 0=å¯ç¨ï¼3=ç¦ç¨ bool isEnable = (upLocationStatusDTO.EnableStatus == 0); int targetStatus = isEnable ? (int)EnableStatusEnum.Normal : (int)EnableStatusEnum.Disable; var updatedList = new List<object>(); // ç¨äºæ¹éæ´æ° var notFoundLocations = new List<string>(); // æååº (WarehouseId = 1) if (upLocationStatusDTO.WarehouseId == 1) { var locationsToUpdate = new List<Dt_RGVLocationInfo>(); foreach (var locationCode in upLocationStatusDTO.LocationNubList) { var agv = _rGVLocationInfoService.Repository.QueryFirst(x => x.LocationCode == locationCode); if (agv != null) { agv.EnableStatus = targetStatus; locationsToUpdate.Add(agv); resultList.Add(new { LoctionCode = agv.LocationCode, EnableStatus = agv.EnableStatus, }); } else { notFoundLocations.Add(locationCode); } } if (locationsToUpdate.Any()) { _rGVLocationInfoService.UpdateData(locationsToUpdate); string message = $"æåæ´æ° {locationsToUpdate.Count} 个货ä½çç¶æ"; if (notFoundLocations.Any()) { message += $"ï¼æªæ¾å°è´§ä½ï¼{string.Join(",", notFoundLocations)}"; } content.OK(data: resultList, message: message); } else { return content.Error($"æªæ¾å°ä»»ä½å¯æ´æ°çè´§ä½ãæªæ¾å°çè´§ä½ï¼{string.Join(",", notFoundLocations)}"); } } // é¢æåº (WarehouseId = 2) else if (upLocationStatusDTO.WarehouseId == 2) { var locationsToUpdate = new List<Dt_KLSLocationInfo>(); foreach (var locationCode in upLocationStatusDTO.LocationNubList) { var kls = _kLSLocationInfoService.Repository.QueryFirst(x => x.LocationCode == locationCode); if (kls != null) { kls.EnableStatus = targetStatus; locationsToUpdate.Add(kls); resultList.Add(new { LoctionCode = kls.LocationCode, EnableStatus = kls.EnableStatus, }); } else { notFoundLocations.Add(locationCode); } } if (locationsToUpdate.Any()) { _kLSLocationInfoService.UpdateData(locationsToUpdate); string message = $"æåæ´æ° {locationsToUpdate.Count} 个货ä½çç¶æ"; if (notFoundLocations.Any()) { message += $"ï¼æªæ¾å°è´§ä½ï¼{string.Join(",", notFoundLocations)}"; } content.OK(data: resultList, message: message); } else { return content.Error($"æªæ¾å°ä»»ä½å¯æ´æ°çè´§ä½ãæªæ¾å°çè´§ä½ï¼{string.Join(",", notFoundLocations)}"); } } // è£åªåº (WarehouseId = 3) else if (upLocationStatusDTO.WarehouseId == 3) { var locationsToUpdate = new List<Dt_HKLocationInfo>(); foreach (var locationCode in upLocationStatusDTO.LocationNubList) { var hk = _hKLocationInfoService.Repository.QueryFirst(x => x.LocationCode == locationCode); if (hk != null) { hk.EnableStatus = targetStatus; locationsToUpdate.Add(hk); resultList.Add(new { LoctionCode = hk.LocationCode, EnableStatus = hk.EnableStatus, }); } else { notFoundLocations.Add(locationCode); } } if (locationsToUpdate.Any()) { _hKLocationInfoService.UpdateData(locationsToUpdate); string message = $"æåæ´æ° {locationsToUpdate.Count} 个货ä½çç¶æ"; if (notFoundLocations.Any()) { message += $"ï¼æªæ¾å°è´§ä½ï¼{string.Join(",", notFoundLocations)}"; } content.OK(data: resultList, message: message); } else { return content.Error($"æªæ¾å°ä»»ä½å¯æ´æ°çè´§ä½ãæªæ¾å°çè´§ä½ï¼{string.Join(",", notFoundLocations)}"); } } // 3-4å¹³åº else if (upLocationStatusDTO.WarehouseId == 4) { var locationsToUpdate = new List<Dt_StationInfo>(); foreach (var locationCode in upLocationStatusDTO.LocationNubList) { var station = _stationInfo.Repository.QueryFirst(x => x.StationCode == locationCode); if (station != null) { station.IsOccupied = upLocationStatusDTO.EnableStatus==0?0:1; locationsToUpdate.Add(station); resultList.Add(new { LoctionCode = station.StationCode, EnableStatus = station.IsOccupied, }); } else { notFoundLocations.Add(locationCode); } } if (locationsToUpdate.Any()) { _stationInfo.UpdateData(locationsToUpdate); string message = $"æåæ´æ° {locationsToUpdate.Count} 个货ä½çç¶æ"; if (notFoundLocations.Any()) { message += $"ï¼æªæ¾å°è´§ä½ï¼{string.Join(",", notFoundLocations)}"; } content.OK(data: resultList, message: message); } else { return content.Error($"æªæ¾å°ä»»ä½å¯æ´æ°çè´§ä½ãæªæ¾å°çè´§ä½ï¼{string.Join(",", notFoundLocations)}"); } } else if (upLocationStatusDTO.WarehouseId == 5) { var locationsToUpdate = new List<Dt_StationManger>(); foreach (var locationCode in upLocationStatusDTO.LocationNubList) { var station = _stationMangerService.Repository.QueryFirst(x => x.StationCode == locationCode); if (station != null) { station.IsOccupied = upLocationStatusDTO.EnableStatus == 0 ? 0 : 1; locationsToUpdate.Add(station); resultList.Add(new { LoctionCode = station.StationCode, EnableStatus = station.IsOccupied, }); } else { notFoundLocations.Add(locationCode); } } if (locationsToUpdate.Any()) { _stationMangerService.UpdateData(locationsToUpdate); string message = $"æåæ´æ° {locationsToUpdate.Count} 个货ä½çç¶æ"; if (notFoundLocations.Any()) { message += $"ï¼æªæ¾å°ç«å°ï¼{string.Join(",", notFoundLocations)}"; } content.OK(data: resultList, message: message); } else { return content.Error($"æªæ¾å°ä»»ä½å¯æ´æ°çç«å°ãæªæ¾å°çç«å°ï¼{string.Join(",", notFoundLocations)}"); } } else { return content.Error($"䏿¯æçä»åºç±»åï¼{upLocationStatusDTO.WarehouseId}"); } return content; } catch (Exception ex) { return content.Error($"æ´æ°ç«å°ç¶æå¤±è´¥ï¼{ex.Message}"); } } } } ´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs
@@ -217,9 +217,14 @@ { //寻æ¾å¹³åºè´§ä½ var Location = _stationInfoService.Repository.QueryFirst(x=>x.StationRegion==Verification.Message.ObjToInt()&&x.StationStatus==(int)LocationStatusEnum.Free&&x.FloorNumber=="CC"&&x.IsOccupied==(int)LocationStatusEnum.Free); //è¿éè¦å¤æ if (Location==null) { RK3FTask.ExceptionMessage = "$æªæ¾å°{Verification.Message}åºåçè´§ä½{Location}"; } RK3FTask.CurrentAddress = RK3FTask.TargetAddress; RK3FTask.NextAddress = Location.StationCode; RK3FTask.TargetAddress = Location.StationCode; RK3FTask.CurrentAddress = RK3FTask.TargetAddress; _taskService.UpdateData(RK3FTask); } //è°ç¨æµ·åº·è¿è¡æ§è¡å®ææ¥å£