From 7ab32aab1cfd8b71940ade95fa69aec0b95e95c3 Mon Sep 17 00:00:00 2001 From: liudl <673013083@qq.com> Date: 星期日, 16 二月 2025 16:36:40 +0800 Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/WCSNet6 --- Admin.NET/WCS.Application/Util/HttpService.cs | 523 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 352 insertions(+), 171 deletions(-) diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs index 9509fb6..7aa62f6 100644 --- a/Admin.NET/WCS.Application/Util/HttpService.cs +++ b/Admin.NET/WCS.Application/Util/HttpService.cs @@ -1,7 +1,12 @@ -锘縰sing Furion.Logging; +锘縰sing DocumentFormat.OpenXml.EMMA; +using DocumentFormat.OpenXml.Vml.Office; +using Elastic.Clients.Elasticsearch; +using Furion.Logging; using Furion.RemoteRequest.Extensions; using Newtonsoft.Json; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System.Text; +using WCS.Application.Entity; using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionResponse.Types; namespace WCS.Application; @@ -30,7 +35,7 @@ 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); @@ -44,25 +49,29 @@ }; string url = Urls.WMSAddress + ":" + Urls.WMSPort; - var result = (url + "/api/DownAPi/RequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result; + var result = (url + "/api/DownAPi/RequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result; Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); - if (result.StatusCode == "0") + 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 { @@ -80,155 +89,73 @@ endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng); return returnStr; - // 纭畾鐩爣宸ヤ綅//闇�娣诲姞灞傛暟纭 - //switch (endLocat) - //{ - // case "R01": - // if (ceng == "1") - // { - // endLocat = "145"; - // } - // else if (ceng == "2") - // { - // endLocat = "252"; - // } - // else if (ceng == "3") - // { - // endLocat = "101"; - // } - // break; - // case "R02": - // if (ceng == "1") - // { - // endLocat = "137"; - // } - // else if (ceng == "2") - // { - // endLocat = "260"; - // } - // else if (ceng == "3") - // { - // endLocat = "405"; - // } - // break; - // case "R03": - // if (ceng == "1") - // { - // endLocat = "127"; - // } - // else if (ceng == "2") - // { - // endLocat = "270"; - // } - // else if (ceng == "3") - // { - // endLocat = "409"; - // } - // break; - // case "R04": - // if (ceng == "1") - // { - // endLocat = "119"; - // } - // else if (ceng == "2") - // { - // endLocat = "278"; - // } - // else if (ceng == "3") - // { - // endLocat = "413"; - // } - // break; - // case "R05": - // if (ceng == "1") - // { - // endLocat = "109"; - // } - // else if (ceng == "2") - // { - // endLocat = "288"; - // } - // else if (ceng == "3") - // { - // endLocat = "417"; - // } - // break; - // case "R06": - // if (ceng == "1") - // { - // endLocat = "101"; - // } - // else if (ceng == "2") - // { - // endLocat = "301"; - // } - // else if (ceng == "3") - // { - // endLocat = "421"; - // } - // break; - // case "R07": - // if (ceng == "1") - // { - // endLocat = "091"; - // } - // else if (ceng == "2") - // { - // endLocat = "307"; - // } - // else if (ceng == "3") - // { - // endLocat = "425"; - // } - // break; - // case "R08": - // if (ceng == "1") - // { - // endLocat = "083"; - // } - // else if (ceng == "2") - // { - // endLocat = "315"; - // } - // else if (ceng == "3") - // { - // endLocat = "429"; - // } - // break; - // case "R09": - // if (ceng == "1") - // { - // endLocat = "073"; - // } - // else if (ceng == "2") - // { - // endLocat = "325"; - // } - // else if (ceng == "3") - // { - // endLocat = "433"; - // } - // break; - // case "R10": - // if (ceng == "1") - // { - // endLocat = "065"; - // } - // else if (ceng == "2") - // { - // endLocat = "337"; - // } - // else if (ceng == "3") - // { - // endLocat = "437"; - // } - // break; - //} - - - } + /// <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; + taskNo = result.TaskList.TaskNo; + } + 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> @@ -243,7 +170,9 @@ 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)); + 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) { @@ -258,20 +187,35 @@ 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.StatusCode == "0") + if (result.Success == 0) { - - var taskAdd = new WcsTask() + var taskUp = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskNo == result.TaskList.TaskNo); + if (taskUp == null) { - TaskType = TaskTypeEnum.In, - Origin = "WMS", - StartLocate = startLocat, - TaskNo = result.TaskList.TaskNo, - EndLocate = result.TaskList.EndLocate, - EndRoadway = result.TaskList.EndRoadway - }; + 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>()); + } - _db.Updateable(taskAdd).ExecuteCommand(); + returnStr = result.TaskList.EndLocate; taskNo = result.TaskList.TaskNo; } @@ -288,7 +232,6 @@ } return returnStr; - } @@ -297,10 +240,10 @@ /// </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>(); + var result = await (url + "/api/DownAPi/ReceiveWcsSignal").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseModel>(); Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); return result; } @@ -313,7 +256,18 @@ 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>(); + //string TaskType = ""; + //string TaskStatus = ""; + //var PalletNo = ""; + //var TaskNo = ""; + var str = new + { + PalletNo = model.PalletNo, + TaskNo = model.TaskNo, + TaskType = model.TaskType.ToString(), + TaskStatus = model.TaskStatus.ToString(), + }; + var result = await (url + "/api/DownAPi/EmptyException").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>(); Log.Information("璋冪敤WMS鎺ュ彛鍙嶉绌哄彇寮傚父鎺ュ彛" + result.ToJson()); return result; } @@ -326,8 +280,235 @@ 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>(); + var str = new + { + PalletNo = model.PalletNo, + TaskNo = model.TaskNo, + TaskType = model.TaskType.ToString(), + TaskStatus = model.TaskStatus.ToString(), + }; + var result = await (url + "/api/DownAPi/FullException").SetBody(str, "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; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鐢宠绌烘墭璺虹粦瀹� + /// </summary> + /// <param name="Qty"></param> + /// <param name="palletNo"></param> + /// <returns></returns> + public string BindPlnInHouseWcs(string Qty, string palletNo) + { + string returnStr = ""; + + var model = new BindPalletModel() + { + BindType = "1",//鐢宠绫诲瀷 + Qty = int.Parse(Qty),//鍙犳墭鏈鸿泛鎵樼洏鏁� + PalletNo = palletNo,//鎵樼洏鍙� + }; + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var result = (url + "/api/DownAPi/BindPlnInHouseWcs").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseOutPallet>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson()); + + if (result.Success == 0) + { + returnStr = result.TaskList.ToString(); + } + else + { + returnStr = "-1:" + result.Message; + return returnStr; + } + return returnStr; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉鐢宠缂犺啘鎺ュ彛 + /// </summary> + /// <param name="PalletNo">鎵樼洏鍙�</param> + /// <returns></returns> + public string RequestPackWcs(string PalletNo) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new PackModel() + { + PalletNo = PalletNo + }; + + var result = (url + "/api/DownAPi/RequestPackWcs").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<IsBaleModel2>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉鐢宠缂犺啘寮傚父鎺ュ彛" + result.ToJson()); + + return result.Success.ToString(); + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉鎷嗚啘寮傚父鎺ュ彛 + /// </summary> + /// <param name="palletno">鎵樼洏鍙�</param> + /// <returns></returns> + public string RequestUnPackWcs(string palletno) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new + { + PalletNo = palletno + }; + var result = (url + "/api/DownAPi/RequestUnPackWcs").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<IsBaleModel2>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉鎷嗚啘寮傚父鎺ュ彛" + result.ToJson()); + return result.Success.ToString(); + } + + + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉缂犺啘瀹屾垚 + /// </summary> + /// <param name="palletno">鎵樼洏鍙�</param> + /// <returns></returns> + public string RequestPackedWcs(string palletno) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new + { + PalletNo = palletno + }; + var result = (url + "/api/DownAPi/RequestPackedWcs").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<IsBaleModel2>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉缂犺啘瀹屾垚寮傚父鎺ュ彛" + result.ToJson()); + return result.Success.ToString(); + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉鎷嗗灈鎵樼洏淇℃伅 + /// </summary> + /// <param name="palletno">鎵樼洏鍙�</param> + /// <param name="taskno">浠诲姟鍙�</param> + /// <returns></returns> + public RequestBoxInfoCheckAll RequestBoxCheckinfo(string palletno,string taskno) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new + { + PalletNo = palletno, + TaskNo = taskno + }; + var result = (url + "/api/DownAPi/ResultBoxInfoCheckWcs").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<RequestBoxInfoCheckAll>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉鎷嗘墭鎵樼洏淇℃伅寮傚父鎺ュ彛" + result.ToJson()); + return result; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉鍒嗘嫞鍑哄簱绠变俊鎭� + /// </summary> + /// <param name="palletno">鎵樼洏鍙�</param> + /// <param name="taskno">浠诲姟鍙�</param> + /// <returns></returns> + public IsBaleModel2 RequestBoxno(string palletno) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new + { + PalletNo = palletno, + }; + var result = (url + "/api/DownAPi/RequestBoxno").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<IsBaleModel2>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉缂犺啘瀹屾垚寮傚父鎺ュ彛" + result.ToJson()); + return result; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛楠岃瘉绠辩爜鏄惁鍙嫞璐у苟杩斿洖瑁呰溅鍙� + /// </summary> + /// <param name="boxNo">绠辩爜</param> + /// <returns></returns> + public RequestloadingAddre ResultBoxInfoExportWcs(string boxNo) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new + { + BoxNo = boxNo + }; + var result = (url + "/api/DownAPi/ResultBoxInfoCheckWcs").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<RequestloadingAddre>().Result; + Log.Information("璋冪敤WMS鎺ュ彛楠岃瘉绠辩爜鏄惁鍙嫞璐у苟杩斿洖瑁呰溅鍙�:" + result.ToJson()); + + return result; + } + + /// <summary> + /// 璋冪敤WMS鎺ュ彛鍙嶉AGV鍙斁淇″彿 + /// </summary> + /// <param name="taskno">浠诲姟鍙�</param> + /// <param name="port">宸ヤ綅鍙�</param> + /// <returns></returns> + public string RequesContinueAgv(string taskno,string port) + { + string url = Urls.WMSAddress + ":" + Urls.WMSPort; + var str = new + { + TaskNo = taskno, + Port = port + }; + var result = (url + "/api/DownAPi/AgcontinueTask").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<IsBaleModel>().Result; + Log.Information("璋冪敤WMS鎺ュ彛鍙嶉鎷嗚啘寮傚父鎺ュ彛" + result.ToJson()); + return result.Success.ToString(); + } } -- Gitblit v1.8.0