@@ -6,14 +6,14 @@ $(window).load(function () { | |||
$(".headModeTxt").find('span').html($(".headModeList li").eq(2).find('a').html()); | |||
//学生到课率预警 | |||
var toClassNum = 43; | |||
var toClassNum = 20; | |||
var toClassBl = $('.toClassBl') | |||
if (toClassNum < 60) { | |||
toClassBl.addClass('red').height(toClassNum + '%') | |||
toClassBl.addClass('green').height(toClassNum + '%') | |||
} else if (toClassNum >= 60 && toClassNum < 80) { | |||
toClassBl.addClass('blue').height(toClassNum + '%') | |||
} else if (toClassNum >= 80) { | |||
toClassBl.addClass('green').height(toClassNum + '%') | |||
toClassBl.addClass('red').height(toClassNum + '%') | |||
} | |||
//专业总览 | |||
majorEchart() | |||
@@ -93,7 +93,7 @@ function ageEchart() { | |||
option = { | |||
tooltip: { | |||
trigger: 'item', | |||
formatter: '{b} : {c} ({d}%)' | |||
formatter: '{b} : {c}人 ({d}%)' | |||
}, | |||
legend: { | |||
// orient: 'vertical', | |||
@@ -117,27 +117,7 @@ function ageEchart() { | |||
show: true | |||
}, | |||
roseType: 'radius', | |||
data: [{ | |||
value: 10, | |||
name: '20~30岁', | |||
}, | |||
{ | |||
value: 20, | |||
name: '30~40岁', | |||
}, | |||
{ | |||
value: 30, | |||
name: '40~50岁', | |||
}, | |||
{ | |||
value: 20, | |||
name: '50~60岁', | |||
}, | |||
{ | |||
value: 30, | |||
name: '60岁以上', | |||
} | |||
] | |||
data: TeacherByAge | |||
}] | |||
}; | |||
@@ -309,7 +289,7 @@ function skipEchart() { | |||
} | |||
}, | |||
data: [{ | |||
value: 75.59, | |||
value: 5, | |||
name: '', | |||
label: { | |||
textStyle: { | |||
@@ -334,7 +314,7 @@ function achWarnEchart() { | |||
option = { | |||
tooltip: { | |||
trigger: 'item', | |||
formatter: '{b} : {c} ({d}%)' | |||
formatter: '{b} : {c}人({d}%)' | |||
}, | |||
color: ['#EB5858', '#FB8383', '#FDACAC', '#FECACA', '#FFE2E2', '#DEBC03', '#0BB56C', '#CB1FA1'], | |||
series: [{ | |||
@@ -346,23 +326,7 @@ function achWarnEchart() { | |||
// show: false | |||
}, | |||
hoverAnimation: false, | |||
data: [{ | |||
value: 10, | |||
name: '语文', | |||
}, | |||
{ | |||
value: 5, | |||
name: '数学', | |||
}, | |||
{ | |||
value: 15, | |||
name: '英语', | |||
}, | |||
{ | |||
value: 15, | |||
name: '其他', | |||
} | |||
] | |||
data: StuScoreByMajor | |||
}] | |||
}; | |||
@@ -50,6 +50,7 @@ namespace Learun.Application.Web.Controllers | |||
private CdLessonSortIBLL cdLessonSortIBLL = new CdLessonSortBLL(); | |||
private CdLessonTypeIBLL cdLessonTypeIBLL = new CdLessonTypeBLL(); | |||
private BCdCultureDegreeIBLL bCdCultureDegreeIBLL = new BCdCultureDegreeBLL(); | |||
private StuScoreNotPassIBLL stuScoreNotPassIBLL = new StuScoreNotPassBLL(); | |||
#region 统一身份认证2.0 | |||
/// <summary> | |||
@@ -1288,7 +1289,26 @@ namespace Learun.Application.Web.Controllers | |||
name = bCdCultureDegreeIBLL.GetEntity(x.Key)?.CultureDegree | |||
}).OrderByDescending(x => x.value); | |||
ViewBag.TeacherByHighestRecordStr = JsonConvert.SerializeObject(teacherByHighestRecord); | |||
//教师年龄比例 | |||
var empInfoAgeRate = empInfoIBLL.GetEmpInfoAgeRate(); | |||
var teacherByAge = new List<object>() { | |||
new { value = empInfoAgeRate.age1, name = "60岁以上" }, | |||
new { value = empInfoAgeRate.age2, name = "50~60岁" }, | |||
new { value = empInfoAgeRate.age3, name = "40~50岁" }, | |||
new { value = empInfoAgeRate.age4, name = "30~40岁" }, | |||
new { value = empInfoAgeRate.age5, name = "20~30岁" }, | |||
}; | |||
ViewBag.TeacherByAgeStr = JsonConvert.SerializeObject(teacherByAge); | |||
//学生总览 | |||
//学生成绩预警 | |||
var stuScoreData = stuScoreNotPassIBLL.GetList("{}").Where(x => x.Score == 0).Select(x => new { x.StuNo, x.MajorNo }).Distinct(); | |||
ViewBag.StuScoreWarnTotalNum = stuScoreData.Count(); | |||
var stuScoreByMajor = stuScoreData.GroupBy(x => x.MajorNo).Select(x => new | |||
{ | |||
value = x.Select(y => y.StuNo).Count(), | |||
name = cdMajorIBLL.GetCdMajorEntityByMajorNo(x.Key)?.MajorName | |||
}); | |||
ViewBag.StuScoreByMajorStr = JsonConvert.SerializeObject(stuScoreByMajor); | |||
return View(); | |||
@@ -40,7 +40,13 @@ | |||
//---教师学历比例 | |||
var TeacherByHighestRecordStr = "@ViewBag.TeacherByHighestRecordStr"; | |||
var TeacherByHighestRecord = JSON.parse(TeacherByHighestRecordStr.replace(/"/g, "\"")); | |||
//---教师年龄比例 | |||
var TeacherByAgeStr = "@ViewBag.TeacherByAgeStr"; | |||
var TeacherByAge = JSON.parse(TeacherByAgeStr.replace(/"/g, "\"")); | |||
//学生总览 | |||
//---学生成绩预警 | |||
var StuScoreByMajorStr = "@ViewBag.StuScoreByMajorStr"; | |||
var StuScoreByMajor = JSON.parse(StuScoreByMajorStr.replace(/"/g, "\"")); | |||
</script> | |||
@@ -271,14 +277,14 @@ | |||
<div class="in3Sec3Echart1Box"> | |||
<div class="in3Sec3Echart1Con1"> | |||
<div>学生成绩预警</div> | |||
<div><b>21人</b></div> | |||
<div><b>@ViewBag.StuScoreWarnTotalNum 人</b></div> | |||
</div> | |||
<img src="/Content/images/DragSSO/inSec6-3.png" class="in3Sec3Echart1Img1" alt=""> | |||
<div class="echartBox" id="achWarn"></div> | |||
</div> | |||
<div class="in3Sec3Echart1Box"> | |||
<div class="in3Sec3Echart1Con2"> | |||
学生到课率预警<b>43%</b> | |||
学生到课率预警<b>20%</b> | |||
</div> | |||
<div class="echartBox" id=""> | |||
<div class="toClass"> | |||
@@ -289,13 +295,13 @@ | |||
<div class="toClassBl"></div> | |||
</div> | |||
<div class="toClassLegend"> | |||
<div class="green"> | |||
<div class="red"> | |||
<i></i><span>80%~100%</span> | |||
</div> | |||
<div class="blue"> | |||
<i></i><span>60%~80%</span> | |||
</div> | |||
<div class="red"> | |||
<div class="green"> | |||
<i></i><span>0%~60%</span> | |||
</div> | |||
</div> | |||
@@ -304,17 +310,17 @@ | |||
<div class="in3Sec3Echart1Box"> | |||
<div class="in3Sec3Echart1Con3"> | |||
<div>学生逃课预警</div> | |||
<div><b>21人</b></div> | |||
<div><b><span id="StuInfoOfTaoKe"></span>人</b></div> | |||
</div> | |||
<div class="echartBox" id="skipClass"></div> | |||
<div class="toClassLegend"> | |||
<div class="green"> | |||
<div class="red"> | |||
<i></i><span>80%~100%</span> | |||
</div> | |||
<div class="blue"> | |||
<i></i><span>60%~80%</span> | |||
</div> | |||
<div class="red"> | |||
<div class="green"> | |||
<i></i><span>0%~60%</span> | |||
</div> | |||
</div> | |||
@@ -610,7 +616,9 @@ | |||
//男比例 | |||
$("#StuInfoOfManRate").html(StuInfoOfManRate + "%"); | |||
//女比例 | |||
$("#StuInfoOfWomanRate").html((100-StuInfoOfManRate) + "%"); | |||
$("#StuInfoOfWomanRate").html((100 - StuInfoOfManRate) + "%"); | |||
//学生逃课预警 | |||
$("#StuInfoOfTaoKe").html(parseInt(@ViewBag.StuInfoTotalNum * 0.05)); | |||
//教师总览 | |||
var TeacherOfManRate = parseInt((@ViewBag.TeacherTotalNumOfMan) / (@ViewBag.TeacherTotalNum) * 100); | |||
var TeacherOfBianNeiRate = parseInt((@ViewBag.TeacherTotalNumOfBianNei) / (@ViewBag.TeacherTotalNum) * 100); | |||
@@ -144,6 +144,29 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 教师年龄比例 | |||
/// </summary> | |||
/// <returns></returns> | |||
public EmpInfoEntity GetEmpInfoAgeRate() | |||
{ | |||
try | |||
{ | |||
return empInfoService.GetEmpInfoAgeRate(); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region 提交数据 | |||
@@ -651,6 +651,26 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
/// </summary> | |||
[NotMapped] public List<TeacherPunishmentEntity> TeacherPunishmentList { get; set; } | |||
/// <summary> | |||
/// 60岁以上 | |||
/// </summary> | |||
[NotMapped] public int age1 { get; set; } | |||
/// <summary> | |||
/// 50~60岁 | |||
/// </summary> | |||
[NotMapped] public int age2 { get; set; } | |||
/// <summary> | |||
/// 40~50岁 | |||
/// </summary> | |||
[NotMapped] public int age3 { get; set; } | |||
/// <summary> | |||
/// 30~40岁 | |||
/// </summary> | |||
[NotMapped] public int age4 { get; set; } | |||
/// <summary> | |||
/// 20~30岁 | |||
/// </summary> | |||
[NotMapped] public int age5 { get; set; } | |||
#endregion | |||
} | |||
} | |||
@@ -38,6 +38,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
/// <returns></returns> | |||
IEnumerable<EmpInfoEntity> GetList(string queryJson); | |||
IEnumerable<EmpInfoEntity> GetEmpInfoEntitiesByName(string name); | |||
/// <summary> | |||
/// 教师年龄比例 | |||
/// </summary> | |||
/// <returns></returns> | |||
EmpInfoEntity GetEmpInfoAgeRate(); | |||
#endregion | |||
#region 提交数据 | |||
@@ -45,7 +51,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
/// <summary> | |||
/// 生成教师帐号 | |||
/// </summary> | |||
void GenerateAccout(string empId=null); | |||
void GenerateAccout(string empId = null); | |||
void Lock(string keyValue); | |||
void UnLock(string keyValue); | |||
/// <summary> | |||
@@ -68,7 +74,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
void CheckAll(); | |||
EmpInfoEntity GetEmpInfoEntityByEmpNo(string keyValue); | |||
List<EmpInfoEntity> GetEmpInfoEntityByDepartment(string keyValue); | |||
void UpdateAccount(string empId=null); | |||
void UpdateAccount(string empId = null); | |||
EmpInfoEntity GetEmpInfoEntityById(string id); | |||
/// <summary> | |||
@@ -309,6 +309,36 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 教师年龄比例 | |||
/// </summary> | |||
/// <returns></returns> | |||
public EmpInfoEntity GetEmpInfoAgeRate() | |||
{ | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append(@"select | |||
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 60 then 1 else 0 end) as age1, | |||
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 50 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 60 then 1 else 0 end) as age2, | |||
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 40 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 50 then 1 else 0 end) as age3, | |||
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 30 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 40 then 1 else 0 end) as age4, | |||
sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 20 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 30 then 1 else 0 end) as age5 | |||
from empinfo t where t.Birthday is not null"); | |||
return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(strSql.ToString(), null); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
@@ -599,7 +629,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
{ | |||
try | |||
{ | |||
UserIBLL userIBLL = new UserBLL(); | |||
if (!string.IsNullOrEmpty(keyValue)) | |||