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, IT_EnrollmentPlaneServices { private readonly IBaseRepository _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; private readonly ID_MajorCategoryRepository d_MajorCategoryRepository; private readonly ID_MajorClassRepository d_MajorClassRepository; public T_EnrollmentPlaneServices(IBaseRepository dal, IT_EnrollmentPlaneRepository t_EnrollmentPlaneRepository, ID_UniversityRepository d_UniversityRepository, ID_MajorRepository d_MajorRepository, IT_EnrollmentBatchRepository t_EnrollmentBatchRepository, IT_EnrollmentPlanedescRepository t_EnrollmentPlanedescRepository, ID_MajorCategoryRepository d_MajorCategoryRepository, ID_MajorClassRepository majorClassRepository) { 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; this.d_MajorCategoryRepository = d_MajorCategoryRepository; this.d_MajorClassRepository = majorClassRepository; } /// /// 招生计划 /// /// /// public async Task> GetEnrollmentPlans(EnrollmentPlanRequest request) { return await this.planeRepository.GetEnrollmentPlans(request); } public async Task 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>(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 async Task tradeupadte() { var jsontext = UniversityTypeRelsove.GetFileJson(@"D:\\Files\\1060.json"); var result = JsonConvert.DeserializeObject(jsontext); var newtrade = result.msg; var majorcategory = await this.d_MajorCategoryRepository.Query(x => x.IsDelete == false); var majorcategorylist = new List(); newtrade.ToList().ForEach(async a => { if (majorcategory.Any(n => n.TradeName == a.name && n.Type == 2)) { var majorcategorydetail = majorcategory.FirstOrDefault(n => n.TradeName == a.name && n.Type == 2); majorcategorydetail.TradeNumber = a.key; majorcategorydetail.ModifyTime = DateTime.Now; await this.d_MajorCategoryRepository.Update(majorcategorydetail); } //if (!majorcategory.Any(n => n.TradeName == a.name && n.Type == 3)) //{ // majorcategorylist.Add(new D_MajorCategory() // { // CreateTime = DateTime.Now, // IsDelete = false, // ModifyTime = DateTime.Now, // Name = a.name, // OrderSort = 0, // TradeName = a.name, // TradeNumber = a.key, // Type = 3, // }); //} }); //if (majorcategorylist.Any()) // await this.d_MajorCategoryRepository.Add(majorcategorylist); return true; } /// /// 专业类别二级目录 /// /// public async Task categoryupdate() { string[] files = Directory.GetFiles(@"D:\\Files\\Type\\"); var msglist = new List(); var majorclassitems = new List(); var majorcategory = await this.d_MajorCategoryRepository.Query(x => x.IsDelete == false && x.Type == 3); var majorclass = await this.d_MajorClassRepository.Query(x => x.IsDelete == false); foreach (string itemfile in files) { if (itemfile.Contains("1070")) { var jsontext = UniversityTypeRelsove.GetFileJson(itemfile); var result = JsonConvert.DeserializeObject(jsontext); msglist.AddRange(result.msg); } } var majorclasslist = majorclass.ToList(); msglist.ForEach(x => { //if (majorclass.Any(n=> n.Name == x.name)) //{ // var majorclassdefault = majorclass.FirstOrDefault(k => k.Name == x.name); // majorclassdefault.ModifyTime = DateTime.Now; // majorclassdefault.OrderSort = int.Parse(x.key); // await this.d_MajorClassRepository.Update(majorclassdefault); //} //else //{ var tradenumber = x.key.Remove(x.key.Length - 2, 2); var singletrade = majorcategory.FirstOrDefault(c => c.TradeNumber == tradenumber); if (singletrade != null) { majorclassitems.Add(new D_MajorClass() { Categoryname = x.name, CreateTime = DateTime.Now, IsDelete = false, ModifyTime = DateTime.Now, Name = x.name, OrderSort = int.Parse(x.key), TradeId = singletrade.Id }); } // } }); if (majorclassitems.Any()) { await this.d_MajorClassRepository.Add(majorclassitems); } return true; } /// /// 专业名称 /// /// public async Task ClassChildItems() { string[] files = Directory.GetFiles(@"D:\\Files\\TypeChild\\"); var msglist = new List(); var majorclass = await this.d_MajorClassRepository.Query(x => x.IsDelete == false); var majorinfolist = await this.d_Major.Query(x => x.IsDelete == false); foreach (string itemfile in files) { if (itemfile.Contains("1070")) { int ordersort = int.Parse("1070" + itemfile.Split("1070")[1].Replace(".json", "")); var categoryid = majorclass.FirstOrDefault(c => c.IsDelete == false && c.OrderSort == ordersort); var jsontext = UniversityTypeRelsove.GetFileJson(itemfile); var result = JsonConvert.DeserializeObject(jsontext); result.msg.ToList().ForEach(msg => { msg.categoryid = categoryid.Id; msglist.Add(msg); }); } } var majoritems = new List(); /// msglist.ForEach(a => { var anyinfo = majorinfolist.Any(c => a.categoryid == c.CategoryClass_Id && a.zydm == c.MajorCode); if (!anyinfo) { majoritems.Add(new D_Major() { Hot = a.zymyd==""?0:decimal.Parse(a.zymyd), CategoryClass_Id = a.categoryid, CreateTime = DateTime.Now, IsDelete = false, MajorCode = a.zydm, MajorName = a.zymc, ModifyTime = DateTime.Now, Name = a.zymc, OrderSort =0, Type = 3, }); } }); await d_Major.Add(majoritems); return true; } public class Rootobject { public Msg[] msg { get; set; } public bool flag { get; set; } } public class Msg { public string key { get; set; } public string name { get; set; } } public class Class1 { public string id { get; set; } public string name { get; set; } public string description { get; set; } } public class MajorItem { public MsgITEMS[] msg { get; set; } public bool flag { get; set; } } public class MsgITEMS { public string zydm { get; set; } public string zymc { get; set; } public string specId { get; set; } public string zymyd { get; set; } public int categoryid { get; set; } } /// /// /// /// public async Task 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(); var universityattench = new List(); 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 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 list = new List() { }; List adduniversity = new List() { }; 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招生分数更新 ///// ///// 2021上海招生分数更新 ///// ///// //public async Task 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 list = new List() { }; // List adduniversity = new List() { }; // 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 /// /// 2019上海招生分数更新 /// /// //public async Task 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 list = new List() { }; // List adduniversity = new List() { }; // 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; //} //} } }