From f040136ab8029cc207a8111d21c78bbf315a6dbd Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期一, 21 十月 2024 18:54:19 +0800
Subject: [PATCH] 修改问题
---
Admin.NET/WCS.Application/Util/HttpService.cs | 287 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 283 insertions(+), 4 deletions(-)
diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index cb84eb5..b471dc6 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -1,25 +1,245 @@
-锘縰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;
+ 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>();
+ var result = await (url + "/api/DownAPi/ReceiveWcsSignal").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseModel>();
Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
return result;
}
@@ -49,4 +269,63 @@
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