Files
test_demo/MX-PD-盘古 - new/PanGu.DieBonderApp/MainShell/Process/ChipPreparation/ChipPreparationConsumeActivity.cs

67 lines
3.0 KiB
C#
Raw Normal View History

using MainShell.Common;
using MW.WorkFlow;
using System;
using System.Threading.Tasks;
namespace MainShell.Process
{
public class ChipPreparationConsumeActivity : ActivityAbstractBase
{
public ChipPreparationConsumeActivity(string name)
: base(name)
{
}
protected override Task<ActivityResult> OnExecuteAsync(WorkflowContext context, ActivityControl activityControl)
{
activityControl.ThrowIfCancellationRequested();
CurrentChipLifecycleState currentChipState;
if (!context.TryGetData<CurrentChipLifecycleState>(WorkflowContextKeys.CurrentChipState, out currentChipState) ||
currentChipState != CurrentChipLifecycleState.LoadedPendingTransfer)
{
return Task.FromResult(ActivityResult.Success);
}
PreparationAreaService preparationAreaService;
if (!context.TryGetData<PreparationAreaService>(WorkflowContextKeys.PreparationAreaService, out preparationAreaService) || preparationAreaService == null)
{
throw new InvalidOperationException(<>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
AutoProductionRuntimeStateService autoProductionRuntimeStateService;
if (!context.TryGetData<AutoProductionRuntimeStateService>(WorkflowContextKeys.AutoProductionRuntimeStateService, out autoProductionRuntimeStateService) || autoProductionRuntimeStateService == null)
{
throw new InvalidOperationException(<>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
string rejectReason;
if (preparationAreaService.TryConsumeReady(out rejectReason))
{
CurrentChipStateService currentChipStateService;
if (context.TryGetData<CurrentChipStateService>(WorkflowContextKeys.CurrentChipStateService, out currentChipStateService) && currentChipStateService != null)
{
currentChipStateService.SetState(CurrentChipLifecycleState.InUse);
}
autoProductionRuntimeStateService.SetCurrentChipRemainingCount(1);
context.SetData(WorkflowContextKeys.PendingChipLoad, false);
context.SetData(WorkflowContextKeys.CurrentChipState, CurrentChipLifecycleState.InUse);
context.SetData(WorkflowContextKeys.PreparationAreaStatus, preparationAreaService.CurrentStatus);
context.SetData(WorkflowContextKeys.CurrentChipRemainingCount, autoProductionRuntimeStateService.CurrentChipRemainingCount);
return Task.FromResult(ActivityResult.Success);
}
return Task.FromResult(Fail(
context,
MessageKey.ProcessStepFailedWithReason,
new object[]
{
Name,
string.IsNullOrWhiteSpace(rejectReason) ? "оƬ<D0BE><C6AC>̨׼<CCA8><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܡ<EFBFBD>" : rejectReason
}));
}
}
}