林豪 左 2 lat temu
rodzic
commit
f160cbba78

+ 31 - 0
分拣库/WCS.WorkEngineering/WebApi/Controllers/AgvController.cs

@@ -0,0 +1,31 @@
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WCS.WorkEngineering.WebApi.Models;
+
+namespace WCS.WorkEngineering.WebApi.Controllers
+{
+    /// <summary>
+    /// AGV相关接口控制器
+    /// </summary>
+    [ApiController]
+    [Route("[controller]/[action]")]
+    public class AgvController : ControllerBase
+    {
+        /// <summary>
+        /// AGV执行回调
+        /// </summary>
+        /// <param name="reqDto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public agvCallbackResponse agvCallback(agvCallbackRequest reqDto)
+        {
+            var res = new agvCallbackResponse() { code = "0", message = "成功" };
+
+            return res;
+        }
+    }
+}

+ 62 - 0
分拣库/WCS.WorkEngineering/WebApi/Models/CopperLineAgvTaskStockInToIWmsRequest.cs

@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.WorkEngineering.WebApi.Models
+{
+    public class CopperLineAgvTaskStockInToIWmsRequest
+    {
+        /// <summary>
+        /// 物料编码
+        /// </summary>
+        public string matCode { get; set; }
+        /// <summary>
+        /// 工作站编号
+        /// </summary>
+        public string workAreaCode { get; set; }
+        /// <summary>
+        /// 空/满工字轮标记(满工字轮:1空工字轮:0)
+        /// </summary>
+        public string outSpoolFull { get; set; }
+        /// <summary>
+        /// 取空补满标记
+        /// </summary>
+        public bool intoEmpty { get; set; }
+        /// <summary>
+        /// 湿拉出库标记
+        /// </summary>
+        public string wetOut { get; set; }
+        /// <summary>
+        /// 湿拉退料出库标记
+        /// </summary>
+        public string wetOutReturn { get; set; }
+        /// <summary>
+        /// 改手盘标记
+        /// </summary>
+        public string isSurplus { get; set; }
+        /// <summary>
+        /// 返工标记
+        /// </summary>
+        public string isRework { get; set; }
+        /// <summary>
+        /// 材料号
+        /// </summary>
+        public string matNo { get; set; }
+        /// <summary>
+        /// RFID号
+        /// </summary>
+        public string spoolNo { get; set; }
+        /// <summary>
+        /// 质量状态标记
+        /// </summary>
+        public string gradeCode { get; set; }
+        /// <summary>
+        /// 快投标记
+        /// </summary>
+        public string matFast { get; set; }
+        /// <summary>
+        /// 任务号
+        /// </summary>
+        public string taskNo { get; set; }
+    }
+}

+ 82 - 0
分拣库/WCS.WorkEngineering/WebApi/Models/CopperLineAgvTaskStockOutToIWmsRequest.cs

@@ -0,0 +1,82 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.WorkEngineering.WebApi.Models
+{
+    public class CopperLineAgvTaskStockOutToIWmsRequest
+    {
+        /// <summary>
+        /// 物料编码
+        /// </summary>
+        public string matCode { get; set; }
+        /// <summary>
+        /// 工作站编号(机台号、立库点位编号)
+        /// </summary>
+        public string wbCode { get; set; }
+        /// <summary>
+        /// 空/满工字轮入库标记(空工字轮:0,满工字轮:1,半工字轮:2)
+        /// </summary>
+        public string inSpoolFull { get; set; }
+        /// <summary>
+        /// 取满补空标记
+        /// </summary>
+        public bool getOutEmpty { get; set; }
+        /// <summary>
+        /// 湿拉上线标记
+        /// </summary>
+        public bool wetInto { get; set; }
+        /// <summary>
+        /// 湿拉特殊上线标记
+        /// </summary>
+        public bool wetIntoSpec { get; set; }
+        /// <summary>
+        /// 湿拉退料入库标记
+        /// </summary>
+        public bool wetIntoReturn { get; set; }
+        /// <summary>
+        /// 湿拉特殊上线点位号
+        /// </summary>
+        public string wetSpecWbCode { get; set; }
+        /// <summary>
+        /// 改手盘标记
+        /// </summary>
+        public string isSurplus { get; set; }
+        /// <summary>
+        /// 返工标记
+        /// </summary>
+        public string isRework { get; set; }
+        /// <summary>
+        /// 材料号
+        /// </summary>
+        public string matNo { get; set; }
+        /// <summary>
+        /// RFID号
+        /// </summary>
+        public string spoolNo { get; set; }
+        /// <summary>
+        /// 质量状态标记
+        /// </summary>
+        public string gradeCode { get; set; }
+        /// <summary>
+        /// 快投标记
+        /// </summary>
+        public string matFast { get; set; }
+        /// <summary>
+        /// 长度
+        /// </summary>
+        public string orderProcessLenOut { get; set; }
+        /// <summary>
+        /// 任务号
+        /// </summary>
+        public string taskNo { get; set; }
+        /// <summary>
+        /// 退料原因
+        /// </summary>
+        public string returnDesc { get; set; }
+        /// <summary>
+        /// 是否锁定
+        /// </summary>
+        public string lockFlag { get; set; }
+    }
+}

+ 87 - 0
分拣库/WCS.WorkEngineering/WebApi/Models/GenAgvSchedulingTaskRequest.cs

@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.WorkEngineering.WebApi.Models
+{
+    public class GenAgvSchedulingTaskRequest
+    {
+        /// <summary>
+        /// 请求编号,每个请求都要一个唯一编号, 同一个请求重复提交, 使用同一编号。
+        /// </summary>
+        public string reqCode { get; set; }
+        /// <summary>
+        /// 请求时间截 格式: “yyyy-MM-dd HH:mm:ss”
+        /// </summary>
+        public string reqTime { get; set; }
+        /// <summary>
+        /// 客户端编号,如PDA,HCWMS等
+        /// </summary>
+        public string clientCode { get; set; }
+        /// <summary>
+        /// 令牌号, 由调度系统颁发
+        /// </summary>
+        public string tokenCode { get; set; }
+        /// <summary>
+        /// 任务类型
+        /// </summary>
+        public string taskTyp { get; set; }
+        /// <summary>
+        /// 容器类型(叉车/CTU专用)叉车项目必传
+        /// </summary>
+        public string ctnrTyp { get; set; }
+        /// <summary>
+        /// 任务模式
+        /// </summary>
+        public string taskMode { get; set; }
+        /// <summary>
+        /// 工作位
+        /// </summary>
+        public string wbCode { get; set; }
+        /// <summary>
+        /// 位置路径
+        /// </summary>
+        public List<positionCodeClass> positionCodePath { get; set; }
+        /// <summary>
+        /// 货架编号
+        /// </summary>
+        public string podCode { get; set; }
+        /// <summary>
+        /// “180”,”0”,”90”,”-90”
+        /// </summary>
+        public string podDir { 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>
+        /// 任务单号,选填, 不填系统自动生成,UUID小于等于64位
+        /// </summary>
+        public string taskCode { get; set; }
+        /// <summary>
+        /// AGV编号,填写表示指定某一编号的AGV执行该任务
+        /// </summary>
+        public string agvCode { get; set; }
+        /// <summary>
+        /// 组编号
+        /// </summary>
+        public string groupId { get; set; }
+        /// <summary>
+        /// 自定义字段.JSON格式 
+        /// </summary>
+        public string data { get; set; }
+    }
+    public class positionCodeClass
+    {
+        public string positionCode { get; set; }
+        public string type { get; set; }
+    }
+}

+ 26 - 0
分拣库/WCS.WorkEngineering/WebApi/Models/GenAgvSchedulingTaskResponse.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.WorkEngineering.WebApi.Models
+{
+    public class GenAgvSchedulingTaskResponse
+    {
+        /// <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; }
+    }
+}

+ 94 - 0
分拣库/WCS.WorkEngineering/WebApi/Models/agvCallbackRequest.cs

@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.WorkEngineering.WebApi.Models
+{
+    public class agvCallbackRequest
+    {
+        /// <summary>
+        /// 请求编号,每个请求都要一个唯一编号, 同一个请求重复提交, 使用同一编号
+        /// </summary>
+        public string reqCode { get; set; }
+        /// <summary>
+        /// 请求时间戳,格式: “yyyy-MM-dd HH:mm:ss”
+        /// </summary>
+        public string reqTime { get; set; }
+        /// <summary>
+        /// 地码 X 坐标(mm):任务完成时有值
+        /// </summary>
+        public decimal cooX { get; set; }
+        /// <summary>
+        /// 地码 Y 坐标(mm):任务完成时有值
+        /// </summary>
+        public decimal cooY { get; set; }
+        /// <summary>
+        /// 当前位置编号
+        /// </summary>
+        public string currentPositionCode { get; set; }
+        /// <summary>
+        /// 自定义字段
+        /// </summary>
+        public string data { get; set; }
+        /// <summary>
+        /// 地图编号
+        /// </summary>
+        public string mapCode { get; set; }
+        /// <summary>
+        /// 地码编号:任务完成时有值
+        /// </summary>
+        public string mapDataCode { get; set; }
+        /// <summary>
+        /// 仓位编号:叉车与CTU任务时有值
+        /// </summary>
+        public string stgBinCode { get; set; }
+        /// <summary>
+        /// 方法名, 可使用任务类型做为方法名
+        /// </summary>
+        public string method { get; set; }
+        /// <summary>
+        /// 货架编号:背货架时有值
+        /// </summary>
+        public string podCode { get; set; }
+        /// <summary>
+        /// “180”,”0”,”90”,”-90” 分别对应地图的”左”,”右”,”上”,”下”:任务完成时有值
+        /// </summary>
+        public string podDir { get; set; }
+        /// <summary>
+        /// 物料编号
+        /// </summary>
+        public string materialLot { get; set; }
+        /// <summary>
+        /// AGV编号(同 agvCode )
+        /// </summary>
+        public string robotCode { get; set; }
+        /// <summary>
+        /// 当前任务单号
+        /// </summary>
+        public string taskCode { get; set; }
+        /// <summary>
+        /// 工作位
+        /// </summary>
+        public string wbCode { get; set; }
+        /// <summary>
+        /// 容器编号
+        /// </summary>
+        public string ctnrCode { get; set; }
+        /// <summary>
+        /// 容器类型
+        /// </summary>
+        public string ctnrType { get; set; }
+        /// <summary>
+        /// 巷道编号
+        /// </summary>
+        public string roadWayCode { get; set; }
+        /// <summary>
+        /// 巷道内顺序号巷道尾是0,到巷道头依次递增1
+        /// </summary>
+        public string seq { get; set; }
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+        public string eqpCode { get; set; }
+    }
+}

+ 22 - 0
分拣库/WCS.WorkEngineering/WebApi/Models/agvCallbackResponse.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WCS.WorkEngineering.WebApi.Models
+{
+    public class agvCallbackResponse
+    {
+        /// <summary>
+        /// 返回码
+        /// </summary>
+        public string code { get; set; } = "0";
+        /// <summary>
+        /// 返回消息
+        /// </summary>
+        public string message { get; set; } = "成功";
+        /// <summary>
+        /// 请求编号
+        /// </summary>
+        public string reqCode { get; set; }
+    }
+}

+ 0 - 50
分拣库/WCS.WorkEngineering/WebApi/Startup.cs

@@ -1,50 +0,0 @@
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-
-namespace WCS.WorkEngineering.WebApi
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllers();
-            //services.AddSwaggerGen(c =>
-            //{
-            //    c.SwaggerDoc("v1", new OpenApiInfo { Title = "WCSAPI", Version = "v1" });
-            //});
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                //app.UseSwagger();
-                //app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebApplication1 v1"));
-            }
-
-            app.UseHttpsRedirection();
-
-            app.UseRouting();
-
-            app.UseAuthorization();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllers();
-            });
-        }
-    }
-}

+ 110 - 0
分拣库/WCS.WorkEngineering/WebApi/任务.cs

@@ -0,0 +1,110 @@
+///// <summary>
+//     /// 镀铜一楼res下任务
+//     /// </summary>
+//     /// <param name="reqDto"></param>
+//     /// <returns></returns>
+//     [HttpPost]
+//     public GenAgvSchedulingTaskResponse CopperLineAgvTaskToRcs(GenAgvSchedulingTaskRequest reqDto)
+//     {
+//         var result = new GenAgvSchedulingTaskResponse();
+//         GenAgvSchedulingTaskRequest resReq = new GenAgvSchedulingTaskRequest();
+//         var apiurl = wms.util.AppSettings.GetConfig("RcsCreateTaskPushUrl");
+//         var strRes = HttpUtil.PostRequest(apiurl, JsonConvert.SerializeObject(resReq), 30000);
+//         if (string.IsNullOrEmpty(strRes))
+//         {
+//             result.message = "返回空";
+//             return result;
+//         }
+//         return JsonConvert.DeserializeObject<GenAgvSchedulingTaskResponse>(strRes);
+//     }
+//     /// <summary>
+//     /// 镀铜一楼res继续任务
+//     /// </summary>
+//     /// <param name="reqDto"></param>
+//     /// <returns></returns>
+//     [HttpPost]
+//     public GenAgvSchedulingTaskResponse CopperLineContinueTaskToRcs(GenAgvSchedulingTaskRequest reqDto)
+//     {
+//         var result = new GenAgvSchedulingTaskResponse();
+//         GenAgvSchedulingTaskRequest resReq = new GenAgvSchedulingTaskRequest()
+//         { };
+//         var apiurl = wms.util.AppSettings.GetConfig("RcsContinuePushUrl");
+//         var strRes = HttpUtil.PostRequest(apiurl, JsonConvert.SerializeObject(resReq), 30000);
+//         if (string.IsNullOrEmpty(strRes))
+//         {
+//             result.message = "返回空";
+//             return result;
+//         }
+//         return JsonConvert.DeserializeObject<GenAgvSchedulingTaskResponse>(strRes);
+//     }
+//     /// <summary>
+//     /// 镀铜二楼IWMS下发满轮出库
+//     /// </summary>
+//     /// <param name="reqDto"></param>
+//     /// <returns></returns>
+//     [HttpPost]
+//     public SRes CopperLineAgvTaskStockOutToIWms(CopperLineAgvTaskStockOutToIWmsRequest reqDto)
+//     {
+//         var result = new SRes();
+//         CopperLineAgvTaskStockOutToIWmsRequest resReq = new CopperLineAgvTaskStockOutToIWmsRequest()
+//         {
+//             matCode = "",
+//             wbCode = "满轮接驳口",
+//             inSpoolFull = "1",
+//             wetInto = true,
+//             wetIntoSpec = false,
+//             isSurplus = "",
+//             isRework = "",
+//             matNo = "",
+//             spoolNo = "",
+//             gradeCode = "",
+//             taskNo = Guid.NewGuid().ToString(),
+
+//         };
+//         var apiurl = wms.util.AppSettings.GetConfig("IWmsStockOutPushUrl");
+//         var strRes = HttpUtil.PostRequest(apiurl, JsonConvert.SerializeObject(reqDto), 30000);
+//         if (string.IsNullOrEmpty(strRes))
+//         {
+//             //result.message = "返回空";
+//             return result;
+//         }
+//         return JsonConvert.DeserializeObject<SRes>(strRes);
+//     }
+//     /// <summary>
+//     /// 镀铜二楼IWMS下发空轮/退料/余料入库
+//     /// </summary>
+//     /// <param name="reqDto"></param>
+//     /// <returns></returns>
+//     [HttpPost]
+//     public SRes CopperLineAgvTaskStockInToIWms(CopperLineAgvTaskStockInToIWmsRequest reqDto)
+//     {
+//         var result = new SRes();
+//         CopperLineAgvTaskStockInToIWmsRequest resReq = new CopperLineAgvTaskStockInToIWmsRequest()
+//         {
+//             matCode = "",
+//             workAreaCode = "11",
+//             outSpoolFull = "1",
+//             taskNo = Guid.NewGuid().ToString()
+//         };
+//         var apiurl = wms.util.AppSettings.GetConfig("IWmsStockInPushUrl");
+//         var strRes = HttpUtil.PostRequest(apiurl, JsonConvert.SerializeObject(reqDto), 30000);
+//         if (string.IsNullOrEmpty(strRes))
+//         {
+//             //result.message = "返回空";
+//             return result;
+//         }
+//         return JsonConvert.DeserializeObject<SRes>(strRes);
+//     }
+
+//     /// <summary>
+//     /// AGV执行回调
+//     /// </summary>
+//     /// <param name="reqDto"></param>
+//     /// <returns></returns>
+//     [HttpPost]
+//     public agvCallbackResponse agvCallback(agvCallbackRequest reqDto)
+//     {
+//         var res = new agvCallbackResponse() { code = "0",message = "成功" };
+
+//         return res;
+//     }