| | |
| | | |
| | | #region WCS接口实体类 |
| | | /// <summary> |
| | | /// 接收wcs接口返回参数的model |
| | | /// 接收wcs接口返回WCS结果参数的model |
| | | /// </summary> |
| | | public class WcsModel |
| | | { |
| | | public int StatusCode { get; set; } |
| | | public string Msg { get; set; } |
| | | } |
| | | /// <summary> |
| | | /// 接受WCS反馈的参数 |
| | | /// </summary> |
| | | public class WcsModel2 |
| | | { |
| | | public int code { get; set; } |
| | | public string message { get; set; } |
| | | |
| | | } |
| | | |
| | | public enum PLCTypeEnum |
| | | { |
| | |
| | | var skuNo = ""; //入库物料 |
| | | var isAddTask = true; //是否添加新任务 |
| | | var oldTaskNo = ""; //旧任务号 |
| | | var starLocate = ""; // 起始储位 |
| | | var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList(); |
| | | //验证物料是否有成品 |
| | | foreach (var item in stockDetail) |
| | |
| | | { |
| | | PalletNo = palletNo,//托盘号 |
| | | StartRoadway = beingTask.StartRoadway, // 起始巷道 |
| | | StartLocate = "", // 起始位置 |
| | | StartLocate = starLocate, // 起始位置 |
| | | EndLocate = beingTask.EndLocat, // 目标位置 |
| | | EndRoadway = beingTask.EndRoadway, // 目标巷道 |
| | | TaskNo = beingTask.TaskNo, // 任务号 |
| | |
| | | { |
| | | throw new Exception($"{palletNo}托盘条码不具有箱码信息,不可入库!"); |
| | | } |
| | | if (stockDetail.Count(m => !string.IsNullOrWhiteSpace(m.LocatNo)) > 0) |
| | | if (stockDetail.Count(m => !string.IsNullOrWhiteSpace(m.LocatNo)) == 0) |
| | | { |
| | | throw new Exception("当前托盘已在库内,请核实"); |
| | | throw new Exception("当前托盘没有在平库储位上,请核实"); |
| | | } |
| | | starLocate = stockDetail.First().LocatNo; |
| | | |
| | | var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m=>m.AreaNo).ToList(); |
| | | var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == starLocate && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0"); |
| | | if (pingLocateInfo == null ) |
| | | { |
| | | throw new Exception("当前托盘所在的储位没有在系统中找到信息"); |
| | | } |
| | | if (pingLocateInfo.Status != "1") |
| | | { |
| | | throw new Exception("当前托盘所在的储位状态错误,不是空储位"); |
| | | } |
| | | skuNo = stockDetail.First().SkuNo; |
| | | |
| | |
| | | { |
| | | PalletNo = palletNo,//托盘号 |
| | | StartRoadway = beingTask.StartRoadway, // 起始巷道 |
| | | StartLocate = "", // 起始位置 |
| | | StartLocate = beingTask.StartLocat, // 起始位置 |
| | | EndLocate = beingTask.EndLocat, // 目标位置 |
| | | EndRoadway = beingTask.EndRoadway, // 目标巷道 |
| | | TaskNo = beingTask.TaskNo, // 任务号 |
| | | TaskType = "0",// 任务类型 (出库) |
| | | OutMode = "", //目标地址 |
| | | Order = 1 |
| | | Order = 1, |
| | | Type = PLCTypeEnum.AGV |
| | | }; |
| | | if (beingTask.IsSuccess == 0) |
| | | { |
| | |
| | | SendDate = DateTime.Now, //发送时间 |
| | | BackDate = DateTime.Now, //返回时间 |
| | | StartRoadway = "", // 起始巷道 |
| | | StartLocat = "",//起始位置 |
| | | StartLocat = starLocate,//起始位置 |
| | | EndLocat = locate.LocatNo,//目标位置 |
| | | EndRoadway = locate.RoadwayNo, // 目标巷道 |
| | | PalletNo = palletNo,//托盘码 |
| | |
| | | { |
| | | PalletNo = palletNo,//托盘号 |
| | | StartRoadway = "", |
| | | StartLocate = "", // 起始位置 |
| | | StartLocate = starLocate, // 起始位置 |
| | | EndLocate = locate.LocatNo, // 目标位置 |
| | | EndRoadway = locate.RoadwayNo, // 目标巷道 |
| | | TaskNo = oldTaskNo, // 任务号 |
| | | TaskType = "0",// 任务类型 (出库) |
| | | OutMode = "", //目标地址 |
| | | Order = 1 |
| | | Order = 1, |
| | | Type = PLCTypeEnum.AGV |
| | | }; |
| | | |
| | | } |
| | |
| | | var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | var list = new List<string>() { model.TaskNo }; |
| | | //解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response); |
| | | if (wcsModel.code == 200) |
| | | { |
| | | //更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list, time1, time2); |
| | | |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | }else |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg); |
| | | throw new Exception(wcsModel.Msg); |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.message); |
| | | throw new Exception("WCS反馈:"+wcsModel.message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 入库任务完成JC34 |
| | | /// </summary> |
| | | /// <param name="taskNo"></param> |
| | | /// <param name="userId"></param> |
| | | /// <exception cref="Exception"></exception> |
| | | public void ArrivalSuccess2(string taskNo, int userId) |
| | | { |
| | | try |
| | | { |
| | | //正常入库 |
| | | var task = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == taskNo); |
| | | if (task == null) |
| | | { |
| | | throw new Exception("未查询到任务信息"); |
| | | } |
| | | if (task.Status == "2") |
| | | { |
| | | throw new Exception("当前任务已完成"); |
| | | } |
| | | |
| | | var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); |
| | | var upShelf = Db.Queryable<BllPalletUpShelf>().First(m => m.TaskNo == taskNo); |
| | | if (upShelf == null) |
| | | { |
| | | throw new Exception("没有找到托盘上架信息"); |
| | | } |
| | | //当前任务中的储位信息 |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"未查询到任务中的储位信息"); |
| | | } |
| | | Db.BeginTran(); |
| | | |
| | | task.Status = "2";//任务状态 |
| | | task.IsSend = 0; |
| | | task.IsCancel = 0; |
| | | task.IsFinish = 0; |
| | | task.FinishDate = DateTime.Now;//完成时间 |
| | | Db.Updateable(task).ExecuteCommand(); |
| | | if (userId != 0) |
| | | { |
| | | //添加操作日志记录 |
| | | var k = new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", taskNo, "完成", $"点击完成按钮、完成任务号为:{taskNo}的任务", userId); |
| | | } |
| | | |
| | | //判断是否是回流入库完成 |
| | | if (stockDetail.Any()) |
| | | { |
| | | throw new Exception("没有查询到库存信息"); |
| | | } |
| | | |
| | | foreach (var item in stockDetail) |
| | | { |
| | | item.WareHouseNo = locate.WareHouseNo; |
| | | item.RoadwayNo = locate.RoadwayNo; |
| | | item.AreaNo = locate.AreaNo; |
| | | item.LocatNo = locate.LocatNo; |
| | | item.UpdateTime = DateTime.Now; |
| | | if (userId != 0) |
| | | { |
| | | item.UpdateUser = userId; |
| | | } |
| | | } |
| | | upShelf.Status = "2"; |
| | | Db.Updateable(upShelf).ExecuteCommand(); |
| | | |
| | | locate.Status = "1"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | Db.CommitTran(); |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 指定储位 |
| | |
| | | var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | |
| | | ////解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response); |
| | | if (wcsModel.code == 200) |
| | | { |
| | | //更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list, time1, time2); |
| | | |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | else |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg); |
| | | throw new Exception($"wcs返回状态异常:{wcsModel.Msg}"); |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.message); |
| | | throw new Exception($"wcs返回状态异常:{wcsModel.message}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | if (models[0].Status == "1") |
| | | { |
| | | sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';"; |
| | | int rowNum = Db.Ado.GetInt(sqlString); |
| | | if (rowNum > 0) |
| | | var detail = Db.Queryable<DataStockDetail>().First(m=>m.PalletNo == palletNo ); |
| | | |
| | | if (detail!= null && !string.IsNullOrWhiteSpace(detail.LocatNo)) |
| | | { |
| | | sqlMsg = "-1:托盘使用中,此托盘应在库内请核实!"; |
| | | var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList(); |
| | | var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == detail.LocatNo && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0"); |
| | | if (pingLocateInfo == null) |
| | | { |
| | | sqlMsg = "-1:托盘使用中,此托盘应在库内请核实!"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | try |
| | | { |
| | | string strMsg = ""; |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W02"); |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W04"); |
| | | if (storageLocat == null) |
| | | { |
| | | throw new Exception("-1:地码(储位信息)不存在或非空闲状态,请核查!"); |
| | |
| | | //修改库存明细信息 |
| | | foreach (var item in stockDetail) |
| | | { |
| | | item.Status = "0"; // 状态更改为待分配 |
| | | //item.Status = "0"; // 状态更改为待分配 |
| | | item.WareHouseNo = storageLocat.WareHouseNo; // 所属仓库 |
| | | item.RoadwayNo = storageLocat.RoadwayNo; // 所属巷道 |
| | | item.AreaNo = storageLocat.AreaNo; // 所属区域 |
| | |
| | | SendDate = DateTime.Now, //发送时间 |
| | | BackDate = DateTime.Now, //返回时间 |
| | | StartLocat = "",//起始位置 |
| | | EndLocat = "平库",//目标位置 |
| | | EndLocat = model.LocatNo,//目标位置 |
| | | PalletNo = model.PalletNo,//托盘码 |
| | | IsSend = 0,//是否可再次下发 |
| | | IsCancel = 0,//是否可取消 |
| | | IsFinish = 0,//是否可完成 |
| | | Type = "0",//任务类型 0 入库任务 1 出库任务 2 移库任务 |
| | | Status = "2",//任务状态0:等待执行1正在执行2执行完成 |
| | | OrderType = "3",//0 入库单 1 出库单 2 盘点单 3 移库单 |
| | | OrderType = "0",//0 入库单 1 出库单 2 盘点单 3 移库单 |
| | | Msg = "平库的入库任务", |
| | | }; |
| | | Db.Insertable(exTask).ExecuteCommand(); |
| | |
| | | var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | |
| | | ////解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response); |
| | | if (wcsModel.code == 200) |
| | | { |
| | | //更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list2, time1, time2); |
| | | str += "下发成功"; |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | else |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); |
| | | throw new Exception(wcsModel.Msg); |
| | | new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message); |
| | | throw new Exception(wcsModel.message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | |
| | | ////解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response); |
| | | if (wcsModel.code == 200) |
| | | { |
| | | //更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list, time1, time2); |
| | | |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | else |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg); |
| | | throw new Exception($"wcs返回状态异常:{wcsModel.Msg}"); |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.message); |
| | | throw new Exception($"wcs返回状态异常:{wcsModel.message}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
New file |
| | |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using WMS.BLL.LogServer; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.LogEntity; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL; |
| | | |
| | | namespace WMS.BLL |
| | | { |
| | | public class HttpServer:IHttpServer |
| | | { |
| | | private static readonly SqlSugarScope Db = DataContext.Db; |
| | | public HttpServer() { } |
| | | |
| | | public void UpLocateByAgvOut(string taskNo, int userId) |
| | | { |
| | | try |
| | | { |
| | | |
| | | var task = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == taskNo); |
| | | if (task == null) |
| | | { |
| | | throw new Exception("未查询到任务信息"); |
| | | } |
| | | if (task.Status != "1") |
| | | { |
| | | throw new Exception("当前任务已完成"); |
| | | } |
| | | if (userId != 0) |
| | | { |
| | | //添加操作日志记录 |
| | | var k = new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", taskNo, "完成", $"点击完成按钮、完成任务号为:{taskNo}的任务", userId); |
| | | } |
| | | |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"未查询到任务中的储位信息"); |
| | | } |
| | | var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList(); |
| | | var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locate.LocatNo && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0"); |
| | | if (pingLocateInfo == null) |
| | | { |
| | | throw new Exception("当前任务起始储位不在平库储位"); |
| | | } |
| | | locate.Status = "0"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <returns></returns> |
| | | OutCommandDto RequestLocation(string palletNo, string houseNo); |
| | | /// <summary> |
| | | /// 下发入库申请储位任务(下发==》AGV小车) |
| | | /// 下发入库申请储位任务(下发==》WCS) |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <param name="url"></param> |
| | |
| | | /// <returns></returns> |
| | | OutCommandDto RequestMiJiLocation(string palletNo, string houseNo, string roadwayNo); |
| | | |
| | | |
| | | /// <summary> |
| | | /// 入库完成JC34 |
| | | /// </summary> |
| | | /// <param name="taskNo">任务号</param> |
| | | /// <param name="userId">操作人(下游系统时为空)</param> |
| | | void ArrivalSuccess2(string taskNo, int userId); |
| | | /// <summary> |
| | | /// 入库完成 |
| | | /// </summary> |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace WMS.IBLL |
| | | { |
| | | public interface IHttpServer |
| | | { |
| | | /// <summary> |
| | | /// agv走出储位修改储位信息,仅限平库储位 |
| | | /// </summary> |
| | | /// <param name="taskNo"></param> |
| | | /// <param name="userId"></param> |
| | | void UpLocateByAgvOut(string taskNo,int userId); |
| | | } |
| | | } |
| | |
| | | using Model.ModelVm.BllCheckVm; |
| | | using System.Collections.Generic; |
| | | using System.Security.Policy; |
| | | using WMS.IBLL; |
| | | |
| | | namespace Wms.Controllers |
| | | { |
| | |
| | | private readonly ITaskServer _taskSvc;//任务Svc |
| | | private readonly IBllTaskSyncServer _taskSyncSvc;//任务同步Svc |
| | | private readonly IWaveMageServer _waveSvc;//任务同步Svc |
| | | public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc) |
| | | private readonly IHttpServer _http;//任务同步Svc |
| | | public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc,IHttpServer http) |
| | | { |
| | | _config = setting.Value; |
| | | _exNoticeSvc = exNoticeSvc; |
| | |
| | | _taskSvc = taskSvc; |
| | | _taskSyncSvc = taskSyncSvc; |
| | | _waveSvc = waveSvc; |
| | | _http = http; |
| | | } |
| | | |
| | | #region WMS接口 调用下游系统接口 |
| | |
| | | #region WMS接口 被下游系统接口调用 |
| | | |
| | | /// <summary> |
| | | /// 绑定信息返回巷道口 |
| | | /// </summary> |
| | | /// <param name="model">入库单信息</param> |
| | | /// <returns></returns> |
| | | //[AllowAnonymous] |
| | | //[HttpPost] |
| | | //public IActionResult BindRequestRoadWay(BoxPalletBindVm model) |
| | | //{ |
| | | // var logStr = $@".\log\WCS\WCS托盘绑定-申请巷道" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; |
| | | |
| | | // try |
| | | // { |
| | | |
| | | // var jsonData = JsonConvert.SerializeObject(model); |
| | | // LogFile.SaveLogToFile($"WCS托盘绑定-申请巷道:( {jsonData} ),", logStr); |
| | | |
| | | // _asnPalletBindSvc.BindPalletStock(model, 0); |
| | | // //申请巷道 |
| | | // var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, "W01"); |
| | | // LogFile.SaveLogToFile($"WCS托盘绑定-申请巷道返回:( {JsonConvert.SerializeObject(list)} ),", logStr); |
| | | |
| | | // return Ok(new { Success = 0, Message = "托盘绑定-申请巷道成功", TaskList = list }); |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // LogFile.SaveLogToFile($"WCS托盘绑定-申请巷道返回:( {e.Message} ),", logStr); |
| | | |
| | | // return Ok(new ErpModel { Success = -1, Message = e.Message }); |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// PDA 人工申请储位 (立体库) |
| | | /// </summary> |
| | | /// <param name="model">入库单信息</param> |
| | |
| | | try |
| | | { |
| | | var list = _asnPalletBindSvc.RequestLocation(model.PalletNo, model.HouseNo); |
| | | _asnPalletBindSvc.IssueAsnTask(list, _config.WcsHost+ _config.IssueComApiUrl);//WCS路径 |
| | | _asnPalletBindSvc.IssueAsnTask(list, _config.WcsHost+ _config.IssueComApiUrl2);//WCS路径 |
| | | |
| | | new OperationASNServer().AddLogOperationAsn("PDA模块", "申请入库", model.PalletNo, "添加", $"申请储位托盘号:{model.PalletNo}的成功信息", int.Parse(userId)); |
| | | |
| | |
| | | case "0"://入库完成任务 |
| | | if (model.TaskType == "0")//0:入库 1:出库 2:移库 |
| | | { |
| | | _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0); |
| | | _asnPalletBindSvc.ArrivalSuccess2(model.TaskNo, 0); |
| | | return Ok(new WcsModel { StatusCode = 0, Msg = "入库完成" }); |
| | | } |
| | | break; |
| | |
| | | } |
| | | else if (model.TaskType == "0")// 盘点出库托盘回库完成 |
| | | { |
| | | _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0); |
| | | _asnPalletBindSvc.ArrivalSuccess2(model.TaskNo, 0); |
| | | return Ok(new WcsModel { StatusCode = 0, Msg = "入库完成" }); |
| | | } |
| | | break; |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 接受wcs返回的信号 平库取货完成任务反馈 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult UpLocateByAgvOut(ReceiveWcsSignal model) |
| | | { |
| | | try |
| | | { |
| | | //记录log |
| | | var logStr = $@".\log\WCS\取货完成任务反馈" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; |
| | | var jsonData = JsonConvert.SerializeObject(model); |
| | | LogFile.SaveLogToFile($"AGV取货完成WCS任务反馈:( {jsonData} ),", logStr); |
| | | |
| | | if (string.IsNullOrEmpty(model.TaskNo)) |
| | | { |
| | | return Ok(new WcsModel { StatusCode = -1, Msg = "接口数据不正确,任务号为空" }); |
| | | } |
| | | _http.UpLocateByAgvOut(model.TaskNo,0); |
| | | |
| | | return Ok(new WcsModel { StatusCode = 0, Msg = "接收成功" }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return Ok(new WcsModel { StatusCode = -1, Msg = ex.Message }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WCS反馈AGV任务取货完成 |
| | |
| | | "WcsHost": "http://10.26.254.34:5005", //wcsIPhttp://localhost:57061/ |
| | | "BoxHost": "http://10.110.24.30:8081", //boxIP |
| | | |
| | | "IssueComApiUrl": "/api/WCSApi/AddTasks", //下发命令(出库、移库) |
| | | "IssueComApiUrl2": "/api/WCSApi/AddTask", //重新下发命令(出库、移库) |
| | | "IssueComApiUrl": "/api/openApi/wcsTasks", //下发命令(出库、移库) |
| | | "IssueComApiUrl2": "/api/openApi/wcsTask", //重新下发命令(出库、移库) |
| | | |
| | | "AsnFinishUrl": "/api/wmsInterface/OutStockTask", //入库订单关闭 |
| | | "SoFinishUrl": "/api/wmsInterface/OutStockTask", //出库订单关闭 |