From 219a08427376efdd304e9b11e481ccd8276018bb Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期六, 18 十月 2025 11:14:29 +0800
Subject: [PATCH] 巷道形式存取放物料
---
Wms/Wms/Controllers/DownApiController.cs | 354 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 327 insertions(+), 27 deletions(-)
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index a4e3fb8..93ec264 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -21,6 +21,8 @@
using Microsoft.Extensions.Logging;
using ZXing.QrCode.Internal;
using Model.ModelVm.BllCheckVm;
+using Model.ModelVm.SysVm;
+using System.Security.Policy;
namespace Wms.Controllers
{
@@ -40,7 +42,8 @@
private readonly IWaveMageServer _waveSvc;//浠诲姟鍚屾Svc
private readonly IRcsServer _rcsserver;//RCS鐩稿叧浠诲姟
private readonly INoticeServer _noticeSvc;//浜屾ゼ鍗曟嵁鐩稿叧
- public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc, IRcsServer rcsserver, INoticeServer noticeSvc)
+ private readonly IHopperTransportServer _hopper;//浜屾ゼ鍗曟嵁鐩稿叧
+ public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc, IRcsServer rcsserver, INoticeServer noticeSvc, IHopperTransportServer hopper)
{
_config = setting.Value;
_exNoticeSvc = exNoticeSvc;
@@ -51,6 +54,7 @@
_waveSvc = waveSvc;
_rcsserver = rcsserver;
_noticeSvc = noticeSvc;
+ _hopper = hopper;
}
#region WMS鎺ュ彛 璋冪敤涓嬫父绯荤粺鎺ュ彛
@@ -642,15 +646,6 @@
}
#endregion
-
- #region PDA
-
- //绌烘墭鎸囦护涓嬪彂锛堝嚭搴擄級
-
-
- #endregion
-
-
#region 浜屾ゼ涓氬姟
/// <summary>
/// RCS鍙《
@@ -863,7 +858,7 @@
{
//璁板綍log
var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- AgvResultModel resultModel = null;//杩斿洖淇℃伅
+ AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
try
{
var jsonData = JsonConvert.SerializeObject(model);
@@ -873,7 +868,9 @@
- resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+ resultModel.code = "0";
+ resultModel.message = "鎴愬姛";
+ resultModel.da.robotTaskCode = model.robotTaskCode;
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟寮�濮�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -882,7 +879,9 @@
{
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟寮�濮�-寮傚父锛�( {ex.Message} ),", logStr);
- resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+ resultModel.code = "1";
+ resultModel.message = ex.Message;
+ resultModel.da.robotTaskCode = model.robotTaskCode;
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟寮�濮�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -898,17 +897,25 @@
{
//璁板綍log
var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- AgvResultModel resultModel = null;//杩斿洖淇℃伅
+ AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
try
{
+ var extraValue = new ExtraModel();
+ extraValue = model.extra;
+ if (!(extraValue.values.method == "outbin"))
+ {
+ throw new Exception("灏忚溅璋冪敤鏂规硶閿欒");
+ }
var jsonData = JsonConvert.SerializeObject(model);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-璇锋眰鎶ユ枃锛�( {jsonData} ),", logStr);
//鍏蜂綋澶勭悊鏂规硶
+ _hopper.OutBinAgv(model.robotTaskCode, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
-
- resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "0", message = "鎴愬姛", da =data };
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -917,7 +924,10 @@
{
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-寮傚父锛�( {ex.Message} ),", logStr);
- resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
+
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-璧板嚭鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -933,17 +943,25 @@
{
//璁板綍log
var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- AgvResultModel resultModel = null;//杩斿洖淇℃伅
+ AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
try
{
+ var extraValue = new ExtraModel();
+ extraValue = model.extra;
+ if (!(extraValue.values.method == "end"))
+ {
+ throw new Exception("灏忚溅璋冪敤鏂规硶閿欒");
+ }
var jsonData = JsonConvert.SerializeObject(model);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-璇锋眰鎶ユ枃锛�( {jsonData} ),", logStr);
//鍏蜂綋澶勭悊鏂规硶
- _rcsserver.RCSFinishTask(model.taskCode, "1", "AGV");
+ _hopper.RCSFinishTask(model.robotTaskCode, extraValue.values.slotCode, "1", "AGV");
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "0", message = "鎴愬姛", da = data };
- resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -952,7 +970,9 @@
{
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-寮傚父锛�( {ex.Message} ),", logStr);
- resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟缁撴潫-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -968,7 +988,7 @@
{
//璁板綍log
var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- AgvResultModel resultModel = null;//杩斿洖淇℃伅
+ AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
try
{
var jsonData = JsonConvert.SerializeObject(model);
@@ -978,7 +998,9 @@
- resultModel = new AgvResultModel { code = "0", message = "鎴愬姛", reqCode = model.reqCode };
+ resultModel.code = "0";
+ resultModel.message = "鎴愬姛";
+ resultModel.da.robotTaskCode = model.robotTaskCode;
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
@@ -987,12 +1009,58 @@
{
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-寮傚父锛�( {ex.Message} ),", logStr);
- resultModel = new AgvResultModel { code = "1", message = ex.Message, reqCode = model.reqCode };
+ resultModel.code = "1";
+ resultModel.message = ex.Message;
+ resultModel.da.robotTaskCode = model.robotTaskCode;
var jsonData2 = JsonConvert.SerializeObject(resultModel);
LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-浠诲姟鍗曞彇娑�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
return Ok(resultModel);
}
- }
+ }
+
+ /// <summary>
+ /// 璧板嚭鍌ㄤ綅
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult AGVCallback(AgvTaskDto model)
+ {
+ //璁板綍log
+ var logStr = $@".\log\AGV\浠诲姟鎵ц閫氱煡" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ AgvResultModel2 resultModel = null;//杩斿洖淇℃伅
+ try
+ {
+ var extraValue = new ExtraModel();
+ extraValue = model.extra;
+ switch (extraValue.values.method)
+ {
+ case "outbin":
+ var a = outbin(model);
+ break;
+ case "end":
+ var b = end(model);
+ break;
+ default:
+ break;
+ }
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "0", message = "鎴愬姛", da = data };
+ var jsonData2 = JsonConvert.SerializeObject(resultModel);
+ LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
+ return Ok(resultModel);
+ }
+ catch (Exception ex)
+ {
+ Data data = new Data();
+ data.robotTaskCode = model.robotTaskCode;
+ resultModel = new AgvResultModel2 { code = "1", message = ex.Message, da = data };
+ var jsonData2 = JsonConvert.SerializeObject(resultModel);
+ LogFile.SaveLogToFile($"AGV浠诲姟鎵ц閫氱煡-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
+ return Ok(resultModel);
+ }
+ }
#endregion
@@ -1049,7 +1117,7 @@
{
return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
}
- _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask);
+ _rcsserver.DownTask(model.taskNo, int.Parse(userId), _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost + _config.AGVBindPallets);
return Ok(new { code = 0, msg = "閲嶆柊涓嬪彂宸插畬鎴�", data = "" });
}
@@ -1083,7 +1151,7 @@
//鍏蜂綋澶勭悊鏂规硶
_rcsserver.RCSFinishTask(model.taskNo, "1", "WMS");
- return Ok(new { code = 0, msg = "閲嶆柊涓嬪彂宸插畬鎴�", data = "" });
+ return Ok(new { code = 0, msg = "浠诲姟宸叉墜鍔ㄥ畬鎴�", data = "" });
}
catch (Exception e)
{
@@ -1122,5 +1190,237 @@
}
}
#endregion
+
+ #region JC37 鏂欐枟杞繍3銆�4妤间笟鍔�
+
+ /// <summary>
+ /// 鑾峰彇鍖哄煙鏍规嵁瑙掕壊
+ /// </summary>
+ /// <param name=""></param>
+ /// <returns></returns>
+ [HttpGet]
+ public IActionResult GetAreaListByUser()
+ {
+ try
+ {
+ //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+ var claimsIdentity = this.User.Identity as ClaimsIdentity;
+ if (claimsIdentity == null)
+ {
+ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+ }
+ var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+ if (string.IsNullOrWhiteSpace(userId))
+ {
+ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+ }
+ var model = _hopper.GetAreaListByUser(int.Parse(userId));
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍌ㄤ綅鏍规嵁鍖哄煙
+ /// </summary>
+ /// <param name="areaNo"></param>
+ /// <returns></returns>
+ [HttpGet]
+ public IActionResult GetLocatByArea(string areaNo)
+ {
+ try
+ {
+ var model = _hopper.GetLocatByArea(areaNo);
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇缃愮被鍨嬫牴鎹尯鍩�
+ /// </summary>
+ /// <param name="areaNo"></param>
+ /// <returns></returns>
+ [HttpGet]
+ public IActionResult GetPlnStatusByArea(string areaNo)
+ {
+ try
+ {
+ var model = _hopper.GetPlnStatusByArea(areaNo);
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鐗╂枡鏍规嵁缃愮被鍨�
+ /// </summary>
+ /// <param name="palletStatus"></param>
+ /// <returns></returns>
+ [HttpGet]
+ public IActionResult GetSkuByStatus(string palletStatus)
+ {
+ try
+ {
+ var model = _hopper.GetSkuByStatus(palletStatus);
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎵规鏍规嵁鐗╂枡
+ /// </summary>
+ /// <param name="skuNo"></param>
+ /// <returns></returns>
+ [HttpGet]
+ public IActionResult GetLotNoBySku(string skuNo)
+ {
+ try
+ {
+ var model = _hopper.GetLotNoBySku(skuNo);
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鐗╂枡
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ public IActionResult GetSku()
+ {
+ try
+ {
+ var model = _hopper.GetSku();
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name=""></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult jiaoLiaoHopper(HopperModel model)
+ {
+ try
+ {
+ //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+ var claimsIdentity = this.User.Identity as ClaimsIdentity;
+ if (claimsIdentity == null)
+ {
+ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+ }
+ var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+ if (string.IsNullOrWhiteSpace(userId))
+ {
+ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+ }
+ _hopper.jiaoLiaoHopper(model.AreaNo,model.LocateNo,model.PlnStatus,model.Standard,model.SkuNo,model.LotNo,_config.AgvHost+_config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name=""></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult jiaoCheHopper(HopperModel model)
+ {
+ try
+ {
+ //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+ var claimsIdentity = this.User.Identity as ClaimsIdentity;
+ if (claimsIdentity == null)
+ {
+ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+ }
+ var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+ if (string.IsNullOrWhiteSpace(userId))
+ {
+ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+ }
+ _hopper.jiaoCheHopper(model.AreaNo, model.LocateNo,model.PlnNo, model.PlnStatus, model.Weight , model.SkuNo, model.LotNo, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets, int.Parse(userId));
+
+ return Ok(new { data = model, code = 0, msg = "" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = e.Message });
+ }
+ }
+ /// <summary>
+ /// 娓呮礂鏈哄彨鏂欑姸鎬�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult RCSCleanRequest(RCSCleanRequestModel model)
+ {
+ var logStr = $@".\log\AGV\娓呮礂鏈哄彨鏂�" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ AgvResultModel resultModel = null;//杩斿洖淇℃伅
+ try
+ {
+ var jsonData = JsonConvert.SerializeObject(model);
+ LogFile.SaveLogToFile($"娓呮礂鏈哄彨鏂�-璇锋眰鎶ユ枃锛�( {jsonData} ),", logStr);
+
+ //鍏蜂綋澶勭悊鏂规硶
+ _hopper.RCSCleanRequest(model.deviceID,model.deviceStation,model.status, _config.AgvHost + _config.GenAgvSchedulingTask,_config.AgvHost+_config.AGVBindPallets);
+
+ resultModel = new AgvResultModel { code = "0", message = "璇锋眰鎴愬姛!"};
+ var jsonData2 = JsonConvert.SerializeObject(resultModel);
+ LogFile.SaveLogToFile($"娓呮礂鏈哄彨鏂�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
+ return Ok(resultModel);
+ }
+ catch (Exception e)
+ {
+ LogFile.SaveLogToFile($"娓呮礂鏈哄彨鏂欏紓甯革細( {e.Message} ),", logStr);
+
+ resultModel = new AgvResultModel { code = "1", message = e.Message, data = "", reqCode = "" };
+ var jsonData2 = JsonConvert.SerializeObject(resultModel);
+ LogFile.SaveLogToFile($"娓呮礂鏈哄彨鏂�-杩斿洖鎶ユ枃锛�( {jsonData2} ),", logStr);
+ return Ok(resultModel);
+ }
+ }
+
+
+ #endregion
+
}
}
--
Gitblit v1.8.0