Former-commit-id: 1a6d1f99ece8066b0ea87e2804d229198c7cff74
Former-commit-id: 661d12ad736f9876afc4d0030687eda290022817
1.0
wanggang 5 years ago
parent 9b4eaa5662
commit 29927d9d47

@ -20,21 +20,28 @@ using TeacherExt.Models;
namespace TeacherExt.Controllers
{
[Authorize]
public class HomeController :Controller
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)
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;
}
public IActionResult Index(QueryTeacherModel model)
@ -45,9 +52,10 @@ namespace TeacherExt.Controllers
.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)
.Select(o =>
{
var m = o.Teacher != null ? o.Teacher.To<EditTeacherModel>() : new EditTeacherModel();
if (o.Teacher != null)
{
this.EntityToModel(o.Teacher, m);
}
@ -90,6 +98,16 @@ namespace TeacherExt.Controllers
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");
@ -102,18 +120,18 @@ namespace TeacherExt.Controllers
public IActionResult Add()
{
var model = new EditTeacherModel();
this.ToEditModel(null,model);
this.ToEditModel(null, model);
return View(model);
}
public IActionResult Edit(Guid userId)
{
var entity = this._userRepo.ReadOnlyTable()
.Include(o=>o.Organ)
.Include(o=>o.Teacher)
.Include(o => o.Organ)
.Include(o => o.Teacher)
.FirstOrDefault(o => o.Id == userId);
var model = entity.To<EditTeacherModel>();
if(entity.Teacher!=null)
if (entity.Teacher != null)
{
model.From(entity.Teacher);
}
@ -129,7 +147,7 @@ namespace TeacherExt.Controllers
[HttpPost]
public IActionResult Add(EditTeacherModel model)
{
if(ModelState.IsValid)
if (ModelState.IsValid)
{
var entity = new Teacher();
entity.From(model);
@ -161,6 +179,26 @@ namespace TeacherExt.Controllers
return View(model);
}
public IActionResult History(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 View(model);
}
private void ValidEditModel(EditTeacherModel model)
{
if (!ModelState.IsValid)
@ -265,7 +303,7 @@ namespace TeacherExt.Controllers
using var fs = System.IO.File.OpenRead(template);
var wk = new XSSFWorkbook(fs);
var sheet = wk.GetSheetAt(0);
this.ExportInternal(sheet,model);
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");
@ -284,7 +322,7 @@ namespace TeacherExt.Controllers
{
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();
var query = this._userRepo.ReadOnlyTable().Include(o => o.Organ).Include(o => o.Teacher).AsQueryable();
if (User.IsInRole("局管理员"))
{
//全部数据
@ -304,7 +342,7 @@ namespace TeacherExt.Controllers
return query;
}
private void ExportInternal(ISheet sheet,QueryTeacherModel model)
private void ExportInternal(ISheet sheet, QueryTeacherModel model)
{
var style = sheet.Workbook.CreateCellStyle();
style.BorderTop = BorderStyle.Thin;
@ -313,8 +351,9 @@ namespace TeacherExt.Controllers
style.BorderLeft = BorderStyle.Thin;
var list = this.Query(model)
.ToList()
.Select(o => {
var m = o.Teacher != null ? o.Teacher.To<EditTeacherModel>() : new EditTeacherModel();
.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);
@ -332,42 +371,54 @@ namespace TeacherExt.Controllers
var teacher = list[i];
var rowNumber = i + 1;
rowIndex = i + 4;
colIndex = -1;
var row = sheet.CreateRow(rowIndex);
row.Order(00).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(rowNumber);
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.UserType);
row.Order(03).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.RealName);
row.Order(04).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Sex);
row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Birthday.Value.ToString("yyyy-MM"));
row.Order(06).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.Age.Value);
row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Birthday.HasValue? teacher.Birthday.Value.ToString("yyyy-MM"):"");
row.Order(06).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.Age.HasValue? teacher.Age.Value:0);
row.Order(07).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Nation);
row.Order(08).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NativePlace);
row.Order(09).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PhoneNumber);
row.Order(10).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IdNumber);
row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.Value.ToString("yyyy-MM"));
row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAge.Value);
row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.HasValue? teacher.JobStart.Value.ToString("yyyy-MM"):"");
row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAge.HasValue?teacher.JobAge.Value:0);
row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue ? teacher.TeachDate.Value.ToString("yyyy-MM") : "");
row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : "");
row.Order(15).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(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(teacher.MaxTitle);
row.Order(18).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.Value.ToString("yyyy-MM"));
if (teacher.IsJobAsMaxTitle.Value)
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);
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
}
else
{
row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleReason);
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(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(teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM"));
row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
}
else
{
row.Order(19).CreateCell(++colIndex).SetStyle(style);
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleReason);
row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitle);
row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitleStart.Value.ToString("yyyy-MM"));
row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleDate.Value.ToString("yyyy-MM"));
}
row.Order(24).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostType);
row.Order(25).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostGrade);
row.Order(26).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentPostGradeStart.HasValue ? teacher.CurrentPostGradeStart.Value.ToString("yyyy-MM") : "");
@ -391,23 +442,34 @@ namespace TeacherExt.Controllers
row.Order(44).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachGrade);
row.Order(45).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachPeriod);
row.Order(46).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachSubject);
if (teacher.HasPosition.Value)
if(teacher.HasPosition.HasValue)
{
if (teacher.IsMiddleLevel.Value)
if (teacher.HasPosition.Value)
{
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(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(teacher.FrontTeacher);
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
if (teacher.IsMiddleLevel.Value)
{
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(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(teacher.FrontTeacher);
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
}
else
{
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
}
}
else
{
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReason);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReasonDate.HasValue ? teacher.NotOnPostReasonDate.Value.ToString("yyyy-MM") : "");
}
}
else
@ -415,8 +477,8 @@ namespace TeacherExt.Controllers
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReason);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReasonDate.HasValue ? teacher.NotOnPostReasonDate.Value.ToString("yyyy-MM") : "");
row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
}
row.Order(52).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeacherCardType);
row.Order(53).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeacherCardSubject);
@ -428,28 +490,34 @@ namespace TeacherExt.Controllers
var colWidthList = new Dictionary<int, int>();
for (int i = 0; i < rowIndex; i++)
{
var row = sheet.GetRow(i);
for (int j = 0; j < colIndex; j++)
{
var cell = sheet.GetRow(i).GetCell(j);
if (!colWidthList.ContainsKey(j))
{
colWidthList.Add(j, 0);
}
var value = cell.ToString();
var array = value.Split('\n');
var length = array.Select(o => Encoding.UTF8.GetBytes(o).Count()).Max() + 2;
Console.WriteLine($">>{i}x{j}:{length}:{(cell.IsMergedCell ? "merge" : "")}:{cell}");
if (length > colWidthList[j])
{
if (!cell.IsMergedCell)
{
colWidthList[j] = length;
Console.WriteLine($">>>>>{j}:{length}:{value}");
}
}
}
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)
// {
// if (!colWidthList.ContainsKey(j))
// {
// colWidthList.Add(j, 0);
// }
// var value = cell.ToString();
// var array = value.Split('\n');
// var length = array.Select(o => Encoding.UTF8.GetBytes(o).Count()).Max() + 2;
// Console.WriteLine($">>{i}x{j}:{length}:{(cell.IsMergedCell ? "merge" : "")}:{cell}");
// if (length > colWidthList[j])
// {
// if (!cell.IsMergedCell)
// {
// colWidthList[j] = length;
// Console.WriteLine($">>>>>{j}:{length}:{value}");
// }
// }
// }
// }
//}
}
foreach (var item in colWidthList.Keys)
{
@ -465,7 +533,7 @@ namespace TeacherExt.Controllers
public void EntityToModel(Teacher entity, EditTeacherModel model)
{
if(entity!=null)
if (entity != null)
{
if (!string.IsNullOrEmpty(entity.IdNumber))
{

@ -11,7 +11,7 @@ namespace TeacherExt.Entities
}
public string UpdateBy { get; set; }
public DateTime? UpdateAt { get; set; }
public string TeacherId { get; set; }
public string UserName { get; set; }
public string FromStatus { get; set; }
public string ToStatus { get; set; }
}

@ -0,0 +1,15 @@
using Infrastructure.Application;
using System;
namespace TeacherExt.Models
{
public class QueryHistoryModel : PagedList<QueryHistoryModel>
{
public Guid Id { get; set; }
public string UpdateBy { get; set; }
public DateTime? UpdateAt { get; set; }
public string UserName { get; set; }
public string FromStatus { get; set; }
public string ToStatus { get; set; }
}
}

@ -6,7 +6,7 @@ using TeacherExt.Entities;
namespace TeacherExt.Models
{
public class QueryTeacherModel: PagedListModel<EditTeacherModel>
public class QueryTeacherModel: PagedList<EditTeacherModel>
{
[Display(Name="姓名")]
public string RealName { get; set; }

@ -90,7 +90,7 @@
});
$('#admin1').click(function () {
$('#CheckStatus').val('校级审核成功');
$('#CheckStatus').val('待局级审核');
$(this).parents('form').submit();
});
$('#admin2').click(function () {

@ -0,0 +1,48 @@
@model QueryHistoryModel
@{
var index = 0;
}
<div class="row">
<div class="col-sm-12">
<form method="post" action="/" target="_self">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col-12">
<button type="button" id="query" class="btn btn-primary" data-method="get" data-target="_self" data-action="@Url.Action("Index")">
查询
</button>
</div>
</div>
</div>
<div class="card-body">
<table class="table table-hover text-nowrap">
<tr>
<th>行号</th>
<th>审核时间</th>
<th>审核人</th>
<th>审核教师</th>
<th>审核前状态</th>
<th>审核后状态</th>
</tr>
@foreach (var item in Model.List)
{
index++;
<tr>
<td>@index</td>
<td>@item.UpdateAt</td>
<td>@item.UpdateBy</td>
<td>@item.UserName</td>
<td>@item.FromStatus</td>
<td>@item.ToStatus</td>
</tr>
}
</table>
</div>
<div class="card-footer">
@(await Html.PartialAsync("_Paged"))
</div>
</div>
</form>
</div>
</div>

@ -74,6 +74,7 @@
<th>籍贯</th>
<th>审核</th>
<th>编辑</th>
<th>审计</th>
</tr>
@foreach (var item in Model.List)
{
@ -90,7 +91,7 @@
<td>@item.Nation</td>
<td>@item.NativePlace</td>
<td>
@if ((User.IsInRole("局管理员") && item.CheckStatus == "待局级审核") || (User.IsInRole("校管理员") && item.CheckStatus == "待校级审核"))
@if (User.IsInRole("局管理员") || User.IsInRole("校管理员"))
{
<a href="@Url.Action("Details",new { userId=item.UserId})">审核</a>
}
@ -101,6 +102,9 @@
<a href="@Url.Action("Edit",new { userId=item.UserId})">我的</a>
}
</td>
<td>
<a href="@Url.Action("History",new { UserName=item.UserName})">日志</a>
</td>
</tr>
}
</table>

Loading…
Cancel
Save