From 2ae5aa151f7b40a082e34aa7ed22b4b64edd1d3c Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 11 六月 2025 17:13:56 +0800
Subject: [PATCH] 修改堆垛机通讯协议及交互逻辑
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 118 ++++++++++++++++++++++-------------------------------------
1 files changed, 44 insertions(+), 74 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index b7ab9a6..d6a78b3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -17,24 +17,12 @@
using AutoMapper;
using Newtonsoft.Json;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Reflection;
-using System.Reflection.Emit;
-using System.Security.Policy;
-using System.Text;
-using System.Threading.Tasks;
using WIDESEA_Comm.Http;
using WIDESEA_Common.Log;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
-using WIDESEAWCS_Core.DB.Models;
-using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
@@ -44,6 +32,8 @@
using WIDESEAWCS_Core.Helper;
using WIDESEA_Core.Enums;
using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_DTO.TaskEnum;
+
namespace WIDESEAWCS_TaskInfoService
{
@@ -59,7 +49,7 @@
private Dictionary<string, OrderByType> _taskOrderBy = new()
{
- {nameof(Dt_Task.Grade),OrderByType.Desc },
+ {nameof(Dt_Task.Grade),OrderByType.Asc },
{nameof(Dt_Task.CreateDate),OrderByType.Asc},
};
@@ -111,6 +101,10 @@
{
_unitOfWorkManage.RollbackTran();
content = WebResponseContent.Instance.Error($"{ex.Message}");
+ }
+ finally
+ {
+ WriteLog.GetLog("鎺ユ敹浠诲姟").Write($"鎺ユ敹鍙傛暟锛歿JsonConvert.SerializeObject(taskDTOs)}{Environment.NewLine}鎶ユ枃锛歿JsonConvert.SerializeObject(content)}", "鎺ユ敹浠诲姟");
}
return content;
}
@@ -205,20 +199,9 @@
/// <param name="deviceNo">璁惧缂栧彿</param>
/// <param name="currentAddress">褰撳墠鍦板潃</param>
/// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
- public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "")
+ public Dt_Task? QueryStackerCraneTask(string deviceNo, string currentAddress = "")
{
- Dt_Task taskGrade = BaseDal.QueryFirst(x => x.Grade == 0, TaskOrderBy);
- if (taskGrade != null)
- {
- return taskGrade;
- }
- else
- {
- if (string.IsNullOrEmpty(currentAddress))
- return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskTypeEnums.Contains(x.TaskType) && (x.TaskStatus == (int)TaskInStatusEnum.InNew || x.TaskStatus == (int)TaskOutStatusEnum.OutNew)), TaskOrderBy);
- else
- return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskTypeEnums.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
- }
+ return BaseDal.QueryFirst(x => true, TaskOrderBy);
}
/// <summary>
@@ -229,7 +212,7 @@
/// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
public Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "")
{
- Dt_Task taskGrade = BaseDal.QueryFirst(x => x.Grade == 0, TaskOrderBy);
+ Dt_Task taskGrade = BaseDal.QueryFirst(x =>true, TaskOrderBy);
if (taskGrade != null)
{
return taskGrade;
@@ -262,20 +245,6 @@
}
}
/// <summary>
- /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍏ュ簱绫诲瀷鐨勬柊澧炵殑浠诲姟
- /// </summary>
- /// <param name="deviceNo">璁惧缂栧彿</param>
- /// <param name="currentAddress">褰撳墠鍦板潃</param>
- /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
- public Dt_Task QueryStackerCraneRelocationTask(string deviceNo, string currentAddress = "")
- {
- if (string.IsNullOrEmpty(currentAddress))
- return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
- else
- return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.InNew && x.CurrentAddress == currentAddress, TaskOrderBy);
- }
-
- /// <summary>
/// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟
/// </summary>
/// <param name="deviceNo">璁惧缂栧彿</param>
@@ -283,7 +252,7 @@
/// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
public Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = "")
{
- Dt_Task taskGrade = BaseDal.QueryFirst(x => x.Grade == 0, TaskOrderBy);
+ Dt_Task taskGrade = BaseDal.QueryFirst(x => true, TaskOrderBy);
if (taskGrade != null)
{
return taskGrade;
@@ -325,7 +294,7 @@
/// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns>
public List<Dt_Task> QueryStackerCraneOutTasks(string deviceNo, string outStationCodes)
{
- List<Dt_Task> taskGrade = BaseDal.QueryData(x => x.Grade == 0, TaskOrderBy);
+ List<Dt_Task> taskGrade = BaseDal.QueryData(x => true, TaskOrderBy);
if (taskGrade != null)
{
return taskGrade;
@@ -358,7 +327,7 @@
}
else if (task.TaskType == (int)TaskTypeEnum.Relocation)
{
- task.TaskStatus = (int)InTaskStatusEnum.RelocationException;
+ task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationException;
}
task.ExceptionMessage = message;
@@ -400,7 +369,7 @@
try
{
Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
- if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+ if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�!");
return UpdateTaskStatusToNext(task);
}
catch (Exception ex)
@@ -431,7 +400,7 @@
}
else if (task.TaskType == (int)TaskTypeEnum.Relocation)
{
- task.TaskStatus = (int)InTaskStatusEnum.RelocationExecuting;
+ task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationExecuting;
}
else
{
@@ -512,17 +481,16 @@
Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+ task.ModifyDate = DateTime.Now;
+ task.Modifier = "WMS";
if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
{
_unitOfWorkManage.BeginTran();
task.TaskStatus = (int)OutTaskStatusEnum.OutFinish;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.DeleteData(task);
- _task_HtyService.AddTaskHty(task);
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
if(App.User.UserId > 0)
{
+ task.Modifier = "System";
var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "浠诲姟瀹屾垚");
if (response.Status)
{
@@ -535,6 +503,8 @@
return content = WebResponseContent.Instance.Error(response.Message);
}
}
+ BaseDal.DeleteData(task);
+ _task_HtyService.AddTaskHty(task);
_unitOfWorkManage.CommitTran();
return content.OK();
}
@@ -542,13 +512,10 @@
{
_unitOfWorkManage.BeginTran();
task.TaskStatus = (int)InTaskStatusEnum.InFinish;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.DeleteData(task);
- _task_HtyService.AddTaskHty(task);
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
if (App.User.UserId > 0)
{
+ task.Modifier = "System";
var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "浠诲姟瀹屾垚");
if (response.Status)
{
@@ -561,20 +528,19 @@
return content = WebResponseContent.Instance.Error(response.Message);
}
}
+ BaseDal.DeleteData(task);
+ _task_HtyService.AddTaskHty(task);
_unitOfWorkManage.CommitTran();
return content.OK();
}
else if (task.TaskType== (int)TaskTypeEnum.Relocation)
{
_unitOfWorkManage.BeginTran();
- task.TaskStatus = (int)InTaskStatusEnum.RelocationFinish;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.DeleteData(task);
- _task_HtyService.AddTaskHty(task);
+ task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationFinish;
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳畬鎴�");
if (App.User.UserId > 0)
{
+ task.Modifier = "System";
var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "浠诲姟瀹屾垚");
if (response.Status)
{
@@ -587,6 +553,8 @@
return content = WebResponseContent.Instance.Error(response.Message);
}
}
+ BaseDal.DeleteData(task);
+ _task_HtyService.AddTaskHty(task);
_unitOfWorkManage.CommitTran();
return content.OK();
}
@@ -602,7 +570,7 @@
}
finally
{
- WriteLog.GetLog("瀹屾垚浠诲姟").Write(JsonConvert.SerializeObject(content), "瀹屾垚浠诲姟");
+ WriteLog.GetLog("瀹屾垚浠诲姟").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}浠诲姟鍙凤細{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "瀹屾垚浠诲姟");
}
return content;
}
@@ -615,17 +583,18 @@
Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+ task.ModifyDate = DateTime.Now;
+ task.Modifier = "WMS";
if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
{
_unitOfWorkManage.BeginTran();
task.TaskStatus = (int)OutTaskStatusEnum.OutCancel;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.DeleteData(task);
- _task_HtyService.AddTaskHty(task);
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳彇娑�");
if (App.User.UserId > 0)
{
+ BaseDal.DeleteData(task);
+ _task_HtyService.AddTaskHty(task);
+ task.Modifier = "System";
var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "鍙栨秷浠诲姟");
if (response.Status)
{
@@ -634,6 +603,7 @@
}
else
{
+ UpdateTaskExceptionMessage(task.TaskNum, $"鍫嗗灈鏈轰换鍔″彇娑堝け璐�");
_unitOfWorkManage.RollbackTran();
return content = WebResponseContent.Instance.Error(response.Message);
}
@@ -645,13 +615,10 @@
{
_unitOfWorkManage.BeginTran();
task.TaskStatus = (int)InTaskStatusEnum.InCancel;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.DeleteData(task);
- _task_HtyService.AddTaskHty(task);
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳彇娑�");
if (App.User.UserId > 0)
{
+ task.Modifier = "System";
var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "鍙栨秷浠诲姟");
if (response.Status)
{
@@ -660,24 +627,24 @@
}
else
{
+ UpdateTaskExceptionMessage(task.TaskNum, $"鍫嗗灈鏈轰换鍔″彇娑堝け璐�");
_unitOfWorkManage.RollbackTran();
return content = WebResponseContent.Instance.Error(response.Message);
}
}
+ BaseDal.DeleteData(task);
+ _task_HtyService.AddTaskHty(task);
_unitOfWorkManage.CommitTran();
return content.OK();
}
else if (task.TaskType == (int)TaskTypeEnum.Relocation)
{
_unitOfWorkManage.BeginTran();
- task.TaskStatus = (int)InTaskStatusEnum.RelocationCancel;
- task.ModifyDate = DateTime.Now;
- task.Modifier = "System";
- BaseDal.DeleteData(task);
- _task_HtyService.AddTaskHty(task);
+ task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationCancel;
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳彇娑�");
if (App.User.UserId > 0)
{
+ task.Modifier = "System";
var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "鍙栨秷浠诲姟");
if (response.Status)
{
@@ -686,10 +653,13 @@
}
else
{
+ UpdateTaskExceptionMessage(task.TaskNum, $"鍫嗗灈鏈轰换鍔″彇娑堝け璐�");
_unitOfWorkManage.RollbackTran();
return content = WebResponseContent.Instance.Error(response.Message);
}
}
+ BaseDal.DeleteData(task);
+ _task_HtyService.AddTaskHty(task);
_unitOfWorkManage.CommitTran();
return content.OK();
}
@@ -705,7 +675,7 @@
}
finally
{
- WriteLog.GetLog("鍙栨秷浠诲姟").Write(JsonConvert.SerializeObject(content), "鍙栨秷浠诲姟");
+ WriteLog.GetLog("鍙栨秷浠诲姟").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}浠诲姟鍙凤細{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "鍙栨秷浠诲姟");
}
}
/// <summary>
--
Gitblit v1.9.3