Ejemplo n.º 1
0
        public List<RepairRecipe> GetCombineFaultRecipes(CombineFault cmbFault, int palletId, int actionId)
        {
            List<RepairRecipe> recipes = new List<RepairRecipe>();
            List<TorqueRepair> trqRepairs = new List<TorqueRepair>();
            List<BarcodeRepair> bcRepairs = new List<BarcodeRepair>();
            ReworkFactory factory = new ReworkFactory();

            var skuInfo = factory.GetSkuInfoByPalletId(palletId);

            foreach (var t in cmbFault.TorqueFaults)
            {
                var tmpTrqRepair = GetTorqueRepair(t);
                trqRepairs.Add(tmpTrqRepair);
            }

            foreach (var b in cmbFault.BarcodeFaults)
            {
                var tmpBcRepair = GetBarcodeRepair(b);
                bcRepairs.Add(tmpBcRepair);
            }

            var dispRecipes = GetRepairRecipes(skuInfo, cmbFault.Disposition, actionId);
            foreach (var r in dispRecipes)
            {
                if (r.RequireRepaired)
                {
                    foreach (var t in r.TorqueRepairs)
                    {
                        
                    }

                    foreach (var b in r.BarcodeRepairs)
                    {
                        if (!bcRepairs.Where(bc => bc.CSType == bc.CSType).Any())
                            bcRepairs.Add(b);
                    }
                }
                else
                {
                    recipes.Add(r);
                }
            }

            if (bcRepairs.Any() || trqRepairs.Any())
            {
                recipes.Add(new RepairRecipe
                {
                    Title = "Combine Fault Recipe",
                    TorqueRepairs = trqRepairs,
                    BarcodeRepairs = bcRepairs,
                    Repaired = false,
                    RequireRepaired = true,
                    Priority = 1,
                    RecipeId = 100
                });
            }

            return recipes.OrderByDescending(r=>r.Priority).ToList();
        }
Ejemplo n.º 2
0
        public List<RepairFaultDetail> GetCombineRepairFaultDetails(CombineFault combineFault)
        {
            //1 - Defect Fault
            //2 - Other Fault
            //3 - CombineFault
            //4 - Barcode Fault
            //5 - Torque Fault

            List<RepairFaultDetail> faultDetails = new List<RepairFaultDetail>();
            var defects = (from d in (combineFault.DefectFaults ?? new List<DefectFault>())
                           select new RepairFaultDetail {
                               FaultTypeId = 1,
                               Station = d.StationNum,
                               Description = d.Defect.Description
                           }).ToList();

            faultDetails.AddRange(defects);

            var other = (from d in (combineFault.OtherFaults ?? new List<OtherFault>())
                           select new RepairFaultDetail
                           {
                               FaultTypeId = 2,
                               Station = "N/A",
                               Description = "Other Fault"
                           }).ToList();

            faultDetails.AddRange(other);

            var bcs = (from d in (combineFault.BarcodeFaults ?? new List<BarcodeFault>())
                         select new RepairFaultDetail
                         {
                             FaultTypeId = 4,
                             Station = d.CSType.ToString(),
                             Description = d.Description.Trim()
                         }).ToList();

            faultDetails.AddRange(bcs);

            var trqs = (from d in (combineFault.TorqueFaults ?? new List<TorqueFault>())
                       select new RepairFaultDetail
                       {
                           FaultTypeId = 5,
                           Station = d.StationId,
                           Description = "Missing: " + d.Description + " " + d.TorquesMissing + " torque(s) PSET " + d.PsetNum
                       }).ToList();

            faultDetails.AddRange(trqs);

            return faultDetails;
        }