| | |
| | | foreach (var item in stockDetail) |
| | | { |
| | | var skuItem = skuList.First(m => m.SkuNo == item.SkuNo); |
| | | if (skuItem.SkuNo == "100099") |
| | | { |
| | | continue; |
| | | } |
| | | if (skuItem.Type != "2") |
| | | { |
| | | throw new Exception("托盘上有不是成品的物料"); |
| | |
| | | } |
| | | |
| | | //巷道组信息 |
| | | var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo)) |
| | | var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo)) |
| | | .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); |
| | | |
| | | #endregion |
| | |
| | | foreach (var item in stockDetail) |
| | | { |
| | | var skuItem = skuList.First(m => m.SkuNo == item.SkuNo); |
| | | if (skuItem.SkuNo == "100099") |
| | | { |
| | | continue; |
| | | } |
| | | if (skuItem.Type != "2") |
| | | { |
| | | throw new Exception("托盘上有不是成品的物料"); |
| | |
| | | } |
| | | |
| | | locate = allotLocate.GetMiJiSuiTableLocate(roadwayNo, areaList); |
| | | |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"没有空储位"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | |
| | | { |
| | | 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 pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04").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("当前任务起始储位不在平库储位"); |
| | | } |
| | | var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == task.PalletNo).ToList(); |
| | | foreach (var item in stockDetail) |
| | | { |
| | | item.WareHouseNo = ""; |
| | | item.RoadwayNo = ""; |
| | | item.AreaNo = ""; |
| | | item.LocatNo = ""; |
| | | } |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | locate.Status = "0"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 移库任务完成JC34 |
| | | /// </summary> |
| | | /// <param name="taskNo"></param> |
| | | /// <param name="userId"></param> |
| | | /// <exception cref="Exception"></exception> |
| | | public void MoveSuccess(string taskNo, int userId) |
| | | { |
| | | try |
| | | { |
| | | Db.BeginTran(); |
| | | //正常入库 |
| | | 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(); |
| | | //判断是否是回流入库完成 |
| | | if (!stockDetail.Any()) |
| | | { |
| | | throw new Exception("没有查询到库存信息"); |
| | | } |
| | | //当前任务中的储位信息 |
| | | var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); |
| | | if (locate == null) |
| | | { |
| | | throw new Exception($"未查询到任务中的起始储位信息"); |
| | | } |
| | | //当前任务中的储位信息 |
| | | var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); |
| | | if (locate2 == null) |
| | | { |
| | | throw new Exception($"未查询到任务中的目标储位信息"); |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | |
| | | foreach (var item in stockDetail) |
| | | { |
| | | if (locate2.LocatNo == "B040101") |
| | | { |
| | | item.WareHouseNo = ""; |
| | | item.RoadwayNo = ""; |
| | | item.AreaNo = ""; |
| | | item.LocatNo = ""; |
| | | } |
| | | else |
| | | { |
| | | item.WareHouseNo = locate2.WareHouseNo; |
| | | item.RoadwayNo = locate2.RoadwayNo; |
| | | item.AreaNo = locate2.AreaNo; |
| | | item.LocatNo = locate2.LocatNo; |
| | | } |
| | | item.UpdateTime = DateTime.Now; |
| | | if (userId != 0) |
| | | { |
| | | item.UpdateUser = userId; |
| | | } |
| | | } |
| | | |
| | | if (locate.WareHouseNo != "W04") |
| | | { |
| | | locate.Status = "0"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | |
| | | if (locate2.LocatNo == "B040101") |
| | | { |
| | | locate2.Status = "0"; |
| | | Db.Updateable(locate2).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | locate2.Status = "1"; |
| | | Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | Db.CommitTran(); |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |