From 5e851678cc02257bbbd179446de36082430ca5bc Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 13 四月 2026 15:12:04 +0800
Subject: [PATCH] feat(MES): 添加Mes_Log扩展逻辑
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 81 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 78 insertions(+), 3 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 3dd7db2..1032614 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -101,10 +101,13 @@
try
{
List<Dt_Task> tasks = new List<Dt_Task>();
+ List<Dt_Task> duplicates = new List<Dt_Task>();
foreach (var item in taskDTOs)
{
- if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null)
+ Dt_Task existingTask = BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode);
+ if (existingTask != null)
{
+ duplicates.Add(existingTask);
continue;
}
Dt_Task task = _mapper.Map<Dt_Task>(item);
@@ -112,11 +115,15 @@
InitializeTaskOnReceive(task, item);
tasks.Add(task);
}
+ // TOOD: 杩欓噷娉ㄦ剰娣诲姞閿欒瑕佽繑鍥為敊璇�
BaseDal.AddData(tasks);
_taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "鎺ユ敹WMS浠诲姟");
- content = WebResponseContent.Instance.OK("鎴愬姛", tasks);
+ // 灏嗛噸澶嶄换鍔′俊鎭篃涓�骞惰繑鍥�
+ tasks.AddRange(duplicates);
+ var result = tasks;
+ content = WebResponseContent.Instance.OK("鎴愬姛", result);
}
catch (Exception ex)
{
@@ -637,6 +644,74 @@
{
return BaseDal.QueryFirst(x => x.TaskNum == taskNum);
}
+
+ /// <summary>
+ /// 鎺ユ敹WMS鎵嬪姩鍒涘缓鐨勪换鍔★紝鍒涘缓WCS浠诲姟
+ /// </summary>
+ /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
+ /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+ public WebResponseContent ReceiveManualTask([NotNull] List<WMSTaskDTO> taskDTOs)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ // 鏀堕泦閲嶅浠诲姟鐨勪俊鎭�
+ var duplicateTasks = new List<DuplicateTaskDto>();
+ // 鍊掑簭閬嶅巻锛屽畨鍏ㄥ垹闄ゅ苟鏀堕泦琚Щ闄ょ殑椤�
+ for (int i = taskDTOs.Count - 1; i >= 0; i--)
+ {
+ var item = taskDTOs[i];
+ var exists = BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode);
+ if (exists != null)
+ {
+ duplicateTasks.Add(new DuplicateTaskDto
+ {
+ TaskNum = exists.TaskNum,
+ PalletCode = exists.PalletCode,
+ TaskType = exists.TaskType,
+ TaskStatus = exists.TaskStatus
+ });
+ taskDTOs.RemoveAt(i);
+ }
+ }
+
+ // 璋冪敤 ReceiveWMSTask 鍒涘缓 WCS 浠诲姟
+ content = ReceiveWMSTask(taskDTOs);
+
+ // 濡傛灉鏈夐噸澶嶄换鍔★紝淇敼杩斿洖缁撴灉
+ if (duplicateTasks.Count > 0 && content.Status)
+ {
+ var result = new ReceiveTaskResultDto
+ {
+ Success = true,
+ Message = content.Message + $"锛屽叾涓瓄duplicateTasks.Count}涓换鍔″湪WCS涓凡瀛樺湪",
+ CreatedCount = taskDTOs.Count,
+ DuplicateTasks = duplicateTasks
+ };
+ content.Data = result;
+ }
+
+ return content;
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error($"鎵嬪姩浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
+ return content;
+ }
+ }
+
+ /// <summary>
+ /// 鏌ヨ鎸囧畾璧风偣鍦板潃鐨勬柊寤烘墜鍔ㄥ叆搴撲换鍔�
+ /// </summary>
+ /// <param name="sourceAddress">璧风偣鍦板潃</param>
+ /// <returns>浠诲姟瀹炰綋</returns>
+ public Dt_Task QueryManualInboundTask(string sourceAddress)
+ {
+ return BaseDal.QueryFirst(x =>
+ x.TaskType == (int)TaskInboundTypeEnum.Inbound &&
+ x.TaskStatus == (int)TaskInStatusEnum.InNew &&
+ x.SourceAddress == sourceAddress);
+ }
}
public enum ConveyorLineDBNameNew
@@ -726,4 +801,4 @@
[DataLength(22)]
public string Barcode { get; set; }
}
-}
+}
\ No newline at end of file
--
Gitblit v1.9.3