From 695571c6009ecbc12e7d4a4fb147df7967a1260e Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 07 七月 2025 20:21:19 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs | 121 +++++++++++++++++++++++++++++++---------
1 files changed, 94 insertions(+), 27 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 4003aba..5ae5962 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"
@@ -14,6 +14,7 @@
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_Tasks;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
using static Dm.net.buffer.ByteArrayBuffer;
namespace WIDESEAWCS_Server.Controllers
@@ -114,13 +115,14 @@
}
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()
{
@@ -171,11 +173,7 @@
{
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());
- 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":
@@ -188,27 +186,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()
@@ -268,7 +255,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
{
@@ -283,13 +271,84 @@
_taskRepository.UpdateData(task);
}
}
+ 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 = "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",
+ 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;
+ }
+ }
+ //鑾峰彇璋冨叆鍙傛暟
+ AGVBoxApplyPassDTO boxApplyPassDTO = new AGVBoxApplyPassDTO()
+ {
+ ReqCode = Guid.NewGuid().ToString().Replace("-", ""),
+ ReqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+ TaskCode = task.AgvTaskNum
+ };
+ boxApplyPassDTO.Type = "1";
+ //璇锋眰鏂欑鍥炶皟鎺ュ彛
+ WebResponseContent content = _taskService.AgvBoxApplyPass(boxApplyPassDTO);
+ if (content.Status && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+ {
+ task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+ _taskRepository.UpdateData(task);
+ }
+ else
+ {
+ task.ExceptionMessage = content.Message;
+ _taskService.UpdateTask(task, TaskStatusEnum.Exception);
+ }
+ }
break;
case "APPLYFROMAGV":
//鏇存敼鎴愬搧鍑篈GV鏀捐揣浠诲姟鐘舵��
- if (task.TaskType == TaskTypeEnum.OutProduct.ObjToInt())
- {
+ //if (task.TaskType == TaskTypeEnum.OutProduct.ObjToInt())
+ //{
_taskService.UpdateTask(task, TaskStatusEnum.AGV_WaitToExecute);
- }
+ //}
break;
case "OUTBIN":
if (task.TaskType == TaskTypeEnum.InProduct.ObjToInt() || task.TaskType == TaskTypeEnum.InProductBack.ObjToInt())
@@ -299,7 +358,8 @@
}
else if(task.TaskType == TaskTypeEnum.OutProduct.ObjToInt())
{
- _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
+ task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+ _taskRepository.UpdateData(task);
}
break;
default:
@@ -374,7 +434,7 @@
/// <param name="code"></param>
/// <returns></returns>
[HttpPost, HttpGet, Route("PutFinish"), AllowAnonymous]
- public WebResponseContent PutFinish(string code)
+ public WebResponseContent PutFinish(string code,string barCode="",string taskNum="")
{
try
{
@@ -390,8 +450,15 @@
}
OtherDevice otherDevice = (OtherDevice)device;
+
+ if (!barCode.IsNullOrEmpty() && !taskNum.IsNullOrEmpty())
+ {
+ otherDevice.SetValue(W_ConveyorLineFLDB.Barcode, barCode, stationManger.StationCode);
+ Thread.Sleep(500);
+ otherDevice.SetValue(W_ConveyorLineFLDB.TaskNum, taskNum, stationManger.StationCode);
+ Thread.Sleep(500);
+ }
otherDevice.SetValue(GroundStationDBName.W_PutFinish, true, stationManger.StationCode);
-
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
--
Gitblit v1.9.3