From 29cd467ba62b2bdf49c6546e78ae3ec809c4a723 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 19 六月 2025 17:50:28 +0800
Subject: [PATCH] 1
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 154 ++++++++++++++++++++-------------------------------
1 files changed, 61 insertions(+), 93 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index 6900e9a..b727fc4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -1,24 +1,15 @@
-锘縰sing HslCommunication;
-using Microsoft.AspNetCore.Components.Routing;
-using Quartz;
+锘縰sing Quartz;
using SqlSugar.Extensions;
-using System;
-using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Net;
-using System.Text;
-using System.Threading.Tasks;
using WIDESEA_Core.Enums;
-using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
-using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_QuartzJob.StackerCrane;
using WIDESEAWCS_Tasks.StackerCraneJob;
namespace WIDESEAWCS_Tasks
@@ -31,11 +22,11 @@
private readonly ITaskRepository _taskRepository;
private readonly IRouterService _routerService;
- public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService)
+ public CommonStackerCraneJob(ITaskService taskService, ITaskRepository taskRepository, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService)
{
_taskService = taskService;
- _taskExecuteDetailService = taskExecuteDetailService;
_taskRepository = taskRepository;
+ _taskExecuteDetailService = taskExecuteDetailService;
_routerService = routerService;
}
@@ -44,49 +35,38 @@
try
{
SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
- GetStackerObject getStackerObject = new GetStackerObject();
if (speStackerCrane != null)
{
- if (getStackerObject.StackerCraneTaskCompletedValue(speStackerCrane) == StackerCraneTaskCompleted.WorkCompleted)
+ GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane);
+ if (!getStackerObject.IsEventSubscribed)
{
- _taskService.StackCraneTaskCompleted(speStackerCrane.CurrentTaskNum);
- speStackerCrane.SetValue(StackerCraneDBName.WorkType, 2);
+ getStackerObject.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
}
- else
+
+ getStackerObject.CheckStackerCraneTaskCompleted();//妫�娴嬪爢鍨涙満浠诲姟瀹屾垚浜嬩欢
+
+ if (getStackerObject.StackerCraneStatusValue == StackerCraneStatus.Ready)
{
- if (getStackerObject.StackerCraneAutoStatusValue(speStackerCrane) == StackerCraneAutoStatus.Automatic && getStackerObject.StackerCraneStatusValue(speStackerCrane) == StackerCraneStatus.Ready)
+ Dt_Task? task = GetTask(speStackerCrane);
+ if (task != null)
{
- if (getStackerObject.StackerCraneWorkStatusValue(speStackerCrane) == StackerCraneWorkStatus.Standby)
+ bool sendFlag = true;
+ //if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+ //{
+ // //鍚慦MS鐢宠鍑哄叆搴撳彛鏄惁鏈夌┖鎵樼洏
+ // sendFlag = false;
+ //}
+ if (sendFlag)
{
- Dt_Task? task = GetTask(speStackerCrane);
- if (task != null)
+ StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
+ if (stackerCraneTaskCommand != null)
{
- if (task.TaskType == TaskTypeGroup.OutbondGroup.ObjToInt())
+ sendFlag = getStackerObject.SendCommand(stackerCraneTaskCommand);
+ if (sendFlag)
{
- //todo鍑哄簱鍒ゆ柇璐ф灦鐘舵��
- StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
- if (stackerCraneTaskCommand != null)
- {
- bool sendFlag = speStackerCrane.SendCommand(stackerCraneTaskCommand);
- if (sendFlag)
- {
- speStackerCrane.LastTaskType = task.TaskType;
- _taskService.UpdateTaskStatusToNext(task.TaskNum);
- }
- }
- }
- else
- {
- StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
- if (stackerCraneTaskCommand != null)
- {
- bool sendFlag = speStackerCrane.SendCommand(stackerCraneTaskCommand);
- if (sendFlag)
- {
- speStackerCrane.LastTaskType = task.TaskType;
- _taskService.UpdateTaskStatusToNext(task.TaskNum);
- }
- }
+ speStackerCrane.SetValue(StackerCraneDBName.CommandSend, 1);//鍚姩鍛戒护
+ speStackerCrane.LastTaskType = task.TaskType;
+ _taskService.UpdateTaskStatusToNext(task.TaskNum);
}
}
}
@@ -96,7 +76,7 @@
}
catch (Exception ex)
{
- //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
+ //WriteLog.GetLog($"鍫嗗灈鏈哄紓甯�").Write($"{nameof(CommonStackerCraneJob)}:{ex.Message}", "鍫嗗灈鏈哄紓甯�");
}
return Task.CompletedTask;
}
@@ -106,16 +86,15 @@
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
- private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
+ private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, StackerCraneTaskCompletedEventArgs e)
{
SpeStackerCrane? speStackerCrane = sender as SpeStackerCrane;
if (speStackerCrane != null)
{
- if (speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
+ if (speStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CommandSend) != 2)
{
- Console.Out.WriteLine("TaskCompleted" + e.TaskNum);
- _taskService.StackCraneTaskCompleted(e.TaskNum);
- speStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
+ speStackerCrane.SetValue(StackerCraneDBName.CommandSend, 2);
+ _taskService.StackCraneTaskCompleted(e.TaskNum, "鍫嗗灈鏈�");
}
}
}
@@ -127,15 +106,21 @@
/// <returns></returns>
private Dt_Task? GetTask(SpeStackerCrane speStackerCrane)
{
- Dt_Task task;
+ Dt_Task? task;
+ string DeviceCode = speStackerCrane.DeviceCode.Contains("CP") ? "CP" : "FL";
if (speStackerCrane.LastTaskType == null)
{
- task = _taskService.QueryStackerCraneTask(speStackerCrane.DeviceCode);
+ task = _taskService.QueryStackerCraneTask(DeviceCode);
}
else
{
+ if (speStackerCrane.LastTaskType == TaskTypeEnum.Relocation.ObjToInt())
+ {
+ task = _taskService.QueryStackerCraneTask(DeviceCode);
+ if (task != null) return task;
+ }
bool flag = speStackerCrane.LastTaskType == TaskTypeEnum.Inbound.ObjToInt() || speStackerCrane.LastTaskType == TaskTypeEnum.PalletInbound.ObjToInt();
- if (flag==false)
+ if (flag == false)
{
task = _taskService.QueryStackerCraneInTask(speStackerCrane.DeviceCode);
if (task == null)
@@ -146,6 +131,10 @@
else
{
task = _taskService.QueryStackerCraneOutTask(speStackerCrane.DeviceCode);
+ if (task == null)
+ {
+ task = _taskService.QueryStackerCraneInTask(speStackerCrane.DeviceCode);
+ }
}
}
return task;
@@ -181,48 +170,26 @@
}
return null;
}
-
- public bool SendCommands(StackerCraneTaskCommand command,SpeStackerCrane speStackerCrane)
- {
- try
- {
- speStackerCrane.SetValue(StackerCraneDBName.TaskNum, command.TaskNum);
- speStackerCrane.SetValue(StackerCraneDBName.StartRow, command.StartRow);
- speStackerCrane.SetValue(StackerCraneDBName.StartColumn, command.StartColumn);
- speStackerCrane.SetValue(StackerCraneDBName.StartLayer, command.StartLayer);
- speStackerCrane.SetValue(StackerCraneDBName.EndRow, command.EndRow);
- speStackerCrane.SetValue(StackerCraneDBName.EndColumn, command.EndColumn);
- speStackerCrane.SetValue(StackerCraneDBName.EndLayer, command.EndLayer);
- speStackerCrane.SetValue(StackerCraneDBName.Barcode, command.Barcode);
- speStackerCrane.SetValue(StackerCraneDBName.WorkType, command.WorkType);
- speStackerCrane.SetValue(StackerCraneDBName.TrayType, command.TrayType);
- return true;
- }
- catch (Exception ex)
- {
- return false;
- }
- }
- /// <summary>
- /// 浠诲姟瀹炰綋杞崲鎴愬懡浠odel
- /// </summary>
- /// <param name="task">浠诲姟瀹炰綋</param>
- /// <returns></returns>
- /// <exception cref="Exception"></exception>
- public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task)
+ /// <summary>
+ /// 浠诲姟瀹炰綋杞崲鎴愬懡浠odel
+ /// </summary>
+ /// <param name="task">浠诲姟瀹炰綋</param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task)
{
StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
stackerCraneTaskCommand.Barcode = task.PalletCode;
stackerCraneTaskCommand.TaskNum = task.TaskNum;
- stackerCraneTaskCommand.WorkType = 1;
stackerCraneTaskCommand.TrayType = 0;
if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
{
+ stackerCraneTaskCommand.WorkType = 1;
if (task.SourceAddress != null && task.TargetAddress != null)
{
string[] sourceCodes = task.SourceAddress.Split("-");
- if (sourceCodes.Length == 3)
+ if (sourceCodes.Length == 5)
{
stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]);
stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]);
@@ -235,7 +202,7 @@
return null;
}
string[] targetCodes = task.TargetAddress.Split("-");
- if (targetCodes.Length == 3)
+ if (targetCodes.Length == 5)
{
stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]);
stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]);
@@ -256,10 +223,11 @@
}
else if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
{
+ stackerCraneTaskCommand.WorkType = 2;
if (task.SourceAddress != null && task.TargetAddress != null)
{
string[] targetCodes = task.TargetAddress.Split("-");
- if (targetCodes.Length == 3)
+ if (targetCodes.Length == 5)
{
stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]);
stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]);
@@ -272,7 +240,7 @@
return null;
}
string[] sourceCodes = task.SourceAddress.Split("-");
- if (sourceCodes.Length == 3)
+ if (sourceCodes.Length == 5)
{
stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]);
stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]);
@@ -293,10 +261,11 @@
}
else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
{
+ stackerCraneTaskCommand.WorkType = 3;
if (task.SourceAddress != null && task.TargetAddress != null)
{
string[] targetCodes = task.TargetAddress.Split("-");
- if (targetCodes.Length == 3)
+ if (targetCodes.Length == 5)
{
stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]);
stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]);
@@ -309,7 +278,7 @@
return null;
}
string[] sourceCodes = task.SourceAddress.Split("-");
- if (sourceCodes.Length == 3)
+ if (sourceCodes.Length == 5)
{
stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]);
stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]);
@@ -329,6 +298,5 @@
}
return stackerCraneTaskCommand;
}
-
}
}
--
Gitblit v1.9.3