Example #1
0
        public async Task <object> DataCharTrendWeek(TrendParamModel param)
        {
            var numberWeek = param.numberTime != string.Empty ? Convert.ToInt32(param.numberTime) : 1;
            // take out a week to follow 'numberWeek
            var      week      = Util.ListWeekOfYear().Find(x => x.weekNum == numberWeek);
            DateTime dateStart = week.weekStart.Value;
            DateTime dateEnd   = week.weekFinish.Value;

            // Take out list day of week
            List <DateTime>            rangerDate = Util.GetRangerDates(dateStart, dateEnd);
            List <ChartTrendViewModel> dataChart  = new List <ChartTrendViewModel>();

            // Reformat the list of dates to display outside
            List <string> listTime = rangerDate.ConvertAll(x => x.ToString("MM/dd"));
            List <string> listDate = Util.ListDate(listTime);

            var dataAll = await _serverCommon.GetListOEE(param.factory);

            if (param.shift.ToString() != "0")
            {
                dataAll = dataAll.Where(x => x.shift_id.ToString() == param.shift).ToList();
            }
            if (param.factory.Trim() == "ALL")
            {
                var factorys = await _repofactory.FindAll().GroupBy(x => x.factory_id).Select(x => x.Key).ToListAsync();

                dataChart = this.DataChartWeek(factorys, param, "all", dataAll, listDate);
            }
            if (param.factory != "ALL")
            {
                dataChart = new List <ChartTrendViewModel>();
                var buildings = await _serverCommon.GetListBuilding(param.factory);

                dataChart = this.DataChartWeek(buildings, param, "factory", dataAll, listDate);
            }
            if (param.building != "ALL")
            {
                dataChart = new List <ChartTrendViewModel>();
                var machines = await _serverCommon.ListMachineID(param.factory, param.building);

                dataChart = this.DataChartWeek(machines, param, "building", dataAll, listDate);
            }
            if (param.machine_type != "ALL")
            {
                dataChart = new List <ChartTrendViewModel>();
                var machines = await _serverCommon.ListMachineID(param.factory, param.building, param.machine_type);

                dataChart = this.DataChartWeek(machines, param, "machine", dataAll, listDate);
            }
            var result = new {
                dataChart,
                listTime
            };

            return(result);
        }
Example #2
0
        public async Task <object> DataCharTrendMonth(TrendParamModel param)
        {
            // -------------------------------- Data ListTime------------------------------------//
            var numberMonth = param.numberTime != string.Empty ? Convert.ToInt32(param.numberTime) : 1;
            var weeks       = Util.ListWeekOfYear().FindAll(x => x.weekStart.Value.Month == numberMonth);

            List <string> listTime = new List <string>();
            List <ChartTrendViewModel> dataChart = new List <ChartTrendViewModel>();

            foreach (var week in weeks)
            {
                listTime.Add(week.weekStart.Value.ToString("MM/dd") + " to " + week.weekFinish.Value.ToString("MM/dd") + "\n (Week " + week.weekNum + ")");
            }

            // -------------------------------- DataChart---------------------------------------//
            var dataAll = await _serverCommon.GetListOEE(param.factory);

            if (param.shift.ToString() != "0")
            {
                dataAll = dataAll.Where(x => x.shift_id.ToString() == param.shift).ToList();
            }
            if (param.factory.Trim() == "ALL")
            {
                var factorys = await _repofactory.FindAll().GroupBy(x => x.factory_id).Select(x => x.Key).ToListAsync();

                dataChart = this.DataChartMonth(factorys, param, "all", dataAll, weeks);
            }
            if (param.factory != "ALL")
            {
                dataChart = new List <ChartTrendViewModel>();
                var buildings = await _serverCommon.GetListBuilding(param.factory);

                dataChart = this.DataChartMonth(buildings, param, "factory", dataAll, weeks);
            }
            if (param.building != "ALL")
            {
                dataChart = new List <ChartTrendViewModel>();
                var machines = await _serverCommon.ListMachineID(param.factory, param.building);

                dataChart = this.DataChartMonth(machines, param, "building", dataAll, weeks);
            }
            if (param.machine_type != "ALL")
            {
                dataChart = new List <ChartTrendViewModel>();
                var machines = await _serverCommon.ListMachineID(param.factory, param.building, param.machine_type);

                dataChart = this.DataChartMonth(machines, param, "machine", dataAll, weeks);
            }

            var result = new {
                dataChart,
                listTime
            };

            return(result);
        }
Example #3
0
        public async Task <IActionResult> LoadDataChart(TrendParamModel param)
        {
            var data = new object();

            if (param.typeTime == "week")
            {
                data = await _server.DataCharTrendWeek(param);
            }
            else if (param.typeTime == "month")
            {
                data = await _server.DataCharTrendMonth(param);
            }
            return(Ok(data));
        }
Example #4
0
        public List <ChartTrendViewModel> DataChartMonth(List <string> names, TrendParamModel param, string nameType, List <M_OEE_Dto> data, List <WeekViewModel> weeks)
        {
            var dataChart = new List <ChartTrendViewModel>();
            var dataOf    = new List <M_OEE_Dto>();

            foreach (var nameItem in names)
            {
                if (nameType == "all")
                {
                    dataOf = data.Where(x => x.factory_id.Trim() == nameItem.Trim()).ToList();
                }
                else if (nameType == "factory")
                {
                    dataOf = data.Where(x => x.factory_id.Trim() == param.factory.Trim() &&
                                        x.building_id.Trim() == nameItem.Trim()).ToList();
                }
                else if (nameType == "building" || nameType == "machine")
                {
                    dataOf = data.Where(x => x.factory_id.Trim() == param.factory.Trim() &&
                                        x.building_id.Trim() == param.building.Trim() &&
                                        x.machine_id.Trim() == nameItem.Trim()).ToList();
                }
                var itemTrendChart = new ChartTrendViewModel();
                itemTrendChart.name = nameItem;
                var dataCharts = new List <decimal>();
                foreach (var dateItem in weeks)
                {
                    var dataItem = dataOf.Where(x => x.shift_date >= dateItem.weekStart &&
                                                x.shift_date <= dateItem.weekFinish).ToList();
                    if (dataItem.Count() > 0)
                    {
                        var dataItem1 = dataItem.GroupBy(x => x.shift_date).Select(x => new {
                            value = Math.Round(x.Sum(cl => cl.oee_rate) / (x.Count()), 0)
                        }).FirstOrDefault();
                        dataCharts.Add(dataItem1.value);
                    }
                    else
                    {
                        dataCharts.Add(0);
                    }
                }
                itemTrendChart.data = dataCharts;
                dataChart.Add(itemTrendChart);
            }
            return(dataChart);
        }