|
@@ -85,35 +85,72 @@ namespace WCS.WorkEngineering.Systems
|
|
|
var db = _db.Default;
|
|
|
|
|
|
//检查库存表是否有残留库存信息
|
|
|
- if (db.Queryable<BillInvnow>().Any(x => x.ContGrpBarCode == bcrCode))
|
|
|
+ var inv = db.Queryable<BillInvnow>().OrderByDescending(x => x.AddTime).First(x => x.ContGrpBarCode == bcrCode);
|
|
|
+ if (inv != null && inv.IsTorsChk)
|
|
|
{
|
|
|
- //删除库存
|
|
|
- var invNow = db.Queryable<BillInvnow>().Where(x => x.ContGrpBarCode == bcrCode).OrderByDescending(x => x.AddTime).First();
|
|
|
- if (invNow.IsTorsChk) //是一楼码垛入库
|
|
|
+ switch (inv.InvStateCode)
|
|
|
{
|
|
|
- db.DeleteableRowLock(invNow).ExecuteCommand(); //删除库存
|
|
|
-
|
|
|
- var invInit = db.Queryable<BillInvinit>().Where(x => x.ContGrpBarCode == bcrCode).OrderByDescending(x => x.AddTime).First();
|
|
|
- db.DeleteableRowLock(invInit).ExecuteCommand();//删除条码
|
|
|
-
|
|
|
- var taskInfos = db.Queryable<WCS_TaskInfo>().Where(x => x.BarCode == bcrCode && x.Status == TaskStatus.NewBuild && x.BusType == "人工满托入库"
|
|
|
- || (x.BusType == "重绕满托入库" && x.Status == TaskStatus.WaitingToExecute)).ToList();
|
|
|
- if (!taskInfos.Any())
|
|
|
- {
|
|
|
- World.Log($"未找到托盘条码{bcrCode}对应任务,请联系智能制造组人员确认", LogLevelEnum.Mid);
|
|
|
- return;
|
|
|
- }
|
|
|
- foreach (var task in taskInfos)
|
|
|
- {
|
|
|
- //取消任务
|
|
|
- task.Status = TaskStatus.Cancel;
|
|
|
- task.ManualRemarks = "托盘已使用,需在二楼组盘";
|
|
|
- db.Updateable(task).ExecuteCommand();
|
|
|
- task.AddWCS_TASK_DTL(db, obj.Entity.Code, "", "取消任务");
|
|
|
- }
|
|
|
+ case "InvEcecState_BuildUp":
|
|
|
+ db.DeleteableRowLock(inv).ExecuteCommand(); //删除库存
|
|
|
+
|
|
|
+ var invInit = db.Queryable<BillInvinit>().Where(x => x.ContGrpBarCode == bcrCode).OrderByDescending(x => x.AddTime).First();
|
|
|
+ db.DeleteableRowLock(invInit).ExecuteCommand();//删除条码
|
|
|
+
|
|
|
+ var taskInfos = db.Queryable<WCS_TaskInfo>().Where(x => x.BarCode == bcrCode && x.Status == TaskStatus.NewBuild && x.BusType == "人工满托入库"
|
|
|
+ || (x.BusType == "重绕满托入库" && x.Status == TaskStatus.WaitingToExecute)).ToList();
|
|
|
+ if (!taskInfos.Any())
|
|
|
+ {
|
|
|
+ World.Log($"未找到托盘条码{bcrCode}对应任务,请联系智能制造组人员确认", LogLevelEnum.Mid);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ foreach (var task in taskInfos)
|
|
|
+ {
|
|
|
+ //取消任务
|
|
|
+ task.Status = TaskStatus.Cancel;
|
|
|
+ task.ManualRemarks = "托盘已使用,需在二楼组盘";
|
|
|
+ db.Updateable(task).ExecuteCommand();
|
|
|
+ task.AddWCS_TASK_DTL(db, obj.Entity.Code, "", "取消任务");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "InvEcecState_In":
|
|
|
+ World.Log($"托盘条码{bcrCode}已有对应库存信息,请确认条码是否重复并更换!", LogLevelEnum.Mid);
|
|
|
+ break;
|
|
|
+ case "InvEcecState_OutGoing":
|
|
|
+ World.Log($"【{obj.Entity.Code}】上的托盘 【{bcrCode}】存在出库中库存信息,请检查对应托盘条码是否存在未完成的出库任务!!!!!", LogLevelEnum.High);
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
- World.Log($"【{obj.Entity.Code}】上的托盘 【{bcrCode}】存在历史库存信息,请检查对应托盘条码是否存在未完成的出库任务!!!!!", LogLevelEnum.High);
|
|
|
+#region 1
|
|
|
+ //删除库存
|
|
|
+ //var invNow = db.Queryable<BillInvnow>().Where(x => x.ContGrpBarCode == bcrCode).OrderByDescending(x => x.AddTime).First();
|
|
|
+ //if (invNow.IsTorsChk) //是一楼码垛入库
|
|
|
+ //{
|
|
|
+ // db.DeleteableRowLock(invNow).ExecuteCommand(); //删除库存
|
|
|
+
|
|
|
+ // var invInit = db.Queryable<BillInvinit>().Where(x => x.ContGrpBarCode == bcrCode).OrderByDescending(x => x.AddTime).First();
|
|
|
+ // db.DeleteableRowLock(invInit).ExecuteCommand();//删除条码
|
|
|
+
|
|
|
+ // var taskInfos = db.Queryable<WCS_TaskInfo>().Where(x => x.BarCode == bcrCode && x.Status == TaskStatus.NewBuild && x.BusType == "人工满托入库"
|
|
|
+ // || (x.BusType == "重绕满托入库" && x.Status == TaskStatus.WaitingToExecute)).ToList();
|
|
|
+ // if (!taskInfos.Any())
|
|
|
+ // {
|
|
|
+ // World.Log($"未找到托盘条码{bcrCode}对应任务,请联系智能制造组人员确认", LogLevelEnum.Mid);
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // foreach (var task in taskInfos)
|
|
|
+ // {
|
|
|
+ // //取消任务
|
|
|
+ // task.Status = TaskStatus.Cancel;
|
|
|
+ // task.ManualRemarks = "托盘已使用,需在二楼组盘";
|
|
|
+ // db.Updateable(task).ExecuteCommand();
|
|
|
+ // task.AddWCS_TASK_DTL(db, obj.Entity.Code, "", "取消任务");
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //return;
|
|
|
+#endregion
|
|
|
+ }
|
|
|
+ else if(inv != null)
|
|
|
+ {
|
|
|
+ World.Log($"【{obj.Entity.Code}】上的托盘 【{bcrCode}】存在对应库存信息,请检查确认!!!", LogLevelEnum.High);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -278,7 +315,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
var dest = new Device<IRobot530>(destPosition!, World);
|
|
|
dest.Data.MaxQuantity = countQty;
|
|
|
dest.Data.Type = shortCode;
|
|
|
- dest.Data.VoucherNo++;
|
|
|
+ dest.Data.SetVoucherNoForRobot();
|
|
|
World.Log($"任务处理:写入码垛信息-码垛位[{dest.Entity.Code}]最大码垛数量[{dest.Data.MaxQuantity}]垛形[{dest.Data.Type}]凭证号[{dest.Data.VoucherNo}]");
|
|
|
}
|
|
|
}
|