// 获取多轮参加团队赛的运动员预赛成绩
        public static List <AthleteSocreModel> GetTeamMatchAthletesScore(string matchId, string groupName, string sexName, int round)
        {
            var roundField = string.Empty;

            if (round == 1)
            {
                roundField = "PRELIMINARIES_RESULTS_ONE";
            }
            else if (round == 2)
            {
                roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO";
            }
            else if (round == 3)
            {
                roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO, PRELIMINARIES_RESULTS_THREE";
            }
            else if (round == 4)
            {
                roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO, PRELIMINARIES_RESULTS_THREE, PRELIMINARIES_RESULTS_FOUR";
            }
            else if (round == 5)
            {
                roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO, PRELIMINARIES_RESULTS_THREE, PRELIMINARIES_RESULTS_FOUR, PRELIMINARIES_RESULTS_FIVE";
            }

            var result = new List <AthleteSocreModel>();

            var sql = $"select name,team_name,team_short_name, {roundField} from athletes where " +
                      $"match_id = '{matchId}' and group_name='{groupName}' and sex = '{sexName}' and bar_GROUP_GAMES_STATUS ='参加'";

            var dataSet = SQLiteHelper.ExecuteDataSet(SQLiteHelper.LocalDbConnectionString, sql, CommandType.Text);
            var rows    = dataSet.Tables[0].Rows;

            for (var i = 0; i < rows.Count; i++)
            {
                var score = new AthleteSocreModel();
                score.Name          = rows[i].ItemArray[0] != DBNull.Value ? (string)rows[i].ItemArray[0] : "";
                score.TeamName      = rows[i].ItemArray[1] != DBNull.Value ? (string)rows[i].ItemArray[1] : "";
                score.TeamShortName = rows[i].ItemArray[2] != DBNull.Value ? (string)rows[i].ItemArray[2] : "";

                score.AllScores       = new List <double>();
                score.ScoresWithRound = new Dictionary <int, List <double> >();

                if (round == 1)
                {
                    var oS        = rows[i].ItemArray[3] != DBNull.Value ? (string)rows[i].ItemArray[3] : "";
                    var oneScores = oS.Split(';');
                    var key       = 1;
                    var oneValue  = new List <double>();
                    if (oneScores.Length > 1)
                    {
                        for (var j = 0; j < oneScores.Length; j++)
                        {
                            var s = 0.0;
                            double.TryParse(oneScores[j], out s);
                            oneValue.Add(s);
                            score.AllScores.Add(s);
                            score.SumSocre += s;
                        }
                        score.ScoresWithRound.Add(key, oneValue);
                    }
                }
                else if (round == 2)
                {
                    var oS        = rows[i].ItemArray[3] != DBNull.Value ? (string)rows[i].ItemArray[3] : "";
                    var twoS      = rows[i].ItemArray[4] != DBNull.Value ? (string)rows[i].ItemArray[4] : "";
                    var oneScores = oS.Split(';');
                    var key1      = 1;
                    var oneValue  = new List <double>();
                    if (oneScores.Length > 1)
                    {
                        for (var j = 0; j < oneScores.Length; j++)
                        {
                            var s = 0.0;
                            double.TryParse(oneScores[j], out s);
                            oneValue.Add(s);
                            score.AllScores.Add(s);
                            score.SumSocre += s;
                        }
                        score.ScoresWithRound.Add(key1, oneValue);
                    }

                    var twoScores = twoS.Split(';');
                    var key2      = 2;
                    var twoValue  = new List <double>();
                    if (twoScores.Length > 1)
                    {
                        for (var j = 0; j < twoScores.Length; j++)
                        {
                            var s = 0.0;
                            double.TryParse(twoScores[j], out s);
                            twoValue.Add(s);
                            score.AllScores.Add(s);
                            score.SumSocre += s;
                        }
                        score.ScoresWithRound.Add(key2, twoValue);
                    }
                }
                else if (round == 3)
                {
                    roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO, PRELIMINARIES_RESULTS_THREE";
                }
                else if (round == 4)
                {
                    roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO, PRELIMINARIES_RESULTS_THREE, PRELIMINARIES_RESULTS_FOUR";
                }
                else if (round == 5)
                {
                    roundField = "PRELIMINARIES_RESULTS_ONE, PRELIMINARIES_RESULTS_TWO, PRELIMINARIES_RESULTS_THREE, PRELIMINARIES_RESULTS_FOUR, PRELIMINARIES_RESULTS_FIVE";
                }

                result.Add(score);
            }
            return(result);
        }
Пример #2
0
        private static int SetAthleteScore(IWorkbook workbook, ISheet sheet, int startRow, AthleteSocreModel athlete, bool isQ)
        {
            var row    = startRow;
            var athRow = CreateRow(sheet, startRow);

            SetCellValue(athRow, 0, athlete.TeamShortName);
            SetCellValue(athRow, 1, athlete.Name);
            for (var i = 2; i < 14; i++)
            {
                if (athlete.ScoresWithRound.Count < 1)
                {
                    break;
                }
                if (athlete.ScoresWithRound.ContainsKey(1))
                {
                    var value = athlete.ScoresWithRound[1].Skip(i - 2).Take(1).First().ToString().Trim();
                    var cell  = SetCellValue(athRow, i, value, true);
                    if (value == "1") // 设置样式
                    {
                        ICellStyle style = workbook.CreateCellStyle();
                        style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
                        style.FillPattern         = FillPattern.SolidForeground;

                        cell.CellStyle = style;
                    }
                }
            }

            for (var i = 15; i < 27; i++)
            {
                if (athlete.ScoresWithRound.ContainsKey(2))
                {
                    var value = athlete.ScoresWithRound[2].Skip(i - 15).Take(1).First().ToString().Trim();
                    var cell  = SetCellValue(athRow, i, value, true);

                    if (value == "1") // 设置样式
                    {
                        ICellStyle style = workbook.CreateCellStyle();
                        style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
                        style.FillPattern         = FillPattern.SolidForeground;

                        cell.CellStyle = style;
                    }
                }
            }

            if (isQ)
            {
                SetCellValue(athRow, 29, "Q");
            }

            return(++row);
        }