From 2d5ac3163a20bcb5ce82cd78ad186ee5bb9e80a9 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 09 五月 2025 08:00:50 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs | 172 +++++++++++++++++++++++++++++++++++++++++++
Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs | 9 ++
Wms/Model/InterFaceModel/AgvModel.cs | 9 ++
Wms/Wms/Controllers/DownApiController.cs | 31 +++++++
4 files changed, 220 insertions(+), 1 deletions(-)
diff --git a/Wms/Model/InterFaceModel/AgvModel.cs b/Wms/Model/InterFaceModel/AgvModel.cs
index d352aee..c5e2f77 100644
--- a/Wms/Model/InterFaceModel/AgvModel.cs
+++ b/Wms/Model/InterFaceModel/AgvModel.cs
@@ -209,4 +209,13 @@
/// </summary>
public string WareHouseNo { get; set; }
}
+
+
+ public class RCSCleanRequestModel
+ {
+ public string deviceID { get; set; }
+ public string deviceStation { get; set; }
+ public string status { get; set; }
+ }
+
}
diff --git a/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs b/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
index 0685595..67ed85e 100644
--- a/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/HopperTransportServer.cs
@@ -720,6 +720,178 @@
}
}
+ /// <summary>
+ /// 娓呮礂鏈哄彨鏂欑姸鎬�
+ /// </summary>
+ /// <param name="deviceID">娓呮礂鏈虹紪鍙�</param>
+ /// <param name="deviceStation">鍙枡鐐逛綅锛氣�漣nput鈥�-鍏ュ彛锛堝彨鑴忔《锛夛紝鈥漮utput鈥�-鍑哄彛锛堝噣妗剁敵璇峰偍浣嶏級</param>
+ /// <param name="status"></param>
+ /// <exception cref="Exception"></exception>
+ public void RCSCleanRequest(string deviceID,string deviceStation,string status,string url)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(deviceID))
+ {
+ throw new Exception("娓呮礂鏈虹紪鍙蜂笉鑳戒负绌�");
+ }
+ if (status != "1")
+ {
+ throw new Exception("闈炲彨鏂欑姸鎬�");
+ }
+ //閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
+ var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode == deviceID);
+ if (deviceInfo == null)
+ {
+ throw new Exception("璁惧淇℃伅涓嶅瓨鍦�");
+ }
+ var houseNo = deviceInfo.WareHouseNo;//鍙《璁惧鎵�灞炶溅闂寸紪鍙�
+
+ var startLoction = new SysStorageLocat();//璧峰鍌ㄤ綅淇℃伅
+ var endLoction = new SysStorageLocat();//鐩爣鍌ㄤ綅淇℃伅
+ var palletModel = new DataStockDetail();//鍒嗛厤妗朵俊鎭�
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+
+ //鍙枡鐐逛綅
+ switch (deviceStation)
+ {
+ case "input"://鍙剰妗�
+ //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙鐩爣鍌ㄤ綅锛�
+ endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+
+ // 鎵�鏈夊緟鍒嗛厤鐨勮剰妗�
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.Status == "0" && w.PalletStatus == "3");
+
+ //浼樺厛鏌ユ壘鑴忔《缂撳瓨杞﹂棿
+ palletModel = stockDetail.Where(w => w.AreaNo == "C43").OrderByDescending(o => o.UpdateTime).First();
+ if (palletModel == null)//鑴忔《缂撳瓨杞﹂棿娌℃湁鑴忔《锛屽啀浠庝笁妤间腑闂寸珯鑴忔《鍖烘煡鎵�
+ {
+ palletModel = stockDetail.Where(w =>w.WareHouseNo=="M16" && w.AreaNo == "C26").OrderByDescending(o => o.UpdateTime).First();
+ }
+ if (palletModel == null)//涓夋ゼ涓棿绔欒剰妗跺尯娌℃湁鑴忔《锛屽啀浠庡洓妤间腑闂寸珯鑴忔《鍖烘煡鎵�
+ {
+ palletModel = stockDetail.Where(w => w.WareHouseNo == "M01" && w.AreaNo == "C03").OrderByDescending(o => o.UpdateTime).First();
+ }
+ if (palletModel == null)
+ {
+ throw new Exception("鏃犺剰妗跺彲鍒嗛厤");
+ }
+ //璧峰鍌ㄤ綅鍦板潃淇℃伅
+ startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.Status == "1" && w.LocatNo == palletModel.LocatNo);
+ if (startLoction == null)
+ {
+ throw new Exception($"璧峰鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦紝妗跺彿锛歿palletModel.LocatNo}");
+ }
+
+ break;
+
+ case "output"://鍑�妗剁敵璇峰偍浣�
+ //鍙《璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
+ startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+ //妗朵俊鎭�
+ palletModel = Db.Queryable<DataStockDetail>().Where(w => w.WareHouseNo==houseNo && w.AreaNo==deviceInfo.AreaNo && w.LocatNo==startLoction.LocatNo).First();
+ if (palletModel == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍑�妗朵俊鎭�");
+ }
+ //鍒嗛厤鍌ㄤ綅
+ //浼樺厛鍒嗛厤鍥涙ゼ涓棿绔欏噣妗跺尯
+ endLoction= Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
+ && w.WareHouseNo == "M01" && w.AreaNo == "C01")
+ .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
+ if (endLoction == null)//鍥涙ゼ涓棿绔欏噣妗跺尯娌℃湁绌哄偍浣嶏紝鍐嶄粠涓夋ゼ涓棿绔欏噣妗跺尯鏌ユ壘
+ {
+ endLoction = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
+ && w.WareHouseNo == "M16" && w.AreaNo == "C24")
+ .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
+ }
+ if (endLoction == null)//涓夋ゼ涓棿绔欏噣妗跺尯娌℃湁绌哄偍浣嶏紝鍐嶄粠涓夋ゼ娓呮礂闂寸紦瀛樺尯鏌ユ壘
+ {
+ endLoction = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0"
+ && w.WareHouseNo == "M44" && w.AreaNo == "C55")
+ .OrderBy(o => o.Row).OrderByDescending(o => o.Column).First();
+ }
+ if (endLoction == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍚堥�傚偍浣�");
+ }
+ break;
+
+ default:
+ throw new Exception("鍙枡鐐逛綅寮傚父");
+
+ }
+ var taskNo = new Common().GetMaxNo("TK");
+ //娣诲姞浠诲姟
+ var logTaskEntry = new LogTask
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "RCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = "",//璧峰浣嶇疆
+ EndLocat = endLoction.LocatNo,//鐩爣浣嶇疆
+ PalletNo = "",//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+
+ CreateTime = DateTime.Now
+ };
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+
+ //缁勭粐涓嬪彂灏忚溅浠诲姟淇℃伅
+ var task = new TaskDetial
+ {
+ Taskno = taskNo,//浠诲姟鍙�
+ Startport = palletModel.LocatNo,//璧峰浣嶇疆
+ Endport = endLoction.LocatNo,//鐩爣浣嶇疆
+ Pallno = palletModel.PalletNo,//妗跺彿
+ Crtype = "1",//鍙《
+ };
+
+ string agvMsg = string.Empty;
+ //缁欎笅杞︿笅鍙戜换鍔�
+ logTaskEntry.SendDate = DateTime.Now;//鍙戦�佹椂闂�
+ var agvResult = RcsHelper.CreateTaskForAgv(task, url, out agvMsg);
+ if (agvResult)//鎴愬姛
+ {
+ //璇锋眰鎴愬姛淇敼浠诲姟琛ㄧ浉搴斿瓧娈电姸鎬�
+ logTaskEntry.IsSuccess = 1;
+ logTaskEntry.IsSend = 0;
+ //logTaskEntry.IsCancel = 0;
+ logTaskEntry.BackDate = DateTime.Now;
+ logTaskEntry.Status = "1";//姝e湪鎵ц
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+
+ startLoction.Status = "3";//鍑哄簱涓�
+ Db.Updateable(startLoction).ExecuteCommand();
+
+ endLoction.Status = "2";//鍏ュ簱涓�
+ Db.Updateable(endLoction).ExecuteCommand();
+ }
+ else//澶辫触
+ {
+ logTaskEntry.IsSuccess = 0;
+ logTaskEntry.Information = agvMsg;
+ Db.Insertable(logTaskEntry).ExecuteCommand();
+ }
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ //鍥炴粴浜嬪姟
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
private bool YikuTask(string palletNo, string taskNo, string url)
{
diff --git a/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs b/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
index 2c296cd..45a3ed2 100644
--- a/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
+++ b/Wms/WMS.IBLL/IBllTransServer/IHopperTransportServer.cs
@@ -19,6 +19,13 @@
void jiaoLiaoHopper(string areaNo, string endLocate, string plnStatus, string standard, string skuNo, string lotNo, string url, int userId);
void jiaoCheHopper(string areaNo, string StartLocate, string plnNo, string plnStatus, decimal weight, string skuNo, string lotNo, string url, int userId);
-
+ /// <summary>
+ /// 娓呮礂鏈哄彨鏂欑姸鎬�
+ /// </summary>
+ /// <param name="deviceID">娓呮礂鏈虹紪鍙�</param>
+ /// <param name="deviceStation">鍙枡鐐逛綅锛氣�漣nput鈥�-鍏ュ彛锛堝彨鑴忔《锛夛紝鈥漮utput鈥�-鍑哄彛锛堝噣妗剁敵璇峰偍浣嶏級</param>
+ /// <param name="status"></param>
+ /// <exception cref="Exception"></exception>
+ void RCSCleanRequest(string deviceID, string deviceStation, string status, string url);
}
}
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index abf4422..75d7a71 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -1311,8 +1311,39 @@
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);
+ 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