コード例 #1
0
        public static WageReport Convert(WageReportDto debtDto)
        {
            if (debtDto == null)
            {
                return(null);
            }
            WageReport debt = new WageReport();

            debtDto.CurrentSum      = debt.CurrentSum;
            debtDto.FullNameManager = debt.FullNameManager;
            debtDto.Paid            = debt.Paid;
            debtDto.Rest            = debt.Rest;
            debtDto.SumOrders       = debt.SumOrders;
            return(debt);
        }
コード例 #2
0
        Report(WageReportPayload payload)
        {
            var response = ResponseModelFactory.CreateResultInstance;

            var wageReports = new List <WageReport>();
            var colors      = "0123456789ABCDEF".ToArray();

            await using (_dbContext)
            {
                var random = new Random();
                var query  = _dbContext.WageInfo.Where(w => w.Status == CommonEnum.Status.Normal &&
                                                       w.IsDeleted == CommonEnum.IsDeleted.No);
                //循环年份
                for (int i = 0; i < payload.Year; i++)
                {
                    var wageSeries = new List <WageSeries>();
                    var legend     = new Legend {
                        Data = new List <string>()
                    };
                    var report = new WageReport();

                    switch (payload.Category)
                    {
                    case 0:
                        var series = new WageSeries
                        {
                            AreaStyle = new Areastyle
                            {
                                Normal = new AreastyleNormal()
                            },
                            ItemStyle = new ItemStyle
                            {
                                Normal = new ItemStyleNormal
                                {
                                    Label = new ItemStyleLabel()
                                }
                            }
                        };
                        series.Name = "总体";
                        legend.Data.Add(series.Name);
                        var color = "#";
                        for (var j = 0; j < 6; j++)
                        {
                            color += colors[random.Next(0, 15)];
                        }
                        series.Data = GetData(query, i);
                        series.AreaStyle.Normal.Color = color;
                        wageSeries.Add(series);
                        break;

                    case 1:

                        (from p in _dbContext.WageInfo
                         group p by p.RealName into g
                         select new{ g.Key }).ToList().ForEach(r => {
                            var queryTemp = query.Where(q => q.RealName == r.Key);
                            var series    = new WageSeries
                            {
                                AreaStyle = new Areastyle {
                                    Normal = new AreastyleNormal()
                                },
                                ItemStyle = new ItemStyle
                                {
                                    Normal = new ItemStyleNormal {
                                        Label = new ItemStyleLabel()
                                    }
                                },
                                Name = r.Key
                            };
                            legend.Data.Add(series.Name);
                            series.Data     = GetData(queryTemp, i);
                            var normalColor = "#";
                            for (var j = 0; j < 6; j++)
                            {
                                normalColor += colors[random.Next(0, 15)];
                            }
                            series.AreaStyle.Normal.Color = normalColor;
                            wageSeries.Add(series);
                        });
                        break;

                    case 2:

                        _dbContext.UserDepartment.ToList().ForEach(r =>
                        {
                            var queryTemp = query.Where(q => q.DepartmentCode.Trim() == r.Code.Trim());

                            var series = new WageSeries
                            {
                                AreaStyle = new Areastyle
                                {
                                    Normal = new AreastyleNormal()
                                },
                                ItemStyle = new ItemStyle
                                {
                                    Normal = new ItemStyleNormal
                                    {
                                        Label = new ItemStyleLabel()
                                    }
                                }
                            };
                            series.Name = r.Name;
                            legend.Data.Add(series.Name);
                            series.Data     = GetData(queryTemp, i);
                            var normalColor = "#";
                            for (int j = 0; j < 6; j++)
                            {
                                normalColor += colors[random.Next(0, 15)];
                            }
                            series.AreaStyle.Normal.Color = normalColor;
                            wageSeries.Add(series);
                        }
                                                                   );
                        break;

                    case 3:

                        _dbContext.UserPosition.ToList().ForEach(r =>
                        {
                            var queryTemp = query.Where(q => q.PositionCode.Trim() == r.Code.Trim());
                            var series    = new WageSeries
                            {
                                AreaStyle = new Areastyle {
                                    Normal = new AreastyleNormal()
                                },
                                ItemStyle = new ItemStyle
                                {
                                    Normal = new ItemStyleNormal {
                                        Label = new ItemStyleLabel()
                                    }
                                },
                                Name = r.Name
                            };
                            legend.Data.Add(series.Name);
                            series.Data     = GetData(queryTemp, i);
                            var normalColor = "#";
                            for (int j = 0; j < 6; j++)
                            {
                                normalColor += colors[random.Next(0, 15)];
                            }
                            series.AreaStyle.Normal.Color = normalColor;
                            wageSeries.Add(series);
                        }
                                                                 );
                        break;

                    default:
                        break;
                    }

                    report.Title      = $"{DateTime.Now.AddYears(-i):yyyy}年度薪资报表";
                    report.WageSeries = wageSeries;
                    report.Legend     = legend;
                    wageReports.Add(report);
                }

                response.SetData(wageReports);