private static bool IsFilterRunMode(this JobFilterInfo info, FabAoEquipment eqp, List <JobFilterInfo> jobList) { WeightFactor wf = WeightHelper.GetWeightFactor(eqp.Target.Preset, Constants.WF_RUN_MODE_FILTER); if (wf == null || wf.Factor == 0) { return(false); } //연속진행인 경우 if (info.IsRunning) { return(false); } string eqpGroup = eqp.TargetEqp.EqpGroup; string runMode = eqp.GetCurrentRunMode(); var branchStep = BranchStepMaster.GetBranchStep(eqpGroup, runMode); if (branchStep == null) { return(false); } if (branchStep.IsAllProduct) { return(false); } var productList = branchStep.ProductList; if (productList == null || productList.Count == 0) { return(false); } string productID = info.ProductID; string ownerType = info.OwnerType; bool isFilter = true; if (branchStep.IsLoadable(productID, ownerType)) { isFilter = false; } if (isFilter) { string defaultOwnerType = SiteConfigHelper.GetDefaultOwnerType(); if (ExistRemainWip(jobList, productList, defaultOwnerType) == false) { isFilter = false; } } return(isFilter); }
internal static void ChangeCurrentRunMode(this FabSubEqp subEqp, FabLot lot) { if (subEqp == null) { return; } if (lot == null) { return; } var step = lot.CurrentFabStep; if (step == null || step.StdStep == null) { return; } var targetEqp = subEqp.Parent as FabEqp; string eqpGroup = targetEqp.EqpGroup; string runMode = subEqp.SubEqpGroup.CurrentRunMode; string productID = lot.CurrentProductID; string ownerType = lot.OwnerType; var branchStep = BranchStepMaster.GetBranchStep(eqpGroup, runMode); if (branchStep != null) { //현재 runMode에서 Loadable 한 경우 RunMode 유지 if (branchStep.IsLoadable(productID, ownerType)) { return; } } //change runMode (DefaultRunMode) subEqp.SubEqpGroup.CurrentRunMode = step.StdStep.DefaultRunMode; }