From f56f8d4bf3bf088579a169519ef2547d40586f76 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 10 四月 2026 18:42:53 +0800
Subject: [PATCH] 添加平库货位上下架容器接口
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/WMSUpOrDownContainerDTO.cs | 27 +++++++++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 7 +++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs | 1
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs | 12 ++++++
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 58 +++++++++++++++++++++++-----
5 files changed, 93 insertions(+), 12 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/WMSUpOrDownContainerDTO.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/WMSUpOrDownContainerDTO.cs"
new file mode 100644
index 0000000..402d85f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/WMSUpOrDownContainerDTO.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.WMS
+{
+ public class WMSUpOrDownContainerDTO
+ {
+ /// <summary>
+ /// 璐т綅缂栧彿
+ /// </summary>
+ public string locationCode { get; set; }
+
+ /// <summary>
+ /// 鏂欑鏉$爜
+ /// </summary>
+ public string containerCode { get; set; }
+
+ /// <summary>
+ /// 娴佸悜
+ /// 1涓婃灦2涓嬫灦
+ /// </summary>
+ public int direction { get; set; }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index d8009d2..85254e7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -312,6 +312,11 @@
/// <param name="TaskCode">浠诲姟鍙�</param>
/// <returns></returns>
WebResponseContent Hikvisiontaskscontinue(string TaskCode, string Address = null);
-
+ /// <summary>
+ /// 骞冲簱璐т綅涓婁笅鏋跺鍣�
+ /// </summary>
+ /// <param name="wMSUpOrDown"></param>
+ /// <returns></returns>
+ WebResponseContent UpOrDownContainer(WMSUpOrDownContainerDTO wMSUpOrDown);
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs"
index 8539071..2a8e5c3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMS/WMSController.cs"
@@ -47,6 +47,18 @@
}
/// <summary>
+ /// 骞冲簱璐т綅涓婁笅鏋跺鍣�
+ /// </summary>
+ /// <param name="taskDTOs"></param>
+ /// <returns></returns>
+ [HttpPost, Route("UpOrDownContainer"), AllowAnonymous]
+ public WMSReturn UpOrDownContainer([FromBody] WMSUpOrDownContainerDTO wMSUpOrDown)
+ {
+ WebResponseContent content = _taskService.UpOrDownContainer(wMSUpOrDown);
+ return WMSReturnMethod.ReturnWMS(content);
+ }
+
+ /// <summary>
/// 鍙栨秷浠诲姟
/// </summary>
/// <param name="wMSCancelTask"></param>
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 400d8c5..55e58ab 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"
@@ -1239,11 +1239,11 @@
public WebResponseContent InboundElevatorExit(string LocationCode, string containerCode)
{
WebResponseContent content = new WebResponseContent();
- inboundElevatorExitDTO inboundElevator=new inboundElevatorExitDTO();
+ inboundElevatorExitDTO inboundElevator = new inboundElevatorExitDTO();
try
{
Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(inboundElevatorExitDTO)) ?? throw new Exception("鏈壘鍒�4F鎻愬崌鏈哄嚭鍙f墭鐩樺彿涓婃姤WMS鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
- inboundElevator.containerCode= containerCode;
+ inboundElevator.containerCode = containerCode;
inboundElevator.toLocationCode = LocationCode;
string response = HttpHelper.Post(apiInfo.ApiAddress, inboundElevator.Serialize());
content.OK(data: response);
@@ -1280,6 +1280,7 @@
string dataJson = wMSReturn.result.ToString();
Exists? exists = JsonConvert.DeserializeObject<Exists>(dataJson);
if (exists == null) throw new Exception($"WMS杩斿洖缁撴灉鐨剅esult杞崲澶辫触");
+ if (exists.taskExists) return WebResponseContent.Instance.OK();
return WebResponseContent.Instance.OK(exists.errorAreaCode);
}
catch (Exception ex)
@@ -1301,6 +1302,41 @@
throw new NotImplementedException();
}
/// <summary>
+ /// 骞冲簱璐т綅涓婁笅鏋跺鍣�
+ /// </summary>
+ /// <param name="wMSUpOrDown"></param>
+ /// <returns></returns>
+ public WebResponseContent UpOrDownContainer(WMSUpOrDownContainerDTO wMSUpOrDown)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ Dt_StationInfo stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == wMSUpOrDown.locationCode) ?? throw new Exception($"鏈壘鍒拌揣浣嶃�恵wMSUpOrDown.locationCode}銆戜俊鎭�");
+ if (wMSUpOrDown.direction == 1)
+ {
+ stationInfo.StationStatus = LocationStatusEnum.InStock.ObjToInt();
+ stationInfo.PalletCode = wMSUpOrDown.containerCode;
+ }
+ else
+ {
+ stationInfo.StationStatus = LocationStatusEnum.Free.ObjToInt();
+ stationInfo.PalletCode = "";
+ }
+ _stationInfo.UpdateData(stationInfo);
+ content.OK();
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ finally
+ {
+ _trackloginfoService.AddTrackLog(wMSUpOrDown, content, "骞冲簱璐т綅涓婁笅鏋跺鍣�", "", "");
+ }
+ return content;
+ }
+
+ /// <summary>
/// 瀹瑰櫒娴佸姩璇锋眰
/// </summary>
/// <param name="wMSContainerFlow"></param>
@@ -1308,7 +1344,7 @@
/// <exception cref="NotImplementedException"></exception>
public WebResponseContent ContainerRequest(WMSContainerFlow wMSContainerFlow)
{
- WebResponseContent content =new WebResponseContent();
+ WebResponseContent content = new WebResponseContent();
try
{
Dt_StationManger stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == wMSContainerFlow.slotCode) ?? throw new Exception($"鏈壘鍒扮珯鍙般�恵wMSContainerFlow.slotCode}銆戜俊鎭�");
@@ -1323,7 +1359,7 @@
};
string response = HttpHelper.Post(apiInfo.ApiAddress, fOURBOToccupyStation.Serialize());
FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
- content.OK(data:fOURBOTReturn);
+ content.OK(data: fOURBOTReturn);
if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
_stationMangerService.UpdateData(stationManger);
}
@@ -1432,7 +1468,7 @@
}
finally
{
- _trackloginfoService.AddTrackLog(fOURBOTStorageStatusNotify,content, "鎵归噺鏇存柊鍌ㄤ綅鐘舵��", "", "");
+ _trackloginfoService.AddTrackLog(fOURBOTStorageStatusNotify, content, "鎵归噺鏇存柊鍌ㄤ綅鐘舵��", "", "");
}
}
@@ -1469,7 +1505,7 @@
/// <param name="taskDTO">浠诲姟DTO</param>
/// <returns>杩斿洖璧风偣搴撲綅鍜岀粓鐐瑰簱浣嶄俊鎭�</returns>
/// <exception cref="Exception">鏍¢獙澶辫触鏃舵姏鍑哄紓甯�</exception>
- private WebResponseContent ValidateLocationForTask(int taskType, TaskDTO taskDTO)
+ private WebResponseContent ValidateLocationForTask(int taskType, TaskDTO taskDTO)
{
WebResponseContent content = new WebResponseContent();
try
@@ -1490,7 +1526,7 @@
var fromStation = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.fromLocationCode)
?? throw new Exception($"鏈壘鍒拌捣鐐瑰簱浣嶃�恵taskDTO.fromLocationCode}銆戯紒");
- if (fromStation.StationStatus !=(int)LocationStatusEnum.InStock)
+ if (fromStation.StationStatus != (int)LocationStatusEnum.InStock)
throw new Exception($"璧风偣搴撲綅銆恵taskDTO.fromLocationCode}銆戝綋鍓嶅簱浣嶇姸鎬佷笉鍙嚭搴擄紒");
if (fromStation.PalletCode != taskDTO.containerCode)
@@ -1517,15 +1553,15 @@
throw new Exception($"璧风偣搴撲綅銆恵taskDTO.fromLocationCode}銆戠粦瀹氭枡绠卞彿銆恵fromStation.PalletCode}銆戜笌浠诲姟鏂欑鍙枫�恵taskDTO.containerCode}銆戜笉鍖归厤锛�");
}
#endregion
- return content.OK();
+ return content.OK();
}
catch (Exception ex)
{
- return content.Error(ex.Message);
+ return content.Error(ex.Message);
}
-
-
+
+
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
index 770a40f..3dddd75 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs"
@@ -207,6 +207,7 @@
}
else
{
+ RK3FTask.CurrentAddress = RK3FTask.TargetAddress;
if (!string.IsNullOrEmpty(Verification.Message)) RK3FTask.TargetAddress = Verification.Message;
//濡傛灉鏂欑妫�楠屾垚鍔熷氨鍐欏叆璇荤爜鍣ㄧ殑鍊�
var result = _taskService.Hikvisiontaskscontinue(RK3FTask.WMSTaskNum, RK3FTask.TargetAddress);
--
Gitblit v1.9.3