@@ -323,8 +323,9 @@ namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers | |||
var data = arrangeLessonTermIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId); | |||
timeTableList.AddRange(data); | |||
//选修课课程表 | |||
var dataOfElective = arrangeLessonTermOfElectiveIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId); | |||
timeTableList.AddRange(dataOfElective); | |||
//20220718因 更改教务课表显示格式为班级作为列头,选修课无班级所以不能显示在课表内 | |||
//var dataOfElective = arrangeLessonTermOfElectiveIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId); | |||
//timeTableList.AddRange(dataOfElective); | |||
var timeTables = timeTableList.ToList(); | |||
var noDataResult = new | |||
@@ -333,6 +334,10 @@ namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers | |||
{ | |||
return JsonResult(noDataResult); | |||
} | |||
//最大节次 | |||
int maxlessontime = timeTables.Max(m =>Convert.ToInt32(m.LessonTime.Substring(1))); | |||
//班级列表 | |||
var classinfolist = timeTables.Select(m => new {m.TeachClassNo, m.ClassName}).OrderBy(m => m.TeachClassNo).GroupBy(m=>new {m.TeachClassNo,m.ClassName}); | |||
var formatData = from d in timeTables | |||
let tt = d.LessonTime.Substring(1) | |||
group d by tt into g | |||
@@ -365,7 +370,7 @@ namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers | |||
; | |||
var result = new | |||
{ schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = formatData }; | |||
{ schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", maxlessontime, classinfolist, weekList = formatData }; | |||
return JsonResult(result); | |||
} | |||
@@ -3,29 +3,77 @@ | |||
Layout = "~/Views/Shared/_Form.cshtml"; | |||
} | |||
<div class="lr-form-wrap"> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan" > | |||
<div class="lr-form-item-title">招聘时间<font face="宋体">*</font></div> | |||
<input id="RecruitTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm',onpicked: function () { $('#RecruitTime').trigger('change'); } })" isvalid="yes" checkexpession="NotNull" /> | |||
<div class="col-xs-6 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">招聘单位名称<font face="宋体">*</font></div> | |||
<div id="Commpany" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-6 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">主管部门名称<font face="宋体">*</font></div> | |||
<div id="Department" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan" > | |||
<div class="lr-form-item-title">招聘地点<font face="宋体">*</font></div> | |||
<input id="RecruitAddress" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> | |||
<div class="col-xs-4 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">岗位名称<font face="宋体">*</font></div> | |||
<input id="TitleOfTechPost" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan" > | |||
<div class="col-xs-4 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">岗位类别<font face="宋体">*</font></div> | |||
<div id="EmpSortNo" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-4 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">招聘人数<font face="宋体">*</font></div> | |||
<input id="RecruitNum" type="text" class="form-control" isvalid="yes" checkexpession="Num" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan" > | |||
<div class="col-xs-4 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">年龄<font face="宋体">*</font></div> | |||
<input id="RecruitAge" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> | |||
</div> | |||
<div class="col-xs-4 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">学历<font face="宋体">*</font></div> | |||
<div id="RecordInSchool" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-4 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">学位<font face="宋体">*</font></div> | |||
<div id="InitialDegree" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-6 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">编制数<font face="宋体">*</font></div> | |||
<input id="StaffSize" type="text" class="form-control" isvalid="yes" checkexpession="Num" /> | |||
</div> | |||
<div class="col-xs-6 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">实有人数<font face="宋体">*</font></div> | |||
<input id="ActualSize" type="text" class="form-control" isvalid="yes" checkexpession="Num" /> | |||
</div> | |||
<div class="col-xs-6 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">招聘专业<font face="宋体">*</font></div> | |||
<input id="RecruitMajor" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan" > | |||
<div class="lr-form-item-title">要求</div> | |||
<textarea id="Request" class="form-control" style="height:100px;" ></textarea> | |||
<div class="col-xs-6 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">政治面貌<font face="宋体">*</font></div> | |||
<div id="PartyFaceNo" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">招聘时间<font face="宋体">*</font></div> | |||
<input id="RecruitTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt: 'yyyy-MM-dd HH:mm', onpicked: function() { $('#RecruitTime').trigger('change'); } })" isvalid="yes" checkexpession="NotNull" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">资格要求</div> | |||
<textarea id="Qualification" class="form-control" style="height: 50px;"></textarea> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">专业类别</div> | |||
<textarea id="MajorCategory" class="form-control" style="height: 50px;"></textarea> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">考试形式</div> | |||
<textarea id="TestType" class="form-control" style="height: 50px;"></textarea> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">工作地点</div> | |||
<textarea id="JobAddress" class="form-control" style="height: 50px;"></textarea> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan" > | |||
<div class="col-xs-12 lr-form-item" data-table="TeacherRecruitPlan"> | |||
<div class="lr-form-item-title">备注</div> | |||
<textarea id="Remark" class="form-control" style="height:100px;" ></textarea> | |||
<textarea id="Remark" class="form-control" style="height: 100px;"></textarea> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/PersonnelManagement/Views/TeacherRecruitPlan/Form.js") |
@@ -15,13 +15,40 @@ var bootstrap = function ($, learun) { | |||
page.initData(); | |||
}, | |||
bind: function () { | |||
//校区 | |||
$('#Commpany').lrDataSourceSelect({ | |||
code: 'company', value: 'f_companyid', text: 'f_fullname', | |||
select: function (item) { | |||
if (!!item) { | |||
// 部门 | |||
$('#Department').lrselectRefresh({ | |||
type: 'tree', | |||
// 是否允许搜索 | |||
allowSearch: true, | |||
// 访问数据接口地址 | |||
url: top.$.rootUrl + '/LR_OrganizationModule/Department/GetTree', | |||
// 访问数据接口参数 | |||
param: { companyId: item.f_companyid, parentId: '0' } | |||
}); | |||
} | |||
} | |||
}); | |||
$('#Department').lrselect({ allowSearch: true }); | |||
$('#EmpSortNo').lrselect({ | |||
data: [{ text: "管理岗", value: "0" }, { text: "教师岗", value: "1" }], | |||
text: "text", | |||
value: "value" | |||
}) | |||
$('#RecordInSchool').lrDataItemSelect({ code: 'RecordInSchool' }); | |||
$('#PartyFaceNo').lrDataItemSelect({ code: 'BCdPartyFace' }); | |||
$('#InitialDegree').lrDataItemSelect({ code: 'DegreeInSchool' }); | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
$.lrSetForm(top.$.rootUrl + '/PersonnelManagement/TeacherRecruitPlan/GetFormData?keyValue=' + keyValue, function (data) { | |||
for (var id in data) { | |||
if (!!data[id].length && data[id].length > 0) { | |||
$('#' + id ).jfGridSet('refreshdata', data[id]); | |||
$('#' + id).jfGridSet('refreshdata', data[id]); | |||
} | |||
else { | |||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); | |||
@@ -22,12 +22,12 @@ var bootstrap = function ($, learun) { | |||
}); | |||
// 新增 | |||
$('#lr_add').on('click', function () { | |||
learun.layerForm({ | |||
learun.layerForm({ | |||
id: 'form', | |||
title: '新增', | |||
url: top.$.rootUrl + '/PersonnelManagement/TeacherRecruitPlan/Form', | |||
width: 600, | |||
height: 400, | |||
width: 800, | |||
height: 700, | |||
callBack: function (id) { | |||
return top[id].acceptClick(refreshGirdData); | |||
} | |||
@@ -41,8 +41,8 @@ var bootstrap = function ($, learun) { | |||
id: 'form', | |||
title: '编辑', | |||
url: top.$.rootUrl + '/PersonnelManagement/TeacherRecruitPlan/Form?keyValue=' + keyValue, | |||
width: 600, | |||
height: 400, | |||
width: 800, | |||
height: 700, | |||
callBack: function (id) { | |||
return top[id].acceptClick(refreshGirdData); | |||
} | |||
@@ -53,9 +53,9 @@ var bootstrap = function ($, learun) { | |||
$('#lr_delete').on('click', function () { | |||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||
if (learun.checkrow(keyValue)) { | |||
learun.layerConfirm('是否确认删除该项!', function (res) { | |||
learun.layerConfirm('是否确认删除该项!', function (res) { | |||
if (res) { | |||
learun.deleteForm(top.$.rootUrl + '/PersonnelManagement/TeacherRecruitPlan/DeleteForm', { keyValue: keyValue}, function () { | |||
learun.deleteForm(top.$.rootUrl + '/PersonnelManagement/TeacherRecruitPlan/DeleteForm', { keyValue: keyValue }, function () { | |||
refreshGirdData(); | |||
}); | |||
} | |||
@@ -65,17 +65,94 @@ var bootstrap = function ($, learun) { | |||
}, | |||
// 初始化列表 | |||
initGird: function () { | |||
$('#gridtable').lrAuthorizeJfGrid({ | |||
$('#gridtable').jfGrid({ | |||
url: top.$.rootUrl + '/PersonnelManagement/TeacherRecruitPlan/GetPageList', | |||
headData: [ | |||
{ label: "招聘时间", name: "RecruitTime", width: 130, align: "left"}, | |||
{ label: "招聘地点", name: "RecruitAddress", width: 200, align: "left"}, | |||
{ label: "招聘人数", name: "RecruitNum", width: 100, align: "left"}, | |||
{ label: "招聘专业", name: "RecruitMajor", width: 200, align: "left"}, | |||
{ label: "要求", name: "Request", width: 200, align: "left"}, | |||
{ label: "备注", name: "Remark", width: 200, align: "left"}, | |||
{ | |||
label: "招聘单位", name: "Commpany", width: 140, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company', | |||
key: value, | |||
keyId: 'f_companyid', | |||
callback: function (_data) { | |||
callback(_data['f_fullname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ | |||
label: "主管部门", name: "Department", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'classdata', | |||
key: value, | |||
keyId: 'id', | |||
callback: function (_data) { | |||
callback(_data['name']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ label: "岗位名称", name: "TitleOfTechPost", width: 100, align: "left" }, | |||
{ | |||
label: "岗位类别", name: "EmpSortNo", width: 80, align: "left", | |||
formatter: function (cellvalue) { | |||
if (cellvalue == 1) { | |||
return "教师岗"; | |||
} else { | |||
return "管理岗"; | |||
} | |||
} | |||
}, | |||
{ label: "编制数", name: "StaffSize", width: 50, align: "left" }, | |||
{ label: "招聘人数", name: "RecruitNum", width: 60, align: "left" }, | |||
{ label: "实有人数", name: "ActualSize", width: 60, align: "left" }, | |||
{ label: "年龄", name: "RecruitAge", width: 100, align: "left" }, | |||
{ | |||
label: "学历", name: "RecordInSchool", width: 80, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'RecordInSchool', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
} | |||
}, | |||
{ label: "专业", name: "RecruitMajor", width: 200, align: "left" }, | |||
{ | |||
label: "学位", name: "InitialDegree", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'DegreeInSchool', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
} | |||
}, | |||
{ | |||
label: "政治面貌", name: "PartyFaceNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'BCdPartyFace', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
} | |||
}, | |||
{ label: "资格要求", name: "Qualification", width: 200, align: "left" }, | |||
{ label: "专业类别", name: "MajorCategory", width: 200, align: "left" }, | |||
{ label: "考试形式", name: "TestType", width: 200, align: "left" }, | |||
{ label: "工作地点", name: "JobAddress", width: 200, align: "left" }, | |||
{ label: "备注", name: "Remark", width: 300, align: "left" }, | |||
], | |||
mainId:'Id', | |||
mainId: 'Id', | |||
isPage: true, | |||
sidx: 'RecruitTime', | |||
sord: 'desc' | |||
@@ -84,7 +161,7 @@ var bootstrap = function ($, learun) { | |||
}, | |||
search: function (param) { | |||
param = param || {}; | |||
$('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) }); | |||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||
} | |||
}; | |||
refreshGirdData = function () { | |||
@@ -11,7 +11,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
/// 日 期:2020-02-10 10:51 | |||
/// 描 述:教职工招聘计划 | |||
/// </summary> | |||
public class TeacherRecruitPlanEntity | |||
public class TeacherRecruitPlanEntity | |||
{ | |||
#region 实体成员 | |||
/// <summary> | |||
@@ -25,30 +25,90 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
[Column("RECRUITTIME")] | |||
public DateTime? RecruitTime { get; set; } | |||
/// <summary> | |||
/// 招聘地点 | |||
/// 招聘专业 | |||
/// </summary> | |||
[Column("RECRUITMAJOR")] | |||
public string RecruitMajor { get; set; } | |||
/// <summary> | |||
/// 招聘单位 | |||
/// </summary> | |||
[Column("COMMPANY")] | |||
public string Commpany { get; set; } | |||
/// <summary> | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("DEPARTMENT")] | |||
public string Department { get; set; } | |||
/// <summary> | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("RECRUITADDRESS")] | |||
public string RecruitAddress { get; set; } | |||
[Column("TITLEOFTECHPOST")] | |||
public string TitleOfTechPost { get; set; } | |||
/// <summary> | |||
/// 招聘人数 | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("EMPSORTNO")] | |||
public string EmpSortNo { get; set; } | |||
/// <summary> | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("RECRUITNUM")] | |||
public int? RecruitNum { get; set; } | |||
/// <summary> | |||
/// 招聘专业 | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("RECRUITMAJOR")] | |||
public string RecruitMajor { get; set; } | |||
[Column("ACTUALSIZE")] | |||
public int? ActualSize { get; set; } | |||
/// <summary> | |||
/// 年龄 | |||
/// </summary> | |||
[Column("RECRUITAGE")] | |||
public string RecruitAge { get; set; } | |||
/// <summary> | |||
/// 学位 | |||
/// </summary> | |||
[Column("RECORDINSCHOOL")] | |||
public string RecordInSchool { get; set; } | |||
/// <summary> | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("INITIALDEGREE")] | |||
public string InitialDegree { get; set; } | |||
/// <summary> | |||
/// 政治面貌 | |||
/// </summary> | |||
[Column("PARTYFACENO")] | |||
public string PartyFaceNo { get; set; } | |||
/// <summary> | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("QUALIFICATION")] | |||
public string Qualification { get; set; } | |||
/// <summary> | |||
/// 专业 | |||
/// </summary> | |||
[Column("MAJORCATEGORY")] | |||
public string MajorCategory { get; set; } | |||
/// <summary> | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("TESTTYPE")] | |||
public string TestType { get; set; } | |||
/// <summary> | |||
/// 要求 | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("REQUEST")] | |||
public string Request { get; set; } | |||
[Column("StaffSize")] | |||
public int? StaffSize { get; set; } | |||
/// <summary> | |||
/// 备注 | |||
/// 招聘时间 | |||
/// </summary> | |||
[Column("REMARK")] | |||
[Column("Remark")] | |||
public string Remark { get; set; } | |||
/// <summary> | |||
/// 工作地址 | |||
/// </summary> | |||
[Column("JOBADDRESS")] | |||
public string JobAddress { get; set; } | |||
#endregion | |||
#region 扩展操作 | |||
@@ -30,15 +30,7 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT "); | |||
strSql.Append(@" | |||
t.Id, | |||
t.RecruitTime, | |||
t.RecruitAddress, | |||
t.RecruitNum, | |||
t.RecruitMajor, | |||
t.Request, | |||
t.Remark | |||
"); | |||
strSql.Append(@" * "); | |||
strSql.Append(" FROM TeacherRecruitPlan t "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||