| | |
| | | ["70104"] = "80104", |
| | | ["70106"] = "80106" |
| | | }; |
| | | // åºåºåºåæ ¡åç¼åæ¶æ ¡å |
| | | public static void OutboundAreaJZ(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client) |
| | | { |
| | | // åºåºåºçåºåºä»»å¡ å°ç¼åæ¶åäº å°±è¦æä»»å¡å·åæçå·åå
¥å°å¯¹åºå±çç¼åæ¶ |
| | | List<Dt_TaskWCSinfo> executingTasks = taskWCSinfoRepository.Find(r => ( |
| | | r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString() || |
| | | r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString()) |
| | | && endStationNo.Contains(r.wcstask_endPoint)).ToList(); |
| | | foreach (var item in executingTasks) |
| | | { |
| | | bool LoadSleep = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), item.wcstask_startPoint.ToString()).ToString()); |
| | | int ReadNumber = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), item.wcstask_startPoint.ToString()).ToString()); |
| | | int ReadBarcode = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), item.wcstask_startPoint.ToString()).ToString()); |
| | | if (LoadSleep && (ReadNumber == 0 || ReadBarcode == 0)) |
| | | { |
| | | //åå
¥æçæ¡ç |
| | | bool writeTaskNumber = client.WriteValue(CLineInfoDBName.W_Line_TaskNumber.ToString(), item.wcstask_startPoint, item.wcstask_taskNumber); |
| | | bool writeBarcode = client.WriteValue(CLineInfoDBName.W_Line_Barcode.ToString(), item.wcstask_startPoint, item.wcstask_barcode); |
| | | } |
| | | } |
| | | |
| | | foreach (var item in OutboundStationLayerNo) |
| | | { |
| | | bool LoadSleep = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), item.ToString()).ToString()); |
| | | int ReadNumber = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), item.ToString()).ToString()); |
| | | int ReadBarcode = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), item.ToString()).ToString()); |
| | | |
| | | Dt_TaskWCSinfo dt_TaskWCSinfo = taskWCSinfoRepository.Find(r => |
| | | r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString() |
| | | && r.wcstask_state == TaskState.TaskState_Assigned.ToString() |
| | | && r.wcstask_startPoint == 90101.ToString() |
| | | && r.wcstask_endPoint == item |
| | | && r.wcstask_barcode == ReadBarcode.ToString() |
| | | && r.wcstask_taskNumber == ReadNumber |
| | | ).FirstOrDefault(); |
| | | |
| | | if (LoadSleep && dt_TaskWCSinfo != null) |
| | | { |
| | | // è¯æè´§ç©å·²ç»å°äºç¼åæ¶ ä½ä»»å¡ç¶ææ²¡ææ¹å è¿æ¯æ°å»ºç¶æ å°±è¦æ¹ä¸º TaskState.TaskState_Empty_In_PLC_Finished.ToString() |
| | | dt_TaskWCSinfo.wcstask_state = TaskState.TaskState_Empty_In_PLC_Finished.ToString(); |
| | | taskWCSinfoRepository.Update(dt_TaskWCSinfo, true); |
| | | string str = $"åºåºåºå 空æçååº æçé½å°ç¼åæ¶å ä½ä»»å¡ç¶ææ²¡å {DateTime.Now}ã{dt_TaskWCSinfo.wcstask_state}ãï¼æçå·:{dt_TaskWCSinfo.wcstask_barcode},ä»»å¡å·ï¼{dt_TaskWCSinfo.wcstask_taskNumber}"; |
| | | LogRecord.WriteLog(LogEnum.Errer, str.ToString()); |
| | | } |
| | | } |
| | | } |
| | | public static void OutboundAreaDispathAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client) |
| | | { |
| | | try |
| | |
| | | || outboundTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString())) |
| | | rgvTaskType = RGVTaskType.RgvTaskType_Outbound.ToString(); |
| | | |
| | | |
| | | rgvInfo = GetRGVTask(taskRGVinfoRepository, outboundTask, rgvTaskType); |
| | | taskRGVinfoRepository.Add(rgvInfo, true); |
| | | |
| | |
| | | |
| | | //ç¼åå£(ç¼åæ¶)è³è¾é线 |
| | | OutboundCZ_PLC(taskWCSinfoRepository, taskRGVinfoRepository, client); |
| | | |
| | | |
| | | //空æå
¥åºç³è¯·(çæäºç©ºæå
¥åºä»»å¡) |
| | | InboundRequestAction(taskWCSinfoRepository, taskRGVinfoRepository, client); |
| | | |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteLog.Info("OutboundArea").Write($"{ DateTime.Now }åºåºåºåè°åº¦å¤±è´¥:{ex.Message}", "OutboundArea"); |
| | | WriteLog.Info("OutboundArea").Write($"{DateTime.Now}åºåºåºåè°åº¦å¤±è´¥:{ex.Message}", "OutboundArea"); |
| | | } |
| | | } |
| | | public static bool WriteRGVState(PLCClient client, bool value) |
| | |
| | | |
| | | List<Dt_TaskWCSinfo> listTask = taskWCSinfoRepository.Find(r => r.wcstask_state == TaskState.TaskState_Assigned.ToString() && |
| | | (r.wcstask_type == TaskType.TaskType_Box_Pallet_Outbound.ToString() || r.wcstask_type == TaskType.TaskType_Empty_Pallet_Outbound.ToString()) |
| | | && OutboundStationLayerNo.Contains(r.wcstask_startPoint)).OrderBy(r => r.wcstask_createTime).ToList();// |
| | | && endStationNo.Contains(r.wcstask_endPoint)).OrderBy(r => r.wcstask_createTime).ToList();// |
| | | |
| | | foreach (var item in listTask.GroupBy(r => r.wcstask_endPoint)) |
| | | { |
| | |
| | | continue; |
| | | |
| | | //夿ç¼åæ¶æ¯å¦æè´§ |
| | | bool flag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(),wcsTask.wcstask_startPoint).ToString()); |
| | | bool flag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), wcsTask.wcstask_startPoint).ToString()); |
| | | bool noflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_NoLoadSleep.ToString(), wcsTask.wcstask_startPoint).ToString()); |
| | | if (flag || !noflag) |
| | | continue; |
| | | |
| | | //åä¸å±ææ§è¡ä¸çä»»å¡ä¸æ·»å |
| | | Dt_TaskWCSinfo executingTask = taskWCSinfoRepository.FindFirst(r => (r.wcstask_startPoint == wcsTask.wcstask_startPoint || r.wcstask_endPoint == wcsTask.wcstask_endPoint) |
| | | Dt_TaskWCSinfo executingTask = taskWCSinfoRepository.FindFirst(r => |
| | | (r.wcstask_startPoint == wcsTask.wcstask_startPoint || r.wcstask_endPoint == wcsTask.wcstask_endPoint) |
| | | && (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())); |
| | | if (null != executingTask) |
| | | continue; |
| | |
| | | List<Dt_TaskWCSinfo> listTarget = taskWCSinfoRepository.Find(r => r.wcstask_endPoint == wcsTask.wcstask_endPoint && |
| | | r.wcstask_state != TaskState.TaskState_Assigned.ToString()); |
| | | |
| | | if(listTarget != null && listTarget.Count >= 2) |
| | | { |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | wcsInfo = wcsTask; |
| | | } |
| | | |
| | | string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), wcsTask.wcstask_endPoint).ToString(); |
| | | |
| | | //if (string.IsNullOrEmpty(barcode) || "0".Equals(barcode)) |
| | | //if (listTarget != null && listTarget.Count > 1) |
| | | //{ |
| | | // if (null != listTarget && listTarget.Count > 2) |
| | | // continue; |
| | | // else |
| | | // { |
| | | // wcsInfo = wcsTask; |
| | | // break; |
| | | // } |
| | | // continue; |
| | | //} |
| | | //else |
| | | //{ |
| | | // if (null != listTarget && listTarget.Count > 1) |
| | | // continue; |
| | | // else |
| | | // { |
| | | // wcsInfo = wcsTask; |
| | | // break; |
| | | // } |
| | | // wcsInfo = wcsTask; |
| | | //} |
| | | |
| | | string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), wcsTask.wcstask_endPoint).ToString(); |
| | | |
| | | if (string.IsNullOrEmpty(barcode) || "0".Equals(barcode)) |
| | | { |
| | | if (null != listTarget && listTarget.Count > 1) |
| | | continue; |
| | | else |
| | | { |
| | | wcsInfo = wcsTask; |
| | | break; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (null != listTarget && listTarget.Count > 0) |
| | | continue; |
| | | else |
| | | { |
| | | wcsInfo = wcsTask; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return wcsInfo; |
| | |
| | | return rgvInfo; |
| | | } |
| | | |
| | | // åªç¨ä¸ä¸ªåå
¸ï¼Key=æçå·ï¼Value=Tuple<é对象, æåä½¿ç¨æ¶é´> |
| | | // Tuple<object, DateTime>ï¼Item1=é对象ï¼Item2=æåä½¿ç¨æ¶é´ |
| | | private static readonly Dictionary<string, Tuple<object, DateTime>> BarcodeLockDict = new Dictionary<string, Tuple<object, DateTime>>(); |
| | | private static readonly object GlobalLock = new object(); // ä¿æ¤åå
¸çå
¨å±é |
| | | private const int ExpireMinutes = 1; // è¿ææ¶é´ï¼1åé |
| | | |
| | | /// <summary> |
| | | /// è·åæçå·ä¸å±éï¼ååå
¸+1åéè¿æ+ææ¸
çï¼ |
| | | /// </summary> |
| | | private static object GetBarcodeLock(string barcode) |
| | | { |
| | | |
| | | lock (GlobalLock) // å
¨å±éä¿æ¤åå
¸æä½ |
| | | { |
| | | // ========== ç¬¬ä¸æ¥ï¼ææ¸
çï¼æ¯æ¬¡è·åéæ¶ï¼æ¸
çè¶
è¿1åéçé²ç½®æçå·ï¼ ========== |
| | | var expiredBarcodes = BarcodeLockDict |
| | | .Where(kv => (DateTime.Now - kv.Value.Item2).TotalMinutes > ExpireMinutes) |
| | | .Select(kv => kv.Key) |
| | | .ToList(); |
| | | |
| | | foreach (var expiredBarcode in expiredBarcodes) |
| | | { |
| | | BarcodeLockDict.Remove(expiredBarcode); |
| | | } |
| | | |
| | | // ========== ç¬¬äºæ¥ï¼å¤çå½åæçå·çéåæ¶é´ ========== |
| | | if (!BarcodeLockDict.ContainsKey(barcode)) |
| | | { |
| | | // æ 该æçå·ï¼æ°å¢é对象+å½åæ¶é´ |
| | | BarcodeLockDict[barcode] = Tuple.Create(new object(), DateTime.Now); |
| | | } |
| | | // è¿åå½åæçå·çé对象 |
| | | return BarcodeLockDict[barcode].Item1; |
| | | } |
| | | } |
| | | |
| | | public static void InboundRequestAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client) |
| | | { |
| | | try |
| | | { |
| | | //string barcode = "901010"; |
| | | int R_Line_PLCDispatch = int.Parse(client.ReadValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo).ToString()); |
| | | bool load = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), ReInboundRequestStationNo).ToString()); |
| | | if (R_Line_PLCDispatch == 1 && load) |
| | | if (R_Line_PLCDispatch == 1 && load) |
| | | { |
| | | string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), ReInboundRequestStationNo).ToString(); |
| | | |
| | | // è¿éè¦å ä¸ä¸ªå¤æï¼å¦ææ¿åæ¥ç空æçæ¯800001ï¼ä½æ¯ææä¸æ¡è¿ä¸ªæçç任塿¯800001è¿æ²¡æå°æå®çåè£
å°ï¼æä»¥æè¦å®æè¿ä¸ªä»»å¡ |
| | | Dt_TaskWCSinfo IsTask = taskWCSinfoRepository.FindFirst(x => x.wcstask_barcode == barcode && x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString()); |
| | | if (IsTask != null) |
| | | { |
| | | //卿¤å®æè¯¥ç©ºæåºåºä»»å¡ |
| | | WebResponseContent content = taskWCSinfoRepository.DbContextBeginTransaction(() => |
| | | { |
| | | //䏿¥WMSä»»å¡å®æ |
| | | content = WMSApi.TellWmsTaskFinished(IsTask.wcstask_barcode); |
| | | if (content.Status) |
| | | { |
| | | //ç§»å¨ä»»å¡å°åå²è¡¨ |
| | | Dt_TaskWCSinfo_HtyRepository taskWCSinfo_HtyRepository = new Dt_TaskWCSinfo_HtyRepository(taskWCSinfoRepository.DbContext); |
| | | IsTask.wcstask_state = TaskState.TaskState_Finished.ToString(); |
| | | CommonFunction.AddWcsTaskToHistory(IsTask, taskWCSinfoRepository, taskWCSinfo_HtyRepository); |
| | | } |
| | | else |
| | | throw new Exception($"{DateTime.Now}䏿¥WMSä»»å¡å®æåºéï¼åå ï¼ã{content.Message}ã"); |
| | | |
| | | return content; |
| | | }); |
| | | string str = string.Empty; |
| | | if (content.Status) |
| | | str = $" {DateTime.Now}䏿¥WMSåºåºå®ææå,ãæå¨å¹²æ°åºåºæ²¡æå°è¾¾æå®åè£
å°ç¹ä½ï¼æå¨æ¿å90101ããTaskState_ConveyorLineExecutingãï¼æçå·:{IsTask.wcstask_barcode},ä»»å¡å·ï¼{IsTask.wcstask_taskNumber}"; |
| | | else |
| | | str = $" {DateTime.Now}䏿¥WMSåºåºå®æå¤±è´¥ãæå¨å¹²æ°åºåºæ²¡æå°è¾¾æå®åè£
å°ç¹ä½ï¼æå¨æ¿å90101ããTaskState_ConveyorLineExecutingãï¼æçå·:{IsTask.wcstask_barcode},ä»»å¡å·ï¼{IsTask.wcstask_taskNumber}"; |
| | | |
| | | WriteLog.Info(IsTask.wcstask_endPoint).Write(str, IsTask.wcstask_endPoint); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(barcode) && !"0".Equals(barcode)) |
| | | { |
| | | Dt_TaskWCSinfo wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == barcode && r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString()); |
| | | if (null == wcsInfo) |
| | | if (int.Parse(barcode) < 800000 || int.Parse(barcode) > 890000) |
| | | { |
| | | //è·å车轴åºåº |
| | | List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || |
| | | r.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString())) && endStationNo.Contains(r.wcstask_endPoint)); |
| | | return; |
| | | } |
| | | object barcodeLock = GetBarcodeLock(barcode); |
| | | lock (barcodeLock) |
| | | { |
| | | Dt_TaskWCSinfo IsTask = taskWCSinfoRepository.FindFirst(x => x.wcstask_barcode == barcode |
| | | && (x.wcstask_type == TaskType.TaskType_Empty_Pallet_Outbound.ToString() || x.wcstask_type == TaskType.TaskType_Box_Pallet_Outbound.ToString()) |
| | | && (x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString() || x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString()) |
| | | && (endStationNo.Contains(x.wcstask_endPoint))); |
| | | if (IsTask != null) |
| | | { |
| | | //卿¤å®æè¯¥ç©ºæåºåºä»»å¡ |
| | | WebResponseContent content = taskWCSinfoRepository.DbContextBeginTransaction(() => |
| | | { |
| | | //䏿¥WMSä»»å¡å®æ |
| | | content = WMSApi.TellWmsTaskFinished(IsTask.wcstask_barcode); |
| | | if (content.Status) |
| | | { |
| | | //ç§»å¨ä»»å¡å°åå²è¡¨ |
| | | Dt_TaskWCSinfo_HtyRepository taskWCSinfo_HtyRepository = new Dt_TaskWCSinfo_HtyRepository(taskWCSinfoRepository.DbContext); |
| | | IsTask.wcstask_state = TaskState.TaskState_Finished.ToString(); |
| | | CommonFunction.AddWcsTaskToHistory(IsTask, taskWCSinfoRepository, taskWCSinfo_HtyRepository); |
| | | } |
| | | else |
| | | throw new Exception($"{DateTime.Now}䏿¥WMSä»»å¡å®æåºéï¼åå ï¼ã{content.Message}ã"); |
| | | |
| | | //è·åæå¤å°æ¡åºåºçä»»å¡ |
| | | int LineExecucount = executingTask.Count(x => x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString() || x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString()); |
| | | if (LineExecucount >= 8) |
| | | { |
| | | //夿æ¯å¦æå¯¹åºå±çåºåºä»»å¡ï¼ |
| | | //ç³è¯·å
¥åºä»»å¡ |
| | | WebResponseContent content = WMSApi.PostInboundRequstToWMS(barcode); |
| | | return content; |
| | | }); |
| | | string str = string.Empty; |
| | | if (content.Status) |
| | | { |
| | | WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString()); |
| | | wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository); |
| | | taskWCSinfoRepository.Add(wcsInfo, true); |
| | | //client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | } |
| | | str = $" {DateTime.Now}䏿¥WMSåºåºå®ææå,ãæå¨å¹²æ°åºåºæ²¡æå°è¾¾æå®åè£
å°ç¹ä½ï¼æå¨æ¿å90101ããTaskState_ConveyorLineExecutingãï¼æçå·:{IsTask.wcstask_barcode},ä»»å¡å·ï¼{IsTask.wcstask_taskNumber}"; |
| | | else |
| | | { |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:" + content.Message); |
| | | } |
| | | str = $" {DateTime.Now}䏿¥WMSåºåºå®æå¤±è´¥ãæå¨å¹²æ°åºåºæ²¡æå°è¾¾æå®åè£
å°ç¹ä½ï¼æå¨æ¿å90101ããTaskState_ConveyorLineExecutingãï¼æçå·:{IsTask.wcstask_barcode},ä»»å¡å·ï¼{IsTask.wcstask_taskNumber}"; |
| | | |
| | | WriteLog.Info(IsTask.wcstask_endPoint).Write(str, IsTask.wcstask_endPoint); |
| | | LogRecord.WriteLog(LogEnum.Errer, str.ToString()); |
| | | } |
| | | else |
| | | |
| | | Dt_TaskWCSinfo wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == barcode); |
| | | if (null == wcsInfo) |
| | | { |
| | | //夿æå¤å°æ¡å¨ç¼åæ¶ç |
| | | int RGV_Finishedcount = executingTask.Count(x => x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Assigned.ToString()); |
| | | if (RGV_Finishedcount == 0) |
| | | //è·å车轴åºåº |
| | | List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || |
| | | r.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString())) && endStationNo.Contains(r.wcstask_endPoint)); |
| | | |
| | | //è·åæå¤å°æ¡åºåºçä»»å¡ |
| | | int LineExecucount = executingTask.Count(x => x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | || x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString()); |
| | | if (LineExecucount >= 8) |
| | | { |
| | | //夿æ¯å¦æå¯¹åºå±çåºåºä»»å¡ï¼ |
| | | //ç³è¯·å
¥åºä»»å¡ |
| | | WebResponseContent content = WMSApi.PostInboundRequstToWMS(barcode); |
| | | if (content.Status) |
| | | { |
| | | WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString()); |
| | | wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository); |
| | | taskWCSinfoRepository.Add(wcsInfo, true); |
| | | //WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString()); |
| | | //wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository); |
| | | //taskWCSinfoRepository.Add(wcsInfo, true); |
| | | //client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | try |
| | | { |
| | | WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString()); |
| | | wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository); |
| | | taskWCSinfoRepository.Add(wcsInfo, true); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | string str = $"è¿éå¯è½æ¯åºç°äºå¹¶åçæ
嵿çç 卿·»å çæ¶åæ¦æªçã{wcsInfo.wcstask_barcode}ã" + |
| | | $"ä»»å¡å·ã{wcsInfo.wcstask_taskNumber}ã,ä»»å¡ç¶æï¼ã{wcsInfo.wcstask_state}ã"; |
| | | LogRecord.WriteLog(LogEnum.Errer, str.ToString()); |
| | | //throw; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (content.Message.Contains("å½åæçå·å·²åå¨åºé")) |
| | | { |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 4); |
| | | } |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:" + content.Message); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //夿æå¤å°æ¡å¨ç¼åæ¶ç |
| | | int RGV_Finishedcount = executingTask.Count(x => |
| | | x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Assigned.ToString()); |
| | | |
| | | if (RGV_Finishedcount == 0) |
| | | { |
| | | // æ ¸å¿ï¼è·åå½åæçå·çä¸å±éï¼å䏿çå·ä¸²è¡å¤ç |
| | | //ç³è¯·å
¥åºä»»å¡ |
| | | WebResponseContent content = WMSApi.PostInboundRequstToWMS(barcode); |
| | | if (content.Status) |
| | | { |
| | | try |
| | | { |
| | | WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString()); |
| | | wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository); |
| | | taskWCSinfoRepository.Add(wcsInfo, true); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | string str = $"è¿éå¯è½æ¯åºç°äºå¹¶åçæ
嵿çç ï¼å¨æ·»å çæ¶åæ¦æªçã{wcsInfo.wcstask_barcode}ã" + |
| | | $"ä»»å¡å·ã{wcsInfo.wcstask_taskNumber}ã,ä»»å¡ç¶æï¼ã{wcsInfo.wcstask_state}ã"; |
| | | LogRecord.WriteLog(LogEnum.Errer, str.ToString()); |
| | | //throw; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (content.Message.Contains("å½åæçå·å·²åå¨åºé")) |
| | | { |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 4); |
| | | } |
| | | else if (content.Message.Contains("ææ è´§ä½å¯åé
")) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:" + content.Message); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | string str = $"è¿éå¯è½æ¯åºç°äºå¹¶åçæ
嵿çç 卿¥è¯¢çæ¶åæ¦æªçã{wcsInfo.wcstask_barcode}ã" + |
| | | $"ä»»å¡å·ã{wcsInfo.wcstask_taskNumber}ã,ä»»å¡ç¶æï¼ã{wcsInfo.wcstask_state}ã"; |
| | | LogRecord.WriteLog(LogEnum.Errer, str.ToString()); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:读åå°ç空æçæ¡ç 为空ï¼è¯»åå
容ï¼"+ barcode); |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:读åå°ç空æçæ¡ç 为空ï¼è¯»åå
容ï¼" + barcode); |
| | | } |
| | | } |
| | | } |