| | |
| | | using HslCommunication; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | using WIDESEA_Services.Repositories; |
| | | using WIDESEA_Services.Services; |
| | | using WIDESEA_WCS.WCSClient; |
| | | using static System.Collections.Specialized.BitVector32; |
| | | |
| | | namespace WIDESEA_WCS.Jobs.ConveyorLine.OutboundArea |
| | | { |
| | |
| | | //è·åä»»å¡ï¼çæå
¥åºä»»å¡ |
| | | public static void RGV_InboundKTP(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client) |
| | | { |
| | | Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => OutboundStationLayerNo.Contains(r.wcstask_endPoint) && r.wcstask_type == |
| | | TaskType.TaskType_Empty_Pallet_Inbound.ToString() && r.wcstask_state == TaskState.TaskState_Empty_In_PLC_Finished.ToString()).OrderBy(x => x.wcstask_dispatcherTime).FirstOrDefault(); |
| | | Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => |
| | | OutboundStationLayerNo.Contains(r.wcstask_endPoint) |
| | | && r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString() |
| | | && r.wcstask_state == TaskState.TaskState_Empty_In_PLC_Finished.ToString()).OrderBy(x => x.wcstask_dispatcherTime).FirstOrDefault(); |
| | | |
| | | if (inboundTask != null) |
| | | { |
| | |
| | | if (!string.IsNullOrEmpty(barcode) && !"0".Equals(barcode) && load) |
| | | { |
| | | //æ ¹æ®å¯¹åºçæçæ¡ç è¿è¡å»ä¸åä»»å¡ |
| | | Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => r.wcstask_barcode == barcode).Where(r => r.wcstask_type == |
| | | TaskType.TaskType_Empty_Pallet_Inbound.ToString() && (r.wcstask_state == TaskState.TaskState_Assigned.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())).FirstOrDefault(); |
| | | Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => r.wcstask_barcode == barcode) |
| | | .Where(r => r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString() |
| | | && (r.wcstask_state == TaskState.TaskState_Assigned.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())).FirstOrDefault(); |
| | | if(inboundTask != null) |
| | | { |
| | | if(inboundTask.wcstask_state== TaskState.TaskState_Assigned.ToString()) |
| | | if(inboundTask.wcstask_state == TaskState.TaskState_Assigned.ToString()) |
| | | { |
| | | ReInAssignedKTP(taskWCSinfoRepository, client, inboundTask); |
| | | } |
| | |
| | | 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) |
| | | 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) |
| | | { |
| | | //夿æ¯å¦æå¯¹åºå±çåºåºä»»å¡ï¼ |
| | | int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | || x.wcstask_state == TaskState.TaskState_Assigned.ToString())); |
| | | int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation |
| | | && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | || x.wcstask_state == TaskState.TaskState_Assigned.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString())); |
| | | if (Assrscount == 0) |
| | | { |
| | | ReInboundRequestStationAction(taskWCSinfoRepository, client, wcsInfo); |
| | |
| | | else |
| | | { |
| | | //夿æå¤å°æ¡å¨ç¼åæ¶ç |
| | | int RGV_Finishedcount = executingTask.Count(x => x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Assigned.ToString()); |
| | | 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) |
| | | { |
| | | //å¯ä»¥è¿è¡å¤æä¸åå
¥åºä»»å¡ |
| | | int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | || x.wcstask_state == TaskState.TaskState_Assigned.ToString())); |
| | | //int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation |
| | | //&& (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | //|| x.wcstask_state == TaskState.TaskState_Assigned.ToString()) |
| | | //&& x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()); |
| | | |
| | | // èä½¼ 2026-01-20 ä¿®æ¹ä¸é¢å¦ä¸ |
| | | int Assrscount = executingTask.Count(x => |
| | | x.wcstask_endLocation == wcsInfo.wcstask_startLocation |
| | | && x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Assigned.ToString() |
| | | && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()); |
| | | |
| | | |
| | | if (Assrscount == 0) |
| | | { |
| | | ReInboundRequestStationAction(taskWCSinfoRepository, client, wcsInfo); |
| | |
| | | int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString()); |
| | | if ((logicValue == 1 || logicValue == 2)) |
| | | { |
| | | client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint); |
| | | client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber); |
| | | |
| | | int TaskTarget = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo).ToString()); |
| | | int TaskNumber = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo).ToString()); |
| | | |
| | | if (TaskTarget == 0 || TaskNumber == 0 || TaskTarget.ToString() != wcsInfo.wcstask_endPoint.ToString() || TaskNumber != wcsInfo.wcstask_taskNumber) // åå
¥å å¦æè¯»åä¸å° é£å°±éæ°åå
¥ |
| | | { |
| | | client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint); |
| | | client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber); |
| | | } |
| | | |
| | | WriteTaskInfo.WriteTaskInfoAction(wcsInfo, client, lineCode); |
| | | client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2); |
| | | |
| | | if (RgvDispatchJob.TempHK) // 妿è¿ä¸ªä¸ºTrueäº é£å°±è¯æå空æççä¼å
级被æé«äº ç¶åå°±ä¼è¿ç»åå个ï¼è¿éæ¯åä¸ä¸ªå°±è¦+1 ç´å°ååä¸ªäº è¿ä¸ªä¼å
级就æ¶å¤±äº |
| | | { |
| | | RgvDispatchJob.HKNumber += 1; |
| | | } |
| | | } |
| | | string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString(); |
| | | if (!wcsInfo.wcstask_barcode.Equals(rfidResult)) |
| | |
| | | wcsInfo.wcstask_dispatcherTime = DateTime.Now; |
| | | taskWCSinfoRepository.Update(wcsInfo, true); |
| | | } |
| | | |
| | | } |
| | | else if (logicValue == 4 || logicValue == 5) |
| | | { |
| | | //client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint); |
| | | //client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber); |
| | | |
| | | //æåæºæ§è¡ä¸ |
| | | if (wcsInfo.wcstask_state == TaskState.TaskState_Empty_In_PLC_Finished.ToString()) |
| | | return; |