@@ -7,6 +7,7 @@ using System.Collections.Generic; | |||
using System.IO; | |||
using System.Linq; | |||
using Learun.Application.Base.SystemModule; | |||
using static Learun.Application.TwoDevelopment.EducationalAdministration.StuInfoBasicEntity; | |||
namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
{ | |||
@@ -22,6 +23,9 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); | |||
private ArrangeLessonSyncIBLL arrangeLessonSyncIBLL = new ArrangeLessonSyncBLL(); | |||
private AnnexesFileIBLL annexesFileIbll = new AnnexesFileBLL(); | |||
private StuEncourgementIBLL stuEncourgementIBLL = new StuEncourgementBLL(); | |||
private StuPunishmentIBLL stuPunishmentIBLL = new StuPunishmentBLL(); | |||
private StuScoreIBLL stuScoreIBLL = new StuScoreBLL(); | |||
#region 视图功能 | |||
@@ -96,8 +100,48 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
{ | |||
return View(); | |||
} | |||
/// <summary> | |||
/// 打印 | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
public ActionResult Print(string keyValue) | |||
{ | |||
var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue); | |||
if (stuInfoBasicEntity == null) | |||
{ | |||
return View(new StuInfoBasicEntity()); | |||
} | |||
//头像 | |||
stuInfoBasicEntity.Photo = annexesFileIbll.GetEntityByFolderId(stuInfoBasicEntity.Photo)?.F_FilePath; | |||
if (!string.IsNullOrEmpty(stuInfoBasicEntity.Photo)) | |||
{ | |||
stuInfoBasicEntity.Photo = stuInfoBasicEntity.Photo.Substring(stuInfoBasicEntity.Photo.IndexOf("Resource") - 1); | |||
} | |||
//奖罚情况 | |||
stuInfoBasicEntity.StuEncourgementList = stuEncourgementIBLL.GetEncourgementListByStuNo(stuInfoBasicEntity.StuNo).OrderBy(x => x.AcademicYearNo).ThenBy(x => x.Semester).ToList(); | |||
stuInfoBasicEntity.StuPunishmentList = stuPunishmentIBLL.GetPunishmentListByStuNo(stuInfoBasicEntity.StuNo).OrderBy(x => x.AcademicYearNo).ThenBy(x => x.Semester).ToList(); | |||
//学习成绩 | |||
stuInfoBasicEntity.StuScoreClassOneList = stuScoreIBLL.GetAllScoreListByStuNo(stuInfoBasicEntity.StuNo) | |||
.Where(x => x.AcademicYearNo != null && x.Semester != null && x.Score != null) | |||
.GroupBy(x => new { x.AcademicYearNo, x.Semester }) | |||
.Select(x => new StuScoreClassOne() | |||
{ | |||
AcademicYearNo = x.Key.AcademicYearNo, | |||
Semester = x.Key.Semester, | |||
StuScoreList = x.Select(y => new StuScoreEntity() | |||
{ | |||
LessonNo = y.LessonNo, | |||
LessonName = y.LessonName, | |||
Score = y.Score | |||
}).OrderBy(xx => xx.LessonNo).ToList() | |||
}).OrderBy(xx => xx.AcademicYearNo).ThenBy(xx => xx.Semester).ToList(); | |||
return View(stuInfoBasicEntity); | |||
} | |||
#endregion | |||
#region 获取数据 | |||
/// <summary> | |||
/// 生成帐号 | |||
@@ -218,18 +218,18 @@ var bootstrap = function ($, learun) { | |||
{ label: "通过人数", name: "StuNum", width: 60, align: "left" }, | |||
{ label: "已报人数(预)", name: "StuNumOfApplyPre", width: 80, align: "left" }, | |||
{ label: "通过人数(预)", name: "StuNumPre", width: 80, align: "left" }, | |||
{ | |||
label: "选课专业", name: "ElectiveMajorList", width: 150, align: "left",formatter: function (cellvalue,row) { | |||
var str = ""; | |||
for (var i = 0; i < row.ElectiveMajorList.length; i++) { | |||
str += row.ElectiveMajorList[i].Grade + "级" + row.ElectiveMajorList[i].MajorName; | |||
if (i != row.ElectiveMajorList.length - 1) { | |||
str += ","; | |||
} | |||
} | |||
return str; | |||
} | |||
} | |||
//{ | |||
// label: "选课专业", name: "ElectiveMajorList", width: 150, align: "left",formatter: function (cellvalue,row) { | |||
// var str = ""; | |||
// for (var i = 0; i < row.ElectiveMajorList.length; i++) { | |||
// str += row.ElectiveMajorList[i].Grade + "级" + row.ElectiveMajorList[i].MajorName; | |||
// if (i != row.ElectiveMajorList.length - 1) { | |||
// str += ","; | |||
// } | |||
// } | |||
// return str; | |||
// } | |||
//} | |||
], | |||
mainId: 'Id', | |||
isPage: true, | |||
@@ -52,6 +52,7 @@ | |||
<a id="lr_synPhoto" class="btn btn-default"><i class="fa fa-braille"></i> 同步照片</a> | |||
<a id="lr_searchChange" class="btn btn-default"><i class="fa fa-search"></i> 查看异动</a> | |||
<a id="lr_photo" class="btn btn-default"><i class="fa fa-search"></i> 拍照</a> | |||
<a id="lr_printInfo" class="btn btn-default"><i class="fa fa-print"></i> 学生简历表</a> | |||
</div> | |||
</div> | |||
@@ -198,6 +198,25 @@ var bootstrap = function ($, learun) { | |||
}) | |||
//打印简历表 | |||
$('#lr_printInfo').on('click', function () { | |||
var keyValue = $('#gridtable').jfGridValue('StuId'); | |||
if (learun.checkrow(keyValue)) { | |||
if (keyValue.indexOf(',') != -1) { | |||
learun.alert.warning("只能选择一条记录进行查看!"); | |||
return; | |||
} | |||
learun.layerForm({ | |||
id: 'print', | |||
title: '学生简历表', | |||
url: top.$.rootUrl + '/EducationalAdministration/StuInfoBasic/Print?keyValue=' + keyValue, | |||
width: 1100, | |||
height: 800, | |||
btn: null | |||
}); | |||
} | |||
}); | |||
}, | |||
// 初始化列表 | |||
initGird: function () { | |||
@@ -0,0 +1,148 @@ | |||
@model Learun.Application.TwoDevelopment.EducationalAdministration.StuInfoBasicEntity | |||
<!DOCTYPE html> | |||
<html lang="zh"> | |||
<head> | |||
<meta charset="UTF-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<meta http-equiv="X-UA-Compatible" content="ie=edge"> | |||
<title>学生简历表</title> | |||
@Html.AppendCssFile("/Areas/EducationalAdministration/Views/StuInfoBasic/Print.css") | |||
<style> | |||
.StuScoreBox { | |||
text-align: left; | |||
} | |||
.StuScoreBox .tableTxt { | |||
display: inline-block; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<div id="table"> | |||
<div class="tableBox"> | |||
<div class="tableT">学生简历表</div> | |||
<table class="table"> | |||
<tr> | |||
<td>姓名</td> | |||
<td>@Model.StuName</td> | |||
<td>学号</td> | |||
<td>@Model.StuNo</td> | |||
<td>性别</td> | |||
<td id="GenderNo">@Model.GenderNo</td> | |||
<td rowspan="3"> | |||
<div class="tableImg"><img src="@Model.Photo" alt=""></div> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td>出生日期</td> | |||
<td>@(Model.Birthday.HasValue ? Model.Birthday.Value.ToShortDateString().Replace("/", "-") : "")</td> | |||
<td>民族</td> | |||
<td id="NationalityNo">@Model.NationalityNo</td> | |||
<td>年级</td> | |||
<td>@Model.Grade</td> | |||
</tr> | |||
<tr> | |||
<td>系</td> | |||
<td id="DeptNo">@Model.DeptNo</td> | |||
<td>专业</td> | |||
<td id="MajorNo">@Model.MajorNo</td> | |||
<td>班级</td> | |||
<td id="ClassNo">@Model.ClassNo</td> | |||
</tr> | |||
<tr> | |||
<td>身份证号</td> | |||
<td colspan="3">@Model.IdentityCardNo</td> | |||
<td>报到日期</td> | |||
<td colspan="2">@(Model.RegisterDate.HasValue ? Model.RegisterDate.Value.ToShortDateString().Replace("/", "-") : "")</td> | |||
</tr> | |||
<tr> | |||
<td>奖罚情况</td> | |||
<td colspan="6"> | |||
@foreach (var item in Model.StuEncourgementList) | |||
{ | |||
<div class="tableTxt">@(Model.StuEncourgementList.IndexOf(item) + 1)、@item.AcademicYearNo 学年第 @item.Semester 学期:@item.EncourgeDate.Value.ToShortDateString().Replace("/", "-") @item.EncourgeName @item.Fee</div> | |||
} | |||
@foreach (var item in Model.StuPunishmentList) | |||
{ | |||
<div class="tableTxt">@(Model.StuPunishmentList.IndexOf(item) + 1 + Model.StuEncourgementList.Count())、@item.AcademicYearNo 学年第 @item.Semester 学期:@item.PunishDate.Value.ToShortDateString().Replace("/", "-") @item.PunishName</div> | |||
} | |||
</td> | |||
</tr> | |||
<tr> | |||
<td>学习成绩</td> | |||
<td colspan="6" style="padding: 0;" class="StuScoreBox"> | |||
@foreach (var item in Model.StuScoreClassOneList) | |||
{ | |||
<div>@item.AcademicYearNo 学年第 @item.Semester 学期</div> | |||
foreach (var i in item.StuScoreList) | |||
{ | |||
<div class="tableTxt"><span>@i.LessonName</span>:<span>@i.Score</span>分; </div> | |||
} | |||
} | |||
</td> | |||
</tr> | |||
</table> | |||
</div> | |||
</div> | |||
<div class="btn">打印</div> | |||
<script src="~/Content/jquery/plugin/fullcalendar/js/jquery-1.7.2.min.js"></script> | |||
<script src="~/Content/jquery/plugin/jqprint/jquery.jqprint-0.3.js"></script> | |||
<script> | |||
$('.btn').click(function () { | |||
$('.tableBox').jqprint(); | |||
}) | |||
</script> | |||
<script> | |||
//绑定字典或源的值 | |||
function GetDataSourceStr(code, value, text, valueStr, box) { | |||
$(box).html(""); | |||
$.ajax({ | |||
url: "/OnlineRegistrate/GetDataSourceMap?code=" + code, | |||
async: false, | |||
success: function (msg) { | |||
var msgObject = $.parseJSON(msg); | |||
if (msgObject.code == 200) { | |||
$.each(msgObject.data, function (i, item) { | |||
if (item[value] == valueStr) { | |||
$(box).html(item[text]); | |||
return; | |||
} | |||
}); | |||
} else { | |||
layer.msg(msgObject.info); | |||
} | |||
}, | |||
}); | |||
return; | |||
}; | |||
function GetDataItemStr(code, valueStr, box) { | |||
$(box).html(""); | |||
$.ajax({ | |||
url: "/OnlineRegistrate/GetDataItemMap?code=" + code, | |||
async: false, | |||
success: function (msg) { | |||
var msgObject = $.parseJSON(msg); | |||
if (msgObject.code == 200) { | |||
$.each(msgObject.data, function (i, item) { | |||
if (item["F_ItemValue"] == valueStr) { | |||
$(box).html(item["F_ItemName"]); | |||
return; | |||
} | |||
}); | |||
} else { | |||
layer.msg(msgObject.info); | |||
} | |||
}, | |||
}); | |||
return; | |||
}; | |||
GetDataItemStr("usersexbit", "@Model.GenderNo","#GenderNo"); | |||
GetDataSourceStr("BCdNationality", "nationalityno", "nationality", "@Model.NationalityNo", "#NationalityNo"); | |||
GetDataSourceStr("CdDeptInfo", "deptno", "deptname", "@Model.DeptNo", "#DeptNo"); | |||
GetDataSourceStr("CdMajorInfo", "majorno", "majorname", "@Model.MajorNo", "#MajorNo"); | |||
GetDataSourceStr("bjsj", "classno", "classname", "@Model.ClassNo", "#ClassNo"); | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,81 @@ | |||
table, | |||
tr, | |||
td { | |||
padding: 0; | |||
margin: 0; | |||
border-collapse: collapse; | |||
} | |||
table { | |||
table-layout: fixed; | |||
font-size: 14px; | |||
} | |||
.tableT { | |||
text-align: center; | |||
font-size: 20px; | |||
margin-bottom: 15px; | |||
} | |||
.table { | |||
width: 100%; | |||
text-align: center; | |||
border-top: 1px solid #000; | |||
border-right: 1px solid #000; | |||
} | |||
.table tr { | |||
border-bottom: 1px solid #000; | |||
} | |||
.table td { | |||
border-left: 1px solid #000; | |||
line-height: 20px; | |||
padding: 8px 5px; | |||
} | |||
.tableImg { | |||
height: 0; | |||
overflow: hidden; | |||
padding-bottom: 140%; | |||
} | |||
.table img { | |||
width: 100%; | |||
} | |||
.tableTxt { | |||
text-align: left; | |||
} | |||
.table .table { | |||
border: 0; | |||
} | |||
.table .table tr:last-child { | |||
border-bottom: 0; | |||
} | |||
.table .table td:first-child { | |||
border-left: 0; | |||
} | |||
.btn { | |||
width: 100px; | |||
height: 34px; | |||
line-height: 34px; | |||
text-align: center; | |||
margin: 30px auto; | |||
border: 1px solid #ccc; | |||
cursor: pointer; | |||
border-radius: 4px; | |||
} | |||
.tableBox { | |||
width: 90%; | |||
margin: 30px auto; | |||
} | |||
#table { | |||
/* display: none; */ | |||
} |
@@ -452,6 +452,10 @@ namespace Learun.Application.Web.Areas.LR_OAModule.Controllers | |||
public void PreviewFile(string fileId) | |||
{ | |||
var data = fileInfoBLL.GetEntity(fileId); | |||
if (data == null) | |||
{ | |||
return; | |||
} | |||
string filename = Server.UrlDecode(data.F_FileName);//客户端保存的文件名 | |||
string filepath = DirFileHelper.GetAbsolutePath(data.F_FilePath);//路径 | |||
if (data.F_FileType == "xlsx" || data.F_FileType == "xls") | |||
@@ -470,11 +474,23 @@ namespace Learun.Application.Web.Areas.LR_OAModule.Controllers | |||
filePreviewIBLL.GetWordData(DirFileHelper.GetAbsolutePath(data.F_FilePath)); | |||
} | |||
} | |||
FileStream files = new FileStream(filepath, FileMode.Open); | |||
byte[] fileByte = new byte[files.Length]; | |||
files.Read(fileByte, 0, fileByte.Length); | |||
files.Close(); | |||
System.IO.MemoryStream ms = new MemoryStream(fileByte, 0, fileByte.Length); | |||
if (data.F_FileType == "ppt" || data.F_FileType == "pptx") | |||
{ | |||
filepath = filepath.Substring(0, filepath.LastIndexOf(".")) + ".pdf";//文件名 | |||
if (!DirFileHelper.IsExistFile(filepath)) | |||
{ | |||
filePreviewIBLL.GetPptData(DirFileHelper.GetAbsolutePath(data.F_FilePath)); | |||
} | |||
} | |||
//FileDownHelper.DownLoadold(filepath, filename); | |||
//FileStream files = new FileStream(filepath, FileMode.Open); | |||
//byte[] fileByte = new byte[files.Length]; | |||
//files.Read(fileByte, 0, fileByte.Length); | |||
//files.Close(); | |||
//System.IO.MemoryStream ms = new MemoryStream(fileByte, 0, fileByte.Length); | |||
Response.ClearContent(); | |||
switch (data.F_FileType) | |||
{ | |||
@@ -525,7 +541,8 @@ namespace Learun.Application.Web.Areas.LR_OAModule.Controllers | |||
break; | |||
} | |||
Response.Charset = "GB2312"; | |||
Response.BinaryWrite(ms.ToArray()); | |||
Response.WriteFile(filepath); | |||
//Response.BinaryWrite(ms.ToArray()); | |||
} | |||
#endregion | |||
} |
@@ -1,4 +1,5 @@ | |||
using Learun.Application.Base.SystemModule; | |||
using Learun.Application.OA.File.FilePreview; | |||
using Learun.Util; | |||
using System.Web; | |||
using System.Web.Mvc; | |||
@@ -88,10 +89,20 @@ namespace Learun.Application.Web.Areas.LR_SystemModule.Controllers | |||
/// <returns></returns> | |||
[HttpPost] | |||
[ValidateAntiForgeryToken] | |||
public ActionResult MergeAnnexesFile(string folderId, string fileGuid, string fileName, int chunks) | |||
public ActionResult MergeAnnexesFile(string folderId, string fileGuid, string fileName, int chunks, string filePath) | |||
{ | |||
UserInfo userInfo = LoginUserInfo.Get(); | |||
bool res = annexesFileIBLL.SaveAnnexes(folderId, fileGuid, fileName, chunks, userInfo); | |||
string path = ""; | |||
if (!string.IsNullOrEmpty(filePath)) | |||
{ | |||
path = Config.GetValue(filePath); | |||
//如果是相对路径先转换成绝对路径 | |||
if (path.Contains("~")) | |||
{ | |||
path = Server.MapPath(path); | |||
} | |||
} | |||
bool res = annexesFileIBLL.SaveAnnexes(folderId, fileGuid, fileName, chunks, userInfo, path); | |||
if (res) | |||
{ | |||
return Success("保存文件成功"); | |||
@@ -163,5 +174,100 @@ namespace Learun.Application.Web.Areas.LR_SystemModule.Controllers | |||
return Success(data); | |||
} | |||
#endregion | |||
#region 预览附件 | |||
/// <summary> | |||
/// 文件预览 | |||
/// </summary> | |||
/// <param name="fileId">文件ID</param> | |||
/// <returns></returns> | |||
public void PreviewFile(string fileId) | |||
{ | |||
FilePreviewIBLL filePreviewIBLL = new FilePreviewBLL(); | |||
var data = annexesFileIBLL.GetEntity(fileId); | |||
if (data == null) | |||
{ | |||
return; | |||
} | |||
string filename = data.F_FileName;//客户端保存的文件名 | |||
string filepath = data.F_FilePath;//路径 | |||
if (data.F_FileType == "xlsx" || data.F_FileType == "xls") | |||
{ | |||
filepath = filepath.Substring(0, filepath.LastIndexOf(".")) + ".pdf";//文件名 | |||
if (!DirFileHelper.IsExistFile(filepath)) | |||
{ | |||
filePreviewIBLL.GetExcelData(data.F_FilePath); | |||
} | |||
} | |||
if (data.F_FileType == "docx" || data.F_FileType == "doc") | |||
{ | |||
filepath = filepath.Substring(0, filepath.LastIndexOf(".")) + ".pdf";//文件名 | |||
if (!DirFileHelper.IsExistFile(filepath)) | |||
{ | |||
filePreviewIBLL.GetWordData(data.F_FilePath); | |||
} | |||
} | |||
if (data.F_FileType == "ppt" || data.F_FileType == "pptx") | |||
{ | |||
filepath = filepath.Substring(0, filepath.LastIndexOf(".")) + ".pdf";//文件名 | |||
if (!DirFileHelper.IsExistFile(filepath)) | |||
{ | |||
filePreviewIBLL.GetPptData(data.F_FilePath); | |||
} | |||
} | |||
Response.ClearContent(); | |||
switch (data.F_FileType) | |||
{ | |||
case "jpg": | |||
Response.ContentType = "image/jpeg"; | |||
break; | |||
case "gif": | |||
Response.ContentType = "image/gif"; | |||
break; | |||
case "png": | |||
Response.ContentType = "image/png"; | |||
break; | |||
case "bmp": | |||
Response.ContentType = "application/x-bmp"; | |||
break; | |||
case "jpeg": | |||
Response.ContentType = "image/jpeg"; | |||
break; | |||
case "doc": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "docx": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "ppt": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "pptx": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "xls": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "xlsx": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "pdf": | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
case "txt": | |||
Response.ContentType = "text/plain"; | |||
break; | |||
case "csv": | |||
Response.ContentType = ""; | |||
break; | |||
default: | |||
Response.ContentType = "application/pdf"; | |||
break; | |||
} | |||
Response.Charset = "GB2312"; | |||
Response.WriteFile(filepath); | |||
//Response.BinaryWrite(ms.ToArray()); | |||
} | |||
#endregion | |||
} | |||
} |
@@ -7,6 +7,7 @@ | |||
*/ | |||
var keyVaule = request('keyVaule'); | |||
var extensions = request('extensions'); | |||
var filePath = request('filePath'); | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
@@ -51,6 +52,7 @@ var bootstrap = function ($, learun) { | |||
param['fileGuid'] = fileInfo[file.id].fileGuid; | |||
param['fileName'] = fileInfo[file.id].name; | |||
param['chunks'] = fileInfo[file.id].chunks; | |||
param['filePath'] = filePath; | |||
learun.httpAsyncPost(top.$.rootUrl + "/LR_SystemModule/Annexes/MergeAnnexesFile", param, function (res) { | |||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||
$fileItem.find('.lr-uploader-progress').remove(); | |||
@@ -75,6 +77,7 @@ var bootstrap = function ($, learun) { | |||
param['__RequestVerificationToken'] = $.lrToken; | |||
param['fileGuid'] = fileInfo[file.id].fileGuid; | |||
param['chunks'] = fileInfo[file.id].chunks; | |||
param['filePath'] = filePath; | |||
learun.httpAsyncPost(top.$.rootUrl + "/LR_SystemModule/Annexes/MergeAnnexesFile", param, function (res) {}); | |||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||
$fileItem.find('.lr-uploader-progress').remove(); | |||
@@ -11,25 +11,42 @@ | |||
} | |||
</style> | |||
<div class="lr-form-wrap"> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation" > | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">教师姓名<font face="宋体">*</font></div> | |||
<div id="EID" isvalid="yes" checkexpession="NotNull" ></div> | |||
<div id="EID" isvalid="yes" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation" > | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">评定时间<font face="宋体">*</font></div> | |||
<input id="TTTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#TTTime').trigger('change'); } })" isvalid="yes" checkexpession="NotNull" /> | |||
<input id="TTTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#TTTime').trigger('change'); } })" isvalid="yes" checkexpession="NotNull" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation" > | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">评定职称<font face="宋体">*</font></div> | |||
<div id="TTTitlesID" isvalid="yes" checkexpession="NotNull" ></div> | |||
<div id="TTTitlesID" isvalid="yes" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation" > | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">评定职称岗位等级<font face="宋体">*</font></div> | |||
<div id="TTTitlesPostLevel" isvalid="yes" checkexpession="NotNull" ></div> | |||
<div id="TTTitlesPostLevel" isvalid="yes" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation" > | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">学历毕业证书</div> | |||
<div id="Diploma"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">专业技术资格证书</div> | |||
<div id="TechnicalCertificate"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">教师资格证</div> | |||
<div id="TeacherCertificate"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">获奖资料</div> | |||
<div id="WinningFile"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherTitleEvaluation"> | |||
<div class="lr-form-item-title">备注</div> | |||
<textarea id="TTRemark" class="form-control" style="height:100px;"></textarea> | |||
<textarea id="TTRemark" class="form-control" style="height:100px;"></textarea> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/PersonnelManagement/Views/TeacherTitleEvaluation/Form.js") |
@@ -23,6 +23,10 @@ var bootstrap = function ($, learun) { | |||
}); | |||
$('#TTTitlesID').lrDataItemSelect({ code: 'jszc' }); | |||
$('#TTTitlesPostLevel').lrDataItemSelect({ code: 'TeacherTitlePostLevel' }); | |||
$('#Diploma').lrUploader(); | |||
$('#TechnicalCertificate').lrUploader(); | |||
$('#TeacherCertificate').lrUploader(); | |||
$('#WinningFile').lrUploader(); | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
@@ -56,8 +56,8 @@ var bootstrap = function ($, learun) { | |||
id: 'form', | |||
title: '新增', | |||
url: top.$.rootUrl + '/PersonnelManagement/TeacherTitleEvaluation/Form', | |||
width: 600, | |||
height: 400, | |||
width: 1000, | |||
height: 800, | |||
callBack: function (id) { | |||
return top[id].acceptClick(refreshGirdData); | |||
} | |||
@@ -71,8 +71,8 @@ var bootstrap = function ($, learun) { | |||
id: 'form', | |||
title: '编辑', | |||
url: top.$.rootUrl + '/PersonnelManagement/TeacherTitleEvaluation/Form?keyValue=' + keyValue, | |||
width: 600, | |||
height: 400, | |||
width: 1000, | |||
height: 800, | |||
callBack: function (id) { | |||
return top[id].acceptClick(refreshGirdData); | |||
} | |||
@@ -909,6 +909,7 @@ | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexOfDC.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexInClass.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\MyClass.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\Print.css" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\AllocationClassDC.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\FormDC.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\SchoolUniform.js" /> | |||
@@ -6490,6 +6491,7 @@ | |||
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\Index.cshtml" /> | |||
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\StampDetailIndex.cshtml" /> | |||
<Content Include="Areas\LR_NewWorkFlow\Views\NWFProcess\AddTaskForm.cshtml" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\Print.cshtml" /> | |||
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | |||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | |||
<Content Include="Views\Login\Default-beifen.cshtml" /> | |||
@@ -20,15 +20,28 @@ | |||
var $btnGroup = $('<div class="lrUploader-btn-group"></div>'); | |||
var $uploadBtn = $('<a id="lrUploader_uploadBtn_' + dfop.id + '" class="btn btn-success lrUploader-input-btn">上传</a>'); | |||
var $downBtn = $('<a id="lrUploader_downBtn_' + dfop.id + '" class="btn btn-danger lrUploader-input-btn">下载</a>'); | |||
var $viewBtn = $('<a id="lrUploader_viewBtn_' + dfop.id + '" class="btn btn-primary lrUploader-input-btn">预览</a>'); | |||
$self.append($wrap); | |||
$btnGroup.append($uploadBtn); | |||
$btnGroup.append($downBtn); | |||
$self.append($btnGroup); | |||
var w = 0; | |||
if (dfop.isUpload) { | |||
$btnGroup.append($uploadBtn); | |||
w += 57; | |||
} | |||
if (dfop.isDown) { | |||
$btnGroup.append($downBtn); | |||
w += 57; | |||
} | |||
if (dfop.isView) { | |||
$btnGroup.append($viewBtn); | |||
w += 57; | |||
} | |||
$uploadBtn.on('click', $.lrUploader.openUploadForm); | |||
$downBtn.on('click', $.lrUploader.openDownForm); | |||
$viewBtn.on('click', $.lrUploader.openViewForm); | |||
$self.append($btnGroup); | |||
$self.css({ 'padding-right': w }); | |||
}, | |||
openUploadForm: function () { | |||
@@ -38,7 +51,7 @@ | |||
learun.layerForm({ | |||
id: dfop.id, | |||
title: dfop.placeholderUpload, | |||
url: top.$.rootUrl + '/LR_SystemModule/Annexes/UploadForm?keyVaule=' + dfop.value + "&extensions=" + dfop.extensions, | |||
url: top.$.rootUrl + '/LR_SystemModule/Annexes/UploadForm?keyVaule=' + dfop.value + "&extensions=" + dfop.extensions + "&filePath=" + dfop.filePath, | |||
width: 600, | |||
height: 400, | |||
maxmin: true, | |||
@@ -74,6 +87,19 @@ | |||
maxmin: true, | |||
btn: null | |||
}); | |||
}, | |||
openViewForm: function () { | |||
var $btn = $(this); | |||
var $self = $btn.parents('.lrUploader-wrap'); | |||
var dfop = $self[0]._lrUploader.dfop; | |||
learun.layerForm({ | |||
id: 'PreviewForm', | |||
title: '文件预览', | |||
url: top.$.rootUrl + '/LR_SystemModule/Annexes/PreviewFile?fileId=' + dfop.value, | |||
width: 1080, | |||
height: 850, | |||
btn: null | |||
}); | |||
} | |||
}; | |||
@@ -87,7 +113,9 @@ | |||
placeholderDown: '下载附件', | |||
isUpload: true, | |||
isDown: true, | |||
extensions: '' | |||
isView: true, | |||
extensions: '', | |||
filePath: ''//上传路径(配置文件) | |||
} | |||
$.extend(dfop, op || {}); | |||
@@ -99,6 +127,10 @@ | |||
}; | |||
$.fn.lrUploaderSet = function (value) { | |||
if (value == null || value == 'null' || value == undefined || value == 'undefined' || value == '') { | |||
return; | |||
} | |||
var $self = $(this); | |||
var dfop = $self[0]._lrUploader.dfop; | |||
dfop.value = value; | |||
@@ -170,17 +170,27 @@ namespace Learun.Application.Base.SystemModule | |||
/// <param name="fileName">文件名称</param> | |||
/// <param name="chunks">文件总共分多少片</param> | |||
/// <param name="fileStream">文件二进制流</param> | |||
/// <param name="userInfo"></param> | |||
/// <param name="filePath"></param> | |||
/// <returns></returns> | |||
public bool SaveAnnexes(string folderId, string fileGuid, string fileName, int chunks, UserInfo userInfo) | |||
public bool SaveAnnexes(string folderId, string fileGuid, string fileName, int chunks, UserInfo userInfo, string filePath = "") | |||
{ | |||
try | |||
{ | |||
//获取文件完整文件名(包含绝对路径) | |||
//文件存放路径格式:/Resource/ResourceFile/{userId}/{date}/{guid}.{后缀名} | |||
string filePath = Config.GetValue("AnnexesFile"); | |||
string virtualPath = ""; | |||
string uploadDate = DateTime.Now.ToString("yyyyMMdd"); | |||
string FileEextension = Path.GetExtension(fileName); | |||
string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.account, uploadDate, fileGuid, FileEextension); | |||
if (string.IsNullOrEmpty(filePath)) | |||
{ | |||
filePath = Config.GetValue("AnnexesFile"); | |||
virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, FileEextension); | |||
} | |||
else | |||
{ | |||
virtualPath = string.Format("{0}/{1}", filePath, fileName); | |||
} | |||
//创建文件夹 | |||
string path = Path.GetDirectoryName(virtualPath); | |||
Directory.CreateDirectory(path); | |||
@@ -60,7 +60,9 @@ namespace Learun.Application.Base.SystemModule | |||
/// <param name="fileName">文件名称</param> | |||
/// <param name="chunks">文件总共分多少片</param> | |||
/// <param name="fileStream">文件二进制流</param> | |||
bool SaveAnnexes(string folderId, string fileGuid, string fileName, int chunks, UserInfo userInfo); | |||
/// <param name="userInfo"></param> | |||
/// <param name="filePath"></param> | |||
bool SaveAnnexes(string folderId, string fileGuid, string fileName, int chunks, UserInfo userInfo, string filePath = ""); | |||
/// <summary> | |||
/// 保存附件(支持大文件分片传输) | |||
/// </summary> | |||
@@ -128,7 +128,16 @@ namespace Learun.Application.Base.SystemModule | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository().FindEntity<AnnexesFileEntity>(keyValue); | |||
var fileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(keyValue); | |||
if (fileEntity == null) | |||
{ | |||
IEnumerable<AnnexesFileEntity> fileList = GetList(keyValue); | |||
foreach (var item in fileList) | |||
{ | |||
return item; | |||
} | |||
} | |||
return fileEntity; | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -60,5 +60,23 @@ namespace Learun.Application.OA.File.FilePreview | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取Word数据 | |||
/// <summary> | |||
/// <returns></returns> | |||
public void GetPptData(string path) | |||
{ | |||
try | |||
{ | |||
Document document = new Document(); | |||
document.LoadFromFile(path); | |||
document.SaveToFile(path.Substring(0, path.LastIndexOf(".")) + ".pdf", Spire.Doc.FileFormat.PDF); | |||
} | |||
catch (Exception) | |||
{ | |||
throw (new Exception("文件丢失")); | |||
} | |||
} | |||
} | |||
} |
@@ -14,5 +14,10 @@ namespace Learun.Application.OA.File.FilePreview | |||
/// <summary> | |||
/// <returns></returns> | |||
void GetWordData(string path); | |||
/// <summary> | |||
/// ppt文档 | |||
/// <summary> | |||
/// <returns></returns> | |||
void GetPptData(string path); | |||
} | |||
} |
@@ -369,9 +369,9 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
//审核通过人数 | |||
item.StuNum = aa.Where(x => x.Status == 2).Count(); | |||
//选课专业 | |||
var strSql2 = new StringBuilder(); | |||
strSql2.Append("select e.Id,e.OLPOEId,e.MajorId,e.Grade,m.MajorNo,m.MajorName from ElectiveMajor e left join CdMajor m on e.MajorId=m.ID where e.OLPOEId='" + item.Id + "' and e.MajorId is not null and e.Grade is not null "); | |||
item.ElectiveMajorList = this.BaseRepository("CollegeMIS").FindList<ElectiveMajorEntity>(strSql2.ToString()).OrderBy(x => x.MajorNo).ThenBy(x => x.Grade).ToList(); | |||
//var strSql2 = new StringBuilder(); | |||
//strSql2.Append("select e.Id,e.OLPOEId,e.MajorId,e.Grade,m.MajorNo,m.MajorName from ElectiveMajor e left join CdMajor m on e.MajorId=m.ID where e.OLPOEId='" + item.Id + "' and e.MajorId is not null and e.Grade is not null "); | |||
//item.ElectiveMajorList = this.BaseRepository("CollegeMIS").FindList<ElectiveMajorEntity>(strSql2.ToString()).OrderBy(x => x.MajorNo).ThenBy(x => x.Grade).ToList(); | |||
//模式一:预选课 | |||
var aaa = this.BaseRepository("CollegeMIS").FindList<StuSelectLessonListOfElectivePreEntity>(x => x.OLPEId == item.Id); | |||
@@ -187,6 +187,29 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<StuEncourgementEntity> GetEncourgementListByStuNo(string stuNo) | |||
{ | |||
try | |||
{ | |||
return stuEncourgementService.GetEncourgementListByStuNo(stuNo); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
@@ -60,6 +60,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
/// <returns></returns> | |||
IEnumerable<StuEncourgementEntity> GetEncourgementListByStuNo(string acdemic, string semester, string stuNo); | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
IEnumerable<StuEncourgementEntity> GetEncourgementListByStuNo(string stuNo); | |||
#endregion | |||
} | |||
@@ -207,7 +207,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
{ | |||
try | |||
{ | |||
var result = this.BaseRepository("CollegeMIS").FindList<StuEncourgementEntity>(x => x.AcademicYearNo == acdemic && x.Semester == semester && x.StuNo == stuNo ); | |||
var result = this.BaseRepository("CollegeMIS").FindList<StuEncourgementEntity>(x => x.AcademicYearNo == acdemic && x.Semester == semester && x.StuNo == stuNo); | |||
return result; | |||
} | |||
catch (Exception ex) | |||
@@ -223,6 +223,30 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<StuEncourgementEntity> GetEncourgementListByStuNo(string stuNo) | |||
{ | |||
try | |||
{ | |||
var result = this.BaseRepository("CollegeMIS").FindList<StuEncourgementEntity>(x => x.StuNo == stuNo); | |||
return result; | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
@@ -1,5 +1,6 @@ | |||
using Learun.Util; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.ComponentModel.DataAnnotations.Schema; | |||
namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
@@ -725,7 +726,21 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
[NotMapped] public string F_Password { get; set; } | |||
[NotMapped] public string F_Secretkey { get; set; } | |||
[NotMapped] public List<StuEncourgementEntity> StuEncourgementList { get; set; } | |||
[NotMapped] public List<StuPunishmentEntity> StuPunishmentList { get; set; } | |||
[NotMapped] public List<StuScoreClassOne> StuScoreClassOneList { get; set; } | |||
#endregion | |||
#region 学习成绩 | |||
public class StuScoreClassOne | |||
{ | |||
public string AcademicYearNo { get; set; } | |||
public string Semester { get; set; } | |||
public List<StuScoreEntity> StuScoreList { get; set; } | |||
} | |||
#endregion | |||
} | |||
} | |||
@@ -187,6 +187,29 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<StuPunishmentEntity> GetPunishmentListByStuNo(string stuNo) | |||
{ | |||
try | |||
{ | |||
return stuPunishmentService.GetPunishmentListByStuNo(stuNo); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
@@ -61,6 +61,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
/// <returns></returns> | |||
IEnumerable<StuPunishmentEntity> GetPunishmentListByStuNo(string acdemic, string semester, string stuNo); | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
IEnumerable<StuPunishmentEntity> GetPunishmentListByStuNo(string stuNo); | |||
#endregion | |||
} | |||
@@ -224,6 +224,30 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<StuPunishmentEntity> GetPunishmentListByStuNo(string stuNo) | |||
{ | |||
try | |||
{ | |||
var result = this.BaseRepository("CollegeMIS").FindList<StuPunishmentEntity>(x => x.StuNo == stuNo); | |||
return result; | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
@@ -54,6 +54,26 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
/// </summary> | |||
[Column("TTREMARK")] | |||
public string TTRemark { get; set; } | |||
/// <summary> | |||
/// 学历毕业证书 | |||
/// </summary> | |||
[Column("DIPLOMA")] | |||
public string Diploma { get; set; } | |||
/// <summary> | |||
/// 专业技术资格证书 | |||
/// </summary> | |||
[Column("TECHNICALCERTIFICATE")] | |||
public string TechnicalCertificate { get; set; } | |||
/// <summary> | |||
/// 教师资格证 | |||
/// </summary> | |||
[Column("TEACHERCERTIFICATE")] | |||
public string TeacherCertificate { get; set; } | |||
/// <summary> | |||
/// 获奖资料 | |||
/// </summary> | |||
[Column("WINNINGFILE")] | |||
public string WinningFile { get; set; } | |||
#endregion | |||
#region 扩展操作 | |||
@@ -31,12 +31,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT "); | |||
strSql.Append(@" | |||
t.TTID, | |||
t.EID, | |||
t.TTTime, | |||
t.TTTitlesID, | |||
t.TTRemark, | |||
t.TTTitlesPostLevel, | |||
t.*, | |||
u.F_EnCode as Encode, | |||
u.F_Gender as Sex, | |||
u.F_Birthday as Birthday | |||