Ejemplo n.º 1
0
        private void Initialze()
        {
            //今天的实时数据
            if (Date.AddHours(32) > DateTime.Now)
            {
                WipQuerier = new ReqRpt002WipQuerier(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            }
            else
            {
                //查询历史数据
                WipQuerier = new ReqRpt002WipQuerier(Date.AddHours(32).ToString("yyyy-MM-dd HH:mm:ss"));
            }
            TdMoveQuerier   = new ReqRpt002MoveQuerier(Date.ToString("yyyy-MM-dd"));
            YstdMoveQuerier = new ReqRpt002MoveQuerier(Date.AddDays(-1).ToString("yyyy-MM-dd"));
            WaferOutQuerier = new ReqRpt002WaferOutQuerier(Date.ToString("yyyy-MM-dd"));

            foreach (var dept in ModuleDepartments)
            {
                var entity = new ReqRpt002DepartmentTableRowEntity();
                SetRowEntity(entity, dept);
                DeptTableModuleRowEntities.Add(entity);
            }
            foreach (var dept in TestDepartment)
            {
                var entity = new ReqRpt002DepartmentTableRowEntity();
                SetRowEntity(entity, dept);
                DeptTableTestRowEntities.Add(entity);
            }
            foreach (var dept in BankDepartment)
            {
                var entity = new ReqRpt002DepartmentTableRowEntity();
                SetRowEntity(entity, dept);
                DeptTableBankRowEntities.Add(entity);
            }
            //ModuleTotal
            ModuleTotal.Department = "Module Total";
            SetTotalEntity(ModuleTotal, DeptTableModuleRowEntities);
            //TestTotal
            TestTotal.Department = "Test Total";
            SetTotalEntity(TestTotal, DeptTableTestRowEntities);
            //BankTotal
            DeptTableBankRowEntities[0].Department = "Normal Bank";
            BankTotal.Department = "Bank Total";
            SetTotalEntity(BankTotal, DeptTableBankRowEntities);
            //FabTotal
            FabTotal.Department = "Fab Total";
            SetTotalEntity(FabTotal, DeptTableModuleRowEntities.Union(DeptTableTestRowEntities).Union(DeptTableBankRowEntities).ToList());
            GetCtData();
            SetDevValue();
            WaferOutEntities    = WaferOutQuerier.WaferOutEntities;
            WaferOutTotalEntity = WaferOutQuerier.WaferOutTotalEntity;
        }
Ejemplo n.º 2
0
        private void Initialize()
        {
            Products = new ReqRptCommonProductQuerier(6).Prods;
            string month = Date.ToString("yyyy-MM");
            var    model = new ReqRpt011TableDataBuilder(month, Products);
            var    lineYieldPostModel = new ReqRpt025PostModel()
            {
                FromCategory = "day", ToCategory = "day", FromDate = Date.ToString("yyyy-MM") + "-01", ToDate = Date.AddDays(1).ToString("yyyy-MM-dd")
            };
            var lineYiledDataModel = new ReqRpt025TableViewModel(lineYieldPostModel);

            foreach (var prod in Products)
            {
                var outSource = model.WipEntities.Where(w => w.ProductID == prod);
                var outEntity = new ReqRpt002WaferOutEntity()
                {
                    Product = prod
                };
                outEntity.OutSourceAccActual = outSource.Any() ? outSource.First().Plans.Take(Date.Day).Sum(s => s.Actual) : 0;
                outEntity.OutSourceAccTarget = outSource.Any() ? outSource.First().Plans.Take(Date.Day).Sum(s => s.Target) : 0;
                var waferOut = model.ShipEntities.Where(w => w.ProductID == prod);
                outEntity.WFOutAccActual = waferOut.Any() ? waferOut.First().Plans.Take(Date.Day).Sum(s => s.Actual) : 0;
                outEntity.WFOutAccTarget = waferOut.Any() ? waferOut.First().Plans.Take(Date.Day).Sum(s => s.Target) : 0;
                var yieldFindList = lineYiledDataModel.TableEntities.Where(w => w.ProductID == prod);
                outEntity.WFOutYield = yieldFindList.Any() ? yieldFindList.First().Yield : 0;
                WaferOutEntities.Add(outEntity);
            }
            WaferOutTotalEntity.Product            = "Total";
            WaferOutTotalEntity.OutSourceAccActual = WaferOutEntities.Sum(s => s.OutSourceAccActual);
            WaferOutTotalEntity.OutSourceAccTarget = WaferOutEntities.Sum(s => s.OutSourceAccTarget);
            WaferOutTotalEntity.WFOutAccActual     = WaferOutEntities.Sum(s => s.WFOutAccActual);
            WaferOutTotalEntity.WFOutAccTarget     = WaferOutEntities.Sum(s => s.WFOutAccTarget);
            var fab_pass  = lineYiledDataModel.TableEntities.Sum(s => s.FAB_PassQty);
            var fab_scrap = lineYiledDataModel.TableEntities.Sum(s => s.FAB_ScrapQty);
            var wat_pass  = lineYiledDataModel.TableEntities.Sum(s => s.WAT_PassQty);
            var wat_scrap = lineYiledDataModel.TableEntities.Sum(s => s.WAT_ScrapQty);
            var fab_yield = fab_pass + fab_scrap == 0 ? 0 : fab_pass * 1.0 / (fab_pass + fab_scrap);
            var wat_yield = wat_pass + wat_scrap == 0 ? 0 : wat_pass * 1.0 / (wat_pass + wat_scrap);

            WaferOutTotalEntity.WFOutYield = fab_yield * wat_yield;
        }