´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f2de342-959b-4075-9776-5b88fd484124.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2f4187bd-8911-48bb-9104-01eaf1e80abd.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4ad14622-4b05-4fc3-abc0-0f0df9191418.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b9d13b5-464a-47d4-8dae-9937d5273cc6.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5023b4f8-50f2-4301-b3ca-8d83fa478bdc.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9b53cffc-065b-40ee-a779-a99d0cdd29b8.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/bb9c5c98-5de4-43c8-8a36-34ad166b9c7a.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c11191d7-3a6f-4b94-8bef-d18e80535b88.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d6701bb1-0090-4502-a2ca-a4e0726e92d8.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/efdfd79b-e601-448c-a03c-b67eceb80782.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ffdc57a2-11a0-4784-96ef-3f73a9839656.vsidxBinary files differ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Common.APIEnum { public enum APIEnum { [Description("AGVåé任塿¥å£")] AgvSendTask, [Description("AGVå®å ¨ä¿¡å·åå¤")] AGVSecureReply } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_DTO/AGV/AgvResponseContent.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_DTO.AGV { public class AgvResponseContent { /// <summary> /// è¿åç /// </summary> public string Code { get; set; } /// <summary> /// è¿åæ¶æ¯ /// </summary> public string Message { get; set; } /// <summary> /// 请æ±ç¼å· /// </summary> public string ReqCode { get; set; } /// <summary> /// èªå®ä¹è¿åï¼è¿åä»»å¡åå·ï¼ /// </summary> public string Data { get; set; } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/AGVService/InvokeAGVService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ using Autofac.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.APIEnum; using WIDESEA_Core; using WIDESEA_Core.Helper; using WIDESEA_DTO.AGV; using WIDESEA_External.Model; namespace WIDESEA_External.AGVService { public class InvokeAGVService : IInvokeAGVService { public static IInvokeAGVService Intance { get { return App.GetService<IInvokeAGVService>(); } } /// <summary> /// åéAGVä»»å¡ /// </summary> /// <param name="taskModel"></param> /// <returns></returns> public WebResponseContent SendAgvTask(AgvTaskModel taskModel) { WebResponseContent content = new WebResponseContent(); try { string apiAddress = AppSettings.Get(APIEnum.AgvSendTask.ToString()); string response = HttpHelper.Post(apiAddress, taskModel.Serialize()); AgvResponseContent agvContent= response.DeserializeObject<AgvResponseContent>(); if (agvContent.Code=="200") { content.OK(agvContent.Message); } else { content.Error(agvContent.Message); } } catch (Exception ex) { content.Error(ex.Message); } return content; } public WebResponseContent AGVSecureReply(AgvSecureModel secureModel) { WebResponseContent content = new WebResponseContent(); try { string apiAddress = AppSettings.Get(APIEnum.AGVSecureReply.ToString()); string response = HttpHelper.Post(apiAddress, secureModel.Serialize()); AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); if (agvContent.Code == "200") { content.OK(agvContent.Message); } else { content.Error(agvContent.Message); } } catch (Exception ex) { content.Error(ex.Message); } return content; } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/IAGVService/IInvokeAGVService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_External.Model; namespace WIDESEA_External.AGVService { public interface IInvokeAGVService:IDependency { /// <summary> /// åéAGVä»»å¡ /// </summary> /// <param name="taskModel"></param> /// <returns></returns> WebResponseContent SendAgvTask(AgvTaskModel taskModel); /// <summary> /// AGVå®å ¨ä¿¡å·åå¤ /// </summary> /// <returns></returns> WebResponseContent AGVSecureReply(AgvSecureModel secureModel); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/AgvSecureModel.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_External.Model { public class AgvSecureModel { /// <summary> /// 请æ±ç¼å· æ¯ä¸ªè¯·æ±é½è¦ä¸ä¸ªå¯ä¸ç¼å·,åä¸ä¸ªè¯·æ±éå¤æäº¤,使ç¨åä¸ç¼å· /// </summary> public string ReqCode { get; set; } /// <summary> /// è¯·æ±æ¶é´ æ ¼å¼:yyyy-MM-dd HH:mm:ss /// </summary> public string ReqTime { get; set; } /// <summary> /// 客æ·ç«¯ç¼å· /// </summary> public string ClientCode { get; set; } /// <summary> /// 令çå· ç±è°åº¦ç³»ç»é¢å /// </summary> public string TokenCode { get; set; } /// <summary> /// å·¥ä½ä½ ä¸RCS-2000端é ç½®çä½ç½®åç§°ä¸è´ /// </summary> public string WbCode { get; set; } /// <summary> /// è½½å ·ç¼å· /// </summary> public string podCode { get; set; } /// <summary> /// AGVç¼å· /// </summary> public string agvCode { get; set; } /// <summary> /// ä»»å¡å· /// </summary> public string taskCode { get; set; } /// <summary> /// ä¸ä¸ä¸ªåä»»å¡åºå æå®ç¬¬å 个åä»»å¡å¼å§æ§è¡,æ ¡éªå任塿§è¡æ¯å¦æ£ç¡®,ä¸å¡«é»è®¤æ§è¡ä¸ä¸ä¸ªåä»»å¡ã /// </summary> public string taskSeq { get; set; } /// <summary> /// ä¸ä¸ä¸ªä½ç½®ä¿¡æ¯ /// positionCode:ä½ç½®ç¼å· /// type:对象类åå®ä¹: /// 00:代表 nextPositionCodeæ¯ä¸ä¸ªä½ç½® /// 02:代表 nextPositionCodeæ¯ä¸ä¸ªçç¥ /// </summary> public object nextPositionCode { get; set; } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/AgvTaskModel.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_External.Model { /// <summary> /// AGVä»»å¡ /// </summary> public class AgvTaskModel { /// <summary> /// 请æ±ç¼å· æ¯ä¸ªè¯·æ±é½è¦ä¸ä¸ªå¯ä¸ç¼å·,åä¸ä¸ªè¯·æ±éå¤æäº¤,使ç¨åä¸ç¼å· /// </summary> public string ReqCode { get; set; } /// <summary> /// ä»»å¡ç±»å /// </summary> public string TaskTyp { get; set; } /// <summary> /// å·¥ä½ä½ /// </summary> public string WbCode { get; set; } /// <summary> /// ä½ç½®è·¯å¾ /// </summary> public List<object> PositionCodePath { get; set; } /// <summary> /// è½½å ·ç¼å· /// </summary> public string PodCode { get; set; } /// <summary> /// è½½å ·ç±»å /// </summary> public string PodTyp { get; set; } /// <summary> /// ç©ææ¹æ¬¡ /// </summary> public string MaterialLot { get; set; } /// <summary> /// ä¼å 级(1~127)æå¤§ä¼å 级æé« 为空æ¶,éç¨ä»»å¡æ¨¡æ¿çä¼å 级 /// </summary> public string Priority { get; set; } /// <summary> /// AGVä»»å¡å· /// </summary> public string TaskCode { get; set; } /// <summary> /// AGV设å¤ç¼å· å¡«å坿宿ä¸ç¼å·çAGVæ§è¡è¯¥ä»»å¡ /// </summary> public string AgvCode { get; set; } /// <summary> /// AGV设å¤ç±»å /// </summary> public string AgvTyp { get; set; } /// <summary> /// åºå/çç¥<br/> /// æéè´§æ¶ä»¥åæ ¹æ®ç©ææ¹æ¬¡æéè´§æ¶æ¶çå è¿å åºè§åï¼æ¯æä»¥ä¸4个å¼ï¼<br/> /// 1ï¼æç §è´§æ¶å°è¾¾å¨ä½çæ¶é´é¡ºåºï¼å è¿å åº<br/> /// 2ï¼æç §è´§æ¶å°è¾¾å¨ä½çæ¶é´é¡ºåºï¼å è¿ååº<br/> /// 9ï¼æç §è´§æ¶ç»å®ç©ææ¹æ¬¡çæ¶é´é¡ºåºï¼å è¿å åº<br/> /// 10ï¼æç §è´§æ¶ç»å®ç©ææ¹æ¬¡çæ¶é´é¡ºåºï¼å è¿ååº<br/> /// </summary> public string PositionSelStrategy { get; set; } /// <summary> /// èªå®ä¹å段 /// </summary> public string Data { get; set; } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/WIDESEA_External.csproj
@@ -7,7 +7,9 @@ </PropertyGroup> <ItemGroup> <ProjectReference Include="..\WIDESEA_Common\WIDESEA_Common.csproj" /> <ProjectReference Include="..\WIDESEA_Core\WIDESEA_Core.csproj" /> <ProjectReference Include="..\WIDESEA_DTO\WIDESEA_DTO.csproj" /> </ItemGroup> </Project> ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Customer.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks; using WIDESEA_Core.DB.Models; namespace WIDESEA_Model.Models.Basic namespace WIDESEA_Model.Models { [SugarTable(nameof(Dt_Customer),"客æ·ä¿¡æ¯")] public class Dt_Customer : BaseEntity ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGV/AgvController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SqlSugar; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.MaterielEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.Attributes; using WIDESEA_Core.Helper; using WIDESEA_DTO; using WIDESEA_DTO.Basic; using WIDESEA_DTO.ERP; using WIDESEA_External.AGVService; using WIDESEA_External.ERPService; using WIDESEA_External.Model; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_IOutboundService; using WIDESEA_Model.Models; using static WIDESEA_DTO.ErpResponseContent; namespace WIDESEA_WMSServer.Controllers.ERP { [Route("api/Agv")] [ApiController] public class AgvController : ControllerBase { public AgvController() { } /// <summary> /// åéAGVä»»å¡ /// </summary> /// <param name="taskModel"></param> /// <returns></returns> [HttpPost,Route("SendAgvTask"),AllowAnonymous] public WebResponseContent SendAgvTask([FromBody] AgvTaskModel taskModel) { return InvokeAGVService.Intance.SendAgvTask(taskModel); } } }