From 5d663325953692c634046194bedd39b89ace41f0 Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期五, 10 一月 2025 18:55:01 +0800
Subject: [PATCH] 更新多个文件,优化逻辑和异常处理
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 8 ++
.gitignore | 1
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 25 ++++++++
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 31 ++++++----
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs | 54 ++++++++++++++++-
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs | 50 ++++++++--------
6 files changed, 126 insertions(+), 43 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1e65336..6dbb17b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1652,3 +1652,4 @@
/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.csproj.CopyComplete
/Code Management/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/copilot-chat/bef6627e/sessions/22de66c6-d93f-400b-aaa1-cc12e218c2e7
/Code Management/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/copilot-chat/bef6627e/sessions/36708593-3f69-4656-815a-651b3ad17c7d
+*.xml
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
index 5c5bace..8b31e8c 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
@@ -47,34 +47,36 @@
{
try
{
- // 灏� JSON 瀛楃涓茶浆鎹负瀛楀吀
- var parameters = JsonConvert.DeserializeObject<Dictionary<string, object>>(requestJson);
-
- // 鍒涘缓涓�涓柊鐨勫瓧鍏革紝鎺掗櫎 RequestTime 鍜� SessionId
- var filteredParameters = parameters.Where(p => p.Key != "RequestTime" && p.Key != "SessionId").ToDictionary(p => p.Key, p => p.Value);
-
- string requestKey = $"{serviceAddress}:{JsonConvert.SerializeObject(filteredParameters)}";
-
- // 妫�鏌ヨ姹傛鏁板拰鏃堕棿闄愬埗
- if (requestTracker.TryGetValue(requestKey, out var requestInfo))
+ if (serviceAddress.Contains("http://c24-cellmi3:12020"))
{
- if (requestInfo.Count >= 5 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(10))
+ // 灏� JSON 瀛楃涓茶浆鎹负瀛楀吀
+ var parameters = JsonConvert.DeserializeObject<Dictionary<string, object>>(requestJson);
+
+ // 鍒涘缓涓�涓柊鐨勫瓧鍏革紝鎺掗櫎 RequestTime 鍜� SessionId
+ var filteredParameters = parameters.Where(p => p.Key != "RequestTime" && p.Key != "SessionId").ToDictionary(p => p.Key, p => p.Value);
+
+ string requestKey = $"{serviceAddress}:{JsonConvert.SerializeObject(filteredParameters)}";
+
+ // 妫�鏌ヨ姹傛鏁板拰鏃堕棿闄愬埗
+ if (requestTracker.TryGetValue(requestKey, out var requestInfo))
{
- // 濡傛灉璇锋眰娆℃暟瓒呰繃闄愬埗涓旀湭瓒呰繃10鍒嗛挓锛屾姏鍑哄紓甯�
- throw new InvalidOperationException("璇锋眰娆℃暟宸茶揪鍒伴檺鍒讹紝璇风◢鍚庡啀璇曘��");
+ if (requestInfo.Count >= 5 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(10))
+ {
+ // 濡傛灉璇锋眰娆℃暟瓒呰繃闄愬埗涓旀湭瓒呰繃10鍒嗛挓锛屾姏鍑哄紓甯�
+ throw new InvalidOperationException("璇锋眰娆℃暟宸茶揪鍒伴檺鍒讹紝璇风◢鍚庡啀璇曘��");
+ }
+ }
+
+ // 鏇存柊璇锋眰璺熻釜淇℃伅
+ if (requestTracker.ContainsKey(requestKey))
+ {
+ requestTracker[requestKey] = (requestInfo.Count + 1, DateTime.Now);
+ }
+ else
+ {
+ requestTracker[requestKey] = (1, DateTime.Now);
}
}
-
- // 鏇存柊璇锋眰璺熻釜淇℃伅
- if (requestTracker.ContainsKey(requestKey))
- {
- requestTracker[requestKey] = (requestInfo.Count + 1, DateTime.Now);
- }
- else
- {
- requestTracker[requestKey] = (1, DateTime.Now);
- }
-
string result = string.Empty;
using (HttpContent httpContent = new StringContent(requestJson))
{
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index 5470af5..31378ac 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -604,8 +604,12 @@
// 灏嗕慨鏀瑰悗鐨勬暟缁剎閲嶆柊鎷兼帴鎴愬瓧绗︿覆锛屼綔涓烘柊鐨凞eviceProAddress
string DeviceProAddress = string.Join(".", x);
- // 浣跨敤conveyorLine鐨凜ommunicator瀵硅薄鐨刉rite鏂规硶锛屽皢value鍐欏叆鏂扮殑DeviceProAddress鍦板潃
- conveyorLine.Communicator.Write(DeviceProAddress, value);
+ var writeBool = conveyorLine.Communicator.Read<bool>(DeviceProAddress);
+ if (writeBool != value)
+ {
+ // 浣跨敤conveyorLine鐨凜ommunicator瀵硅薄鐨刉rite鏂规硶锛屽皢value鍐欏叆鏂扮殑DeviceProAddress鍦板潃
+ conveyorLine.Communicator.Write(DeviceProAddress, value);
+ }
}
#region 妫�娴嬬┖鐩樺疄鐩樹换鍔�
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 15e1663..9afc6ee 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -312,26 +312,33 @@
}
else
{
- //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
- if (router != null)
+ if ((task.NextAddress == ("002-021-001") || task.NextAddress == ("001-021-001")) && task.Roadway.Contains("JZ"))
{
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
- if (device != null)
+ return task;
+ }
+ else
+ {
+ //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
+ if (router != null)
{
- CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
- if (conveyorLine.IsOccupiedx(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
+ if (device != null)
{
- return task;
+ CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+ if (conveyorLine.IsOccupiedx(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
+ {
+ return task;
+ }
+ }
+ else
+ {
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
}
}
else
{
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
}
- }
- else
- {
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
}
}
return null;
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
index 1941906..d4776a2 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
@@ -100,13 +100,13 @@
var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
if (result.SerialNos.Count > 0)
{
- var stockHty = await SqlSugarHelper.DbWMS.Queryable<DtStockInfo>().IncludesAllFirstLayer().FirstAsync();
- if (stockHty != null)
+ var stock = await SqlSugarHelper.DbWMS.Queryable<DtStockInfo>().FirstAsync(x => x.PalletCode == palletCode);
+ if (stock != null)
{
- var parameterInfo = JsonConvert.DeserializeObject<List<ParameterInfo>>(stockHty.ParameterInfos).FirstOrDefault(y => y.Description.Contains("鏃堕棿"));
+ var parameterInfo = JsonConvert.DeserializeObject<List<ParameterInfo>>(stock.ParameterInfos).FirstOrDefault(y => y.Description.Contains("鏃堕棿"));
if (parameterInfo == null) throw new Exception("");
- var outHours = (DateTime.Now - (stockHty.LinedProcessFeedbackTime == null ? stockHty.ModifyDate.Value : stockHty.LinedProcessFeedbackTime.ToDateTime())).TotalHours;
+ var outHours = (DateTime.Now - (stock.LinedProcessFeedbackTime == null ? stock.ModifyDate.Value : stock.LinedProcessFeedbackTime.ToDateTime())).TotalHours;
var isNG = outHours > parameterInfo.LowerSpecificationsLimit.ToDouble() && outHours < parameterInfo.UpperSpecificationsLimit.ToDouble();
var defectCode = string.Empty;
@@ -139,6 +139,52 @@
};
content = await _gingInOrOutInputService.GetOCVOutputAsync(outputDto);
}
+ else
+ {
+ var stockHty = await SqlSugarHelper.DbWMS.Queryable<DtStockInfo_Hty>().Where(x => x.PalletCode == palletCode).OrderByDescending(x => x.CreateDate).FirstAsync();
+ if (stockHty != null)
+ {
+ var parameterInfo = JsonConvert.DeserializeObject<List<ParameterInfo>>(stockHty.ParameterInfos).FirstOrDefault(y => y.Description.Contains("鏃堕棿"));
+ if (parameterInfo == null) throw new Exception("");
+
+ var outHours = (DateTime.Now - (stockHty.LinedProcessFeedbackTime == null ? "2025-01-08 15:59:34.310".ToDateTime() : stockHty.LinedProcessFeedbackTime.ToDateTime())).TotalHours;
+ var isNG = outHours > parameterInfo.LowerSpecificationsLimit.ToDouble() && outHours < parameterInfo.UpperSpecificationsLimit.ToDouble();
+
+ var defectCode = string.Empty;
+ if (!isNG) defectCode = "TQCK";
+ var outputDto = new AgingOutputDto
+ {
+ OpFlag = 1,
+ Software = area.Spare3,
+ EquipmentCode = area.Spare2,
+ TrayBarcode = palletCode,
+ SerialNos = result.SerialNos.Select(x => new SerialNoOutDto
+ {
+ SlotNo = x.PositionNo,
+ SerialNo = x.SerialNo,
+ SerialNoResult = true, //isNG,
+ ParameterInfo = new List<ParameterInfoOutput> {
+ new ParameterInfoOutput() {
+ Value = outHours.ToString(),
+ ParameterCode =parameterInfo.ParameterCode,
+ ParameterDesc = parameterInfo.Description,
+ ParameterResult = "OK", //isNG.ToString(),
+ TargetValue = parameterInfo.TargetValue,
+ LowerLimit = parameterInfo.LowerSpecificationsLimit,
+ UpperLimit = parameterInfo.UpperSpecificationsLimit,
+ DefectCode = defectCode,
+ UOMCode = parameterInfo.UOMCode,
+ }
+ }
+ }).ToList()
+ };
+ content = await _gingInOrOutInputService.GetOCVOutputAsync(outputDto);
+ }
+ else
+ {
+ content.Error("鏉�鏉�鏉�");
+ }
+ }
}
else
{
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 1864fd5..4962235 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -186,6 +186,29 @@
// 缁勭洏淇℃伅
// 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
+
+ if (!result.Success)
+ {
+ var taskNG = new Dt_Task
+ {
+ CurrentAddress = input.Position,
+ Grade = 1,
+ Roadway = input.Roadways,
+ TargetAddress = stationManager.stationNGLocation,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = stationManager.stationNGChildCode,
+ OrderNo = null,
+ PalletCode = input.PalletCode,
+ SourceAddress = stationManager.stationLocation,
+ TaskState = (int)TaskInStatusEnum.Line_InFinish,
+ TaskType = (int)TaskOutboundTypeEnum.InToOut,
+ TaskNum = await BaseDal.GetTaskNo(),
+ Creater = "Systeam"
+ };
+ return taskNG;
+ }
+
if (result.SerialNos.Count <= 0)
{
ConsoleHelper.WriteErrorLine(result.MOMMessage);
@@ -218,7 +241,7 @@
}
// 澶勭悊寮傚父鐢佃姱鎯呭喌
- var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList();
+ var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList();
if (serialNosError.Count > 0)
{
if (stationManager.stationType != 3)
--
Gitblit v1.9.3