|
|
|
|
@ -27,325 +27,384 @@ namespace Sln.Wcs.Function
|
|
|
|
|
|
|
|
|
|
public void CreateMainTaskByMessage(TaskInfo taskInfo)
|
|
|
|
|
{
|
|
|
|
|
WcsTaskInstance taskInstance = new WcsTaskInstance();
|
|
|
|
|
BaseTasktypeInfo baseTasktypeInfo = new BaseTasktypeInfo();
|
|
|
|
|
List<SubTaskInstance> subTaskInstances = new List<SubTaskInstance>();
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.Status = "Starting";
|
|
|
|
|
taskInstance.CurrentSubtaskNo = 1;
|
|
|
|
|
taskInstance.CreateTime = DateTime.Now;
|
|
|
|
|
taskInstance.CreateUser = "wcs";
|
|
|
|
|
|
|
|
|
|
var startPoint = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.LocationCode == taskInfo.TaskStartPoint).First();
|
|
|
|
|
var endPoint = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.LocationCode == taskInfo.TaskStartPoint).First();
|
|
|
|
|
taskInstance.SourceLocation = startPoint.LocationCode;
|
|
|
|
|
taskInstance.TargetLocation = endPoint.LocationCode;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (startPoint.WorkshopId == endPoint.WorkshopId)
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
//同楼同层任务
|
|
|
|
|
if (startPoint.WorkshopLevel == endPoint.WorkshopLevel)
|
|
|
|
|
sqlSugarClient.AsTenant().ChangeDatabase("wcs");
|
|
|
|
|
sqlSugarClient.AsTenant().BeginTranAsync();
|
|
|
|
|
WcsTaskInstance taskInstance = new WcsTaskInstance();
|
|
|
|
|
BaseTasktypeInfo baseTasktypeInfo = new BaseTasktypeInfo();
|
|
|
|
|
List<SubTaskInstance> subTaskInstances = new List<SubTaskInstance>();
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.Status = "Starting";
|
|
|
|
|
taskInstance.CurrentSubtaskNo = 0;
|
|
|
|
|
taskInstance.CreateTime = DateTime.Now;
|
|
|
|
|
taskInstance.CreateUser = "wcs";
|
|
|
|
|
|
|
|
|
|
var startPoint = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.LocationCode == taskInfo.TaskStartPoint).First();
|
|
|
|
|
var endPoint = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.LocationCode == taskInfo.TaskEndPoint).First();
|
|
|
|
|
taskInstance.SourceLocation = startPoint.LocationCode;
|
|
|
|
|
taskInstance.TargetLocation = endPoint.LocationCode;
|
|
|
|
|
|
|
|
|
|
//同楼
|
|
|
|
|
if (startPoint.WorkshopId == endPoint.WorkshopId)
|
|
|
|
|
{
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 1;
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
//同楼同层任务
|
|
|
|
|
if (startPoint.WorkshopLevel == endPoint.WorkshopLevel)
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
else //同楼不同层任务
|
|
|
|
|
{
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层到{endPoint.WorkshopId}楼-{endPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 3;
|
|
|
|
|
var elevatorPoint1 = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == startPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint2 = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == endPoint.WorkshopLevel).First();
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTXTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTXTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance2 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.ElevatorBoxTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.ElevatorBoxTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance3 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance2);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance3);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (startPoint.WorkshopId != endPoint.WorkshopId)
|
|
|
|
|
{
|
|
|
|
|
//起点终点不包括15楼
|
|
|
|
|
if (startPoint.WorkshopId != 15 && endPoint.WorkshopId != 15)
|
|
|
|
|
{
|
|
|
|
|
if (startPoint.WorkshopLevel != 2)
|
|
|
|
|
{
|
|
|
|
|
//预留
|
|
|
|
|
SSTask(taskInstance, subTaskInstances, startPoint, endPoint);
|
|
|
|
|
}
|
|
|
|
|
else //同楼不同层任务
|
|
|
|
|
{
|
|
|
|
|
SDTask(taskInstance, subTaskInstances, startPoint, endPoint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//不同楼
|
|
|
|
|
else if (startPoint.WorkshopId != endPoint.WorkshopId)
|
|
|
|
|
{
|
|
|
|
|
//起点终点不包括15楼
|
|
|
|
|
if (startPoint.WorkshopId != 15 && endPoint.WorkshopId != 15)
|
|
|
|
|
{
|
|
|
|
|
if (startPoint.WorkshopLevel != 2)
|
|
|
|
|
{
|
|
|
|
|
//预留
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//预留
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//起点终点包括15楼
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//预留
|
|
|
|
|
//前往连廊部分
|
|
|
|
|
ArrivingTPTask(taskInstance, subTaskInstances, startPoint, endPoint);
|
|
|
|
|
|
|
|
|
|
//离开连廊部分
|
|
|
|
|
LeavingTPTask(taskInstance, subTaskInstances, endPoint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//起点终点包括15楼
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//前往连廊部分
|
|
|
|
|
if (startPoint.WorkshopLevel != 2) //如果不和连廊同层
|
|
|
|
|
{
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层到{endPoint.WorkshopId}楼-{endPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 3;
|
|
|
|
|
var elevatorPoint1 = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == startPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint2 = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == 2).First();
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (startPoint.WorkshopId == 15)
|
|
|
|
|
{
|
|
|
|
|
subTaskInstance1.TaskType = StaticTaskType.MovePalletHTGTask;
|
|
|
|
|
subTaskInstance1.TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletHTGTask);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance2 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.ElevatorBoxTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.ElevatorBoxTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance3 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTXJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTXJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = "连廊中转点",
|
|
|
|
|
CurrPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance2);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance3);
|
|
|
|
|
}
|
|
|
|
|
else //和连廊同层
|
|
|
|
|
{
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层到{endPoint.WorkshopId}楼-{endPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 1;
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletHTGJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletHTGJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = $"{transformPoint.WorkshopId}楼{transformPoint.WorkshopLevel}层中转点位",
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
if (endPoint.WorkshopLevel != 2)
|
|
|
|
|
{
|
|
|
|
|
taskInstance.SubtaskCount = taskInstance.SubtaskCount + 3;
|
|
|
|
|
var elevatorPoint1 = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == 2).First();
|
|
|
|
|
var elevatorPoint2 = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == endPoint.WorkshopLevel).First();
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = "连廊中转点",
|
|
|
|
|
EndPointId = $"{elevatorPoint1.WorkshopId}楼2层提升机点位",
|
|
|
|
|
CurrPointId = "连廊中转点",
|
|
|
|
|
StartAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance2 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.ElevatorBoxTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.ElevatorBoxTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint1.WorkshopId}楼2层提升机点位",
|
|
|
|
|
EndPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = $"{elevatorPoint1.WorkshopId}楼2层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance3 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTHTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTHTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (endPoint.WorkshopId == 15)
|
|
|
|
|
{
|
|
|
|
|
subTaskInstance3.TaskType = StaticTaskType.MovePalletGTHJTask;
|
|
|
|
|
subTaskInstance3.TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTHJTask);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance2);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance3);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
taskInstance.SubtaskCount++;
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTHJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTHJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{transformPoint.WorkshopId}楼{transformPoint.WorkshopLevel}层中转点位",
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = $"{transformPoint.WorkshopId}楼{transformPoint.WorkshopLevel}层中转点位",
|
|
|
|
|
StartAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sqlSugarClient.Insertable(taskInstance).ExecuteCommand();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
_logger.Error(ex.Message);
|
|
|
|
|
sqlSugarClient.AsTenant().RollbackTranAsync();
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
sqlSugarClient.AsTenant().CommitTranAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LeavingTPTask(WcsTaskInstance taskInstance, List<SubTaskInstance> subTaskInstances, BaseLocation endPoint)
|
|
|
|
|
{
|
|
|
|
|
if (endPoint.WorkshopLevel != 2)
|
|
|
|
|
{
|
|
|
|
|
taskInstance.SubtaskCount = taskInstance.SubtaskCount + 3;
|
|
|
|
|
var elevator = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == endPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint1 = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.MachineId == elevator.EquipNo && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == 2).First();
|
|
|
|
|
var elevatorPoint2 = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.MachineId == elevator.EquipNo && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == endPoint.WorkshopLevel).First();
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = "连廊中转点",
|
|
|
|
|
EndPointId = $"{elevatorPoint1.WorkshopId}楼2层提升机点位",
|
|
|
|
|
CurrPointId = "连廊中转点",
|
|
|
|
|
StartAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance2 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.ElevatorBoxTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.ElevatorBoxTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint1.WorkshopId}楼2层提升机点位",
|
|
|
|
|
EndPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = $"{elevatorPoint1.WorkshopId}楼2层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance3 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTHTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTHTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (endPoint.WorkshopId == 15)
|
|
|
|
|
{
|
|
|
|
|
subTaskInstance3.TaskType = StaticTaskType.MovePalletGTHJTask;
|
|
|
|
|
subTaskInstance3.TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTHJTask);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance2);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance3);
|
|
|
|
|
|
|
|
|
|
taskInstance.TaskParams = JsonConvert.SerializeObject(subTaskInstances);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
sqlSugarClient.Insertable(taskInstance).ExecuteCommand();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
taskInstance.SubtaskCount++;
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTHJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTHJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{transformPoint.WorkshopId}楼{transformPoint.WorkshopLevel}层中转点位",
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = $"{transformPoint.WorkshopId}楼{transformPoint.WorkshopLevel}层中转点位",
|
|
|
|
|
StartAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
taskInstance.TaskParams = JsonConvert.SerializeObject(subTaskInstances);
|
|
|
|
|
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
sqlSugarClient.Insertable(taskInstance).ExecuteCommand();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ArrivingTPTask(WcsTaskInstance taskInstance, List<SubTaskInstance> subTaskInstances, BaseLocation startPoint, BaseLocation endPoint)
|
|
|
|
|
{
|
|
|
|
|
BaseTasktypeInfo baseTasktypeInfo;
|
|
|
|
|
if (startPoint.WorkshopLevel != 2) //如果不和连廊同层
|
|
|
|
|
{
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层到{endPoint.WorkshopId}楼-{endPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 3;
|
|
|
|
|
var elevator = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == startPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint1 = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.MachineId == elevator.EquipNo && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == startPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint2 = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.MachineId == elevator.EquipNo && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == 2).First();
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (startPoint.WorkshopId == 15)
|
|
|
|
|
{
|
|
|
|
|
subTaskInstance1.TaskType = StaticTaskType.MovePalletHTGTask;
|
|
|
|
|
subTaskInstance1.TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletHTGTask);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance2 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.ElevatorBoxTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.ElevatorBoxTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance3 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTXJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTXJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = "连廊中转点",
|
|
|
|
|
CurrPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance2);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance3);
|
|
|
|
|
taskInstance.TaskParams = JsonConvert.SerializeObject(subTaskInstances);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
else //和连廊同层
|
|
|
|
|
{
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层到{endPoint.WorkshopId}楼-{endPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 1;
|
|
|
|
|
var transformPoint = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 4 && x.WorkshopId == 1415 && x.WorkshopLevel == 2 && x.ContainerCode == null).First();
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletHTGJTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletHTGJTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = $"{transformPoint.WorkshopId}楼{transformPoint.WorkshopLevel}层中转点位",
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = transformPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
taskInstance.TaskParams = JsonConvert.SerializeObject(subTaskInstances);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SDTask(WcsTaskInstance taskInstance, List<SubTaskInstance> subTaskInstances, BaseLocation startPoint, BaseLocation endPoint)
|
|
|
|
|
{
|
|
|
|
|
BaseTasktypeInfo baseTasktypeInfo;
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层到{endPoint.WorkshopId}楼-{endPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 3;
|
|
|
|
|
var elevator = sqlSugarClient.Queryable<BaseEquipInfo>().Where(x => x.EquipType == 3 && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == startPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint1 = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.MachineId == elevator.EquipNo && x.WorkshopId == startPoint.WorkshopId && x.WorkshopLevel == startPoint.WorkshopLevel).First();
|
|
|
|
|
var elevatorPoint2 = sqlSugarClient.Queryable<BaseLocation>().Where(x => x.MachineId == elevator.EquipNo && x.WorkshopId == endPoint.WorkshopId && x.WorkshopLevel == endPoint.WorkshopLevel).First();
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletGTXTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletGTXTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance2 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.ElevatorBoxTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.ElevatorBoxTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
CurrPointId = $"{elevatorPoint1.WorkshopId}楼{elevatorPoint1.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint1.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance3 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = $"{elevatorPoint2.WorkshopId}楼{elevatorPoint2.WorkshopLevel}层提升机点位",
|
|
|
|
|
StartAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = elevatorPoint2.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
};
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance2);
|
|
|
|
|
subTaskInstances.Add(subTaskInstance3);
|
|
|
|
|
taskInstance.TaskParams = JsonConvert.SerializeObject(subTaskInstances);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SSTask(WcsTaskInstance taskInstance, List<SubTaskInstance> subTaskInstances, BaseLocation startPoint, BaseLocation endPoint)
|
|
|
|
|
{
|
|
|
|
|
BaseTasktypeInfo baseTasktypeInfo;
|
|
|
|
|
taskInstance.TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId();
|
|
|
|
|
taskInstance.TaskName = $"{startPoint.WorkshopId}楼-{startPoint.WorkshopLevel}层运输任务";
|
|
|
|
|
baseTasktypeInfo = sqlSugarClient.Queryable<BaseTasktypeInfo>().Where(x => x.TaskTypeKey == "001").First();
|
|
|
|
|
taskInstance.TaskTypeKey = baseTasktypeInfo.TaskTypeKey;
|
|
|
|
|
taskInstance.TaskTypeName = baseTasktypeInfo.TaskTypeName;
|
|
|
|
|
taskInstance.SubtaskCount = 1;
|
|
|
|
|
|
|
|
|
|
SubTaskInstance subTaskInstance1 = new SubTaskInstance()
|
|
|
|
|
{
|
|
|
|
|
TaskCode = SnowflakeIdGenerator.GenerateSnowflakeId(),
|
|
|
|
|
TaskType = StaticTaskType.MovePalletXTGTask,
|
|
|
|
|
TaskName = StaticTaskType.GetDescription(StaticTaskType.MovePalletXTGTask),
|
|
|
|
|
MaintaskCode = taskInstance.TaskCode,
|
|
|
|
|
TaskStatus = 0,
|
|
|
|
|
StartPointId = startPoint.LocationCode,
|
|
|
|
|
EndPointId = endPoint.LocationCode,
|
|
|
|
|
CurrPointId = startPoint.LocationCode,
|
|
|
|
|
StartAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
EndAGVPoint = endPoint.AgvPositionCode,
|
|
|
|
|
CurrAGVPoint = startPoint.AgvPositionCode,
|
|
|
|
|
CreatedBy = "wcs",
|
|
|
|
|
CreatedTime = DateTime.Now,
|
|
|
|
|
};
|
|
|
|
|
subTaskInstances.Add(subTaskInstance1);
|
|
|
|
|
taskInstance.TaskParams = JsonConvert.SerializeObject(subTaskInstances);
|
|
|
|
|
taskInstance.CurrentSubtaskCode = subTaskInstance1.TaskCode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|