From 4c2306b012351c27fbd457126e65d885478a6fb4 Mon Sep 17 00:00:00 2001 From: IPC-610 <IPC-610@DESKTOP-6LEOOS3> Date: 星期三, 30 十月 2024 11:34:42 +0800 Subject: [PATCH] qwe --- Admin.NET/WCS.Application/Util/HttpService.cs | 316 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 311 insertions(+), 5 deletions(-) diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs index cbb5172..9e0a195 100644 --- a/Admin.NET/WCS.Application/Util/HttpService.cs +++ b/Admin.NET/WCS.Application/Util/HttpService.cs @@ -1,26 +1,332 @@ -锘縰sing Furion.Logging; +锘縰sing DocumentFormat.OpenXml.EMMA; +using Elastic.Clients.Elasticsearch; +using Furion.Logging; using Furion.RemoteRequest.Extensions; +using Newtonsoft.Json; using System.Text; +using WCS.Application.Entity; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionResponse.Types; namespace WCS.Application; public class HttpService { private dynamic Urls; + + private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); public HttpService() { var _sysConfigService = App.GetService<SysConfigService>();//todo 杩欓噷闇�瑕佹祴璇曚笅鐢熷懡鍛ㄦ湡闂 Urls = _sysConfigService.GetSystemInfo().Result; } + + /// <summary> - /// 璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛 + /// 璋冪敤WMS鎺ュ彛鐢宠宸烽亾鎺ュ彛 + /// </summary> + /// <param name="palletNo"></param> + /// <param name="startLocat"></param> + /// <param name="taskModel"></param> + /// <param name="ceng"></param> + /// <param name="endLocat"></param> + /// <param name="taskNo"></param> + /// <returns></returns> + public string RequestRoadWay(string palletNo, string startLocat, string taskModel, string ceng, ref string endLocat, ref string taskNo) + { + string returnStr = ""; + + + var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo); + + if (task == null) + { + var model = new RequestAsnTask() + { + PalletNo = palletNo, + HouseNo = "W01", + TaskModel = taskModel + }; + + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = (url + "/api/DownAPi/RequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); + if (result.Success == 0) + { + + var taskAdd = new WcsTask() + { + TaskType = TaskTypeEnum.In, + Status = TaskStatusEnum.Wait, + Origin = "WMS", + StartLocate = startLocat, + PalletNo = palletNo, + TaskNo = result.TaskList.TaskNo, + Levels = 999, + EndLocate = result.TaskList.EndLocate, + EndRoadway = result.TaskList.EndRoadway + }; + + _db.Insertable(taskAdd).ExecuteCommand(); + endLocat = result.TaskList.EndRoadway; + taskNo = result.TaskList.TaskNo; + returnStr = result.TaskList.EndLocate; + + } + else + { + returnStr = "-1:" + result.Message; + return returnStr; + } + } + else + { + returnStr = task.EndLocate; + endLocat = task.EndRoadway; + taskNo = task.TaskNo; + } + + endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng); + + return returnStr; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鑷姩鐮佸灈缁戝畾淇℃伅杩斿洖宸烽亾鍙� + /// </summary> + /// <returns></returns> + public string BindRequestRoadWay(string orderNo, string palletNo,decimal qty ,string type,string skuNo, string lotNo, string lotText, string supplierLot, List<WcsBoxInfo> detail, + string startLocat, string taskModel, string ceng, ref string endLocat, ref string taskNo) + { + string returnStr = ""; + + var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo); + if (task == null) + { + var model = new BoxPalletBindVm() + { + OrderCode= "",//鏆傛棤涓婃父绯荤粺缂栧彿 + AsnNo= orderNo, + AsnDetailNo=0,//鏆傛棤鍏ュ簱鍗曟槑缁嗙紪鍙凤紝WMS鏍规嵁鐗╂枡鎵规鏌ユ壘 + PalletNo=palletNo, + Qty= qty, + Type=type, + SkuNo=skuNo, + LotNo= lotNo, + LotText= lotText, + SupplierLot= supplierLot, + Detail=detail + }; + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = (url + "/api/DownAPi/BindRequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); + if (result.Success == 0) + { + var taskAdd = new WcsTask() + { + TaskType = TaskTypeEnum.In, + Status = TaskStatusEnum.Wait, + Origin = "WMS", + StartLocate = startLocat, + PalletNo = palletNo, + TaskNo = result.TaskList.TaskNo, + EndLocate = result.TaskList.EndLocate, + EndRoadway = result.TaskList.EndRoadway + }; + + _db.Insertable(taskAdd).ExecuteCommand(); + endLocat = result.TaskList.EndRoadway; + returnStr = result.TaskList.EndLocate; + } + else + { + returnStr = "-1:" + result.Message; + return returnStr; + } + } + else + { + returnStr = task.EndLocate; + endLocat = task.EndRoadway; + taskNo = task.TaskNo; + } + + endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng); + + return returnStr; + } + /// <summary> + /// 璋冪敤WMS鎺ュ彛鐢宠鍌ㄤ綅鎺ュ彛 + /// </summary> + /// <param name="palletNo"></param> + /// <param name="startLocat"></param> + /// <param name="taskModel"></param> + /// <param name="starRoadWay"></param> + /// <param name="taskNo"></param> + /// <returns></returns> + public string RequestLocate(string palletNo, string startLocat, string taskModel, string starRoadWay, ref string taskNo) + { + string returnStr = ""; + + + var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false + && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) + && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo && !string.IsNullOrWhiteSpace(m.EndLocate)); + + if (task == null) + { + var model = new RequestAsnTask() + { + PalletNo = palletNo, + HouseNo = "W01", + RoadWayNo = starRoadWay, + TaskModel = taskModel + }; + + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = (url + "/api/DownAPi/RequestLocation").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result; + Log.Information("璋冪敤WMS鐢宠鍌ㄤ綅鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); + if (result.Success == 0) + { + var taskUp = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskNo == result.TaskList.TaskNo); + if (taskUp == null) + { + var taskAdd = new WcsTask() + { + TaskNo = result.TaskList.TaskNo, + TaskType = TaskTypeEnum.In, + Status = TaskStatusEnum.Wait, + //IsSuccess =TaskSuccessEnum.Success, + Origin = "WMS", + StartLocate = startLocat, + PalletNo = palletNo, + EndLocate = result.TaskList.EndLocate, + EndRoadway = result.TaskList.EndRoadway + }; + _db.Insertable(taskAdd).ExecuteCommand(); + HubUtil.PublicTask(taskAdd.Adapt<WcsTaskOutput>()); + } + else + { + taskUp.EndRoadway = result.TaskList.EndRoadway; + taskUp.EndLocate = result.TaskList.EndLocate; + _db.Updateable(taskUp).ExecuteCommand(); + HubUtil.PublicTask(taskUp.Adapt<WcsTaskOutput>()); + } + + + returnStr = result.TaskList.EndLocate; + taskNo = result.TaskList.TaskNo; + } + else + { + returnStr = "-1:" + result.Message; + return returnStr; + } + } + else + { + returnStr = task.EndLocate; + taskNo = task.TaskNo; + } + + return returnStr; + } + + + /// <summary> + /// 璋冪敤WMS鎺ュ彛 鍙嶉浠诲姟鎺ュ彛 /// </summary> /// <param name="model">浠诲姟瀹屾垚鐘舵��</param> /// <returns></returns> - public async Task<ResponseTasks> RequestTask(TaskRequest model) + public async Task<ResponseModel> RequestTask(TaskRequestWMS model) { string url = Urls.WMSAddress + ":" + Urls.WMSPort; - var result = await (url + "/api/DownAPi/ReceiveWcsSignal").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>(); - Log.Debug("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); + var result = await (url + "/api/DownAPi/ReceiveWcsSignal").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseModel>(); + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); return result; } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉绌哄彇寮傚父鎺ュ彛 + /// </summary> + /// <param name="model">浠诲姟淇℃伅</param> + /// <returns></returns> + public async Task<ResponseTasks> RequestEmptyException(TaskRequest model) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = await (url + "/api/DownAPi/EmptyException").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>(); + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉绌哄彇寮傚父鎺ュ彛" + result.ToJson()); + return result; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉婊″彇寮傚父鎺ュ彛 + /// </summary> + /// <param name="model">浠诲姟淇℃伅</param> + /// <returns></returns> + public async Task<ResponseTasks> RequestFullException(TaskRequest model) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = await (url + "/api/DownAPi/FullException").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>(); + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉婊″彇寮傚父鎺ュ彛" + result.ToJson()); + return result; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鐢宠绌烘墭璺哄嚭搴� + /// </summary> + /// <param name="Num"></param> + /// <param name="OutMode"></param> + /// <returns></returns> + public string IssuePlnOutHouseWcs(string Num,string OutMode) + { + string returnStr = ""; + + var model = new OutPalletModel() + { + Num = Num,//鍑哄簱璺烘暟 + OutMode = OutMode//鍑哄簱鍙� + }; + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = (url + "/api/DownAPi/IssuePlnOutHouseWcs").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseOutPallet>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); + + if (result.Success == 0) + { + foreach (var item in result.TaskList) + { + var taskUp = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskNo == item.TaskNo); + if (taskUp == null) + { + var taskAdd = new WcsTask() + { + TaskNo = item.TaskNo, + TaskType = (TaskTypeEnum)(int.Parse(item.TaskType)), + Status = TaskStatusEnum.Wait, + //IsSuccess =TaskSuccessEnum.Success, + Origin = "WMS", + StartLocate = item.StartLocate, + StartRoadway=item.StartRoadway, + PalletNo = item.PalletNo, + EndLocate = item.EndLocate, + EndRoadway = item.EndRoadway + }; + _db.Insertable(taskAdd).ExecuteCommand(); + HubUtil.PublicTask(taskAdd.Adapt<WcsTaskOutput>()); + } + else + { + taskUp.EndRoadway = item.EndRoadway; + taskUp.EndLocate = item.EndLocate; + _db.Updateable(taskUp).ExecuteCommand(); + HubUtil.PublicTask(taskUp.Adapt<WcsTaskOutput>()); + } + } + } + else + { + returnStr = "-1:" + result.Message; + return returnStr; + } + return returnStr; + } } -- Gitblit v1.8.0