| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using WIDESEA_Common; |
| | |
| | | { |
| | | try |
| | | { |
| | | string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), ReInboundRequestStationNo).ToString(); |
| | | 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 (!string.IsNullOrEmpty(barcode) && !"0".Equals(barcode) && load) |
| | | if (R_Line_PLCDispatch ==1 && load) |
| | | { |
| | | Dt_TaskWCSinfo wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == barcode && r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString()); |
| | | if (null == wcsInfo) |
| | | string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), ReInboundRequestStationNo).ToString(); |
| | | if (!string.IsNullOrEmpty(barcode) && !"0".Equals(barcode)) |
| | | { |
| | | //è·å车轴åºåº |
| | | 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()); |
| | | if (LineExecucount >= 4) |
| | | Dt_TaskWCSinfo wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == barcode && r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString()); |
| | | if (null == wcsInfo) |
| | | { |
| | | //夿æ¯å¦æå¯¹åºå±çåºåºä»»å¡ï¼ |
| | | //ç³è¯·å
¥åºä»»å¡ |
| | | 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); |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 1); |
| | | |
| | | //è·å车轴åºåº |
| | | 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)); |
| | | |
| | | } |
| | | else |
| | | //è·åæå¤å°æ¡åºåºçä»»å¡ |
| | | int LineExecucount = executingTask.Count(x => x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString()); |
| | | if (LineExecucount >= 4) |
| | | { |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | 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_Assigned.ToString()); |
| | | if (RGV_Finishedcount == 0) |
| | | { |
| | | //夿æ¯å¦æå¯¹åºå±çåºåºä»»å¡ï¼ |
| | | //ç³è¯·å
¥åºä»»å¡ |
| | | 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); |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 1); |
| | | |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | } |
| | | else |
| | | { |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | 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_Assigned.ToString()); |
| | | if (RGV_Finishedcount == 0) |
| | | { |
| | | //ç³è¯·å
¥åºä»»å¡ |
| | | 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); |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:" + content.Message); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("å
¥åºç³è¯·å¤±è´¥:读åå°ç空æçæ¡ç 为空ï¼è¯»åå
容ï¼"+ barcode); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 3); |
| | | Console.Out.WriteLine(DateTime.Now + ex.Message); |
| | | } |
| | | } |