573 lines
24 KiB
C#
573 lines
24 KiB
C#
|
||
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;
|
||
private readonly ID_MajorCategoryRepository d_MajorCategoryRepository;
|
||
private readonly ID_MajorClassRepository d_MajorClassRepository;
|
||
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, 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;
|
||
}
|
||
|
||
/// <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;
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 更新目录
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public async Task<bool> tradeupadte()
|
||
{
|
||
var jsontext = UniversityTypeRelsove.GetFileJson(@"D:\\Files\\1060.json");
|
||
var result = JsonConvert.DeserializeObject<Rootobject>(jsontext);
|
||
var newtrade = result.msg;
|
||
var majorcategory = await this.d_MajorCategoryRepository.Query(x => x.IsDelete == false);
|
||
var majorcategorylist = new List<D_MajorCategory>();
|
||
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;
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 专业类别二级目录
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public async Task<bool> categoryupdate()
|
||
{
|
||
string[] files = Directory.GetFiles(@"D:\\Files\\Type\\");
|
||
var msglist = new List<Msg>();
|
||
|
||
var majorclassitems = new List<D_MajorClass>();
|
||
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<Rootobject>(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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 专业名称
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public async Task<bool> ClassChildItems()
|
||
{
|
||
string[] files = Directory.GetFiles(@"D:\\Files\\TypeChild\\");
|
||
var msglist = new List<MsgITEMS>();
|
||
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<MajorItem>(jsontext);
|
||
result.msg.ToList().ForEach(msg =>
|
||
{
|
||
msg.categoryid = categoryid.Id;
|
||
msglist.Add(msg);
|
||
});
|
||
|
||
}
|
||
}
|
||
|
||
var majoritems = new List<D_Major>();
|
||
///
|
||
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; }
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <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;
|
||
//}
|
||
|
||
//}
|
||
|
||
|
||
}
|
||
} |