NewGaoKaoApi/New_College.Services/T_EnrollmentPlaneServices.cs

371 lines
16 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using New_College.IServices;
using New_College.Model.Models;
using New_College.Services.BASE;
using New_College.IRepository.Base;
using System.Threading.Tasks;
using New_College.IRepository;
using New_College.Common.Excel;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Data.Entity.ModelConfiguration.Conventions;
using System;
using New_College.Model.ViewModels.Result;
using New_College.Model.ViewModels.Query;
using New_College.Model;
using System.Text.RegularExpressions;
using New_College.Common.Helper;
using Newtonsoft.Json;
using System.IO;
using System.Threading;
namespace New_College.Services
{
public class T_EnrollmentPlaneServices : BaseServices<T_EnrollmentPlane>, IT_EnrollmentPlaneServices
{
private readonly IBaseRepository<T_EnrollmentPlane> _dal;
private readonly IT_EnrollmentPlaneRepository planeRepository;
private readonly ID_UniversityRepository d_University;
private readonly ID_MajorRepository d_Major;
private readonly IT_EnrollmentBatchRepository t_EnrollmentBatch;
private readonly IT_EnrollmentPlanedescRepository t_EnrollmentPlanedesc;
public T_EnrollmentPlaneServices(IBaseRepository<T_EnrollmentPlane> dal, IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository, ID_UniversityRepository d_UniversityRepository, ID_MajorRepository d_MajorRepository, IT_EnrollmentBatchRepository t_EnrollmentBatchRepository, IT_EnrollmentPlanedescRepository t_EnrollmentPlanedescRepository)
{
this._dal = dal;
base.BaseDal = dal;
this.planeRepository = t_EnrollmentPlaneRepository;
this.d_University = d_UniversityRepository;
this.d_Major = d_MajorRepository;
this.t_EnrollmentBatch = t_EnrollmentBatchRepository;
this.t_EnrollmentPlanedesc = t_EnrollmentPlanedescRepository;
}
/// <summary>
/// 招生计划
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<PageModel<EnrollmentPlansResult>> GetEnrollmentPlans(EnrollmentPlanRequest request)
{
return await this.planeRepository.GetEnrollmentPlans(request);
}
public async Task<bool> universitydetailupdate()
{
var universitylist = await this.d_University.Query(x => x.IsDelete == false);
for (int k = 0; k <= 2800; k += 20)
{
var jsontext = UniversityTypeRelsove.GetFileJson(string.Format(@"D:\\jsondoc\\2023-09-14\\{0}.json", k));
var jsontext2 = Regex.Unescape(jsontext.Remove(jsontext.Length - 1, 1).Remove(0, 1));
var result = JsonConvert.DeserializeObject<List<Class1>>(jsontext2);
result.ForEach(async c =>
{
Thread.Sleep(100);
if (!string.IsNullOrWhiteSpace(c.description))
{
if (universitylist.Any(k => k.Name == c.name.Trim())&& string.IsNullOrWhiteSpace(universitylist.FirstOrDefault(k => k.Name == c.name.Trim()).Description))
{
var defaultinfo = universitylist.FirstOrDefault(k => k.Name == c.name.Trim());
defaultinfo.Description = c.description;
defaultinfo.ModifyTime = DateTime.Now;
await this.d_University.Update(defaultinfo);
}
}
});
}
return true;
}
public class Class1
{
public string id { get; set; }
public string name { get; set; }
public string description { get; set; }
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public async Task<bool> Importuniverbaseinfo()
{
var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\universitybasesql.xlsx");
if (dataSet.Tables.Count > 0)
{
var universitylist = await this.d_University.Query(x => x.IsDelete == false);
// var universitymidfys = new List<D_University>();
var universityattench = new List<D_University>();
foreach (DataRow dr in dataSet.Tables[0].Rows)
{
var universityname = dr["院校名称"].ToString();
var areaname = dr["省份"].ToString();
var schooltype = dr["本科专科"].ToString();
var classtype = dr["类型"].ToString();
var isgongban = dr["公办民办"].ToString();
var is985 = dr["是否985"].ToString();
var is211 = dr["是否211"].ToString();
var issyl = dr["双一流"].ToString();
var isqjjh = dr["强基计划"].ToString();
if (universitylist.Any(c => c.Name == universityname))
{
var single = universitylist.FirstOrDefault(c => c.Name == universityname);
single.Area_Name = areaname;
// 0综合,1理工类2医学类|3军事类|4语言类|5师范类|6财经类|7政法类|8民族类|9农林类|10艺术类|11体育类|12其他
single.Type = classtype == "综合" ? 0 : classtype == "理工" ? 1
: classtype == "医学类" ? 2
: classtype == "军事类" ? 3
: classtype == "语言类" ? 4
: classtype == "师范类" ? 5
: classtype == "财经类" ? 6
: classtype == "政法类" ? 7
: classtype == "民族类" ? 8
: classtype == "农林类" ? 9
: classtype == "艺术类" ? 10
: classtype == "体育类" ? 11 : 12;
single.Nature = isgongban == "公办" ? 0 : isgongban == "民办" ? 1 : isgongban == "中外合作" ? 2 : 3;
single.Sff = is211 == "211" ? 1 : 0;
single.QJJH = isqjjh == "强基计划" ? 1 : 0;
single.Nhef = is985 == "985" ? 1 : 0;
single.Syl = issyl == "双一流" ? 1 : 0;
single.Subject_Level = schooltype == "本科" ? 0 : 1;
single.ModifyTime = DateTime.Now;
await this.d_University.Update(single);
}
else
{
universityattench.Add(new D_University()
{
Name = universityname,
Type = classtype == "综合" ? 0 : classtype == "理工" ? 1
: classtype == "医学类" ? 2
: classtype == "军事类" ? 3
: classtype == "语言类" ? 4
: classtype == "师范类" ? 5
: classtype == "财经类" ? 6
: classtype == "政法类" ? 7
: classtype == "民族类" ? 8
: classtype == "农林类" ? 9
: classtype == "艺术类" ? 10
: classtype == "体育类" ? 11 : 12,
Area_Name = areaname,
Nature = isgongban == "公办" ? 0 : isgongban == "民办" ? 1 : isgongban == "中外合作" ? 2 : 3,
Sff = is211 == "211" ? 1 : 0,
QJJH = isqjjh == "强基计划" ? 1 : 0,
Nhef = is985 == "985" ? 1 : 0,
Syl = issyl == "985" ? 1 : 0,
Subject_Level = schooltype == "本科" ? 0 : 1
});
}
}
await this.d_University.Add(universityattench);
}
return true;
}
//2020 最低录取分数导入
public async Task<bool> Import()
{
var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\一草一木\\山东2020年招生录取数据.xlsx");
if (dataSet.Tables.Count > 0)
{
var universitylist = await this.d_University.Query(x => x.IsDelete == false);
var majorlist = await this.d_Major.Query(x => x.IsDelete == false);
var batchlist = await this.t_EnrollmentBatch.Query(x => x.IsDelete == false && x.AreaId == 1376 && x.Year == 2021);
var planinfo =
await this.t_EnrollmentPlanedesc.Query(e => e.PlanId == 10);
List<T_EnrollmentPlanedesc> list = new List<T_EnrollmentPlanedesc>() { };
List<string> adduniversity = new List<string>() { };
foreach (DataRow dr in dataSet.Tables[0].Rows)
{
string schoolname = dr["院校名称"].ToString();
string area = dr["省份"].ToString();
string major = dr["专业"].ToString();
string batch = dr["批次"].ToString();
string lowerscore = dr["最低分"].ToString();
string lowerlevel = dr["最低位次"].ToString();
var universityid = universitylist.Where(x => x.Name == schoolname).Select(x => x.Id).FirstOrDefault();
if (universityid <= 0)
{
//记录学校 并添加
adduniversity.Add(schoolname);
continue;
}
var batchid = batchlist.Where(x => x.Batch_name == batch).Select(x => x.Id).FirstOrDefault();
var remake = "";
if (major.Contains("("))
{
int indexs = major.IndexOf("(");
remake = major.Substring(indexs);
major = major.Substring(0, indexs);
}
var majorid = majorlist.Where(x => x.Name == major.Trim()).Select(x => x.Id).FirstOrDefault();
var planinfomodel = planinfo.Where(e => e.UniversityId == universityid && e.MajorId == majorid && e.BatchtypeId == batchid);
if (planinfomodel.Any())
{
var models = planinfomodel.FirstOrDefault();
models.scorepostion = Convert.ToInt32(lowerlevel);
models.Scoreline = Convert.ToInt32(lowerscore);
bool kk = await this.t_EnrollmentPlanedesc.Update(models);
}
}
// var cc = adduniversity;
// var count = await this.t_EnrollmentPlanedesc.Add(list);
}
return true;
}
#region 2021招生分数更新
///// <summary>
///// 2021上海招生分数更新
///// </summary>
///// <returns></returns>
//public async Task<bool> Import()
//{
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\一草一木\\2021年山东本科招生计划.xls");
// if (dataSet.Tables.Count > 0)
// {
// var universitylist = await this.d_University.Query(x => x.IsDelete == false);
// var majorlist = await this.d_Major.Query(x => x.IsDelete == false);
// var batchlist = await this.t_EnrollmentBatch.Query(x => x.IsDelete == false && x.AreaId == 1376 && x.Year == 2021);
// List<T_EnrollmentPlanedesc> list = new List<T_EnrollmentPlanedesc>() { };
// List<string> adduniversity = new List<string>() { };
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string schoolname = dr["院校名称"].ToString();
// string area = dr["省份"].ToString();
// string major = dr["专业"].ToString();
// string batch = dr["批次"].ToString();
// //string avgscore = dr["平均分"].ToString();
// //string scoreline = dr["最低分"].ToString();
// string subjectclaim = dr["科类"].ToString();
// string plannum = dr["计划人数"].ToString();
// var universityid = universitylist.Where(x => x.Name == schoolname).Select(x => x.Id).FirstOrDefault();
// if (universityid <= 0)
// {
// //记录学校 并添加
// adduniversity.Add(schoolname);
// continue;
// }
// var batchid = batchlist.Where(x => x.Batch_name == batch).Select(x => x.Id).FirstOrDefault();
// var remake = "";
// if (major.Contains("("))
// {
// int indexs = major.IndexOf("(");
// remake = major.Substring(indexs);
// major = major.Substring(0, indexs).Trim();
// }
// var majorid = majorlist.Where(x => major.Contains(x.Name)).Select(x => x.Id).FirstOrDefault();
// list.Add(new T_EnrollmentPlanedesc()
// {
// UniversityId = universityid,
// BatchtypeId = batchid,
// Plancount = Convert.ToInt32(plannum),
// PlanId = 10,
// //Scoreline = float.Parse(scoreline),
// //majoraverage = float.Parse(avgscore),
// MajorName = major,
// Remark = remake,
// MajorId = majorid,
// Subjectclaim = subjectclaim,
// });
// }
// var cc = adduniversity;
// var count = await t_EnrollmentPlanedesc.Add(list);
// }
// return true;
//}
#endregion
/// <summary>
/// 2019上海招生分数更新
/// </summary>
/// <returns></returns>
//public async Task<bool> Import()
//{
// try
// {
// var dataSet = ExcelUtil.ReadExcelToDataSet("D:\\Ashuju\\数据\\好帮手\\招生计划\\导入步骤\\江苏省2019缺失分数线补充.xlsx");
// if (dataSet.Tables.Count > 0)
// {
// var info = await t_EnrollmentPlanedescServices.Query(x => x.PlanId == 9 && x.IsDelete == false && x.Scoreline <= 0);
// var universitylist = await d_UniversityRepository.Query(x => x.IsDelete == false);
// List<T_EnrollmentPlanedesc> list = new List<T_EnrollmentPlanedesc>() { };
// List<string> adduniversity = new List<string>() { };
// foreach (DataRow dr in dataSet.Tables[0].Rows)
// {
// string Name = dr["Name"].ToString();
// string MajorName = dr["MajorName"].ToString();
// string Scoreline = dr["Scoreline"].ToString();
// if (Scoreline != "0")
// {
// var universityid = universitylist.Where(x => x.Name == Name).Select(x => x.Id).FirstOrDefault();
// if (universityid > 0)
// {
// var nowinfo = info.Where(x => x.UniversityId == universityid && x.MajorName == MajorName).FirstOrDefault();
// if (nowinfo != null)
// {
// nowinfo.Scoreline = Convert.ToSingle(Scoreline);
// list.Add(nowinfo);
// }
// }
// }
// }
// var count = await t_EnrollmentPlanedescServices.Update(list);
// var cc = 0;
// }
// return true;
//}
//catch (Exception ex)
//{
// throw;
//}
//}
}
}