From 257d09aff7ec7b858b037607869d23ec61ac75bc Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期二, 19 八月 2025 09:03:49 +0800
Subject: [PATCH] 1
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs | 69 ++++++++++++++++++++--------------
1 files changed, 40 insertions(+), 29 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
index f0bb5e2..e82882e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
@@ -115,20 +115,21 @@
}
if (task.PalletCode!= agvCallbackBox.ContainerCode)
{
- string Address = task.CurrentAddress switch
+ string Address = task?.CurrentAddress switch
{
"5206" => "5105",
"5212" => "5111",
"5218" => "5117",
"8005" => "8001",
"5135" => "5236",
+ _ => throw new Exception("鏈壘鍒板湴鍧�淇℃伅"),
};
AgvCTUCancelDTO agvCTUCancel=new AgvCTUCancelDTO()
{
ForceCancel="1",
MatterArea= task.CurrentAddress,
TaskCode=task.AgvTaskNum,
- ReqCode = DateTime.Now.ToString("yyyyMMddHHmmss") + task.AgvTaskNum,
+ ReqCode = DateTime.Now.ToString("yyMMddHHmmss") + task.AgvTaskNum,
ReqTime= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
};
WebResponseContent content = _taskService.AgvBoxApplyPass(agvCTUCancel);
@@ -172,17 +173,11 @@
{
if (agvUpdateModel == null) throw new Exception("鏈幏鍙栧埌璇锋眰鍙傛暟");
agvResponseContent.ReqCode = agvUpdateModel.ReqCode;
- var task = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum);
- //鏄惁瀛樺湪杈撻�佺嚎浣撳緟AGV鎼繍浠诲姟
- var taskExecutes = _taskRepository.QueryData(x => x.NextAddress == task.CurrentAddress && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.TaskType == TaskTypeEnum.InProduct.ObjToInt());
- var taskExecutesFL = _taskRepository.QueryData(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode=="AGV_FL" && !string.IsNullOrEmpty(x.DeviceCode));
- if (task == null) throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟鍙枫�恵agvUpdateModel.TaskCode}銆�");
-
+ var task = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum) ?? throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟鍙枫�恵agvUpdateModel.TaskCode}銆�");
switch (agvUpdateModel.Method.ToUpper())
{
case "END":
- if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutEmpty.ObjToInt()
- || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.OutProduct.ObjToInt())
+ if (task.TaskType.GetTaskTypeGroup()==TaskTypeGroup.OutbondGroup)
PutFinish(task.NextAddress);
_taskService.TaskCompleted(task.TaskNum);
break;
@@ -190,27 +185,16 @@
//鏇存敼鎴愬搧鍏ュ簱AGV鍙栬揣浠诲姟鐘舵��
if (task.TaskType == TaskTypeEnum.InProduct.ObjToInt() || task.TaskType == TaskTypeEnum.InProductBack.ObjToInt())
{
- //for (int i = 0; i < 100; i++)
- //{
- // task.TaskState = TaskStatusEnum.AGV_WaitToExecute.ObjToInt();
- // task.Remark = task.TaskState.ToString();
- // _taskRepository.UpdateData(task);
- // var taskOk = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum);
- // if (taskOk.TaskState==TaskStatusEnum.AGV_WaitToExecute.ObjToInt() || taskOk.Remark.Contains("320"))
- // {
- // agvResponseContent.Code = "0";
- // agvResponseContent.Message = ""+i;
- // break;
- // }
- //}
+
//鏄惁瀛樺湪杈撻�佺嚎浣撳緟AGV鎼繍浠诲姟
+ var taskExecutes = _taskRepository.QueryData(x => x.NextAddress == task.CurrentAddress && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.TaskType == TaskTypeEnum.InProduct.ObjToInt());
if (taskExecutes.Count > 0)
{
string address = task.CurrentAddress switch
{
"5206" => "5105",
"5212" => "5111",
- "5218" => "5117",
+ "5218" => "5117"
};
//璋冪敤AGV棰勮皟搴︽帴鍙�
AgvScheduleTaskDTO agvScheduleTask = new AgvScheduleTaskDTO()
@@ -270,7 +254,8 @@
WebResponseContent content = _taskService.AgvBoxApplyPass(boxApplyPassDTO);
if (content.Status && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
{
- _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
+ task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+ _taskRepository.UpdateData(task);
}
else
{
@@ -288,13 +273,37 @@
else //鏇存敼杈呮枡鍙栬揣
{
//鏄惁瀛樺湪杈撻�佺嚎浣撳緟AGV鎼繍浠诲姟
+ var taskExecutesFL = _taskRepository.QueryData(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == "AGV_FL" && !string.IsNullOrEmpty(x.DeviceCode));
if (taskExecutesFL.Count > 0)
{
//璋冪敤AGV棰勮皟搴︽帴鍙�
AgvScheduleTaskDTO agvScheduleTask = new AgvScheduleTaskDTO()
{
PositionCode = "8001",
- NextTask = "90",
+ NextTask = "60",
+ UseableLayers = "1",
+ CacheCount = "1",
+ Update = "0",
+ AgvTyp = "10",
+ PreTaskQty = "1",
+ ReqCode = Guid.NewGuid().ToString().Replace("-", ""),
+ ReqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+ };
+ WebResponseContent contentFL = _taskService.AgvPreScheduleTask(agvScheduleTask);
+ if (!contentFL.Status)
+ {
+ agvResponseContent.Code = "1";
+ agvResponseContent.Message = contentFL.Message;
+ return agvResponseContent;
+ }
+ }
+ else //绾夸綋鏃犱换鍔�
+ {
+ //璋冪敤AGV棰勮皟搴︽帴鍙�
+ AgvScheduleTaskDTO agvScheduleTask = new AgvScheduleTaskDTO()
+ {
+ PositionCode = "8001",
+ NextTask = "15",
UseableLayers = "1",
CacheCount = "1",
Update = "0",
@@ -323,7 +332,8 @@
WebResponseContent content = _taskService.AgvBoxApplyPass(boxApplyPassDTO);
if (content.Status && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
{
- _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
+ task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+ _taskRepository.UpdateData(task);
}
else
{
@@ -345,9 +355,10 @@
TakeFinish(task.CurrentAddress);
//_taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
}
- else if(task.TaskType == TaskTypeEnum.OutProduct.ObjToInt())
+ else if(task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
- _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
+ task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+ _taskRepository.UpdateData(task);
}
break;
default:
--
Gitblit v1.9.3