From a0b82ad5eb966a359b393fbbe0d5f63d079f7dcb Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期四, 12 六月 2025 11:02:01 +0800 Subject: [PATCH] 修改问题 --- Wms/Wms/Controllers/DownApiController.cs | 274 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 217 insertions(+), 57 deletions(-) diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs index 37f083b..4fd62ab 100644 --- a/Wms/Wms/Controllers/DownApiController.cs +++ b/Wms/Wms/Controllers/DownApiController.cs @@ -21,6 +21,7 @@ using Model.ModelVm.BllCheckVm; using System.Collections.Generic; using System.Security.Policy; +using WMS.IBLL; namespace Wms.Controllers { @@ -38,7 +39,8 @@ private readonly ITaskServer _taskSvc;//浠诲姟Svc private readonly IBllTaskSyncServer _taskSyncSvc;//浠诲姟鍚屾Svc private readonly IWaveMageServer _waveSvc;//浠诲姟鍚屾Svc - public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc) + private readonly IHttpServer _http; + public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc,IHttpServer http) { _config = setting.Value; _exNoticeSvc = exNoticeSvc; @@ -47,6 +49,7 @@ _taskSvc = taskSvc; _taskSyncSvc = taskSyncSvc; _waveSvc = waveSvc; + _http = http; } #region WMS鎺ュ彛 璋冪敤涓嬫父绯荤粺鎺ュ彛 @@ -126,8 +129,9 @@ var house = _exNoticeSvc.GetHouseBySo(soNo); if (house == "W01") { + var list = _exNoticeSvc.IssueOutHouseMk(soNo, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str); - return Ok(new { code = 0, msg = "str" }); + return Ok(new { code = 0, msg = str }); } else if (house == "W02") { @@ -147,6 +151,58 @@ } } + /// <summary> + /// PDA涓嬪彂鍑哄簱 + /// </summary> + /// <param name="soNo"></param> + /// <param name="soDetailId">鍑哄簱鍗曟槑缁咺D</param> + /// <param name="outMode">鍑哄簱鍦板潃锛堝钩搴撴嫞璐т綅锛�</param> + /// <returns></returns> + [HttpGet] + public IActionResult PDAIssueOut(string soNo, string soDetailId,string palletNo,string outMode) + { + try + { + //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D + var claimsIdentity = this.User.Identity as ClaimsIdentity; + if (claimsIdentity == null) + { + return Ok(new HttpReturnModel { Success = "-1", Message = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�"}); + } + var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; + if (string.IsNullOrWhiteSpace(userId)) + { + return Ok(new HttpReturnModel { Success = "-1", Message = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�"}); + } + //楠岃瘉鍑哄簱鍙� + if (string.IsNullOrWhiteSpace(outMode)) + { + return Ok(new HttpReturnModel { Success = "-1", Message = "璇烽�夋嫨鍑哄簱鍦板潃" }); + } + var house = _exNoticeSvc.GetHouseBySo(soNo); + if (house == "W01") + { + //var list = _exNoticeSvc.IssueOutHouseMk(soNo, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str); + + return Ok(new HttpReturnModel { Success = "0", Message = "str", Data = "list" }); + } + else if (house == "W02") + { + var list = _http.IssueOutHouseLk(soNo,soDetailId, outMode,palletNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str); + + return Ok(new HttpReturnModel { Success = "0", Message = str, Data = list}); + } + else + { + return Ok(new HttpReturnModel { Success = "-1", Message = "浠撳簱淇℃伅閿欒锛岃鏍稿疄鍗曟嵁淇℃伅" }); + } + + } + catch (Exception e) + { + return Ok(new HttpReturnModel { Success = "-1", Message = e.Message }); + } + } /// <summary> /// 閲嶆柊涓嬪彂鍑哄簱浠诲姟 @@ -273,36 +329,38 @@ #region WMS鎺ュ彛 琚笅娓哥郴缁熸帴鍙h皟鐢� /// <summary> - /// 缁戝畾淇℃伅杩斿洖宸烽亾鍙� + /// WCS鐢宠绌烘墭璺虹粍鎵樺叆搴� 锛堝彔鎵樼洏鏈猴級 /// </summary> /// <param name="model">鍏ュ簱鍗曚俊鎭�</param> /// <returns></returns> - //[AllowAnonymous] - //[HttpPost] - //public IActionResult BindRequestRoadWay(BoxPalletBindVm model) - //{ - // var logStr = $@".\log\WCS\WCS鎵樼洏缁戝畾-鐢宠宸烽亾" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + [AllowAnonymous] + [HttpPost] + public IActionResult RequestPalletIn(RequestLocate model) + { + var logStr = ""; - // try - // { + logStr = $@".\log\WCS\WCS鐢宠绌烘墭璺虹粍鎵樺叆搴�" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; - // var jsonData = JsonConvert.SerializeObject(model); - // LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾锛�( {jsonData} ),", logStr); + try + { - // _asnPalletBindSvc.BindPalletStock(model, 0); - // //鐢宠宸烽亾 - // var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, "W01"); - // LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr); + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"WCS鐢宠绌烘墭璺虹粍鎵樺叆搴擄細( {jsonData} ),", logStr); - // return Ok(new { Success = 0, Message = "鎵樼洏缁戝畾-鐢宠宸烽亾鎴愬姛", TaskList = list }); - // } - // catch (Exception e) - // { - // LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾杩斿洖锛�( {e.Message} ),", logStr); + var list = _http.RequestPalletIn(model.PalletNo, model.HouseNo, model.PallNum,model.locate); - // return Ok(new ErpModel { Success = -1, Message = e.Message }); - // } - //} + LogFile.SaveLogToFile($"WCS鐢宠绌烘墭璺虹粍鎵樺叆搴撹繑鍥烇細( {JsonConvert.SerializeObject(list)} ),", logStr); + + return Ok(new { Success = 0, Message = "鐢宠宸烽亾鎴愬姛", TaskList = list }); + } + catch (Exception e) + { + LogFile.SaveLogToFile($"WCS鐢宠绌烘墭璺虹粍鎵樺叆搴撹繑鍥烇細( {e.Message} ),", logStr); + + return Ok(new ErpModel { Success = -1, Message = e.Message }); + } + } + /// <summary> /// PDA 浜哄伐鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� @@ -329,16 +387,16 @@ try { - var list = _asnPalletBindSvc.RequestLocation(model.PalletNo, model.HouseNo); - _asnPalletBindSvc.IssueAsnTask(list, _config.ErpHost+ _config.AsnFinishUrl);//agv璺緞 + var list = _http.RequestLocation(model.PalletNo, model.HouseNo,model.Ceng); + _asnPalletBindSvc.IssueAsnTask(list, _config.WcsHost+ _config.IssueComApiUrl2);//WCS璺緞 - new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo, "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", int.Parse(userId)); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鐢宠鍏ュ簱", model.PalletNo, "娣诲姞", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", int.Parse(userId)); return Ok(new HttpReturnModel { Success = "0", Message = "鐢宠鍌ㄤ綅鎴愬姛", Data = list }); } catch (Exception e) { - new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo, "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", int.Parse(userId)); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鐢宠鍏ュ簱", model.PalletNo, "娣诲姞", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", int.Parse(userId)); return Ok(new HttpReturnModel { Success = "-1", Message = e.Message }); } @@ -363,19 +421,15 @@ var jsonData = JsonConvert.SerializeObject(model); LogFile.SaveLogToFile($"WCS鐢宠宸烽亾锛�( {jsonData} ),", logStr); - var list = _asnPalletBindSvc.RequestMiJiRoadWay(model.PalletNo, model.HouseNo); + var list = _http.RequestMiJiRoadWay(model.PalletNo, model.HouseNo); LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr); - //new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), - // "鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勬垚鍔熶俊鎭�", 2); return Ok(new { Success = 0, Message = "鐢宠宸烽亾鎴愬姛", TaskList = list }); } catch (Exception e) { LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {e.Message} ),", logStr); - //new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), - //"鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勫け璐ヤ俊鎭�", 2); return Ok(new ErpModel { Success = -1, Message = e.Message }); } @@ -390,37 +444,19 @@ [HttpPost] public IActionResult RequestMiJiLocation(RequestLocate model) { - - //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩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 = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); - //} - - //string palletno = model.PalletNo; var logStr = ""; logStr = $@".\log\WCS\WCS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; - try { - var jsonData = JsonConvert.SerializeObject(model); LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr); string pallet = model.PalletNo.Substring(0, 8); - var list = _asnPalletBindSvc.RequestMiJiLocation(pallet, model.HouseNo, model.RoadwayNo); + var list = _http.RequestMiJiLocation(pallet, model.HouseNo, model.RoadwayNo); LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr); - //new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勬垚鍔熶俊鎭�", 2);// int.Parse(userId) - //LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅鎴愬姛锛�( {JsonConvert.SerializeObject(list)} ),", logStr); return Ok(new { Success = 0, Message = "鐢宠鍌ㄤ綅鎴愬姛", TaskList = list }); } @@ -458,7 +494,7 @@ case "0"://鍏ュ簱瀹屾垚浠诲姟 if (model.TaskType == "0")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� { - _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0); + _http.ArrivalSuccess2(model.TaskNo, 0); return Ok(new WcsModel { StatusCode = 0, Msg = "鍏ュ簱瀹屾垚" }); } break; @@ -470,7 +506,7 @@ } else if (model.TaskType == "2") { - _exNoticeSvc.RelocationSuccess(model.TaskNo, 0); + _http.ExMoveSuccess(model.TaskNo, 0); return Ok(new WcsModel { StatusCode = 0, Msg = "绉诲簱瀹屾垚" }); } break; @@ -482,14 +518,24 @@ } else if (model.TaskType == "0")// 鐩樼偣鍑哄簱鎵樼洏鍥炲簱瀹屾垚 { - _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0); + _http.ArrivalSuccess2(model.TaskNo, 0); return Ok(new WcsModel { StatusCode = 0, Msg = "鍏ュ簱瀹屾垚" }); } break; - case "3"://绉诲簱瀹屾垚浠诲姟銆佷紭鍖栧偍浣� - if (model.TaskType == "3") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + case "3"://绉诲簱鍗� AGV璧拌繖 + if (model.TaskType == "2") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� { //濉啓绉诲簱瀹屾垚浠g爜 + _http.MoveSuccess(model.TaskNo, 0); + return Ok(new WcsModel { StatusCode = 0, Msg = "绉诲簱瀹屾垚" }); + } + break; + case "4"://璐ㄦ鍑哄簱 + if (model.TaskType == "2") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + { + //濉啓绉诲簱瀹屾垚浠g爜 + _http.ExMoveSuccess(model.TaskNo, 0); + return Ok(new WcsModel { StatusCode = 0, Msg = "绉诲簱瀹屾垚" }); } break; default: @@ -503,6 +549,120 @@ } } + /// <summary> + /// 鎺ュ彈wcs杩斿洖鐨勪俊鍙� 骞冲簱鍙栬揣瀹屾垚浠诲姟鍙嶉 + /// </summary> + /// <returns></returns> + [HttpPost] + public IActionResult UpLocateByAgvOut(ReceiveWcsSignal model) + { + try + { + //璁板綍log + var logStr = $@".\log\WCS\鍙栬揣瀹屾垚浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"AGV鍙栬揣瀹屾垚WCS浠诲姟鍙嶉锛�( {jsonData} ),", logStr); + + if (string.IsNullOrEmpty(model.TaskNo)) + { + return Ok(new WcsModel { StatusCode = -1, Msg = "鎺ュ彛鏁版嵁涓嶆纭紝浠诲姟鍙蜂负绌�" }); + } + _http.UpLocateByAgvOut(model.TaskNo,0); + + return Ok(new WcsModel { StatusCode = 0, Msg = "鎺ユ敹鎴愬姛" }); + } + catch (Exception ex) + { + return Ok(new WcsModel { StatusCode = -1, Msg = ex.Message }); + } + } + + + /// <summary> + /// 鎵嬪姩瀹屾垚鐨勪俊鍙� //鎸囦护鍙嶉锛堟槸鍚﹀畬鎴愶級 + /// </summary> + /// <returns></returns> + [HttpPost] + public IActionResult ReceiveRenGongSignal(ReceiveWcsSignal model) + { + //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D + var claimsIdentity = this.User.Identity as ClaimsIdentity; + if (claimsIdentity == null) + { + return Ok(new HttpReturnModel { Success = "1", Message = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; + if (string.IsNullOrWhiteSpace(userId)) + { + return Ok(new HttpReturnModel { Success = "1", Message = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + try + { + if (string.IsNullOrEmpty(model.TaskNo) || string.IsNullOrEmpty(model.TaskStatus) || string.IsNullOrEmpty(model.TaskType)) + { + return Ok(new HttpReturnModel { Success = "-1", Message = "鍙傛暟閿欒" }); + } + //鎺ユ敹鏃堕棿 + + var orderType = _taskSvc.GetTaskOrderType(model.TaskNo);// 鍒ゆ柇鍗曟嵁绫诲瀷鍏ュ嚭绉� + switch (orderType) + { + case "0"://鍏ュ簱瀹屾垚浠诲姟 + if (model.TaskType == "0")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + { + _http.ArrivalSuccess2(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "鍏ュ簱瀹屾垚" }); + } + break; + case "1"://鍑哄簱瀹屾垚浠诲姟 + if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + { + _exNoticeSvc.ExportSuccess(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "鍑哄簱瀹屾垚" }); + } + else if (model.TaskType == "2") + { + _http.ExMoveSuccess(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "绉诲簱瀹屾垚" }); + } + break; + case "2"://鐩樺簱瀹屾垚浠诲姟 + if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + { + _crCheckSvc.CheckSuccess(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "鐩樼偣鍑哄簱瀹屾垚" }); + } + else if (model.TaskType == "0")// 鐩樼偣鍑哄簱鎵樼洏鍥炲簱瀹屾垚 + { + _http.ArrivalSuccess2(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "鍏ュ簱瀹屾垚" }); + } + break; + case "3"://绉诲簱鍗� + if (model.TaskType == "2") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + { + //濉啓绉诲簱瀹屾垚浠g爜 + _http.MoveSuccess(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "绉诲簱瀹屾垚" }); + } + break; + case "4"://璐ㄦ鍑哄簱 + if (model.TaskType == "2") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� + { + _http.ExMoveSuccess(model.TaskNo, 0); + return Ok(new HttpReturnModel { Success = "0", Message = "绉诲簱瀹屾垚" }); + } + break; + default: + return Ok(new HttpReturnModel { Success = "-1", Message = "浼犻�掔殑浠诲姟鐘舵�佷负澶辫触鐘舵��" }); + } + return Ok(new HttpReturnModel { Success = "-1", Message = "浼犻�掔殑浠诲姟鐘舵�佷负澶辫触鐘舵��" }); + } + catch (Exception ex) + { + return Ok(new HttpReturnModel { Success = "-1", Message = ex.Message }); + } + } /// <summary> /// WCS鍙嶉AGV浠诲姟鍙栬揣瀹屾垚 -- Gitblit v1.8.0