From b7f53ba61fbc1844d7b92ff852762b140d46ab54 Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期一, 23 六月 2025 19:58:16 +0800
Subject: [PATCH] 最新
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 106 insertions(+), 6 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 1b46e88..6a7a5e1 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"
@@ -49,6 +49,7 @@
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoRepository;
using static Microsoft.IO.RecyclableMemoryStreamManager;
namespace WIDESEAWCS_TaskInfoService
@@ -59,6 +60,7 @@
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository;
private readonly ITask_HtyService _task_HtyService;
+ private readonly ITask_HtyRepository _task_HtyRepository;
private readonly IMapper _mapper;
private Dictionary<string, OrderByType> _taskOrderBy = new()
@@ -73,12 +75,13 @@
public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
- public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService) : base(BaseDal)
+ public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, ITask_HtyRepository task_HtyRepository) : base(BaseDal)
{
_routerService = routerService;
_taskExecuteDetailService = taskExecuteDetailService;
_taskExecuteDetailRepository = taskExecuteDetailRepository;
_task_HtyService = task_HtyService;
+ _task_HtyRepository = task_HtyRepository;
_mapper = mapper;
}
@@ -114,6 +117,7 @@
}
BaseDal.AddData(tasks);
_taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "鎺ユ敹WMS浠诲姟");
+
content = WebResponseContent.Instance.OK("鎴愬姛");
}
catch (Exception ex)
@@ -157,6 +161,7 @@
PalletCode = palletCode
};
content = HttpHelper.Post<WebResponseContent>($"{urlWMSTask}", generate);
+ WriteLog.GetLog("鍏ュ簱浠诲姟鎺ユ敹").Write(JsonConvert.SerializeObject(content), "鍏ュ簱浠诲姟鎺ユ敹");
Dt_Task task = new Dt_Task();
if (content != null)
{
@@ -166,9 +171,11 @@
task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02";
BaseDal.AddData(task);
- return content = WebResponseContent.Instance.Error();
+ return content;
}
}
+
+
return content = WebResponseContent.Instance.Error();
}
catch (Exception ex)
@@ -344,6 +351,43 @@
return _Task;
}
+
+ public Dt_Task RequestWMSTaskMovelibrary2(Dt_Task _Task)
+ {
+ WebResponseContent content = new WebResponseContent();
+ content = HttpHelper.Get<WebResponseContent>($"{urlWMSMovelibraryTask}?TaskNum={_Task.TaskNum}&SourceAddress={_Task.TargetAddress}");
+ Dt_Task task = new Dt_Task();
+ if (content != null)
+ {
+ if (content.Status)
+ {
+ if (content.Data != null)
+ {
+ task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString());
+ if (task.TaskNum != _Task.TaskNum)
+ {
+ WriteLog.GetLog("鎺ユ敹浠诲姟").Write("绉诲簱浠诲姟锛�" + JsonConvert.SerializeObject(task), "鎺ユ敹浠诲姟");
+ task.TaskState = (int)TaskOutStatusEnum.ResRestNet;
+ task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02";
+ task.TaskNum = task.TaskNum;
+ task.Grade = 3;
+ task.TaskType = (int)TaskRelocationTypeEnum.Relocation;
+ BaseDal.AddData(task);
+ return task;
+ }
+ }
+ }
+ else
+ {
+ WriteLog.GetLog("PLC鏃ュ織").Write($"澶辫触淇℃伅锛歿content.Message}", "绉诲簱淇℃伅");
+ return null;
+
+ }
+ }
+
+ return _Task;
+ }
+
/// <summary>
/// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
/// </summary>
@@ -407,6 +451,18 @@
else
return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
}
+
+ public List<Dt_Task> CraneTaskList(string deviceNo)
+ {
+ return BaseDal.QueryData(x => x.Roadway == deviceNo && (x.TaskState == (int)TaskInStatusEnum.Line_InFinish || x.TaskState == (int)TaskOutStatusEnum.OutNew),TaskOrderBy);
+ }
+
+ public Dt_Task CutStackerCraneTask(string deviceNo)
+ {
+ Dt_Task dt_Task = BaseDal.QueryFirst(x => x.Roadway == deviceNo && (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting || x.TaskState == (int)TaskInStatusEnum.SC_InFinish));
+ return dt_Task;
+ }
+
public Dt_Task IngStackerCraneTask(string deviceNo)
{
//string deviceNot = deviceNo == "SC01" ? "1" : "2";
@@ -477,6 +533,11 @@
return BaseDal.QueryData(x => x.Roadway == deviceNo && SourceAddress.Contains(x.SourceAddress), TaskOrderBy);
}
+ public List<Dt_Task> QueryStationIsOccupiedOutTasks2(string deviceNo, string TargetAddress)
+ {
+ return BaseDal.QueryData(x => x.Roadway == deviceNo && TargetAddress.Contains(x.SourceAddress), TaskOrderBy);
+ }
+
/// <summary>
/// 鏇存柊浠诲姟寮傚父淇℃伅鏄剧ず
/// </summary>
@@ -537,6 +598,19 @@
{
Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
+
+ if(task.TaskType == (int)TaskRelocationTypeEnum.Relocation)
+ {
+ if (task.TaskState != (int)TaskOutStatusEnum.ResRestNet)
+ {
+ return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
+ }
+ task.TaskState = (int)TaskOutStatusEnum.ResRest; //涓嬪彂绉诲簱浠诲姟
+ task.ModifyDate = DateTime.Now;
+ task.Modifier = "System";
+ BaseDal.UpdateData(task);
+ }
+
return UpdateTaskStatusToNext(task);
}
catch (Exception ex)
@@ -692,9 +766,14 @@
{
/*List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");*/
+ task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+ BaseDal.UpdateData(task);
+
content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2");
- task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+
+ wcs_PLCto09("鍑哄簱浠诲姟", $"鏉$爜锛歿task.PalletCode},浠诲姟鍙凤細{task.TaskNum}", $"璋冨彇wms浠诲姟鍙嶉锛歿JsonConvert.SerializeObject(content)}");
+
task.ModifyDate = DateTime.Now;
BaseDal.DeleteData(task);
_task_HtyService.AddTaskHty(task);
@@ -705,10 +784,14 @@
}
else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
{
+ task.TaskState = (int)TaskInStatusEnum.InFinish;
+ BaseDal.UpdateData(task);
+
content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2");
+
+ wcs_PLCto09("鍏ュ簱浠诲姟", $"鏉$爜锛歿task.PalletCode},浠诲姟鍙凤細{task.TaskNum}", $"璋冨彇wms浠诲姟鍙嶉锛歿JsonConvert.SerializeObject(content)}");
//todo
//int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
- task.TaskState = (int)TaskInStatusEnum.InFinish;
task.ModifyDate = DateTime.Now;
task.Modifier = "System";
BaseDal.DeleteData(task);
@@ -722,7 +805,9 @@
BaseDal.UpdateData(task);
content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2");
- task.TaskState = (int)TaskOutStatusEnum.OutRest;
+
+ wcs_PLCto09("鍏ュ簱浠诲姟", $"鏉$爜锛歿task.PalletCode},浠诲姟鍙凤細{task.TaskNum}", $"璋冨彇wms浠诲姟鍙嶉锛歿JsonConvert.SerializeObject(content)}");
+
task.ModifyDate = DateTime.Now;
BaseDal.DeleteData(task);
_task_HtyService.AddTaskHty(task);
@@ -740,9 +825,19 @@
}
catch (Exception ex)
{
- content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�");
+ content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戯紝鍘熷洜锛歿ex.Message}");
}
return content;
+ }
+
+ public WebResponseContent StackCraneTashty(int taskNum)
+ {
+ WebResponseContent content = new WebResponseContent();
+ int taskcount = _task_HtyRepository.QueryData(x =>x.TaskNum == taskNum && x.CreateDate >= DateTime.Now.AddMinutes(-30)).Count();
+
+ if (taskcount>0) return WebResponseContent.Instance.OK();
+
+ return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅锛屾椂闂翠笉鍦ㄨ寖鍥村唴,浠诲姟鍙蜂负锛歿taskNum}");
}
/// <summary>
@@ -917,5 +1012,10 @@
}
+
+ public void wcs_PLCto09(string SCLLinStack, string Logtype, string Magessadd)
+ {
+ WriteLog.Write_Log("浠诲姟瀹屾垚浜や簰", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd });
+ }
}
}
--
Gitblit v1.9.3