From 06e0e3b7d61e95902a6129de2490461cd0693e1d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 15 十月 2025 15:06:40 +0800
Subject: [PATCH] 新增异步方法并优化服务调用逻辑在多个数据库文件中进行了二进制文件的修改、删除和新增操作,可能涉及数据库内容的更新或重建。在 HttpsClient.cs文件中新增了 PostNotLimitAsync方法,用于发送支持 JSON 格式的异步 HTTP POST 请求,并记录请求和响应参数。在 AgingInOrOutInputService.cs文件中,将 HttpsClient.PostAsync替换为PostNotLimitAsync,以利用新方法的功能特性。同时删除了不再需要的注释代码。
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 48 insertions(+), 11 deletions(-)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index a6f959d..14d13d7 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -4,6 +4,7 @@
using Newtonsoft.Json;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common;
@@ -19,9 +20,12 @@
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoRepository;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
namespace WIDESEAWCS_TaskInfoService
{
@@ -94,7 +98,7 @@
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
// 鍒ゆ柇浠诲姟鐩爣鍦板潃鍜岃矾寰勬槸鍚︽弧瓒崇壒瀹氭潯浠�
- if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))|| task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm)
+ if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ")) || task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm)
{
// 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓
task.TaskState = (int)TaskOutStatusEnum.OutNew;
@@ -181,7 +185,7 @@
catch (Exception ex)
{
// 鎹曡幏寮傚父骞惰缃繑鍥炵粨鏋滀负閿欒淇℃伅
- content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
+ content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}杩斿洖鏁版嵁琛寋ex.StackTrace}");
}
// 杩斿洖缁撴灉
return content;
@@ -201,7 +205,15 @@
var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
if (hasTask != null)
{
- return content.OK("褰撳墠鎵樼洏瀛樺湪浠诲姟");
+ var taskExecuting = BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting);
+
+ if (taskExecuting != null)
+ {
+ taskExecuting.ExceptionMessage = "鏈帴鏀跺埌绾夸綋瀹屾垚淇″彿绯荤粺鍐呴儴鑷姩瀹屾垚";
+ Delete(taskExecuting);
+ }
+ ConsoleHelper.WriteErrorLine($"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆�");
+ QuartzLogger.WriteLogToFile($"浠诲姟寮傚父鏈畬鎴�", $"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆憑Environment.NewLine}");
}
var wmsIpAddrss = string.Empty;
@@ -245,6 +257,7 @@
}
catch (Exception ex)
{
+ QuartzLogger.WriteLogToFile($"鎺ユ敹浠诲姟寮傚父", $"鎵樼洏鍙凤細銆恵palletCode}銆戣姹傜偣浣嶏細銆恵sourceAddress}銆戝紓甯镐俊鎭�恵ex.Message}銆戝紓甯歌銆恵ex.StackTrace}銆�");
return WebResponseContent.Instance.Error(ex.Message);
}
}
@@ -266,7 +279,7 @@
/// <param name="deviceNo">璁惧缂栧彿</param>
/// <param name="currentAddress">褰撳墠鍦板潃</param>
/// <returns></returns>
- public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress,string Barcode)
+ public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress, string Barcode)
{
return BaseDal.QueryFirst(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)) && x.CurrentAddress == currentAddress && x.PalletCode == Barcode, TaskOrderBy);
}
@@ -308,9 +321,21 @@
/// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
/// </summary>
/// <param name="taskNum">浠诲姟鍙�</param>
+ /// <param name="Barcode">涓嬩竴鍦板潃</param>
+ /// <param name="currentAddress">涓嬩竴鍦板潃</param>
+ /// <returns></returns>
+ public Dt_Task QueryExecutingCurrentConveyorLineTask(int taskNum, string Barcode, string currentAddress)
+ {
+ return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.PalletCode == Barcode && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
+ }
+
+ /// <summary>
+ /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
+ /// </summary>
+ /// <param name="taskNum">浠诲姟鍙�</param>
/// <param name="nextAddress">涓嬩竴鍦板潃</param>
/// <returns></returns>
- public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress,string Barcode)
+ public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress, string Barcode)
{
return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
}
@@ -323,7 +348,7 @@
/// <returns></returns>
public Dt_Task QueryExecutingConveyorLineTask(string nextAddress, string Barcode)
{
- return BaseDal.QueryFirst(x => (x.NextAddress == nextAddress||x.TargetAddress==nextAddress) && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
+ return BaseDal.QueryFirst(x => x.PalletCode == Barcode && (x.NextAddress == nextAddress || x.TargetAddress == nextAddress) && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
}
/// <summary>
@@ -582,9 +607,15 @@
// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
+
+ QuartzLogger.WriteLogToFile($"Info_鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
+
+
// 妫�鏌ョ姸鎬佸苟杩斿洖
if (!content.Status)
+ {
return content;
+ }
// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
@@ -679,7 +710,7 @@
task.ModifyDate = DateTime.Now;
task.Modifier = "System";
-
+
_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屾洿鏂板綋鍓嶄綅缃�恵oldCurrentPos} ----> {task.CurrentAddress}銆戝拰涓嬩竴浣嶇疆銆恵oldNextPos} ----> {task.NextAddress}銆�");
return task;
@@ -722,7 +753,7 @@
var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(result)}銆憑Environment.NewLine}{Environment.NewLine}");
- if(result != null)
+ if (result != null)
{
content = JsonConvert.DeserializeObject<WebResponseContent>(result);
@@ -742,7 +773,7 @@
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
{
- if (!task.Roadway.Contains("GW"))
+ if (!task.Roadway.Contains("GW") && task.TaskType != (int)TaskOutboundTypeEnum.InToOut)
{
var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
@@ -808,7 +839,7 @@
catch (Exception ex)
{
content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�");
- QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.StackTrace}銆憑Environment.NewLine}{Environment.NewLine}");
+ QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.Message}銆憑Environment.NewLine}寮傚父淇℃伅銆恵ex.StackTrace}銆憑Environment.NewLine}");
}
QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
return content;
@@ -929,7 +960,13 @@
}
return wcsBasez + address;
}
-
+ public WebResponseContent Delete(Dt_Task task)
+ {
+ var taskHty = task.Adapt<Dt_Task_Hty>();
+ taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+ _taskHtyRepository.AddData(taskHty);
+ return base.DeleteData(task);
+ }
#region 閲嶅啓鏂规硶
public override WebResponseContent DeleteData(object[] key)
--
Gitblit v1.9.3