You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1115 lines
52 KiB
1115 lines
52 KiB
using Infrastructure.Data;
|
|
using Infrastructure.Extensions;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using Microsoft.EntityFrameworkCore;
|
|
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.Drawing;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using TeacherExt.Entities;
|
|
using TeacherExt.Models;
|
|
using System.Reflection;
|
|
using NPOI.SS.Util;
|
|
using NPOI.HSSF.Util;
|
|
|
|
namespace TeacherExt.Controllers
|
|
{
|
|
[Authorize]
|
|
[ApiController]
|
|
[Route("[controller]/[action]")]
|
|
public class HomeController : Controller
|
|
{
|
|
private readonly IHostEnvironment _env;
|
|
|
|
private readonly ILogger<HomeController> _logger;
|
|
|
|
private readonly IRepository<Organ> _organRepo;
|
|
|
|
private readonly IRepository<User> _userRepo;
|
|
|
|
private readonly IRepository<Teacher> _teacherRepo;
|
|
|
|
private readonly IRepository<CheckLog> _checkLogRepo;
|
|
|
|
public HomeController(IHostEnvironment env,
|
|
ILogger<HomeController> logger,
|
|
IRepository<Organ> organRepo,
|
|
IRepository<User> userRepo,
|
|
IRepository<Teacher> teacherRepo,
|
|
IRepository<CheckLog> checkLogRepo)
|
|
{
|
|
this._env = env;
|
|
_logger = logger;
|
|
this._organRepo = organRepo;
|
|
this._userRepo = userRepo;
|
|
this._teacherRepo = teacherRepo;
|
|
this._checkLogRepo = checkLogRepo;
|
|
}
|
|
|
|
[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<EditTeacherModel>() : 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<EditTeacherModel>(model);
|
|
}
|
|
|
|
[HttpPost]
|
|
[Route("/")]
|
|
public IActionResult Index(QueryTeacherModel model,bool isPost)
|
|
{
|
|
return this.Index(model);
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Details(Guid userId)
|
|
{
|
|
var entity = this._userRepo.ReadOnlyTable()
|
|
.Include(o => o.Organ)
|
|
.Include(o => o.Teacher)
|
|
.FirstOrDefault(o => o.Id == userId);
|
|
var model = entity.To<EditTeacherModel>();
|
|
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);
|
|
return Result<EditTeacherModel>(model);
|
|
}
|
|
|
|
[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<EditTeacherModel>(model);
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Add()
|
|
{
|
|
var model = new EditTeacherModel();
|
|
this.ToEditModel(null, model);
|
|
return View(model);
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Edit(Guid userId)
|
|
{
|
|
var entity = this._userRepo.ReadOnlyTable()
|
|
.Include(o => o.Organ)
|
|
.Include(o => o.Teacher)
|
|
.FirstOrDefault(o => o.Id == userId);
|
|
var model = entity.To<EditTeacherModel>();
|
|
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);
|
|
return Result<EditTeacherModel>(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 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);
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult History([FromQuery] QueryHistoryModel model)
|
|
{
|
|
var query = this._checkLogRepo.ReadOnlyTable()
|
|
.Where(o => o.UserName == model.UserName)
|
|
.OrderByDescending(o => o.UpdateAt);
|
|
model.TotalCount = query.Count();
|
|
var list = query.Skip(model.PageSize * (model.PageIndex - 1))
|
|
.OrderByDescending(o => o.UpdateAt)
|
|
.Take(model.PageSize)
|
|
.ToList()
|
|
.Select(o =>
|
|
{
|
|
var m = o.To<QueryHistoryModel>();
|
|
return m;
|
|
})
|
|
.ToList();
|
|
model.List.AddRange(list);
|
|
return Result<EditTeacherModel>(model);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 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
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[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<User> 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));
|
|
}
|
|
}
|
|
}
|
|
|
|
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 = this.CreateStyle(sheet);
|
|
|
|
var headers = CreateHader(sheet, model);
|
|
var list = this.Query(model)
|
|
.ToList()
|
|
.Select(o =>
|
|
{
|
|
var m = o.Teacher != null ? o.Teacher.To<EditTeacherModel>() : 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.Order(00).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(rowNumber);
|
|
// this.IsExport(teacher);
|
|
row.Order(01).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Organ);
|
|
row.Order(02).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.RealName);
|
|
row.Order(03).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Sex)?"无":teacher.Sex);
|
|
row.Order(04).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Birthday.HasValue ? teacher.Birthday.Value.ToString("yyyy-MM") : "无");
|
|
if(teacher.Age.HasValue)
|
|
{
|
|
row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.Age.Value);
|
|
}
|
|
else
|
|
{
|
|
row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
row.Order(06).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Nation) ? "无" : teacher.Nation);
|
|
row.Order(07).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NativePlace) ? "无" : teacher.NativePlace);
|
|
row.Order(08).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PhoneNumber) ? "无" : teacher.PhoneNumber);
|
|
row.Order(09).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.IdNumber) ? "无" : teacher.IdNumber);
|
|
row.Order(10).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.HasValue ? teacher.JobStart.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue ? teacher.TeachDate.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : "无");
|
|
if (teacher.JobStart.HasValue)
|
|
{
|
|
|
|
row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAgeYear.Value);
|
|
row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAgeMonth.Value);
|
|
}
|
|
else
|
|
{
|
|
row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
row.Order(15).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Politics)?"无":teacher.Politics);
|
|
row.Order(16).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JoinPartyDate.HasValue ? teacher.JoinPartyDate.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(17).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MaxTitle)?"无":teacher.MaxTitle);
|
|
row.Order(18).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.HasValue ? teacher.MaxTitleStart.Value.ToString("yyyy-MM") : "无");
|
|
if (teacher.IsJobAsMaxTitle.HasValue)
|
|
{
|
|
if (teacher.IsJobAsMaxTitle.Value)
|
|
{
|
|
row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsMaxTitleDate.HasValue ? teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
else
|
|
{
|
|
row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobAsNotMaxTitleReason)?"无":teacher.JobAsNotMaxTitleReason);
|
|
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NotMaxTitle)?"无":teacher.NotMaxTitle);
|
|
row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitleStart.HasValue ? teacher.NotMaxTitleStart.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleDate.HasValue ? teacher.JobAsNotMaxTitleDate.Value.ToString("yyyy-MM") : "无");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
row.Order(24).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PostType) ? "无" : teacher.PostType);
|
|
row.Order(25).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PostGrade) ? "无" : teacher.PostGrade);
|
|
row.Order(26).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentPostGradeStart.HasValue ? teacher.CurrentPostGradeStart.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(27).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.EducationGrade);
|
|
row.Order(28).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.EducationGrade) ? "无" : teacher.EducationGradeDate.Value.ToString("yyyy-MM"));
|
|
row.Order(30).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.FullTimeSchool) ? "无" : teacher.FullTimeSchool);
|
|
row.Order(29).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.FullTimeSchoolType) ? "无" : teacher.FullTimeSchoolType);
|
|
row.Order(31).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.FullTimeSchoolMajor) ? "无" : teacher.FullTimeSchoolMajor);
|
|
row.Order(32).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.FullTimeSchoolEducation) ? "无" : teacher.FullTimeSchoolEducation);
|
|
row.Order(33).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue ? teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(35).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobTimeSchool) ? "无" : teacher.JobTimeSchool);
|
|
row.Order(34).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobTimeSchoolType) ? "无" : teacher.JobTimeSchoolType);
|
|
row.Order(36).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobTimeSchoolMajor) ? "无" : teacher.JobTimeSchoolMajor);
|
|
row.Order(37).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobTimeSchoolEducation) ? "无" : teacher.JobTimeSchoolEducation);
|
|
row.Order(38).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobTimeSchoolEducationDate.HasValue ? teacher.JobTimeSchoolEducationDate.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(39).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MaxEducation) ? "无" : teacher.MaxEducation);
|
|
row.Order(40).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MaxDegree) ? "无" : teacher.MaxDegree);
|
|
row.Order(41).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IsClassTeacher ? "是" : "否");
|
|
row.Order(42).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MainTeachPeriod) ? "无" : teacher.MainTeachPeriod);
|
|
row.Order(43).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MainTeachSubject) ? "无" : teacher.MainTeachSubject);
|
|
row.Order(44).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MainTeachGrade) ? "无" : teacher.MainTeachGrade);
|
|
row.Order(45).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.OtherTeachPeriod) ? "无" : teacher.OtherTeachPeriod);
|
|
row.Order(46).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.OtherTeachSubject) ? "无" : teacher.OtherTeachSubject);
|
|
if (teacher.HasPosition.HasValue)
|
|
{
|
|
if (teacher.HasPosition.Value)
|
|
{
|
|
if (teacher.IsMiddleLevel.Value)
|
|
{
|
|
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Position) ? "无" : teacher.Position);
|
|
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PositionStart.HasValue ? teacher.PositionStart.Value.ToString("yyyy-MM") : "无");
|
|
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.FrontTeacher) ? "无" : teacher.FrontTeacher);
|
|
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
else
|
|
{
|
|
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NotOnPostReason) ? "无" : teacher.NotOnPostReason);
|
|
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReasonDate.HasValue ? teacher.NotOnPostReasonDate.Value.ToString("yyyy-MM") : "无");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无");
|
|
}
|
|
row.Order(52).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.TeacherCardType) ? "无" : teacher.TeacherCardType);
|
|
row.Order(53).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.TeacherCardSubject) ? "无" : teacher.TeacherCardSubject);
|
|
row.Order(54).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.TeacherCardLangLevel) ? "无" : teacher.TeacherCardLangLevel);
|
|
row.Order(55).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.CurrentAddressArea) ? "无" : teacher.CurrentAddressArea);
|
|
row.Order(55).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.CurrentAddressStreat) ? "无" : teacher.CurrentAddressStreat);
|
|
row.Order(56).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Comment) ? "无" : teacher.Comment);
|
|
}
|
|
for (int i = 0; i < rowIndex; i++)
|
|
{
|
|
sheet.AutoSizeColumn(i);
|
|
var row = sheet.GetRow(i);
|
|
if (row != null)
|
|
{
|
|
for (int j = 0; j < colIndex; j++)
|
|
{
|
|
var cell = sheet.GetRow(i).GetCell(j);
|
|
if (cell != null)
|
|
{
|
|
var length = cell.ToString().Split('\n').Select(o=> Encoding.UTF8.GetBytes(o).Count()).Max()*256;
|
|
if (length > sheet.GetColumnWidthInPixels(j))
|
|
{
|
|
if (!cell.IsMergedCell)
|
|
{
|
|
sheet.SetColumnWidth(j, length);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private List<string> CreateHader(ISheet sheet, QueryTeacherModel model)
|
|
{
|
|
var style = this.CreateStyle(sheet, HSSFColor.PaleBlue.Index, 11,HSSFColor.White.Index,true,"黑体");
|
|
var result = new List<string>();
|
|
var headers = typeof(EditTeacherModel).GetProperties().Select(o => o.GetCustomAttribute<ExcelHeaderAttribute>()).Where(o => o != null).ToList();
|
|
var colIndex = 0;
|
|
foreach (var item in headers)
|
|
{
|
|
if (!model.Headers.Any()||model.Headers.Contains(item.Header))
|
|
{
|
|
result.Add(item.Header);
|
|
int i = 0;
|
|
foreach (var head in item.Headers)
|
|
{
|
|
for (int j = i; j < i + head.Value; j++)
|
|
{
|
|
var row = (sheet.GetRow(j) ?? sheet.CreateRow(j));
|
|
var cell = (row.GetCell(colIndex) ?? row.CreateCell(colIndex));
|
|
cell.SetStyle(style);//.SetCellValue(head.Key);
|
|
if(j==i)
|
|
{
|
|
cell.SetCellValue(head.Key);
|
|
}
|
|
}
|
|
if (head.Value > 1)
|
|
{
|
|
sheet.AddMergedRegion(new CellRangeAddress(i, i + head.Value - 1, colIndex, colIndex));
|
|
sheet.GetRow(i).GetCell(colIndex).SetStyle(style);
|
|
}
|
|
i = i + head.Value;
|
|
}
|
|
colIndex += 1;
|
|
}
|
|
}
|
|
for (int i = 0; i < sheet.LastRowNum; i++)
|
|
{
|
|
var row = sheet.GetRow(i);
|
|
for (int j = 0; j < row.LastCellNum; j++)
|
|
{
|
|
var cell = row.GetCell(j);
|
|
var cells = new List<ICell>() { cell };
|
|
if (cell != null && cell.StringCellValue != "")
|
|
{
|
|
var col = 1;
|
|
if(j+1<row.LastCellNum)
|
|
{
|
|
for (int k = j + 1; k < row.LastCellNum; k++)
|
|
{
|
|
var next = row.GetCell(k);
|
|
if (next == null || next.StringCellValue != cell.StringCellValue)
|
|
{
|
|
break;
|
|
}
|
|
next.SetCellValue("");
|
|
cells.Add(next);
|
|
col++;
|
|
}
|
|
}
|
|
if (col > 1)
|
|
{
|
|
if(!cell.IsMergedCell)
|
|
{
|
|
sheet.AddMergedRegion(new CellRangeAddress(i,i,j,j+col-1));
|
|
}
|
|
else
|
|
{
|
|
var currentRegion = this.GetRegion(sheet, cell);
|
|
var rowEnd = currentRegion.LastRow;
|
|
foreach (var rcell in cells)
|
|
{
|
|
var region = this.GetRegion(sheet, rcell);
|
|
if(region!=null)
|
|
{
|
|
RemoveRegion(sheet,region);
|
|
}
|
|
}
|
|
sheet.AddMergedRegion(new CellRangeAddress(i, rowEnd, j, j + col - 1));
|
|
}
|
|
Console.WriteLine($"@@@@@:{i},{i},{j},{j + col - 1}");
|
|
}
|
|
j = j + col - 1;
|
|
}
|
|
//Console.WriteLine($">>>>>>>>>>>>>{i}x{j}:{cell?.StringCellValue}");
|
|
}
|
|
//break;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private CellRangeAddress GetRegion(ISheet sheet,ICell cell)
|
|
{
|
|
CellRangeAddress result = null;
|
|
if(cell.IsMergedCell)
|
|
{
|
|
foreach (var region in sheet.MergedRegions)
|
|
{
|
|
if (cell.RowIndex >= region.FirstRow && cell.RowIndex <= region.LastRow && cell.ColumnIndex >= region.FirstColumn && cell.ColumnIndex <= region.LastColumn)
|
|
{
|
|
result = region;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private void RemoveRegion(ISheet sheet, CellRangeAddress region)
|
|
{
|
|
for (int i = 0; i < sheet.NumMergedRegions; i++)
|
|
{
|
|
var item = sheet.GetMergedRegion(i);
|
|
if(item.FirstRow==region.FirstRow
|
|
&&item.LastRow==region.LastRow
|
|
&&item.FirstColumn==region.FirstColumn
|
|
&&item.LastColumn==region.LastColumn)
|
|
{
|
|
sheet.RemoveMergedRegion(i);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private ICellStyle CreateStyle(ISheet sheet,short? backgroundColor=null,double? fontSize=null,short? fontColor=null,bool isBold=false,string fontName=null)
|
|
{
|
|
var style = sheet.Workbook.CreateCellStyle();
|
|
style.WrapText = true;
|
|
if(backgroundColor.HasValue)
|
|
{
|
|
style.FillPattern = FillPattern.SolidForeground;
|
|
style.FillForegroundColor = backgroundColor.Value;
|
|
}
|
|
var font = sheet.Workbook.CreateFont();
|
|
if(!string.IsNullOrEmpty(fontName))
|
|
{
|
|
font.FontName = fontName;
|
|
}
|
|
font.IsBold = isBold;
|
|
if(fontSize.HasValue)
|
|
{
|
|
font.FontHeightInPoints = fontSize.Value;
|
|
}
|
|
if(fontColor.HasValue)
|
|
{
|
|
font.Color = fontColor.Value;
|
|
}
|
|
style.SetFont(font);
|
|
style.Alignment = HorizontalAlignment.Center;
|
|
style.VerticalAlignment = VerticalAlignment.Center;
|
|
style.BorderTop = BorderStyle.Thin;
|
|
style.BorderRight = BorderStyle.Thin;
|
|
style.BorderBottom = BorderStyle.Thin;
|
|
style.BorderLeft = BorderStyle.Thin;
|
|
return style;
|
|
}
|
|
|
|
private void EntityToModel(Teacher entity, EditTeacherModel model)
|
|
{
|
|
if (entity != null)
|
|
{
|
|
if (!string.IsNullOrEmpty(entity.IdNumber))
|
|
{
|
|
var value = entity.IdNumber.Length == 15 ? $"19{entity.IdNumber.Substring(6, 6)}" : entity.IdNumber.Substring(6, 8);
|
|
var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture);
|
|
model.Age = DateTime.Now.Year - birthday.Year;
|
|
}
|
|
if (entity.JobStart.HasValue)
|
|
{
|
|
model.JobAgeYear = DateTime.Now.Year - entity.JobStart.Value.Year;
|
|
model.JobAgeMonth = model.JobAgeYear*12 + Math.Abs((entity.JobStart.Value.Month - DateTime.Now.Month));
|
|
}
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
private SelectList GetCheckStatus(string selected)
|
|
{
|
|
return new string[] {
|
|
"未提交",
|
|
"待校级审核",
|
|
"校级审核失败",
|
|
"待局级审核",
|
|
"局级审核失败",
|
|
"局级审核成功",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetUserType(string selected)
|
|
{
|
|
return new string[] {
|
|
"在编教师",
|
|
"区聘教师",
|
|
"校聘教师",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetSex(string selected)
|
|
{
|
|
return new string[] {
|
|
"男",
|
|
"女",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetNation(string selected)
|
|
{
|
|
return new string[] {
|
|
"汉族",
|
|
"蒙古族",
|
|
"回族",
|
|
"藏族",
|
|
"维吾尔族",
|
|
"苗族",
|
|
"彝族",
|
|
"壮族",
|
|
"布依族",
|
|
"朝鲜族",
|
|
"满族",
|
|
"侗族",
|
|
"瑶族",
|
|
"白族",
|
|
"土家族",
|
|
"哈尼族",
|
|
"哈萨克族",
|
|
"傣族",
|
|
"黎族",
|
|
"傈僳族",
|
|
"佤族",
|
|
"畲族",
|
|
"高山族",
|
|
"拉祜族",
|
|
"水族",
|
|
"东乡族",
|
|
"纳西族",
|
|
"景颇族",
|
|
"柯尔克孜族",
|
|
"土族",
|
|
"达斡尔族",
|
|
"仫佬族",
|
|
"羌族",
|
|
"布朗族",
|
|
"撒拉族",
|
|
"毛难族",
|
|
"仡佬族",
|
|
"锡伯族",
|
|
"阿昌族",
|
|
"普米族",
|
|
"塔吉克族",
|
|
"怒族",
|
|
"乌孜别克族",
|
|
"俄罗斯族",
|
|
"鄂温克族",
|
|
"崩龙族",
|
|
"保安族",
|
|
"裕固族",
|
|
"京族",
|
|
"塔塔尔族",
|
|
"独龙族",
|
|
"鄂伦春族",
|
|
"赫哲族",
|
|
"门巴族",
|
|
"珞巴族",
|
|
"基诺族",
|
|
"无"
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetPolitics(string selected)
|
|
{
|
|
return new string[] {
|
|
"中共党员",
|
|
"中共预备党员",
|
|
"共青团员",
|
|
"群众",
|
|
"民革会员",
|
|
"民盟盟员",
|
|
"民建会员",
|
|
"民进会员",
|
|
"农工党党员",
|
|
"致公党党员",
|
|
"九三学社社员",
|
|
"台盟盟员",
|
|
"其他民主党派",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetTitle(string selected)
|
|
{
|
|
return new string[] {
|
|
"正高级教师",
|
|
"高级教师",
|
|
"一级教师",
|
|
"二级教师",
|
|
"未评",
|
|
"工勤",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetPost(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 GetFullTimeSchoolType(string selected)
|
|
{
|
|
return new string[] {
|
|
"师范院校师范专业",
|
|
"师范院校非师范专业",
|
|
"非师范院校师范专业",
|
|
"非师范院校非师范专业",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetEducation(string selected)
|
|
{
|
|
return new string[] {
|
|
"研究生博士教育",
|
|
"研究生硕士教育",
|
|
"大学本科教育",
|
|
"大学专科教育",
|
|
"中等专业教育",
|
|
"普通高级中学教育",
|
|
"初级中学教育",
|
|
"小学教育",
|
|
"其他",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetDegree(string selected)
|
|
{
|
|
return new string[] {
|
|
"学士学位",
|
|
"硕士学位",
|
|
"博士学位",
|
|
}.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 GetPosition(string selected)
|
|
{
|
|
return new string[] {
|
|
"校长",
|
|
"副校长",
|
|
"党支部副书记",
|
|
"办公室主任",
|
|
"办公室副主任",
|
|
"教导处主任",
|
|
"教导处副主任",
|
|
"德育主任",
|
|
"团支部书记",
|
|
"大队辅导员",
|
|
"工会主席",
|
|
"总务主任",
|
|
"总务副主任",
|
|
"无",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetFrontTeacher(string selected)
|
|
{
|
|
return new string[] {
|
|
"一线教师",
|
|
"无",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetNotOnPostReason(string selected)
|
|
{
|
|
return new string[] {
|
|
"长期病假",
|
|
"产假",
|
|
"挂职",
|
|
"支教",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetTeacherCardType(string selected)
|
|
{
|
|
return new string[] {
|
|
"幼儿园教师资格",
|
|
"小学教师资格",
|
|
"初级中学教师资格",
|
|
"高级中学教师资格",
|
|
"中等职业学校教师资格",
|
|
"中等职业学校实习指导教师资格",
|
|
"高等学校教师资格",
|
|
"无",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetLangLevel(string selected)
|
|
{
|
|
return new string[] {
|
|
"一级甲等",
|
|
"一级乙等",
|
|
"二级甲等",
|
|
"二级乙等",
|
|
"三级甲等",
|
|
"无",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetAddressArea(string selected)
|
|
{
|
|
return new string[] {
|
|
"城中区",
|
|
"城北区",
|
|
"城西区",
|
|
"城东区",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private IActionResult Result<TEditModel>(object model)
|
|
{
|
|
if (this.IsJsonRequest())
|
|
{
|
|
return Json(new
|
|
{
|
|
schema = this.GetJsonSchema<TEditModel>(),
|
|
model,
|
|
errors = ModelState.Where(o => o.Value.ValidationState == ModelValidationState.Invalid),
|
|
data = ViewData
|
|
}, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
|
|
}
|
|
return View(model);
|
|
}
|
|
}
|
|
}
|