|
@@ -65,37 +65,69 @@ namespace WCS.WorkEngineering.Systems
|
|
|
break;
|
|
|
|
|
|
case TaskType.EnterDepot:
|
|
|
- //更新任务状态
|
|
|
- task.Status = Entity.TaskStatus.WaitingToExecute;
|
|
|
- task.Device = task.WarehouseCode switch
|
|
|
+ if (task.LastInteractionPoint == "2")
|
|
|
{
|
|
|
- "1N" => "SRM1",
|
|
|
- "1S" => "SRM2",
|
|
|
- "2N" => "SRM3",
|
|
|
- "2S" => "SRM4",
|
|
|
- "3N" => "SRM5",
|
|
|
- "3S" => "SRM6",
|
|
|
- _ => task.Device
|
|
|
- };
|
|
|
-
|
|
|
- task.Device = task.AddrFrom switch
|
|
|
+ var agv = new WCS_AgvTaskInfo()
|
|
|
+ {
|
|
|
+ ID = db.GetAgvTaskId(),
|
|
|
+ TaskType = AGVTaskType.EnterDepot,
|
|
|
+ Status = AGVTaskStatus.NewBuild,
|
|
|
+ TaskId = task.ID,
|
|
|
+ Position = task.WorkBench,
|
|
|
+ Station = task.WarehouseCode switch
|
|
|
+ {
|
|
|
+ "1N" => "2501",
|
|
|
+ "1S" => "2701",
|
|
|
+ "2N" => "2901",
|
|
|
+ "2S" => "3101",
|
|
|
+ "3N" => "3301",
|
|
|
+ "3S" => "3501",
|
|
|
+ _ => throw new NotImplementedException(),
|
|
|
+ },
|
|
|
+ AddWho = "WCS",
|
|
|
+ AddTime = DateTime.Now
|
|
|
+ };
|
|
|
+ db.Default.InsertableRowLock(agv).SplitTable().ExecuteCommand();
|
|
|
+ task.AgvTaskID = agv.ID;
|
|
|
+ task.Status = Entity.TaskStatus.WaitingToExecute;
|
|
|
+ db.Default.UpdateableRowLock(task).UpdateColumns(x => new { x.Status, x.AgvTaskID }).ExecuteCommand();
|
|
|
+ task.AddWCS_TASK_DTL(db.Default, task.Device, $"初始化单独饭皮盘任务");
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- "1666" or "1661" => "SRM1",
|
|
|
- "1681" or "1676" => "SRM2",
|
|
|
- "1696" or "1691" => "SRM3",
|
|
|
- "1711" or "1706" => "SRM4",
|
|
|
- "1726" or "1721" => "SRM5",
|
|
|
- "1741" or "1736" => "SRM6",
|
|
|
- _ => task.Device
|
|
|
- };
|
|
|
-
|
|
|
- //计算下一个地址
|
|
|
- var path1 = DevicePath.GetPath(task.AddrFrom, task.Device);
|
|
|
- task.AddrNext = path1.Points[1].Code;
|
|
|
- task.SrmStation = task.BarCode.Contains("TPA") || task.BarCode.Contains("TPB") ? task.AddrFrom : path1.Points[2].Code;
|
|
|
-
|
|
|
- db.Default.UpdateableRowLock(task).UpdateColumns(x => new { x.Status, x.Device, x.AddrNext, x.SrmStation }).ExecuteCommand();
|
|
|
- task.AddWCS_TASK_DTL(db.Default, task.Device, $"初始化入库任务信息");
|
|
|
+ //更新任务状态
|
|
|
+ task.Status = Entity.TaskStatus.WaitingToExecute;
|
|
|
+ task.Device = task.WarehouseCode switch
|
|
|
+ {
|
|
|
+ "1N" => "SRM1",
|
|
|
+ "1S" => "SRM2",
|
|
|
+ "2N" => "SRM3",
|
|
|
+ "2S" => "SRM4",
|
|
|
+ "3N" => "SRM5",
|
|
|
+ "3S" => "SRM6",
|
|
|
+ _ => task.Device
|
|
|
+ };
|
|
|
+
|
|
|
+ task.Device = task.AddrFrom switch
|
|
|
+ {
|
|
|
+ "1666" or "1661" => "SRM1",
|
|
|
+ "1681" or "1676" => "SRM2",
|
|
|
+ "1696" or "1691" => "SRM3",
|
|
|
+ "1711" or "1706" => "SRM4",
|
|
|
+ "1726" or "1721" => "SRM5",
|
|
|
+ "1741" or "1736" => "SRM6",
|
|
|
+ _ => task.Device
|
|
|
+ };
|
|
|
+
|
|
|
+ //计算下一个地址
|
|
|
+ var path1 = DevicePath.GetPath(task.AddrFrom, task.Device);
|
|
|
+ task.AddrNext = path1.Points[1].Code;
|
|
|
+ task.SrmStation = task.BarCode.Contains("TPA") || task.BarCode.Contains("TPB") ? task.AddrFrom : path1.Points[2].Code;
|
|
|
+
|
|
|
+ db.Default.UpdateableRowLock(task).UpdateColumns(x => new { x.Status, x.Device, x.AddrNext, x.SrmStation }).ExecuteCommand();
|
|
|
+ task.AddWCS_TASK_DTL(db.Default, task.Device, $"初始化入库任务信息");
|
|
|
+ }
|
|
|
+
|
|
|
isEnd = true;
|
|
|
break;
|
|
|
|
|
@@ -177,9 +209,9 @@ namespace WCS.WorkEngineering.Systems
|
|
|
}
|
|
|
|
|
|
var devs = Device.All.Where(x => x.HasFlag(DeviceFlags.AGV取货站台口)).Select(x => x.Code);
|
|
|
- if (devs.Contains(task.SrmStation))
|
|
|
+ if (devs.Contains(task.SrmStation) && task.LastInteractionPoint != "3") //车间叫料任务,此值为3时是单独取满任务
|
|
|
{
|
|
|
- var b = new WCS_AgvTaskInfo()
|
|
|
+ var agv = new WCS_AgvTaskInfo()
|
|
|
{
|
|
|
ID = db.GetAgvTaskId(),
|
|
|
TaskType = AGVTaskType.EnterDepot,
|
|
@@ -199,7 +231,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
AddWho = "WCS",
|
|
|
AddTime = DateTime.Now
|
|
|
};
|
|
|
- db.Default.InsertableRowLock(b).SplitTable().ExecuteCommand();
|
|
|
+ db.Default.InsertableRowLock(agv).SplitTable().ExecuteCommand();
|
|
|
}
|
|
|
//更新任务状态
|
|
|
task.Status = Entity.TaskStatus.WaitingToExecute;
|