| | |
| | | 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 |
| | | }; |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下发入库申请储位任务(下发==》AGV小车) |
| | | /// 下发入库申请储位任务(下发==》WCS) |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | |
| | | try |
| | | { |
| | | var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | //response = HttpHelper.DoPost(url, jsonData, "下发给AGV叫料出库命令", "AGV"); |
| | | response = HttpHelper.DoPost(url, jsonData, "下发给WCS入库命令", "WCS"); |
| | | var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | |
| | | ////解析返回数据 |
| | | //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | //if (wcsModel.StatusCode == 0) |
| | | //{ |
| | | // //更改任务的发送返回时间// |
| | | //new TaskServer().EditTaskIssueOk(list2, time1, time2); |
| | | |
| | | //} |
| | | //if (wcsModel.StatusCode == -1) |
| | | //{ |
| | | // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); |
| | | // throw new Exception(wcsModel.Msg); |
| | | //} |
| | | var list = new List<string>() { model.TaskNo }; |
| | | //解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response); |
| | | if (wcsModel.code == 200) |
| | | { |
| | | //更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list, time1, time2); |
| | | } |
| | | else |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.message); |
| | | throw new Exception("WCS反馈:" + wcsModel.message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == taskNo && m.PalletNo == task.PalletNo).ToList(); |
| | | foreach (var upShelf in upShelfList) |
| | | { |
| | | upShelf.IsDel = "1"; |
| | | //upShelf.IsDel = "1"; |
| | | upShelf.Status = "4"; |
| | | Db.Updateable(upShelf).ExecuteCommand(); |
| | | } |
| | | |