diff --git a/labs/Teacher/TeacherExt/Controllers/ArrayExt.cs b/labs/Teacher/TeacherExt/Controllers/ArrayExt.cs deleted file mode 100644 index 7f50289a..00000000 --- a/labs/Teacher/TeacherExt/Controllers/ArrayExt.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Rendering; -using System.Linq; - -namespace TeacherExt.Controllers -{ - public static class ArrayExt - { - public static SelectList ToSelectList(this string[] array,string selected) - { - return new SelectList(array.Select(o=>new SelectListItem { Value=o,Text=o }),"Value","Text",selected); - } - } -} diff --git a/labs/Teacher/TeacherExt/Controllers/Ext.cs b/labs/Teacher/TeacherExt/Controllers/Ext.cs new file mode 100644 index 00000000..61ac5fa7 --- /dev/null +++ b/labs/Teacher/TeacherExt/Controllers/Ext.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.Mvc.Rendering; +using System.Linq; + +namespace TeacherExt.Controllers +{ + public static class Ext + { + public static SelectList ToSelectList(this string[] array, string selected) + { + return new SelectList(array.Select(o => new SelectListItem { Value = o, Text = o }), "Value", "Text", selected); + } + + public static string GetText(this SelectList list, object value) + { + var items = list.Items.Cast().ToList(); + return items.FirstOrDefault(o => o.Value == value?.ToString())?.Text; + } + } +} \ No newline at end of file diff --git a/labs/Teacher/TeacherExt/Controllers/HomeController.cs b/labs/Teacher/TeacherExt/Controllers/HomeController.cs index 80dbc1dd..68e5f0a2 100644 --- a/labs/Teacher/TeacherExt/Controllers/HomeController.cs +++ b/labs/Teacher/TeacherExt/Controllers/HomeController.cs @@ -1,5 +1,6 @@ using Infrastructure.Data; using Infrastructure.Extensions; +using Infrastructure.Web; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.ModelBinding; @@ -8,10 +9,13 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; +using NPOI.SS.UserModel; +using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Globalization; +using System.IO; using System.Linq; using System.Reflection; using TeacherExt.Entities; @@ -22,7 +26,7 @@ namespace TeacherExt.Controllers [Authorize] [ApiController] [Route("[controller]/[action]")] - public class HomeController : Controller + public class HomeController : BaseController { private readonly IHostEnvironment _env; @@ -30,15 +34,17 @@ namespace TeacherExt.Controllers private readonly AesHelper _helper; private readonly IRepository _directoryRepo; private readonly IRepository _personRepo; + private readonly IRepository _loginRepo; private readonly IRepository _organizationRepo; private readonly IRepository _checkLogRepo; public HomeController(IHostEnvironment env, ILogger logger, AesHelper helper, - IRepository directoryRepo, - IRepository personRepo, - IRepository organizationRepo, + IRepository directoryRepo, + IRepository personRepo, + IRepository organizationRepo, + IRepository loginRepo, IRepository checkLogRepo ) { @@ -48,6 +54,7 @@ namespace TeacherExt.Controllers this._directoryRepo = directoryRepo; this._personRepo = personRepo; this._organizationRepo = organizationRepo; + this._loginRepo = loginRepo; this._checkLogRepo = checkLogRepo; } @@ -55,48 +62,45 @@ namespace TeacherExt.Controllers [Route("/")] public IActionResult Index(QueryTeacherModel model) { - var personQuery = this._personRepo.ReadOnlyTable(); - if (!string.IsNullOrEmpty(model.person_name)) - { - personQuery = personQuery.Where(o => o.RealName.Contains(model.person_name)); - } - var organQuery = this._organizationRepo.ReadOnlyTable(); - var query = from person in personQuery - join organ in organQuery on person.BureauId equals organ.Id - join organ2 in organQuery on person.OrganId equals organ2.Id - where (person.IsUsed && person.BureauId == model.bureau_id) - orderby person.BureauId,person.CreateAt - select new ListItem - { - person_name = person.RealName, - sex = person.Sex, - nation = person.Nation, - placeofbirth= person.NativePlace, - bureau_name = organ.Name, - org_name = organ2.Name, - person_id =person.Id, - }; + var query = this._personRepo.ReadOnlyTable() + .Where(o => o.OrganId == model.bureau_id) + .WhereIf(!string.IsNullOrEmpty(model.person_name), o => o.RealName.Contains(model.person_name)) + .WhereIf(!string.IsNullOrEmpty(model.RequestEditStatus), o => o.RequestEditStatus == model.RequestEditStatus) + .WhereIf(!string.IsNullOrEmpty(model.CheckStatus), o => o.CheckStatus == model.CheckStatus) + .OrderBy(o => o.BureauId) + .ThenBy(o => o.CreateAt); var count = query.Count(); var list = query .Skip(model.PageSize * (model.PageNumber - 1)) .Take(model.PageSize) + .Select(o => new TeacherListItem + { + RequestEditStatus = o.RequestEditStatus, + CheckStatus = o.CheckStatus, + person_name = o.RealName, + sex = o.Sex, + nation = o.Nation, + placeofbirth = o.NativePlace, + person_id = o.Id, + }) .ToList(); - var nations = this.GetItems("ETHNIC_GROUP"); + var nations = this.GetNation(); foreach (var item in list) { - item.nation_name = nations.FirstOrDefault(o => o.Code == item.nation)?.Remark; + item.nation_name = nations.GetText(item.nation); } model.TotalRow = count; model.List.AddRange(list); if (!model.HeaderSelectList.Any()) { - model.HeaderSelectList= typeof(EditTeacherModel).GetProperties() + model.HeaderSelectList = typeof(EditTeacherModel).GetProperties() .Select(o => o.GetCustomAttribute()) .Where(o => o != null) - .Select(o => new SelectListItem { - Value = o.Header, - Text = o.Headers.Last().Key.Replace("\r\n", ""), - Selected = Request.Method.ToLower()=="get"?true: model.Headers.Any(h=>h==o.Header) + .Select(o => new SelectListItem + { + Value = o.Header, + Text = o.Headers.Last().Key.Replace("\r\n", ""), + Selected = Request.Method.ToLower() == "get" ? true : model.Headers.Any(h => h == o.Header) }) .ToList(); } @@ -104,6 +108,8 @@ namespace TeacherExt.Controllers var bureau = organs.FirstOrDefault(o => o.Name == "城中区教育局"); bureau.Children = organs.Where(o => o.Name != "城中区教育局").ToList(); model.Organs.Add(bureau); + ViewData.SelectList(o => model.RequestEditStatus, () => this.GetRequestEditStatus(model.RequestEditStatus)); + ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); return Result(model); } @@ -123,64 +129,11 @@ namespace TeacherExt.Controllers var model = person.To(); model.OrganName = organ.Name; - //orderby person.BureauId, person.CreateAt - //select new EditTeacherModel - //{ - // Id=id, - // // - // OrganName = organ2.OrganName, - // // - // RealName = person.RealName, - // // - // Birthday = person.Birthday, - // Sex = person.Sex, - // Nationality = person.Nationality, - // UserType=person.UserType, - // PostType = person.PostType, - // PhoneNumber = person.PhoneNumber, - // MaritalStatus = person.MaritalStatus, - // IdNumber = person.IdentityNumber, - // WorkingTime = person.WorkingTime, - // Politics= person.Politics, - // MaxTitle = person.MaxTitle, - // MaxDegree=person.MaxDegree, - // MaxMajor = person.MaxMajor, - // MainTeachPeriod = person.MainTeachPeriod, - // MainTeachSubject = person.MainTeachSubject, - // NativePlace = person.NativePlace, - // Nation = person.Nation, - // AddressDetails=person.AddressDetails, - // FirstEducation = person.FirstEducation, - // MaxEducation = person.MaxEducation, - // Email=person.Email, - // Position=person.Position, - // WorkingPlace=person.WorkingPlace, - // // - // CommunistPartyMessage = person.CommunistPartyMessage, - // DemocraticPartyMessage = person.DemocraticPartyMessage, - // YouthPartyMessage = person.YouthPartyMessage, - - //}; - this.EntityToModel(person,model); - - - //var entity = this._userRepo.ReadOnlyTable() - // .Include(o => o.Organ) - // .Include(o => o.Teacher) - // .FirstOrDefault(o => o.UserName == userName); - //var model = entity.To(); - //if (entity.Teacher != null) - //{ - // model.From(entity.Teacher); - //} - //model.UserName = entity.UserName; - //model.UserId = entity.Id; - //model.Organ = entity.Organ.Name; - //model.RealName = entity.RealName; - //this.EntityToModel(entity.Teacher, model); - //this.ToEditModel(entity.Teacher, model); + this.EntityToModel(person, model); + this.ToEditModel(person, model); return Result(model); } + private void EntityToModel(Person entity, EditTeacherModel model) { if (entity != null) @@ -192,9 +145,15 @@ namespace TeacherExt.Controllers if (!string.IsNullOrEmpty(entity.IdNumber)) { model.IdNumber = _helper.Decrypt(entity.IdNumber); - var value = model.IdNumber.Length == 15 ? $"19{model.IdNumber.Substring(6, 6)}" : model.IdNumber.Substring(6, 8); - var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture); - model.Age = DateTime.Now.Year - birthday.Year; + if (!string.IsNullOrWhiteSpace(model.IdNumber)) + { + if (model.IdNumber.Length == 15 || model.IdNumber.Length == 18) + { + var value = model.IdNumber.Length == 15 ? $"19{model.IdNumber.Substring(6, 6)}" : model.IdNumber.Substring(6, 8); + var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture); + model.Age = DateTime.Now.Year - birthday.Year; + } + } } if (entity.WorkingTime.HasValue) { @@ -202,134 +161,58 @@ namespace TeacherExt.Controllers model.JobAgeMonth = model.JobAgeYear * 12 + Math.Abs((model.WorkingTime.Value.Month - DateTime.Now.Month)); } } - // - ViewData.SelectList(o => model.Sex, () => this.GetSelectListFromDirectory("Sex2", model.Sex));//新建字典=>已迁移 - ViewData.SelectList(o => model.Nationality, () => this.GetSelectListFromDirectory("NATIONALITY", model.Nationality)); - ViewData.SelectList(o => model.UserType, () => this.GetSelectListFromDirectory("PERSON_STATUS", model.UserType)); - ViewData.SelectList(o => model.PostType, () => this.GetSelectListFromDirectory("POST_CATEGORY", model.PostType)); - ViewData.SelectList(o => model.MaritalStatus, () => this.GetSelectListFromDirectory("MARITAL_STATUS", model.MaritalStatus)); - ViewData.SelectList(o => model.Politics, () => this.GetSelectListFromDirectory("POLITICALSTATUS", model.Politics)); - ViewData.SelectList(o => model.MaxTitle, () => this.GetSelectListFromDirectory("PROFESSIONAL_TITLE", model.MaxTitle)); - ViewData.SelectList(o => model.MaxDegree, () => this.GetSelectListFromDirectory("DEGREE", model.MaxDegree)); - ViewData.SelectList(o => model.MainTeachPeriod, () => this.GetSelectListFromDirectory("MainTeachPeriod2", model.MainTeachPeriod));//新建字典=>已迁移 - ViewData.SelectList(o => model.MainTeachSubject, () => this.GetSelectListFromDirectory("MainTeachSubject2", model.MainTeachSubject));//新建字典=>已迁移 - ViewData.SelectList(o => model.Nation, () => this.GetSelectListFromDirectory("ETHNIC_GROUP", model.Nation)); - ViewData.SelectList(o => model.FirstEducation, () => this.GetSelectListFromDirectory("DEGREE", model.FirstEducation)); - ViewData.SelectList(o => model.MaxEducation, () => this.GetSelectListFromDirectory("DEGREE", model.MaxEducation)); - ViewData.SelectList(o => model.Position, () => this.GetSelectListFromDirectory("ADMINISTRATIVE_POST", model.Position)); } - //[HttpGet] - //[Route("/")] - //public IActionResult Index(QueryTeacherModel model) - //{ - // var query = Query(model); - // model.TotalCount = query.Count(); - // var list = query - // .Skip(model.PageSize * (model.PageIndex - 1)) - // .Take(model.PageSize) - // .ToList() - // .Select(o => - // { - // var m = o.Teacher != null ? o.Teacher.To() : new EditTeacherModel(); - // if (o.Teacher != null) - // { - // this.EntityToModel(o.Teacher, m); - // } - // m.UserName = o.UserName; - // m.UserId = o.Id; - // m.Organ = o.Organ.Name; - // m.RealName = o.RealName; - // return m; - // }).ToList(); - // model.List.AddRange(list); - // ViewData.SelectList(o => model.RequestEditStatus, () => this.GetRequestEditStatus(model.RequestEditStatus)); - // ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); - // return Result(model); - //} - - //[HttpPost] - //[Route("/")] - //public IActionResult Index(QueryTeacherModel model, bool isPost) - //{ - // return this.Index(model); - //} - [HttpGet] public IActionResult Details(int id) { return this.Edit(id); } - //[HttpPost] - //public IActionResult Details([FromForm] EditTeacherModel model) - //{ - // ValidEditModel(model); - // var entity = this._userRepo.Table().Include(o => o.Organ).Include(o => o.Teacher).FirstOrDefault(o => o.Id == model.UserId); - // if (ModelState.IsValid) - // { - // if (entity.Teacher.CheckStatus != model.CheckStatus) - // { - // this._checkLogRepo.Add(new CheckLog - // { - // UpdateBy = User.Identity.Name, - // UpdateAt = DateTime.Now, - // UserName = entity.UserName, - // FromStatus = entity.Teacher.CheckStatus, - // ToStatus = model.CheckStatus - // }); - // } - // entity.Teacher.From(model); - // this._userRepo.SaveChanges(); - // return RedirectToAction("Index"); - // } - // this.EntityToModel(entity?.Teacher, model); - // this.ToEditModel(entity?.Teacher, model); - // return Result(model); - //} - - //[HttpGet] - //public IActionResult Add() - //{ - // var model = new EditTeacherModel(); - // this.ToEditModel(null, model); - // return View(model); - //} - - //[HttpPost] - //public IActionResult Add([FromForm] EditTeacherModel model) - //{ - // if (ModelState.IsValid) - // { - // var entity = new Teacher(); - // entity.From(model); - // this._teacherRepo.Add(entity); - // this._teacherRepo.SaveChanges(); - // return RedirectToAction("Index"); - // } - // this.ToEditModel(null, model); - // return View(model); - //} + [HttpPost] + public IActionResult Details([FromForm] EditTeacherModel model) + { + ValidEditModel(model); + var entity = this._personRepo.Table().Where(o => o.Id == model.Id).FirstOrDefault(); + var login = this._loginRepo.ReadOnlyTable().Where(o => o.PersonId == model.Id).FirstOrDefault(); + if (ModelState.IsValid) + { + if (entity.CheckStatus != model.CheckStatus) + { + this._checkLogRepo.Add(new CheckLog + { + UpdateBy = User.Identity.Name, + UpdateAt = DateTime.Now, + LoginName = login.LoginName, + RealName = login.RealName, + FromStatus = entity.CheckStatus, + ToStatus = model.CheckStatus + }); + } + entity.From(model); + this._personRepo.SaveChanges(); + return Success(); + } + this.EntityToModel(entity, model); + this.ToEditModel(entity, model); + return Result(model); + } - //[HttpPost] - //public IActionResult Edit([FromForm] EditTeacherModel model) - //{ - // ValidEditModel(model); - // var entity = this._userRepo.Table().Include(o => o.Organ).Include(o => o.Teacher).FirstOrDefault(o => o.Id == model.UserId); - // if (ModelState.IsValid) - // { - // if (entity.Teacher == null) - // { - // entity.Teacher = new Teacher(); - // } - // entity.Teacher.From(model); - // this._userRepo.SaveChanges(); - // return RedirectToAction("Index"); - // } - // this.EntityToModel(entity?.Teacher, model); - // this.ToEditModel(entity?.Teacher, model); - // return View(model); - //} + [HttpPost] + public IActionResult Edit([FromForm] EditTeacherModel model) + { + ValidEditModel(model); + var entity = this._personRepo.Table().Where(o => o.Id == model.Id).FirstOrDefault(); + if (ModelState.IsValid) + { + entity.From(model); + this._personRepo.SaveChanges(); + return Success(); + } + this.EntityToModel(entity, model); + this.ToEditModel(entity, model); + return View(model); + } [HttpGet] public IActionResult History([FromQuery] QueryHistoryModel model) @@ -346,302 +229,280 @@ namespace TeacherExt.Controllers return Result(model); } - ///// - ///// https://github.com/nissl-lab/npoi/wiki/How-to-use-NPOI-on-Linux - ///// apt-get install libgdiplus libc6-dev - ///// cd /usr/lib - ///// ln -s libgdiplus.so gdiplus.dll - ///// - ///// - //[HttpPost] - //public FileResult Export([FromForm] QueryTeacherModel model) - //{ - // var template = Path.Combine(this._env.ContentRootPath, "wwwroot", "teacher.xlsx"); - // using var fs = System.IO.File.OpenRead(template); - // var wk = new XSSFWorkbook(fs); - // var sheet = wk.GetSheetAt(0); - // this.ExportInternal(sheet, model); - // using var ms = new MemoryStream(); - // wk.Write(ms); - // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"在编汇总_{DateTime.Now.ToString("yyyy_MM-dd_HH_mm_ss")}.xlsx"); - //} + /// + /// https://github.com/nissl-lab/npoi/wiki/How-to-use-NPOI-on-Linux + /// apt-get install libgdiplus libc6-dev + /// cd /usr/lib + /// ln -s libgdiplus.so gdiplus.dll + /// + /// + [HttpPost] + public FileResult Export([FromForm] QueryTeacherModel model) + { + var template = Path.Combine(this._env.ContentRootPath, "wwwroot", "teacher.xlsx"); + using var fs = System.IO.File.OpenRead(template); + var wk = new XSSFWorkbook(fs); + var sheet = wk.GetSheetAt(0); + this.ExportInternal(sheet, model); + using var ms = new MemoryStream(); + wk.Write(ms); + return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"在编汇总_{DateTime.Now.ToString("yyyy_MM-dd_HH_mm_ss")}.xlsx"); + } - //private IQueryable Query(QueryTeacherModel model) - //{ - // var userName = User.Identity.Name; - // var organId = this._userRepo.ReadOnlyTable().Where(o => o.UserName == userName).Select(o => o.OrganId).FirstOrDefault(); - // if (User.IsInRole("局管理员")) - // { - // model.Organs = this._organRepo.Table().ToList().Where(o => o.ParentId == null).ToList(); - // } - // else - // { - // model.Organs = this._organRepo.ReadOnlyTable().ToList().Where(o => o.Id == organId).ToList(); - // } - // var query = this._userRepo.ReadOnlyTable().Include(o => o.Organ).Include(o => o.Teacher).AsQueryable(); - - // if (User.IsInRole("局管理员")) - // { - // if (model.OrganId.HasValue) - // { - // query = query.Where(o => o.OrganId == model.OrganId.Value); - // } - // } - // else if (User.IsInRole("校管理员")) - // { - // query = query.Where(o => o.OrganId == organId); - // } - // else - // { - // query = query.Where(o => o.UserName == userName); - // } - // if (!model.OrganId.HasValue) - // { - // model.OrganId = organId; - // } - // query = query - // .WhereIf(!string.IsNullOrEmpty(model.RequestEditStatus), o => o.Teacher.RequestEditStatus == model.RequestEditStatus) - // .WhereIf(!string.IsNullOrEmpty(model.CheckStatus), o => o.Teacher.CheckStatus == model.CheckStatus) - // .WhereIf(!string.IsNullOrEmpty(model.RealName), o => o.RealName.Contains(model.RealName)); - // return query; - //} + private void ValidEditModel(EditTeacherModel model) + { + if (!ModelState.IsValid) + { + if (model.IsJobAsMaxTitle.HasValue) + { + if (model.IsJobAsMaxTitle.Value) + {//最高职称聘任 + if (ModelState.ContainsKey(nameof(model.JobAsNotMaxTitleReason))) + { + ModelState.Remove(nameof(model.JobAsNotMaxTitleReason)); + } + if (ModelState.ContainsKey(nameof(model.NotMaxTitle))) + { + ModelState.Remove(nameof(model.NotMaxTitle)); + } + if (ModelState.ContainsKey(nameof(model.NotMaxTitleStart))) + { + ModelState.Remove(nameof(model.NotMaxTitleStart)); + } + if (ModelState.ContainsKey(nameof(model.JobAsNotMaxTitleDate))) + { + ModelState.Remove(nameof(model.JobAsNotMaxTitleDate)); + } + } + else + { + if (ModelState.ContainsKey(nameof(model.JobAsMaxTitleDate))) + { + ModelState.Remove(nameof(model.JobAsMaxTitleDate)); + } + } + } - //private void ValidEditModel(EditTeacherModel model) - //{ - // if (!ModelState.IsValid) - // { - // if (model.IsJobAsMaxTitle.HasValue) - // { - // if (model.IsJobAsMaxTitle.Value) - // {//最高职称聘任 - // if (ModelState.ContainsKey(nameof(model.JobAsNotMaxTitleReason))) - // { - // ModelState.Remove(nameof(model.JobAsNotMaxTitleReason)); - // } - // if (ModelState.ContainsKey(nameof(model.NotMaxTitle))) - // { - // ModelState.Remove(nameof(model.NotMaxTitle)); - // } - // if (ModelState.ContainsKey(nameof(model.NotMaxTitleStart))) - // { - // ModelState.Remove(nameof(model.NotMaxTitleStart)); - // } - // if (ModelState.ContainsKey(nameof(model.JobAsNotMaxTitleDate))) - // { - // ModelState.Remove(nameof(model.JobAsNotMaxTitleDate)); - // } - // } - // else - // { - // if (ModelState.ContainsKey(nameof(model.JobAsMaxTitleDate))) - // { - // ModelState.Remove(nameof(model.JobAsMaxTitleDate)); - // } - // } - // } - - // if (string.IsNullOrEmpty(model.EducationGrade) && ModelState.ContainsKey(nameof(model.EducationGradeDate))) - // {//不享受待遇 - // ModelState.Remove(nameof(model.EducationGradeDate)); - // } - // if (model.HasPosition.HasValue) - // { - // if (model.HasPosition.Value) - // {//在编在岗 - // if (ModelState.ContainsKey(nameof(model.NotOnPostReason))) - // { - // ModelState.Remove(nameof(model.NotOnPostReason)); - // } - // if (ModelState.ContainsKey(nameof(model.NotOnPostReasonDate))) - // { - // ModelState.Remove(nameof(model.NotOnPostReasonDate)); - // } - // if (model.IsMiddleLevel.HasValue) - // { - // if (model.IsMiddleLevel.Value) - // {//中层 - // if (ModelState.ContainsKey(nameof(model.FrontTeacher))) - // { - // ModelState.Remove(nameof(model.FrontTeacher)); - // } - // } - // else - // {//一线教师 - // if (ModelState.ContainsKey(nameof(model.Position))) - // { - // ModelState.Remove(nameof(model.Position)); - // } - // if (ModelState.ContainsKey(nameof(model.PositionStart))) - // { - // ModelState.Remove(nameof(model.PositionStart)); - // } - // } - // } - // } - // else - // {//在编不在岗 - // if (ModelState.ContainsKey(nameof(model.Position))) - // { - // ModelState.Remove(nameof(model.Position)); - // } - // if (ModelState.ContainsKey(nameof(model.PositionStart))) - // { - // ModelState.Remove(nameof(model.PositionStart)); - // } - // if (ModelState.ContainsKey(nameof(model.FrontTeacher))) - // { - // ModelState.Remove(nameof(model.FrontTeacher)); - // } - // } - // } - // } - //} + if (string.IsNullOrEmpty(model.EducationGrade) && ModelState.ContainsKey(nameof(model.EducationGradeDate))) + {//不享受待遇 + ModelState.Remove(nameof(model.EducationGradeDate)); + } + if (model.HasPosition.HasValue) + { + if (model.HasPosition.Value) + {//在编在岗 + if (ModelState.ContainsKey(nameof(model.NotOnPostReason))) + { + ModelState.Remove(nameof(model.NotOnPostReason)); + } + if (ModelState.ContainsKey(nameof(model.NotOnPostReasonDate))) + { + ModelState.Remove(nameof(model.NotOnPostReasonDate)); + } + if (model.IsMiddleLevel.HasValue) + { + if (model.IsMiddleLevel.Value) + {//中层 + if (ModelState.ContainsKey(nameof(model.FrontTeacher))) + { + ModelState.Remove(nameof(model.FrontTeacher)); + } + } + else + {//一线教师 + if (ModelState.ContainsKey(nameof(model.Position))) + { + ModelState.Remove(nameof(model.Position)); + } + if (ModelState.ContainsKey(nameof(model.PositionStart))) + { + ModelState.Remove(nameof(model.PositionStart)); + } + } + } + } + else + {//在编不在岗 + if (ModelState.ContainsKey(nameof(model.Position))) + { + ModelState.Remove(nameof(model.Position)); + } + if (ModelState.ContainsKey(nameof(model.PositionStart))) + { + ModelState.Remove(nameof(model.PositionStart)); + } + if (ModelState.ContainsKey(nameof(model.FrontTeacher))) + { + ModelState.Remove(nameof(model.FrontTeacher)); + } + } + } + } + } - //private void ExportInternal(ISheet sheet, QueryTeacherModel model) - //{ - // var style = NPOIHelper.CreateStyle(sheet, fontName: "宋体", fontSize: 11); - - // var headers = NPOIHelper.CreateHader(sheet, typeof(EditTeacherModel), model.Headers); - // var list = this.Query(model) - // .ToList() - // .Select(o => - // { - // var m = o.Teacher != null ? o.Teacher.To() : new EditTeacherModel { Id = Guid.Empty }; - // if (o.Teacher != null) - // { - // this.EntityToModel(o.Teacher, m); - // } - // m.UserId = o.Id; - // m.Organ = o.Organ.Name; - // m.RealName = o.RealName; - // return m; - // }) - // .ToList(); - // var rowIndex = 0; - // var colIndex = -1; - // for (int i = 0; i < list.Count; i++) - // { - // var teacher = list[i]; - // var rowNumber = i + 1; - // rowIndex = i + 4; - // colIndex = -1; - // var row = sheet.CreateRow(rowIndex); - // teacher.DisplayOrder = rowNumber; - - // row.Export("A", headers, () => teacher.DisplayOrder)?.SetCell(++colIndex, style, teacher.DisplayOrder); - // row.Export("B", headers, () => teacher.Organ)?.SetCell(++colIndex, style, teacher.Organ); - // row.Export("C", headers, () => teacher.RealName)?.SetCell(++colIndex, style, teacher.RealName); - // row.Export("D", headers, () => teacher.Sex)?.SetCell(++colIndex, style, teacher.Sex); - // row.Export("E", headers, () => teacher.Birthday)?.SetCell(++colIndex, style, teacher.Birthday); - // row.Export("F", headers, () => teacher.Age)?.SetCell(++colIndex, style, teacher.Age); - // row.Export("G", headers, () => teacher.Nation)?.SetCell(++colIndex, style, teacher.Nation); - // row.Export("H", headers, () => teacher.NativePlace)?.SetCell(++colIndex, style, teacher.NativePlace); - // row.Export("I", headers, () => teacher.PhoneNumber)?.SetCell(++colIndex, style, teacher.PhoneNumber); - // row.Export("J", headers, () => teacher.IdNumber)?.SetCell(++colIndex, style, teacher.IdNumber); - // row.Export("K", headers, () => teacher.JobStart)?.SetCell(++colIndex, style, teacher.JobStart); - // row.Export("L", headers, () => teacher.TeachDate)?.SetCell(++colIndex, style, teacher.TeachDate.HasValue); - // row.Export("M", headers, () => teacher.CurrentJobStart)?.SetCell(++colIndex, style, teacher.CurrentJobStart); - // row.Export("N", headers, () => teacher.JobAgeYear)?.SetCell(++colIndex, style, teacher.JobAgeYear, teacher.JobStart.HasValue); - // row.Export("O", headers, () => teacher.JobAgeMonth)?.SetCell(++colIndex, style, teacher.JobAgeMonth, teacher.JobStart.HasValue); - // row.Export("P", headers, () => teacher.Politics)?.SetCell(++colIndex, style, teacher.Politics); - // row.Export("Q", headers, () => teacher.JoinPartyDate)?.SetCell(++colIndex, style, teacher.JoinPartyDate); - // row.Export("R", headers, () => teacher.MaxTitle)?.SetCell(++colIndex, style, teacher.MaxTitle); - // row.Export("S", headers, () => teacher.MaxTitleStart)?.SetCell(++colIndex, style, teacher.MaxTitleStart); - // row.Export("T", headers, () => teacher.JobAsMaxTitleDate)?.SetCell(++colIndex, style, teacher.JobAsMaxTitleDate, teacher.IsJobAsMaxTitle.HasValue && teacher.IsJobAsMaxTitle.Value); - // row.Export("U", headers, () => teacher.JobAsNotMaxTitleReason)?.SetCell(++colIndex, style, teacher.JobAsNotMaxTitleReason, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); - // row.Export("V", headers, () => teacher.NotMaxTitle)?.SetCell(++colIndex, style, teacher.NotMaxTitle, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); - // row.Export("W", headers, () => teacher.NotMaxTitleStart)?.SetCell(++colIndex, style, teacher.NotMaxTitleStart, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); - // row.Export("X", headers, () => teacher.JobAsNotMaxTitleDate)?.SetCell(++colIndex, style, teacher.JobAsNotMaxTitleDate, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); - // row.Export("Y", headers, () => teacher.PostType)?.SetCell(++colIndex, style, teacher.PostType); - // row.Export("Z", headers, () => teacher.PostGrade)?.SetCell(++colIndex, style, teacher.PostGrade); - - // row.Export("AA", headers, () => teacher.CurrentPostGradeStart)?.SetCell(++colIndex, style, teacher.CurrentPostGradeStart); - // row.Export("AB", headers, () => teacher.EducationGrade)?.SetCell(++colIndex, style, teacher.EducationGrade); - // row.Export("AC", headers, () => teacher.EducationGradeDate)?.SetCell(++colIndex, style, teacher.EducationGradeDate, !string.IsNullOrEmpty(teacher.EducationGrade)); - // row.Export("AD", headers, () => teacher.FullTimeSchool)?.SetCell(++colIndex, style, teacher.FullTimeSchool); - // row.Export("AE", headers, () => teacher.FullTimeSchoolType)?.SetCell(++colIndex, style, teacher.FullTimeSchoolType); - // row.Export("AF", headers, () => teacher.FullTimeSchoolMajor)?.SetCell(++colIndex, style, teacher.FullTimeSchoolMajor); - // row.Export("AG", headers, () => teacher.FullTimeSchoolEducation)?.SetCell(++colIndex, style, teacher.FullTimeSchoolEducation); - // row.Export("AH", headers, () => teacher.FullTimeSchoolEducationDate)?.SetCell(++colIndex, style, teacher.FullTimeSchoolEducationDate); - // row.Export("AI", headers, () => teacher.JobTimeSchool)?.SetCell(++colIndex, style, teacher.JobTimeSchool); - // row.Export("AJ", headers, () => teacher.JobTimeSchoolType)?.SetCell(++colIndex, style, teacher.JobTimeSchoolType); - // row.Export("AK", headers, () => teacher.JobTimeSchoolMajor)?.SetCell(++colIndex, style, teacher.JobTimeSchoolMajor); - // row.Export("AL", headers, () => teacher.JobTimeSchoolEducation)?.SetCell(++colIndex, style, teacher.JobTimeSchoolEducation); - // row.Export("AM", headers, () => teacher.JobTimeSchoolEducationDate)?.SetCell(++colIndex, style, teacher.JobTimeSchoolEducationDate); - // row.Export("AN", headers, () => teacher.MaxEducation)?.SetCell(++colIndex, style, teacher.MaxEducation); - // row.Export("AO", headers, () => teacher.MaxDegree)?.SetCell(++colIndex, style, teacher.MaxDegree); - // row.Export("AP", headers, () => teacher.IsClassTeacher)?.SetCell(++colIndex, style, teacher.IsClassTeacher ? "是" : "否"); - // row.Export("AQ", headers, () => teacher.MainTeachPeriod)?.SetCell(++colIndex, style, teacher.MainTeachPeriod); - // row.Export("AR", headers, () => teacher.MainTeachSubject)?.SetCell(++colIndex, style, teacher.MainTeachSubject); - // row.Export("AS", headers, () => teacher.MainTeachGrade)?.SetCell(++colIndex, style, teacher.MainTeachGrade); - // row.Export("AT", headers, () => teacher.OtherTeachPeriod)?.SetCell(++colIndex, style, teacher.OtherTeachPeriod); - // row.Export("AU", headers, () => teacher.OtherTeachSubject)?.SetCell(++colIndex, style, teacher.OtherTeachSubject); - // row.Export("AV", headers, () => teacher.Position)?.SetCell(++colIndex, style, teacher.Position, teacher.HasPosition.HasValue && teacher.HasPosition.Value && teacher.IsMiddleLevel.HasValue && teacher.IsMiddleLevel.Value); - // row.Export("AW", headers, () => teacher.PositionStart)?.SetCell(++colIndex, style, teacher.PositionStart, teacher.HasPosition.HasValue && teacher.HasPosition.Value && teacher.IsMiddleLevel.HasValue && teacher.IsMiddleLevel.Value); - // row.Export("AX", headers, () => teacher.FrontTeacher)?.SetCell(++colIndex, style, teacher.FrontTeacher, teacher.HasPosition.HasValue && teacher.HasPosition.Value && teacher.IsMiddleLevel.HasValue && !teacher.IsMiddleLevel.Value); - // row.Export("AY", headers, () => teacher.NotOnPostReason)?.SetCell(++colIndex, style, teacher.NotOnPostReason, teacher.HasPosition.HasValue && !teacher.HasPosition.Value); - // row.Export("AZ", headers, () => teacher.NotOnPostReasonDate)?.SetCell(++colIndex, style, teacher.NotOnPostReasonDate, teacher.HasPosition.HasValue && !teacher.HasPosition.Value); - - // row.Export("BA", headers, () => teacher.TeacherCardType)?.SetCell(++colIndex, style, teacher.TeacherCardType); - // row.Export("BB", headers, () => teacher.TeacherCardSubject)?.SetCell(++colIndex, style, teacher.TeacherCardSubject); - // row.Export("BC", headers, () => teacher.TeacherCardLangLevel)?.SetCell(++colIndex, style, teacher.TeacherCardLangLevel); - // row.Export("BD", headers, () => teacher.CurrentAddressArea)?.SetCell(++colIndex, style, teacher.CurrentAddressArea); - // row.Export("BE", headers, () => teacher.CurrentAddressStreat)?.SetCell(++colIndex, style, teacher.CurrentAddressStreat); - // row.Export("BF", headers, () => teacher.Comment)?.SetCell(++colIndex, style, ""); - // } - // NPOIHelper.SetColWidth(3, sheet); - //} + private void ExportInternal(ISheet sheet, QueryTeacherModel model) + { + var personQuery = this._personRepo.ReadOnlyTable() + .WhereIf(!string.IsNullOrEmpty(model.person_name), o => o.RealName.Contains(model.person_name)) + .WhereIf(!string.IsNullOrEmpty(model.RequestEditStatus), o => o.RequestEditStatus == model.RequestEditStatus) + .WhereIf(!string.IsNullOrEmpty(model.CheckStatus), o => o.CheckStatus == model.CheckStatus); + var organQuery = this._organizationRepo.ReadOnlyTable(); + var query = from person in personQuery + join organ in organQuery on person.BureauId equals organ.Id + join organ2 in organQuery on person.OrganId equals organ2.Id + where (person.IsUsed && person.BureauId == model.bureau_id) + orderby person.BureauId, person.CreateAt + select new { organ2.Name, person = person }; - //private void ToEditModel(Teacher entity, EditTeacherModel model) - //{ - // ViewData.SelectList(o => model.RequestEditStatus, () => this.GetRequestEditStatus(model.RequestEditStatus)); - // ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); - // ViewData.SelectList(o => model.UserType, () => this.GetUserType(model.UserType)); - // ViewData.SelectList(o => model.Sex, () => this.GetSex(model.Sex)); - // ViewData.SelectList(o => model.Nation, () => this.GetNation(model.Nation)); - // ViewData.SelectList(o => model.Politics, () => this.GetPolitics(model.Politics)); - // ViewData.SelectList(o => model.MaxTitle, () => this.GetTitle(model.MaxTitle)); - // ViewData.SelectList(o => model.NotMaxTitle, () => this.GetTitle(model.NotMaxTitle)); - // ViewData.SelectList(o => model.PostType, () => this.GetPost(model.PostType)); - // ViewData.SelectList(o => model.PostGrade, () => this.GetPostGrade(model.PostGrade)); - // ViewData.SelectList(o => model.EducationGrade, () => this.GetEducationGrade(model.EducationGrade)); - // ViewData.SelectList(o => model.FullTimeSchoolType, () => this.GetFullTimeSchoolType(model.FullTimeSchoolType)); - // ViewData.SelectList(o => model.FullTimeSchoolEducation, () => this.GetEducation(model.FullTimeSchoolEducation)); - // ViewData.SelectList(o => model.JobTimeSchoolType, () => this.GetFullTimeSchoolType(model.JobTimeSchoolType)); - // ViewData.SelectList(o => model.JobTimeSchoolEducation, () => this.GetEducation(model.JobTimeSchoolEducation)); - // ViewData.SelectList(o => model.MaxEducation, () => this.GetEducation(model.MaxEducation)); - // ViewData.SelectList(o => model.MaxDegree, () => this.GetDegree(model.MaxDegree)); - // ViewData.SelectList(o => model.MainTeachPeriod, () => this.GetTeachPeriod(model.MainTeachPeriod)); - // ViewData.SelectList(o => model.MainTeachSubject, () => this.GetTeachSubject(model.MainTeachSubject)); - // ViewData.SelectList(o => model.MainTeachGrade, () => this.GetTeachGrade(model.MainTeachGrade)); - // ViewData.SelectList(o => model.OtherTeachPeriod, () => this.GetTeachPeriod(model.OtherTeachPeriod)); - // ViewData.SelectList(o => model.OtherTeachSubject, () => this.GetTeachSubject(model.OtherTeachSubject)); - // ViewData.SelectList(o => model.Position, () => this.GetPosition(model.Position)); - // ViewData.SelectList(o => model.FrontTeacher, () => this.GetFrontTeacher(model.FrontTeacher)); - // ViewData.SelectList(o => model.NotOnPostReason, () => this.GetNotOnPostReason(model.NotOnPostReason)); - // ViewData.SelectList(o => model.TeacherCardType, () => this.GetTeacherCardType(model.TeacherCardType)); - // ViewData.SelectList(o => model.TeacherCardLangLevel, () => this.GetLangLevel(model.TeacherCardLangLevel)); - // ViewData.SelectList(o => model.CurrentAddressArea, () => this.GetAddressArea(model.CurrentAddressArea)); - //} + // - //private SelectList GetRequestEditStatus(string selected) - //{ - // return new string[] { - // "未申请", - // "已申请", - // }.ToSelectList(selected); - //} + var style = NPOIHelper.CreateStyle(sheet, fontName: "宋体", fontSize: 11); - //private SelectList GetCheckStatus(string selected) - //{ - // return new string[] { - // "未提交", - // "待审核", - // "审核失败", - // "审核成功", - // }.ToSelectList(selected); - //} + var headers = NPOIHelper.CreateHader(sheet, typeof(EditTeacherModel), model.Headers); + var list = query + .ToList() + .Select(o => + { + var model = o.person.To(); + this.EntityToModel(o.person, model); + model.OrganName = o.Name; + return model; + }) + .ToList(); + var rowIndex = 0; + var colIndex = -1; + var nations = this.GetNation(); + for (int i = 0; i < list.Count; i++) + { + var teacher = list[i]; + var rowNumber = i + 1; + rowIndex = i + 4; + colIndex = -1; + var row = sheet.CreateRow(rowIndex); + teacher.DisplayOrder = rowNumber; + + row.Export("A", headers, () => teacher.DisplayOrder)?.SetCell(++colIndex, style, teacher.DisplayOrder); + row.Export("B", headers, () => teacher.OrganName)?.SetCell(++colIndex, style, teacher.OrganName); + row.Export("C", headers, () => teacher.RealName)?.SetCell(++colIndex, style, teacher.RealName); + row.Export("D", headers, () => teacher.Sex)?.SetCell(++colIndex, style, teacher.Sex); + row.Export("E", headers, () => teacher.Birthday)?.SetCell(++colIndex, style, teacher.Birthday); + row.Export("F", headers, () => teacher.Age)?.SetCell(++colIndex, style, teacher.Age); + row.Export("G", headers, () => teacher.Nation)?.SetCell(++colIndex, style, nations.GetText(teacher.Nation)); + row.Export("H", headers, () => teacher.NativePlace)?.SetCell(++colIndex, style, teacher.NativePlace); + row.Export("I", headers, () => teacher.PhoneNumber)?.SetCell(++colIndex, style, teacher.PhoneNumber); + row.Export("J", headers, () => teacher.IdNumber)?.SetCell(++colIndex, style, teacher.IdNumber); + row.Export("K", headers, () => teacher.WorkingTime)?.SetCell(++colIndex, style, teacher.WorkingTime); + row.Export("L", headers, () => teacher.TeachDate)?.SetCell(++colIndex, style, teacher.TeachDate.HasValue); + row.Export("M", headers, () => teacher.CurrentJobStart)?.SetCell(++colIndex, style, teacher.CurrentJobStart); + row.Export("N", headers, () => teacher.JobAgeYear)?.SetCell(++colIndex, style, teacher.JobAgeYear, teacher.WorkingTime.HasValue); + row.Export("O", headers, () => teacher.JobAgeMonth)?.SetCell(++colIndex, style, teacher.JobAgeMonth, teacher.WorkingTime.HasValue); + row.Export("P", headers, () => teacher.Politics)?.SetCell(++colIndex, style, teacher.Politics); + row.Export("Q", headers, () => teacher.JoinPartyDate)?.SetCell(++colIndex, style, teacher.JoinPartyDate); + row.Export("R", headers, () => teacher.MaxTitle)?.SetCell(++colIndex, style, teacher.MaxTitle); + row.Export("S", headers, () => teacher.MaxTitleStart)?.SetCell(++colIndex, style, teacher.MaxTitleStart); + row.Export("T", headers, () => teacher.JobAsMaxTitleDate)?.SetCell(++colIndex, style, teacher.JobAsMaxTitleDate, teacher.IsJobAsMaxTitle.HasValue && teacher.IsJobAsMaxTitle.Value); + row.Export("U", headers, () => teacher.JobAsNotMaxTitleReason)?.SetCell(++colIndex, style, teacher.JobAsNotMaxTitleReason, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); + row.Export("V", headers, () => teacher.NotMaxTitle)?.SetCell(++colIndex, style, teacher.NotMaxTitle, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); + row.Export("W", headers, () => teacher.NotMaxTitleStart)?.SetCell(++colIndex, style, teacher.NotMaxTitleStart, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); + row.Export("X", headers, () => teacher.JobAsNotMaxTitleDate)?.SetCell(++colIndex, style, teacher.JobAsNotMaxTitleDate, teacher.IsJobAsMaxTitle.HasValue && !teacher.IsJobAsMaxTitle.Value); + row.Export("Y", headers, () => teacher.PostType)?.SetCell(++colIndex, style, teacher.PostType); + row.Export("Z", headers, () => teacher.PostGrade)?.SetCell(++colIndex, style, teacher.PostGrade); + + row.Export("AA", headers, () => teacher.CurrentPostGradeStart)?.SetCell(++colIndex, style, teacher.CurrentPostGradeStart); + row.Export("AB", headers, () => teacher.EducationGrade)?.SetCell(++colIndex, style, teacher.EducationGrade); + row.Export("AC", headers, () => teacher.EducationGradeDate)?.SetCell(++colIndex, style, teacher.EducationGradeDate, !string.IsNullOrEmpty(teacher.EducationGrade)); + row.Export("AD", headers, () => teacher.FullTimeSchool)?.SetCell(++colIndex, style, teacher.FullTimeSchool); + row.Export("AE", headers, () => teacher.FullTimeSchoolType)?.SetCell(++colIndex, style, teacher.FullTimeSchoolType); + row.Export("AF", headers, () => teacher.FullTimeSchoolMajor)?.SetCell(++colIndex, style, teacher.FullTimeSchoolMajor); + row.Export("AG", headers, () => teacher.FullTimeSchoolEducation)?.SetCell(++colIndex, style, teacher.FullTimeSchoolEducation); + row.Export("AH", headers, () => teacher.FullTimeSchoolEducationDate)?.SetCell(++colIndex, style, teacher.FullTimeSchoolEducationDate); + row.Export("AI", headers, () => teacher.JobTimeSchool)?.SetCell(++colIndex, style, teacher.JobTimeSchool); + row.Export("AJ", headers, () => teacher.JobTimeSchoolType)?.SetCell(++colIndex, style, teacher.JobTimeSchoolType); + row.Export("AK", headers, () => teacher.JobTimeSchoolMajor)?.SetCell(++colIndex, style, teacher.JobTimeSchoolMajor); + row.Export("AL", headers, () => teacher.JobTimeSchoolEducation)?.SetCell(++colIndex, style, teacher.JobTimeSchoolEducation); + row.Export("AM", headers, () => teacher.JobTimeSchoolEducationDate)?.SetCell(++colIndex, style, teacher.JobTimeSchoolEducationDate); + row.Export("AN", headers, () => teacher.MaxEducation)?.SetCell(++colIndex, style, teacher.MaxEducation); + row.Export("AO", headers, () => teacher.MaxDegree)?.SetCell(++colIndex, style, teacher.MaxDegree); + row.Export("AP", headers, () => teacher.IsClassTeacher)?.SetCell(++colIndex, style, teacher.IsClassTeacher ? "是" : "否"); + row.Export("AQ", headers, () => teacher.MainTeachPeriod)?.SetCell(++colIndex, style, teacher.MainTeachPeriod); + row.Export("AR", headers, () => teacher.MainTeachSubject)?.SetCell(++colIndex, style, teacher.MainTeachSubject); + row.Export("AS", headers, () => teacher.MainTeachGrade)?.SetCell(++colIndex, style, teacher.MainTeachGrade); + row.Export("AT", headers, () => teacher.OtherTeachPeriod)?.SetCell(++colIndex, style, teacher.OtherTeachPeriod); + row.Export("AU", headers, () => teacher.OtherTeachSubject)?.SetCell(++colIndex, style, teacher.OtherTeachSubject); + row.Export("AV", headers, () => teacher.Position)?.SetCell(++colIndex, style, teacher.Position, teacher.HasPosition.HasValue && teacher.HasPosition.Value && teacher.IsMiddleLevel.HasValue && teacher.IsMiddleLevel.Value); + row.Export("AW", headers, () => teacher.PositionStart)?.SetCell(++colIndex, style, teacher.PositionStart, teacher.HasPosition.HasValue && teacher.HasPosition.Value && teacher.IsMiddleLevel.HasValue && teacher.IsMiddleLevel.Value); + row.Export("AX", headers, () => teacher.FrontTeacher)?.SetCell(++colIndex, style, teacher.FrontTeacher, teacher.HasPosition.HasValue && teacher.HasPosition.Value && teacher.IsMiddleLevel.HasValue && !teacher.IsMiddleLevel.Value); + row.Export("AY", headers, () => teacher.NotOnPostReason)?.SetCell(++colIndex, style, teacher.NotOnPostReason, teacher.HasPosition.HasValue && !teacher.HasPosition.Value); + row.Export("AZ", headers, () => teacher.NotOnPostReasonDate)?.SetCell(++colIndex, style, teacher.NotOnPostReasonDate, teacher.HasPosition.HasValue && !teacher.HasPosition.Value); + + row.Export("BA", headers, () => teacher.TeacherCardType)?.SetCell(++colIndex, style, teacher.TeacherCardType); + row.Export("BB", headers, () => teacher.TeacherCardSubject)?.SetCell(++colIndex, style, teacher.TeacherCardSubject); + row.Export("BC", headers, () => teacher.TeacherCardLangLevel)?.SetCell(++colIndex, style, teacher.TeacherCardLangLevel); + row.Export("BD", headers, () => teacher.CurrentAddressArea)?.SetCell(++colIndex, style, teacher.CurrentAddressArea); + row.Export("BE", headers, () => teacher.AddressDetails)?.SetCell(++colIndex, style, teacher.AddressDetails); + row.Export("BF", headers, () => teacher.Comment)?.SetCell(++colIndex, style, ""); + } + NPOIHelper.SetColWidth(3, sheet); + } + + private void ToEditModel(Person entity, EditTeacherModel model) + { + ViewData.SelectList(o => model.Nation, () => this.GetNation(model.Nation)); + ViewData.SelectList(o => model.Politics, () => this.GetPolitics(model.Politics)); + // + ViewData.SelectList(o => model.Nationality, () => this.GetSelectListFromDirectory("NATIONALITY", model.Nationality)); + ViewData.SelectList(o => model.UserType, () => this.GetSelectListFromDirectory("PERSON_STATUS", model.UserType)); + ViewData.SelectList(o => model.PostType, () => this.GetSelectListFromDirectory("POST_CATEGORY", model.PostType)); + ViewData.SelectList(o => model.MaritalStatus, () => this.GetSelectListFromDirectory("MARITAL_STATUS", model.MaritalStatus)); + ViewData.SelectList(o => model.MaxTitle, () => this.GetSelectListFromDirectory("PROFESSIONAL_TITLE", model.MaxTitle)); + ViewData.SelectList(o => model.MaxDegree, () => this.GetSelectListFromDirectory("DEGREE", model.MaxDegree)); + ViewData.SelectList(o => model.FirstEducation, () => this.GetSelectListFromDirectory("DEGREE", model.FirstEducation)); + ViewData.SelectList(o => model.MaxEducation, () => this.GetSelectListFromDirectory("DEGREE", model.MaxEducation)); + ViewData.SelectList(o => model.Position, () => this.GetSelectListFromDirectory("ADMINISTRATIVE_POST", model.Position)); + // + ViewData.SelectList(o => model.NotMaxTitle, () => this.GetSelectListFromDirectory("PROFESSIONAL_TITLE", model.MaxTitle)); + ViewData.SelectList(o => model.FullTimeSchoolEducation, () => this.GetSelectListFromDirectory("DEGREE", model.MaxDegree)); + ViewData.SelectList(o => model.JobTimeSchoolEducation, () => this.GetSelectListFromDirectory("DEGREE", model.MaxDegree)); + //// + ViewData.SelectList(o => model.Sex, () => this.GetSex(model.Sex)); + ViewData.SelectList(o => model.MainTeachPeriod, () => this.GetTeachPeriod(model.MainTeachPeriod)); + ViewData.SelectList(o => model.MainTeachSubject, () => this.GetTeachSubject(model.MainTeachSubject)); + ViewData.SelectList(o => model.OtherTeachPeriod, () => this.GetTeachPeriod(model.OtherTeachPeriod)); + ViewData.SelectList(o => model.OtherTeachSubject, () => this.GetTeachSubject(model.OtherTeachSubject)); + // + ViewData.SelectList(o => model.RequestEditStatus, () => this.GetRequestEditStatus(model.RequestEditStatus)); + ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); + ViewData.SelectList(o => model.PostGrade, () => this.GetPostGrade(model.PostGrade)); + ViewData.SelectList(o => model.EducationGrade, () => this.GetEducationGrade(model.EducationGrade)); + ViewData.SelectList(o => model.FullTimeSchoolType, () => this.GetFullTimeSchoolType(model.FullTimeSchoolType)); + ViewData.SelectList(o => model.JobTimeSchoolType, () => this.GetFullTimeSchoolType(model.JobTimeSchoolType)); + ViewData.SelectList(o => model.MainTeachGrade, () => this.GetTeachGrade(model.MainTeachGrade)); + + ViewData.SelectList(o => model.FrontTeacher, () => this.GetFrontTeacher(model.FrontTeacher)); + ViewData.SelectList(o => model.NotOnPostReason, () => this.GetNotOnPostReason(model.NotOnPostReason)); + ViewData.SelectList(o => model.TeacherCardType, () => this.GetTeacherCardType(model.TeacherCardType)); + ViewData.SelectList(o => model.TeacherCardLangLevel, () => this.GetLangLevel(model.TeacherCardLangLevel)); + ViewData.SelectList(o => model.CurrentAddressArea, () => this.GetAddressArea(model.CurrentAddressArea)); + } + + private SelectList GetRequestEditStatus(string selected) + { + return new string[] { + "未申请", + "已申请", + }.ToSelectList(selected); + } + + private SelectList GetCheckStatus(string selected) + { + return new string[] { + "未提交", + "待审核", + "审核失败", + "审核成功", + }.ToSelectList(selected); + } //private SelectList GetUserType(string selected) //{ @@ -652,87 +513,23 @@ namespace TeacherExt.Controllers // }.ToSelectList(selected); //} - //private SelectList GetNation(string selected) - //{ - // return new string[] { - // "汉族", - // "蒙古族", - // "回族", - // "藏族", - // "维吾尔族", - // "苗族", - // "彝族", - // "壮族", - // "布依族", - // "朝鲜族", - // "满族", - // "侗族", - // "瑶族", - // "白族", - // "土家族", - // "哈尼族", - // "哈萨克族", - // "傣族", - // "黎族", - // "傈僳族", - // "佤族", - // "畲族", - // "高山族", - // "拉祜族", - // "水族", - // "东乡族", - // "纳西族", - // "景颇族", - // "柯尔克孜族", - // "土族", - // "达斡尔族", - // "仫佬族", - // "羌族", - // "布朗族", - // "撒拉族", - // "毛难族", - // "仡佬族", - // "锡伯族", - // "阿昌族", - // "普米族", - // "塔吉克族", - // "怒族", - // "乌孜别克族", - // "俄罗斯族", - // "鄂温克族", - // "崩龙族", - // "保安族", - // "裕固族", - // "京族", - // "塔塔尔族", - // "独龙族", - // "鄂伦春族", - // "赫哲族", - // "门巴族", - // "珞巴族", - // "基诺族", - // "无" - // }.ToSelectList(selected); - //} + private SelectList GetSex(string selected) + { + return new string[] { + "男", + "女", + }.ToSelectList(selected); + } - //private SelectList GetPolitics(string selected) - //{ - // return new string[] { - // "中共党员", - // "中共预备党员", - // "共青团员", - // "群众", - // "民革会员", - // "民盟盟员", - // "民建会员", - // "民进会员", - // "农工党党员", - // "致公党党员", - // "九三学社社员", - // "台盟盟员", - // "其他民主党派", - // }.ToSelectList(selected); - //} + private SelectList GetNation(string selected = null) + { + return this.GetSelectListFromDirectory("ETHNIC_GROUP", selected); + } + + private SelectList GetPolitics(object selected) + { + return this.GetSelectListFromDirectory("POLITICALSTATUS", selected); + } //private SelectList GetTitle(string selected) //{ @@ -755,38 +552,38 @@ namespace TeacherExt.Controllers // }.ToSelectList(selected); //} - //private SelectList GetPostGrade(string selected) - //{ - // return new string[] { - // "四级", - // "五级", - // "六级", - // "七级", - // "八级", - // "九级", - // "十级", - // "十一级", - // "十二级", - // }.ToSelectList(selected); - //} + private SelectList GetPostGrade(string selected) + { + return new string[] { + "四级", + "五级", + "六级", + "七级", + "八级", + "九级", + "十级", + "十一级", + "十二级", + }.ToSelectList(selected); + } - //private SelectList GetEducationGrade(string selected) - //{ - // return new string[] { - // "专技十一级", - // "专技十二级", - // }.ToSelectList(selected); - //} + private SelectList GetEducationGrade(string selected) + { + return new string[] { + "专技十一级", + "专技十二级", + }.ToSelectList(selected); + } - //private SelectList GetFullTimeSchoolType(string selected) - //{ - // return new string[] { - // "师范院校师范专业", - // "师范院校非师范专业", - // "非师范院校师范专业", - // "非师范院校非师范专业", - // }.ToSelectList(selected); - //} + private SelectList GetFullTimeSchoolType(string selected) + { + return new string[] { + "师范院校师范专业", + "师范院校非师范专业", + "非师范院校师范专业", + "非师范院校非师范专业", + }.ToSelectList(selected); + } //private SelectList GetEducation(string selected) //{ @@ -811,26 +608,59 @@ namespace TeacherExt.Controllers // "博士学位", // }.ToSelectList(selected); //} + private SelectList GetTeachPeriod(string selected) + { + return new string[] { + "学前教育", + "小学", + "普通初中", + "无", + }.ToSelectList(selected); + } + private SelectList GetTeachSubject(string selected) + { + return new string[] { + "语文", + "数学", + "英语", + "音乐", + "体育", + "美术", + "科学", + "书法", + "信息技术", + "政治", + "历史", + "地理", + "物理", + "化学", + "生物", + "幼教全科", + "心理健康", + "综合实践课", + "无", + }.ToSelectList(selected); + } - //private SelectList GetTeachGrade(string selected) - //{ - // return new string[] { - // "九年级", - // "八年级", - // "七年级", - // "六年级", - // "五年级", - // "四年级", - // "三年级", - // "二年级", - // "一年级", - // "幼儿园大班", - // "幼儿园中班", - // "幼儿园小班", - // "无", - // }.ToSelectList(selected); - //} + private SelectList GetTeachGrade(string selected) + { + return new string[] { + "九年级", + "八年级", + "七年级", + "六年级", + "五年级", + "四年级", + "三年级", + "二年级", + "一年级", + "幼儿园大班", + "幼儿园中班", + "幼儿园小班", + "无", + }.ToSelectList(selected); + } //private SelectList GetPosition(string selected) //{ @@ -852,73 +682,58 @@ namespace TeacherExt.Controllers // }.ToSelectList(selected); //} - //private SelectList GetFrontTeacher(string selected) - //{ - // return new string[] { - // "一线教师", - // "无", - // }.ToSelectList(selected); - //} - - //private SelectList GetNotOnPostReason(string selected) - //{ - // return new string[] { - // "长期病假", - // "产假", - // "挂职", - // "支教", - // }.ToSelectList(selected); - //} + private SelectList GetFrontTeacher(string selected) + { + return new string[] { + "一线教师", + "无", + }.ToSelectList(selected); + } - //private SelectList GetTeacherCardType(string selected) - //{ - // return new string[] { - // "幼儿园教师资格", - // "小学教师资格", - // "初级中学教师资格", - // "高级中学教师资格", - // "中等职业学校教师资格", - // "中等职业学校实习指导教师资格", - // "高等学校教师资格", - // "无", - // }.ToSelectList(selected); - //} + private SelectList GetNotOnPostReason(string selected) + { + return new string[] { + "长期病假", + "产假", + "挂职", + "支教", + }.ToSelectList(selected); + } - //private SelectList GetLangLevel(string selected) - //{ - // return new string[] { - // "一级甲等", - // "一级乙等", - // "二级甲等", - // "二级乙等", - // "三级甲等", - // "无", - // }.ToSelectList(selected); - //} + private SelectList GetTeacherCardType(string selected) + { + return new string[] { + "幼儿园教师资格", + "小学教师资格", + "初级中学教师资格", + "高级中学教师资格", + "中等职业学校教师资格", + "中等职业学校实习指导教师资格", + "高等学校教师资格", + "无", + }.ToSelectList(selected); + } - //private SelectList GetAddressArea(string selected) - //{ - // return new string[] { - // "城中区", - // "城北区", - // "城西区", - // "城东区", - // }.ToSelectList(selected); - //} + private SelectList GetLangLevel(string selected) + { + return new string[] { + "一级甲等", + "一级乙等", + "二级甲等", + "二级乙等", + "三级甲等", + "无", + }.ToSelectList(selected); + } - private IActionResult Result(T model) + private SelectList GetAddressArea(string selected) { - if (this.IsJsonRequest()) - { - return Json(new - { - schema = this.GetJsonSchema(), - model, - errors = ModelState.Where(o => o.Value.ValidationState == ModelValidationState.Invalid), - data = ViewData - }, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); - } - return View(model); + return new string[] { + "城中区", + "城北区", + "城西区", + "城东区", + }.ToSelectList(selected); } /// @@ -927,16 +742,17 @@ namespace TeacherExt.Controllers /// /// /// - private SelectList GetSelectListFromDirectory(string category,object selected) + private SelectList GetSelectListFromDirectory(string category, object selected) { var list = this._directoryRepo.ReadOnlyTable() - .Where(o=>o.IsUsed) + .Where(o => o.IsUsed) .Where(o => o.Category == category) .OrderBy(o => o.Order) - .Select(o=>new SelectListItem { Text=o.Remark,Value=o.Code }) + .Select(o => new SelectListItem { Text = o.Remark, Value = o.Code }) .ToList(); return new SelectList(list, nameof(SelectListItem.Value), nameof(SelectListItem.Text), selected); } + private List GetItems(string category) { return this._directoryRepo.ReadOnlyTable() @@ -944,5 +760,30 @@ namespace TeacherExt.Controllers .Where(o => o.Category == category) .ToList(); } + + [ApiExplorerSettings(IgnoreApi = true)] + protected IActionResult Success() + { + if (this.IsJsonRequest()) + { + return this.NoContent(); + } + return RedirectTo(); + } + + private IActionResult Result(T model) + { + if (this.IsJsonRequest()) + { + return Json(new + { + schema = this.GetJsonSchema(), + model, + errors = ModelState.Where(o => o.Value.ValidationState == ModelValidationState.Invalid), + data = ViewData + }, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); + } + return View(model); + } } } \ No newline at end of file diff --git a/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs b/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs index 9b05010f..5057f0c8 100644 --- a/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs +++ b/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs @@ -25,7 +25,7 @@ namespace TeacherExt.Controllers return cell; } - public static ICell SetCell(this IRow row,int col, ICellStyle style,object value,bool? flag=null) + public static ICell SetCell(this IRow row,int col, ICellStyle style,object value,bool? flag=null,string kind=null) { var cell = row.GetCell(col) ?? row.CreateCell(col); cell.SetStyle(style); @@ -41,7 +41,7 @@ namespace TeacherExt.Controllers else if (value.GetType().UnderlyingSystemType == typeof(DateTime)) { cell.SetCellType(CellType.String); - cell.SetCellValue((value as DateTime?).Value); + cell.SetCellValue((value as DateTime?).Value.ToString("yyyy-MM")); } else { diff --git a/labs/Teacher/TeacherExt/Entities/Person.cs b/labs/Teacher/TeacherExt/Entities/Person.cs index 4900f56b..7eaea233 100644 --- a/labs/Teacher/TeacherExt/Entities/Person.cs +++ b/labs/Teacher/TeacherExt/Entities/Person.cs @@ -34,15 +34,15 @@ namespace TeacherExt.Entities public string Nation { get; set; } public string NativePlace { get; set; } public DateTime? Birthday { get; set; } - public int Nationality { get; set; } - public int UserType { get; set; } + public int? Nationality { get; set; } + public int? UserType { get; set; } public int PostType { get; set; } public int MaritalStatus { get; set; } public DateTime? WorkingTime { get; set; } public string WorkingPlace { get; set; } - public int Politics { get; set; } - public int MaxTitle { get; set; } - public int MaxDegree { get; set; } + public int? Politics { get; set; } + public int? MaxTitle { get; set; } + public int? MaxDegree { get; set; } public string MaxMajor { get; set; } public string MainTeachPeriod { get; set; } public string MainTeachSubject { get; set; } @@ -50,7 +50,7 @@ namespace TeacherExt.Entities public int FirstEducation { get; set; } public string FirstGraduateSchool { get; set; } public string FirstMajor { get; set; } - public int MaxEducation { get; set; } + public int? MaxEducation { get; set; } public string Email { get; set; } public string Position { get; set; } public string MaxEducationSchool { get; set; } diff --git a/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs b/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs index 41025873..f27689c1 100644 --- a/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs +++ b/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs @@ -51,7 +51,7 @@ namespace TeacherExt.Models [SelectList] [Display(Order = 30, Name = "人员类别")] [Required(ErrorMessage = "必填项")] - public int UserType { get; set; } + public int? UserType { get; set; } [ExcelHeader("性别")] [SkipSearch] @@ -70,7 +70,7 @@ namespace TeacherExt.Models [SelectList] [Display(Order = 41, Name = "国籍")] [Required(ErrorMessage = "必填项")] - public int Nationality { get; set; } + public int? Nationality { get; set; } [ExcelHeader("出生年月")] [SkipSearch, SkipList] @@ -172,7 +172,7 @@ namespace TeacherExt.Models [SelectList] [Display(Order = 150, Name = "政治面貌")] [Required(ErrorMessage = "必填项")] - public int Politics { get; set; } + public int? Politics { get; set; } [ExcelHeader("入党(派)\r\n时间")] [SkipSearch, SkipList] @@ -185,7 +185,7 @@ namespace TeacherExt.Models [SelectList] [Display(Order = 170, Name = "最高职称")] [Required(ErrorMessage = "必填项")] - public int MaxTitle { get; set; } + public int? MaxTitle { get; set; } [SkipSearch, SkipList] [Display(Order = 171, Name = "最高职称-已审核")] @@ -401,7 +401,7 @@ namespace TeacherExt.Models [SkipSearch, SkipList] [SelectList] [Display(Order = 390, Name = "最高学历")] - public int MaxEducation { get; set; } + public int? MaxEducation { get; set; } [Display(Order = 391, Name = "最高学历毕业院校")] [SkipSearch, SkipList] @@ -411,7 +411,7 @@ namespace TeacherExt.Models [SkipSearch, SkipList] [SelectList] [Display(Order = 400, Name = "最高学位")] - public int MaxDegree { get; set; } + public int? MaxDegree { get; set; } [SkipSearch, SkipList] [Display(Order = 402, Name = "最高学位毕业院校")] diff --git a/labs/Teacher/TeacherExt/Models/QueryTeacherModel.cs b/labs/Teacher/TeacherExt/Models/QueryTeacherModel.cs index 808da59f..79db7575 100644 --- a/labs/Teacher/TeacherExt/Models/QueryTeacherModel.cs +++ b/labs/Teacher/TeacherExt/Models/QueryTeacherModel.cs @@ -6,7 +6,7 @@ using TeacherExt.Entities; namespace TeacherExt.Models { - public class QueryTeacherModel : PagedList + public class QueryTeacherModel : PagedList { public int bureau_id { get; set; } = 302705; diff --git a/labs/Teacher/TeacherExt/Models/ListItem.cs b/labs/Teacher/TeacherExt/Models/TeacherListItem.cs similarity index 72% rename from labs/Teacher/TeacherExt/Models/ListItem.cs rename to labs/Teacher/TeacherExt/Models/TeacherListItem.cs index cfaf138c..a51a2fdf 100644 --- a/labs/Teacher/TeacherExt/Models/ListItem.cs +++ b/labs/Teacher/TeacherExt/Models/TeacherListItem.cs @@ -1,9 +1,9 @@ namespace TeacherExt.Models { - public class ListItem + public class TeacherListItem { - public string RequestEditStatus { get; set; } = "未提交"; - public string CheckStatus { get; set; } = "未申请"; + public string RequestEditStatus { get; set; } + public string CheckStatus { get; set; } public string person_name { get; set; } public string sex { get; set; } public string nation { get; set; } diff --git a/labs/Teacher/TeacherExt/Startup.cs b/labs/Teacher/TeacherExt/Startup.cs index 078f34ad..6a944730 100644 --- a/labs/Teacher/TeacherExt/Startup.cs +++ b/labs/Teacher/TeacherExt/Startup.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -15,14 +14,11 @@ using Microsoft.Extensions.Hosting; using Microsoft.IdentityModel.Tokens; using Newtonsoft.Json; using System; -using System.Collections.Generic; -using System.Linq; using System.Text; using System.Text.Encodings.Web; using System.Text.Unicode; using System.Threading.Tasks; using TeacherExt.Data; -using TeacherExt.Entities; namespace TeacherExt { @@ -170,58 +166,58 @@ namespace TeacherExt name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); - using var scope = app.ApplicationServices.CreateScope(); + using var scope = app.ApplicationServices.CreateScope(); //var encryptionService = scope.ServiceProvider.GetRequiredService(); //var salt = "111111"; //var password = encryptionService.CreatePasswordHash(salt, salt); - using var db = scope.ServiceProvider.GetRequiredService(); - var set = "Sex2"; - if (!db.Set().AsNoTracking().Any(o => o.Category == set)) - { - db.Set().Add(new DictionaryItem { Category = set, Detail = "男", Remark = "男", Code = "男", Order = 1 }); - db.Set().Add(new DictionaryItem { Category = set, Detail = "女", Remark = "女", Code = "女", Order = 2 }); - db.SaveChanges(); - } - var teachPeriod = "MainTeachPeriod2";//t_dm_stage - if (!db.Set().AsNoTracking().Any(o => o.Category == teachPeriod)) - { - db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "学前教育", Remark = "学前教育", Code = "学前教育", Order = 1 }); - db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "小学", Remark = "小学", Code = "小学", Order = 2 }); - db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "普通初中", Remark = "普通初中", Code = "普通初中", Order = 3 }); - db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "无", Remark = "无", Code = "无", Order = 4 }); - db.SaveChanges(); - } - var teachSubject = "MainTeachSubject2";//t_dm_subject - if (!db.Set().AsNoTracking().Any(o => o.Category == teachSubject)) - { - var subjects = new string[] { - "语文", - "数学", - "英语", - "音乐", - "体育", - "美术", - "科学", - "书法", - "信息技术", - "政治", - "历史", - "地理", - "物理", - "化学", - "生物", - "幼教全科", - "心理健康", - "综合实践课", - "无", - }; - for (int i = 0; i < subjects.Length; i++) - { - var item = subjects[i]; - db.Set().Add(new DictionaryItem { Category = teachSubject, Detail = item, Remark = item, Code = item, Order = i + 1 }); - } - db.SaveChanges(); - } + //using var db = scope.ServiceProvider.GetRequiredService(); + //var set = "Sex2"; + //if (!db.Set().AsNoTracking().Any(o => o.Category == set)) + //{ + // db.Set().Add(new DictionaryItem { Category = set, Detail = "男", Remark = "男", Code = "男", Order = 1 }); + // db.Set().Add(new DictionaryItem { Category = set, Detail = "女", Remark = "女", Code = "女", Order = 2 }); + // db.SaveChanges(); + //} + //var teachPeriod = "MainTeachPeriod2";//t_dm_stage + //if (!db.Set().AsNoTracking().Any(o => o.Category == teachPeriod)) + //{ + // db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "学前教育", Remark = "学前教育", Code = "学前教育", Order = 1 }); + // db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "小学", Remark = "小学", Code = "小学", Order = 2 }); + // db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "普通初中", Remark = "普通初中", Code = "普通初中", Order = 3 }); + // db.Set().Add(new DictionaryItem { Category = teachPeriod, Detail = "无", Remark = "无", Code = "无", Order = 4 }); + // db.SaveChanges(); + //} + //var teachSubject = "MainTeachSubject2";//t_dm_subject + //if (!db.Set().AsNoTracking().Any(o => o.Category == teachSubject)) + //{ + // var subjects = new string[] { + // "语文", + // "数学", + // "英语", + // "音乐", + // "体育", + // "美术", + // "科学", + // "书法", + // "信息技术", + // "政治", + // "历史", + // "地理", + // "物理", + // "化学", + // "生物", + // "幼教全科", + // "心理健康", + // "综合实践课", + // "无", + // }; + // for (int i = 0; i < subjects.Length; i++) + // { + // var item = subjects[i]; + // db.Set().Add(new DictionaryItem { Category = teachSubject, Detail = item, Remark = item, Code = item, Order = i + 1 }); + // } + // db.SaveChanges(); + //} } } -} +} \ No newline at end of file diff --git a/labs/Teacher/TeacherExt/teacher.sql b/labs/Teacher/TeacherExt/teacher.sql deleted file mode 100644 index 8c85fa09..00000000 --- a/labs/Teacher/TeacherExt/teacher.sql +++ /dev/null @@ -1,218 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : localhost - Source Server Type : MySQL - Source Server Version : 80021 - Source Host : localhost:3306 - Source Schema : teacher - - Target Server Type : MySQL - Target Server Version : 80021 - File Encoding : 65001 - - Date: 20/01/2021 12:19:19 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for t_base_organization --- ---------------------------- -DROP TABLE IF EXISTS `t_base_organization`; -CREATE TABLE `t_base_organization` ( - `ORG_ID` int(0) NOT NULL AUTO_INCREMENT, - `AREA_ID` int(0) NOT NULL, - `ORG_TYPE` int(0) NOT NULL, - `ORG_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `B_USE` int(0) NOT NULL, - PRIMARY KEY (`ORG_ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for t_base_person --- ---------------------------- -DROP TABLE IF EXISTS `t_base_person`; -CREATE TABLE `t_base_person` ( - `PERSON_ID` int(0) NOT NULL AUTO_INCREMENT, - `B_USE` int(0) NOT NULL, - `PERSON_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, - `XB_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `BUREAU_ID` int(0) NOT NULL, - `ORG_ID` int(0) NOT NULL, - `IDENTITY_ID` int(0) NOT NULL, - `IDENTITY_NUM` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `TEL` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `DISTRICT_ID` int(0) NOT NULL, - `create_time` datetime(6) NOT NULL, - `NATION` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `placeofbirth` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `birthday` datetime(6) NULL DEFAULT NULL, - `nationality` int(0) NOT NULL, - `person_status` int(0) NOT NULL, - `post_category` int(0) NOT NULL, - `marital_status` int(0) NOT NULL, - `working_time` datetime(6) NULL DEFAULT NULL, - `working_place` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `political_status` int(0) NOT NULL, - `professional_title` int(0) NOT NULL, - `academic_degree` int(0) NOT NULL, - `highest_major` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `STAGE_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `SUBJECT_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `first_degree` int(0) NOT NULL, - `first_graduate_school` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `first_major` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `highest_degree` int(0) NOT NULL, - `EMAIL` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `administrative_post` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `highest_graduate_school` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `academic_degree_graduschool` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `join_zggcd` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `join_zggqt` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `join_mzdp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - PRIMARY KEY (`PERSON_ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for t_base_person_log --- ---------------------------- -DROP TABLE IF EXISTS `t_base_person_log`; -CREATE TABLE `t_base_person_log` ( - `Id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, - `UpdateBy` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `UpdateAt` datetime(6) NULL DEFAULT NULL, - `PersonId` int(0) NOT NULL, - `LoginName` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `RealName` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `FromStatus` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `ToStatus` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - PRIMARY KEY (`Id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for t_sys_dic_item --- ---------------------------- -DROP TABLE IF EXISTS `t_sys_dic_item`; -CREATE TABLE `t_sys_dic_item` ( - `DIC_ITEM_ID` int(0) NOT NULL AUTO_INCREMENT, - `CODE` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `DETAIL` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `REMARK` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `B_USE` int(0) NOT NULL, - `KIND` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `SORT` bigint(0) NOT NULL, - PRIMARY KEY (`DIC_ITEM_ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for t_sys_loginperson --- ---------------------------- -DROP TABLE IF EXISTS `t_sys_loginperson`; -CREATE TABLE `t_sys_loginperson` ( - `ID` int(0) NOT NULL AUTO_INCREMENT, - `B_USE` int(0) NOT NULL, - `person_id` int(0) NOT NULL, - `PERSON_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `LOGIN_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - PRIMARY KEY (`ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for t_sys_person_role --- ---------------------------- -DROP TABLE IF EXISTS `t_sys_person_role`; -CREATE TABLE `t_sys_person_role` ( - `ID` int(0) NOT NULL AUTO_INCREMENT, - `IsUsed` tinyint(1) NOT NULL, - `person_id` int(0) NOT NULL, - `IDENTITY_ID` int(0) NOT NULL, - `ROLE_ID` int(0) NOT NULL, - PRIMARY KEY (`ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for t_sys_role --- ---------------------------- -DROP TABLE IF EXISTS `t_sys_role`; -CREATE TABLE `t_sys_role` ( - `ROLE_ID` int(0) NOT NULL AUTO_INCREMENT, - `ROLE_NAME` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - PRIMARY KEY (`ROLE_ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Table structure for Teacher --- ---------------------------- -DROP TABLE IF EXISTS `Teacher`; -CREATE TABLE `Teacher` ( - `Id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, - `RequestEditStatus` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `CheckStatus` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `TeachDate` datetime(6) NULL DEFAULT NULL, - `CurrentJobStart` datetime(6) NULL DEFAULT NULL, - `CurrentJobStartChecked` tinyint(1) NOT NULL, - `JoinPartyDate` datetime(6) NULL DEFAULT NULL, - `MaxTitleChecked` tinyint(1) NOT NULL, - `MaxTitleStart` datetime(6) NULL DEFAULT NULL, - `MaxTitleStartChecked` tinyint(1) NOT NULL, - `IsJobAsMaxTitle` tinyint(1) NOT NULL, - `JobAsMaxTitleDate` datetime(6) NULL DEFAULT NULL, - `JobAsMaxTitleDateChecked` tinyint(1) NOT NULL, - `JobAsNotMaxTitleReason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `JobAsNotMaxTitleReasonChecked` tinyint(1) NOT NULL, - `NotMaxTitle` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `NotMaxTitleChecked` tinyint(1) NOT NULL, - `NotMaxTitleStart` datetime(6) NULL DEFAULT NULL, - `NotMaxTitleStartChecked` tinyint(1) NOT NULL, - `JobAsNotMaxTitleDate` datetime(6) NULL DEFAULT NULL, - `JobAsNotMaxTitleDateChecked` tinyint(1) NOT NULL, - `PostGrade` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `PostGradeChecked` tinyint(1) NOT NULL, - `CurrentPostGradeStart` datetime(6) NULL DEFAULT NULL, - `CurrentPostGradeStartChecked` tinyint(1) NOT NULL, - `EducationGrade` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `EducationGradeChecked` tinyint(1) NOT NULL, - `EducationGradeDate` datetime(6) NULL DEFAULT NULL, - `EducationGradeDateChecked` tinyint(1) NOT NULL, - `FullTimeSchoolType` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `FullTimeSchool` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `FullTimeSchoolMajor` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `FullTimeSchoolEducation` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `FullTimeSchoolEducationDate` datetime(6) NULL DEFAULT NULL, - `JobTimeSchoolType` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `JobTimeSchool` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `JobTimeSchoolMajor` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `JobTimeSchoolEducation` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `JobTimeSchoolEducationDate` datetime(6) NULL DEFAULT NULL, - `IsClassTeacher` tinyint(1) NOT NULL, - `IsClassTeacherChecked` tinyint(1) NOT NULL, - `MainTeachPeriodChecked` tinyint(1) NOT NULL, - `MainTeachSubjectChecked` tinyint(1) NOT NULL, - `MainTeachGrade` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `MainTeachGradeChecked` tinyint(1) NOT NULL, - `OtherTeachPeriod` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `OtherTeachPeriodChecked` tinyint(1) NOT NULL, - `OtherTeachSubject` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `OtherTeachSubjectChecked` tinyint(1) NOT NULL, - `HasPosition` tinyint(1) NOT NULL, - `IsMiddleLevel` tinyint(1) NOT NULL, - `PositionChecked` tinyint(1) NOT NULL, - `PositionStart` datetime(6) NULL DEFAULT NULL, - `PositionStartChecked` tinyint(1) NOT NULL, - `FrontTeacher` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `NotOnPostReason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `NotOnPostReasonChecked` tinyint(1) NOT NULL, - `NotOnPostReasonDate` datetime(6) NULL DEFAULT NULL, - `NotOnPostReasonDateChecked` tinyint(1) NOT NULL, - `TeacherCardType` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `TeacherCardSubject` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `TeacherCardLangLevel` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `CurrentAddressArea` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - `Comment` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, - PRIMARY KEY (`Id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/labs/Teacher/TeacherExt/update.sql b/labs/Teacher/TeacherExt/update.sql index f57a937e..d4a4ee49 100644 --- a/labs/Teacher/TeacherExt/update.sql +++ b/labs/Teacher/TeacherExt/update.sql @@ -15,7 +15,8 @@ CREATE TABLE `t_base_person_log2` ( PRIMARY KEY (`Id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; - +update t_sys_dic_item set DETAIL = '区聘教师',REMARK='区聘教师' where KIND='PERSON_STATUS' and DETAIL='区招代课教师'; +update t_sys_dic_item set DETAIL = '校聘教师',REMARK='校聘教师' where KIND='PERSON_STATUS' and DETAIL='校招代课教师'; update t_base_person set STAGE_NAME='普通初中' where STAGE_NAME='初中'; update t_base_person set SUBJECT_NAME='无' where SUBJECT_NAME='通用'; @@ -83,4 +84,6 @@ alter table `t_base_person` add column `TeacherCardLangLevel` longtext CHARACTE alter table `t_base_person` add column `CurrentAddressArea` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL; alter table `t_base_person` add column `Comment` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL; +update t_base_person set RequestEditStatus = '未申请' +update t_base_person set CheckStatus = '未提交'; commit; \ No newline at end of file