| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ´æ°åºä½ç¶æä¸ä»»å¡ç¶æ |
| | | var stock = _palletStockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode); |
| | | //æ¥æ¾åºå |
| | | var stock = await _palletStockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); |
| | | |
| | | // æ´æ°åºä½ç¶æä¸ä»»å¡ç¶æ |
| | | (var loc, var tas) = UpdateStockAndTaskStatus(stock, task); |
| | | var taskHty = task.Adapt<Dt_Task_Hty>(); |
| | | taskHty.FinishTime = DateTime.Now; |
| | |
| | | { |
| | | var isLocationUpdate = await _locationRepository.UpdateDataAsync(loc); //æ´æ°åºä½ |
| | | var isPalletHty = await _palletStockInfo_HtyRepository.AddDataAsync(stockInfo_Hty); //æ·»å åå²åºåè®°å½ |
| | | var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId); //å é¤ä»»å¡ |
| | | //var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId); //å é¤ä»»å¡ |
| | | await BaseDal.UpdateDataAsync(task); //åæ¶å é¤ä»»å¡ï¼æ¹ä¸ºå®æç¶æï¼å¹¶WMSçé¢ç±äººå·¥ç¡®è®¤å®æ |
| | | var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; //å å
¥åå²ä»»å¡ |
| | | var isDelete = await _palletStockInfoRepository.DeleteDataAsync(stock); //å é¤åºå |
| | | await DeleteStockInfoDetailsAsync(stock.StockInfoDetails); //å é¤åºåæç» |
| | |
| | | |
| | | #endregion å¤é¨æ¥å£æ¹æ³ |
| | | |
| | | |
| | | #region ä»»å¡ç¶ææ´æ¹ |
| | | |
| | | /// <summary> |
| | |
| | | string palletCode = saveModel.MainData["palletCode"].ToString(); |
| | | string station = saveModel.MainData["station"].ToString(); |
| | | |
| | | // æ¥è¯¢åºåä¿¡æ¯ |
| | | var stockInfo = _palletStockInfoRepository.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (stockInfo == null) |
| | | var barcode = JsonConvert.DeserializeObject<List<string>>(saveModel.MainData["palletCode"].ToString()); |
| | | |
| | | if (barcode == null && barcode.Count == 0) throw new Exception($"æ æçåæ°,请éè¯!"); |
| | | |
| | | foreach (var item in barcode) |
| | | { |
| | | return content.Error("æªæ¥è¯¢å°å¯¹åºçåºåä¿¡æ¯"); |
| | | // æ¥è¯¢åºåä¿¡æ¯ |
| | | var stockInfo = _palletStockInfoRepository.QueryFirst(x => x.PalletCode == item); |
| | | |
| | | if (stockInfo == null) |
| | | { |
| | | return content.Error("æªæ¥è¯¢å°å¯¹åºçåºåä¿¡æ¯"); |
| | | } |
| | | |
| | | if (stockInfo.StockStatus != 2) return content.Error($"æå®å¤±è´¥ï¼æç{item}å½åç¶æä¸å
许æå®åºåº"); |
| | | |
| | | stockInfo.StockStatus = 3; |
| | | |
| | | //æ¥è¯¢åºä½æ¯å¦éå®ï¼ |
| | | var location = _locationRepository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode); |
| | | |
| | | if (location.LocationStatus == (int)LocationEnum.Lock) return content.Error("åºä½éå®,请å
è§£éååæå®åºåº"); |
| | | |
| | | location.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | |
| | | var task = BaseDal.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | return content.Error($"ã{item}ãå·²åå¨ä»»å¡"); |
| | | } |
| | | |
| | | var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == station); |
| | | |
| | | if (stationInfo.Roadway != stockInfo.AreaCode) throw new Exception($"å½åæç{item}ä¸ä¸æä½ä¸ååºåï¼è¯·éæ°éæ©ï¼"); |
| | | |
| | | // å建并添å ä»»å¡å°æ°æ®åº |
| | | string agvId = Guid.NewGuid().ToString().Replace("-", "").Take(16); |
| | | task = new Dt_Task |
| | | { |
| | | Grade = 1, |
| | | Roadway = stationInfo.Roadway, |
| | | TargetAddress = stationInfo.stationLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stationInfo.stationLocation, |
| | | OrderNo = null, |
| | | PalletCode = stockInfo.PalletCode, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | CurrentAddress = stockInfo.LocationCode, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = (int)TaskOutboundTypeEnum.Outbound, |
| | | TaskNum = BaseDal.GetTaskNo().Result, |
| | | Creater = "System", |
| | | CreateDate = DateTime.Now, |
| | | TaskId = 0, |
| | | AGVtaskId = agvId |
| | | }; |
| | | |
| | | |
| | | addtask schedulingTask = new addtask |
| | | { |
| | | task_id = task.AGVtaskId, |
| | | task_type = task.TaskType == (int)TaskTypeEnum.Inbound ? "push" : "pop", |
| | | work_begin = task.SourceAddress, |
| | | work_end = task.TargetAddress |
| | | }; |
| | | |
| | | string address = AGV_Interface + "add_task"; |
| | | |
| | | string result = HttpsClient.PostAsync(address, schedulingTask.ToDictionary()).Result; |
| | | |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | if (content.ack != 0) |
| | | { |
| | | Console.WriteLine($"请æ±RCSå¼å¸¸ï¼{content.msg}"); |
| | | LogFactory.GetLog("ä¸åAGVä»»å¡").Info(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("ä¸åAGVä»»å¡").Info(true, $"请æ±åæ°ï¼{schedulingTask.ToJsonString()}"); |
| | | LogFactory.GetLog("ä¸åAGVä»»å¡").Info(true, $"ååºåæ°ï¼{content.ToJsonString()}"); |
| | | throw new Exception(content.msg); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | // æ·»å ä»»å¡å°æ°æ®åº |
| | | BaseDal.AddData(task); |
| | | // æ´æ°åºä½ä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | _locationRepository.UpdateData(location); |
| | | _palletStockInfoRepository.UpdateData(stockInfo); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | |
| | | if (stockInfo.StockStatus != 2) return content.Error("æå®å¤±è´¥ï¼å½åç¶æä¸å
许æå®åºåº"); |
| | | |
| | | stockInfo.StockStatus = 3; |
| | | |
| | | //æ¥è¯¢åºä½æ¯å¦éå®ï¼ |
| | | var location = _locationRepository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode); |
| | | |
| | | if (location.LocationStatus == (int)LocationEnum.Lock) return content.Error("åºä½éå®,请å
è§£éååæå®åºåº"); |
| | | |
| | | location.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | |
| | | var task = BaseDal.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | return content.Error($"ã{palletCode}ãå·²åå¨ä»»å¡"); |
| | | } |
| | | |
| | | var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == station); |
| | | |
| | | |
| | | // å建并添å ä»»å¡å°æ°æ®åº |
| | | string agvId = Guid.NewGuid().ToString().Replace("-", "").Take(16); |
| | | task = new Dt_Task |
| | | { |
| | | Grade = 1, |
| | | Roadway = stationInfo.Roadway, |
| | | TargetAddress = stationInfo.stationLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stationInfo.stationLocation, |
| | | OrderNo = null, |
| | | PalletCode = stockInfo.PalletCode, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | CurrentAddress = stockInfo.LocationCode, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = (int)TaskOutboundTypeEnum.Outbound, |
| | | TaskNum = BaseDal.GetTaskNo().Result, |
| | | Creater = "System", |
| | | CreateDate = DateTime.Now, |
| | | TaskId = 0, |
| | | AGVtaskId = agvId |
| | | }; |
| | | |
| | | |
| | | addtask schedulingTask = new addtask |
| | | { |
| | | task_id = task.AGVtaskId, |
| | | task_type = task.TaskType == (int)TaskTypeEnum.Inbound ? "push" : "pop", |
| | | work_begin = task.SourceAddress, |
| | | work_end = task.TargetAddress |
| | | }; |
| | | |
| | | string address = AGV_Interface + "add_task"; |
| | | |
| | | string result = HttpsClient.PostAsync(address, schedulingTask.ToDictionary()).Result; |
| | | |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | if (content.ack != 0) |
| | | { |
| | | Console.WriteLine($"请æ±RCSå¼å¸¸ï¼{content.msg}"); |
| | | LogFactory.GetLog("ä¸åAGVä»»å¡").Info(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("ä¸åAGVä»»å¡").Info(true, $"请æ±åæ°ï¼{schedulingTask.ToJsonString()}"); |
| | | LogFactory.GetLog("ä¸åAGVä»»å¡").Info(true, $"ååºåæ°ï¼{content.ToJsonString()}"); |
| | | throw new Exception(content.msg); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | // æ·»å ä»»å¡å°æ°æ®åº |
| | | BaseDal.AddData(task); |
| | | // æ´æ°åºä½ä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | _locationRepository.UpdateData(location); |
| | | _palletStockInfoRepository.UpdateData(stockInfo); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | Console.WriteLine($"åçå¼å¸¸: {ex.Message}"); |
| | | Console.WriteLine($"æå®åºåºå¼å¸¸: {ex.Message}"); |
| | | LogFactory.GetLog("æå®åºåºå¼å¸¸").Info(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("æå®åºåºå¼å¸¸").Info(true, $"请æ±åæ°ï¼{saveModel.ToJsonString()}"); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |