| | |
| | | #region << ç æ¬ 注 é >> |
| | | |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | |
| | | // å®ä¹çº¿ä½å®çå
¥åºè¯·æ±çå°ååä»»å¡ç±»å |
| | | var requests = new Dictionary<string, string> |
| | | { |
| | | { "DB1002.293.0", "ZJXL-WLX002" }, |
| | | { "DB1002.1093.0", "ZJXL-WLX002" }, |
| | | { "DB1002.1493.0", "FJXL-WLX002" } |
| | | }; |
| | | |
| | | foreach (var request in requests) |
| | | // å®ä¹çº¿ä½ç©ºçåæµè¯·æ±çå°ååä»»å¡ç±»å |
| | | var requestsKP = new Dictionary<string, string> |
| | | { |
| | | var isDownRequest = conveyorLine.Communicator.Read<bool>(request.Key); |
| | | if (!isDownRequest) |
| | | { |
| | | continue; |
| | | } |
| | | { "DB1002.1893.0", "ZJXL-KPHLX001" }, |
| | | { "DB1002.2293.0", "FJXL-KPHLX001" } |
| | | }; |
| | | |
| | | string fromAdd = request.Value; |
| | | string taskType = request.Value.Contains("ZJXL") ? "æ£æ" : "è´æ"; |
| | | // å¤çå®çå
¥åºè¯·æ± |
| | | ProcessRequests(conveyorLine, requests, "ä¸çº¿è¯·æ±å
¥åº"); |
| | | |
| | | // æ¥è¯¢æ¯å¦åå¨å·²çæçæ°ä»»å¡ |
| | | var task = _taskRepository.QueryFirst(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InNew); |
| | | if (task != null) |
| | | { |
| | | ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}ä¸çº¿è¯·æ±å
¥åº,ä»»å¡å·²çæåå¨ï¼ç¨åéè¯......"); |
| | | continue; |
| | | } |
| | | |
| | | // æ¥è¯¢ä»»å¡ç±»å对åºçczTask |
| | | DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType); |
| | | if (czTask == null) |
| | | { |
| | | ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}ä¸çº¿è¯·æ±å
¥åº,{taskType}ä»»å¡ä¸åå¨ï¼ç¨åéè¯......"); |
| | | continue; |
| | | } |
| | | |
| | | // å建æ°çä»»å¡å¹¶æ·»å å°ä»»å¡ä»åº |
| | | task = new Dt_Task() |
| | | { |
| | | TaskNum = _taskService.GetTaskNum(), |
| | | CreateDate = DateTime.Now, |
| | | Creater = "system", |
| | | CurrentAddress = fromAdd, |
| | | SourceAddress = fromAdd, |
| | | TaskState = (int)TaskInStatusEnum.InNew, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | Grade = 1, |
| | | PalletCode = czTask.TaskProductCode, |
| | | TargetAddress = czTask.TaskEndAddress, |
| | | Roadway = $"{taskType}AGV", |
| | | WMSId = czTask.Id, |
| | | Remark = czTask.TaskOrderNo |
| | | }; |
| | | _taskRepository.AddData(task); |
| | | ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}ä¸çº¿è¯·æ±å
¥åº,ä»»å¡å·²çæï¼çå¾
æ§è¡......"); |
| | | } |
| | | // å¤ç空çåæµè¯·æ± |
| | | ProcessKpRequests(conveyorLine, requestsKP); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | private void ProcessRequests(CommonConveyorLine conveyorLine, Dictionary<string, string> requests, string requestType) |
| | | { |
| | | foreach (var request in requests) |
| | | { |
| | | var isDownRequest = conveyorLine.Communicator.Read<bool>(request.Key); |
| | | if (!isDownRequest) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | string fromAdd = request.Value; |
| | | string taskType = request.Value.Contains("ZJXL") ? "æ£æ" : "è´æ"; |
| | | |
| | | // æ¥è¯¢æ¯å¦åå¨å·²çæçæ°ä»»å¡ |
| | | var task = _taskRepository.QueryFirst(x => x.SourceAddress == fromAdd && x.TaskState == (int)TaskInStatusEnum.InNew); |
| | | if (task != null) |
| | | { |
| | | ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},ä»»å¡å·²çæåå¨ï¼ç¨åéè¯......"); |
| | | continue; |
| | | } |
| | | |
| | | // æ¥è¯¢ä»»å¡ç±»å对åºçczTask |
| | | DtCZTask czTask = _taskCZRepository.QueryFirst(x => x.TaskType == taskType); |
| | | if (czTask == null) |
| | | { |
| | | ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},{taskType}ä»»å¡ä¸åå¨ï¼ç¨åéè¯......"); |
| | | continue; |
| | | } |
| | | |
| | | // åå»ºå¹¶æ·»å æ°ä»»å¡å°ä»»å¡ä»åº |
| | | task = CreateTask(fromAdd, czTask.TaskEndAddress, czTask.TaskOrderNo, czTask.TaskProductCode, taskType); |
| | | _taskRepository.AddData(task); |
| | | ConsoleHelper.WriteInfoLine($"{nameof(CommonConveyorLineJob)}: {taskType}{requestType},ä»»å¡å·²çæï¼çå¾
æ§è¡......"); |
| | | } |
| | | } |
| | | |
| | | private void ProcessKpRequests(CommonConveyorLine conveyorLine, Dictionary<string, string> requestsKP) |
| | | { |
| | | foreach (var request in requestsKP) |
| | | { |
| | | var isDownRequest = conveyorLine.Communicator.Read<bool>(request.Key); |
| | | if (!isDownRequest) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | string fromAdd = request.Value; |
| | | string taskType = request.Value.Contains("ZJXL") ? "æ£æ" : "è´æ"; |
| | | |
| | | // æ ¹æ®ä»»å¡ç±»åç¡®å®è¯·æ±å°å |
| | | (string upRequest, string gmRequest, string gmState) = GetRequestAddresses(taskType); |
| | | |
| | | var isUpRequest = conveyorLine.Communicator.Read<bool>(upRequest); |
| | | var isGMRequest = conveyorLine.Communicator.Read<bool>(gmRequest); |
| | | var isGMState = conveyorLine.Communicator.Read<int>(gmState); |
| | | |
| | | // æ ¹æ®æ¡ä»¶å建任å¡å¯¹è±¡ |
| | | Dt_Task task = null; |
| | | if (isUpRequest) |
| | | { |
| | | task = CreateTask(fromAdd, "WaitBind", "æ£æç©æµçº¿002çä¸æè¯·æ±", "空æç", taskType); |
| | | } |
| | | else if (isGMRequest && isGMState == 1) |
| | | { |
| | | task = CreateTask(fromAdd, "WaitBind", "æ£æç©æµçº¿002çä¸æè¯·æ±", "éè空æç", taskType); |
| | | } |
| | | |
| | | // æ·»å ä»»å¡å°ä»»å¡è¡¨ |
| | | if (task != null) |
| | | { |
| | | _taskRepository.AddData(task); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private (string upRequest, string gmRequest, string gmState) GetRequestAddresses(string taskType) |
| | | { |
| | | if (taskType == "æ£æ") |
| | | { |
| | | // ç©æµçº¿002çä¸æè¯·æ± |
| | | return ("DB1002.93.0", "DB1002.2493.0", "DB1002.2424.0"); |
| | | } |
| | | else |
| | | { |
| | | // ç©æµçº¿002çä¸æè¯·æ± |
| | | return ("DB1002.1293.0", "DB1002.2893.0", "DB1002.2824.0"); |
| | | } |
| | | } |
| | | |
| | | // è¾
婿¹æ³ï¼å建任å¡å¯¹è±¡ |
| | | private Dt_Task CreateTask(string currentAddress, string targetAddress, string remark, string palletCode, string taskType) |
| | | { |
| | | return new Dt_Task |
| | | { |
| | | TaskNum = _taskService.GetTaskNum(), |
| | | CreateDate = DateTime.Now, |
| | | Creater = "system", |
| | | CurrentAddress = currentAddress, |
| | | SourceAddress = currentAddress, |
| | | TaskState = (int)TaskInStatusEnum.InNew, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | Grade = 1, |
| | | PalletCode = palletCode, |
| | | TargetAddress = targetAddress, |
| | | NextAddress = targetAddress, |
| | | Roadway = $"{taskType}AGV", |
| | | WMSId = 0, |
| | | Remark = remark |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | |
| | | GC.SuppressFinalize(this); |
| | | } |
| | | } |
| | | } |
| | | } |