@@ -5,8 +5,11 @@ using System.Collections.Generic; | |||||
using System.IO; | using System.IO; | ||||
using System.Linq; | using System.Linq; | ||||
using System.Web.Mvc; | using System.Web.Mvc; | ||||
using Hangfire.Annotations; | |||||
using Learun.Application.Base.SystemModule; | using Learun.Application.Base.SystemModule; | ||||
using Newtonsoft.Json; | using Newtonsoft.Json; | ||||
using System.Data; | |||||
using Learun.Application.WorkFlow; | |||||
namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | ||||
{ | { | ||||
@@ -61,6 +64,116 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
{ | { | ||||
return View(); | return View(); | ||||
} | } | ||||
[HttpGet] | |||||
/// <summary> | |||||
/// 是否饼状图 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public ActionResult Peichart() | |||||
{ | |||||
//是否报道 | |||||
string sql = $"SELECT COUNT(CASE WHEN IsReport=1 THEN 1 END) AS num1, COUNT(CASE WHEN IsReport = 0 THEN 1 END) AS num2 FROM StuEnroll"; | |||||
var data = stuEnrollIBLL.Execute(sql); | |||||
List<object> list2 = new List<object>(); | |||||
list2.Add(new | |||||
{ | |||||
name = "报道人数", | |||||
value = data.Rows[0]["num1"].ToString() | |||||
}); | |||||
list2.Add(new | |||||
{ | |||||
name = "未报道人数", | |||||
value = data.Rows[0]["num2"].ToString() | |||||
}); | |||||
var jsonData = new | |||||
{ | |||||
rows = list2 | |||||
}; | |||||
//是否住宿 | |||||
string sql1 = $"SELECT COUNT(CASE WHEN IsCheckIn=1 THEN 1 END) AS num1, COUNT(CASE WHEN IsCheckIn = 0 THEN 1 END) AS num2 FROM StuEnroll"; | |||||
var data1 = stuEnrollIBLL.Execute(sql); | |||||
List<object> list3 = new List<object>(); | |||||
list3.Add(new | |||||
{ | |||||
name = "住宿人数", | |||||
value = data.Rows[0]["num1"].ToString() | |||||
}); | |||||
list3.Add(new | |||||
{ | |||||
name = "未住宿人数", | |||||
value = data.Rows[0]["num2"].ToString() | |||||
}); | |||||
var jsonData1 = new | |||||
{ | |||||
rows = list3 | |||||
}; | |||||
///是否资助 | |||||
string sql2 = $"SELECT COUNT(CASE WHEN IsSubsidize1=1 THEN 1 END) AS num1, COUNT(CASE WHEN IsSubsidize1 = 0 THEN 1 END) AS num2 FROM StuEnroll"; | |||||
var data2 = stuEnrollIBLL.Execute(sql); | |||||
List<object> list4 = new List<object>(); | |||||
list4.Add(new | |||||
{ | |||||
name = "资助人数", | |||||
value = data.Rows[0]["num1"].ToString() | |||||
}); | |||||
list4.Add(new | |||||
{ | |||||
name = "未资助人数", | |||||
value = data.Rows[0]["num2"].ToString() | |||||
}); | |||||
var jsonData2 = new | |||||
{ | |||||
rows = list4 | |||||
}; | |||||
//是否军训 | |||||
string sql3 = $"SELECT COUNT(CASE WHEN IsMilitary=1 THEN 1 END) AS num1, COUNT(CASE WHEN IsMilitary = 0 THEN 1 END) AS num2 FROM StuEnroll"; | |||||
var data3 = stuEnrollIBLL.Execute(sql); | |||||
List<object> list5 = new List<object>(); | |||||
list5.Add(new | |||||
{ | |||||
name = "军训人数", | |||||
value = data.Rows[0]["num1"].ToString() | |||||
}); | |||||
list5.Add(new | |||||
{ | |||||
name = "未军训人数", | |||||
value = data.Rows[0]["num2"].ToString() | |||||
}); | |||||
var jsonData3 = new | |||||
{ | |||||
rows = list5 | |||||
}; | |||||
//是否缴费 | |||||
string sql4 = $"SELECT COUNT(CASE WHEN IsPay=1 THEN 1 END) AS num1, COUNT(CASE WHEN IsPay = 0 THEN 1 END) AS num2 FROM StuEnroll"; | |||||
var data4 = stuEnrollIBLL.Execute(sql); | |||||
List<object> list6 = new List<object>(); | |||||
list6.Add(new | |||||
{ | |||||
name = "缴费人数", | |||||
value = data.Rows[0]["num1"].ToString() | |||||
}); | |||||
list6.Add(new | |||||
{ | |||||
name = "未缴费人数", | |||||
value = data.Rows[0]["num2"].ToString() | |||||
}); | |||||
var jsonData4 = new | |||||
{ | |||||
rows = list6 | |||||
}; | |||||
return JsonResult(jsonData); | |||||
} | |||||
/// <summary> | /// <summary> | ||||
@@ -209,6 +322,14 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
{ | { | ||||
return View(); | return View(); | ||||
} | } | ||||
/// <summary> | |||||
/// 招生统计 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public ActionResult StatisticIndex() | |||||
{ | |||||
return View(); | |||||
} | |||||
#endregion | #endregion | ||||
@@ -314,13 +435,13 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
if (string.IsNullOrEmpty(student.PhotoUrl)) | if (string.IsNullOrEmpty(student.PhotoUrl)) | ||||
{ | { | ||||
student.PhotoUrl = Guid.NewGuid().ToString(); | student.PhotoUrl = Guid.NewGuid().ToString(); | ||||
stuEnrollIBLL.SaveEntity(student.StuId,student); | |||||
stuEnrollIBLL.SaveEntity(student.StuId, student); | |||||
} | } | ||||
var annexEntity = annexesFileIBLL.GetEntityByFolderId(student.PhotoUrl); | var annexEntity = annexesFileIBLL.GetEntityByFolderId(student.PhotoUrl); | ||||
if (annexEntity == null) | if (annexEntity == null) | ||||
{ | { | ||||
annexEntity=new AnnexesFileEntity(); | |||||
annexEntity = new AnnexesFileEntity(); | |||||
annexEntity.Create(); | annexEntity.Create(); | ||||
annexEntity.F_Id = Guid.NewGuid().ToString(); | annexEntity.F_Id = Guid.NewGuid().ToString(); | ||||
} | } | ||||
@@ -344,11 +465,11 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
public ActionResult GetYearListByClass() | public ActionResult GetYearListByClass() | ||||
{ | { | ||||
var classList = classInfoIBLL.GetAllClass().ToList(); | var classList = classInfoIBLL.GetAllClass().ToList(); | ||||
var result = classList.GroupBy(a => a.Grade).Select(m=>m.Key).ToList(); | |||||
List<object> list=new List<object>(); | |||||
var result = classList.GroupBy(a => a.Grade).Select(m => m.Key).ToList(); | |||||
List<object> list = new List<object>(); | |||||
foreach (var item in result) | foreach (var item in result) | ||||
{ | { | ||||
list.Add(new{year=item}); | |||||
list.Add(new { year = item }); | |||||
} | } | ||||
return Success(list); | return Success(list); | ||||
@@ -847,6 +968,193 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
/// <summary> | |||||
/// 招生统计数据 | |||||
/// </summary> | |||||
/// <param name="queryJson"></param> | |||||
/// <returns></returns> | |||||
public ActionResult GetStatisticData(string queryJson) | |||||
{ | |||||
var data = stuEnrollIBLL.GetList(queryJson); | |||||
//是否报到 | |||||
var datagroupIsReport = data.OrderByDescending(x => x.IsReport).GroupBy(x => x.IsReport).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "报到" : "未报到") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsReport = new List<string>(); | |||||
var seriesDataIsReport = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsReport) | |||||
{ | |||||
legendDataIsReport.Add(item.status); | |||||
seriesDataIsReport.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//是否住宿 | |||||
var datagroupIsCheckIn = data.OrderByDescending(x => x.IsCheckIn).GroupBy(x => x.IsCheckIn).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "住宿" : "走读") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsCheckIn = new List<string>(); | |||||
var seriesDataIsCheckIn = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsCheckIn) | |||||
{ | |||||
legendDataIsCheckIn.Add(item.status); | |||||
seriesDataIsCheckIn.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//是否资助 | |||||
var datagroupIsSubsidize1 = data.OrderByDescending(x => x.IsSubsidize1).GroupBy(x => x.IsSubsidize1).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "资助" : "不资助") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsSubsidize1 = new List<string>(); | |||||
var seriesDataIsSubsidize1 = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsSubsidize1) | |||||
{ | |||||
legendDataIsSubsidize1.Add(item.status); | |||||
seriesDataIsSubsidize1.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//是否军训 | |||||
var datagroupIsMilitary = data.OrderByDescending(x => x.IsMilitary).GroupBy(x => x.IsMilitary).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "军训" : "不军训") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsMilitary = new List<string>(); | |||||
var seriesDataIsMilitary = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsMilitary) | |||||
{ | |||||
legendDataIsMilitary.Add(item.status); | |||||
seriesDataIsMilitary.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//缴费状态 | |||||
var datagroupIsPay = data.OrderByDescending(x => x.IsPay).GroupBy(x => x.IsPay).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "缴费" : "未缴费") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsPay = new List<string>(); | |||||
var seriesDataIsPay = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsPay) | |||||
{ | |||||
legendDataIsPay.Add(item.status); | |||||
seriesDataIsPay.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//拍照 | |||||
var datagroupIsMug = data.OrderByDescending(x => x.IsMug).GroupBy(x => x.IsMug).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "已拍照" : "未拍照") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsMug = new List<string>(); | |||||
var seriesDataIsMug = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsMug) | |||||
{ | |||||
legendDataIsMug.Add(item.status); | |||||
seriesDataIsMug.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//领取军训服 | |||||
var datagroupIsTakeCloths = data.OrderByDescending(x => x.IsTakeCloths).GroupBy(x => x.IsTakeCloths).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "已领取" : "未领取") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsTakeCloths = new List<string>(); | |||||
var seriesDataIsTakeCloths = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsTakeCloths) | |||||
{ | |||||
legendDataIsTakeCloths.Add(item.status); | |||||
seriesDataIsTakeCloths.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//量取校服尺寸 | |||||
var datagroupIsQuantity = data.OrderByDescending(x => x.IsQuantity).GroupBy(x => x.IsQuantity).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "已量" : "未量") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsQuantity = new List<string>(); | |||||
var seriesDataIsQuantity = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsQuantity) | |||||
{ | |||||
legendDataIsQuantity.Add(item.status); | |||||
seriesDataIsQuantity.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
//领取床上用品 | |||||
var datagroupIsGetBeddingArticle = data.OrderByDescending(x => x.IsGetBeddingArticle).GroupBy(x => x.IsGetBeddingArticle).Select(x => new | |||||
{ | |||||
status = x.Key.HasValue ? (x.Key.Value == true ? "已领取" : "未领取") : "未处理", | |||||
count = x.Select(y => y.StuId).Count() | |||||
}); | |||||
var legendDataIsGetBeddingArticle = new List<string>(); | |||||
var seriesDataIsGetBeddingArticle = new List<WfSchemeReportModelOfPie>(); | |||||
foreach (var item in datagroupIsGetBeddingArticle) | |||||
{ | |||||
legendDataIsGetBeddingArticle.Add(item.status); | |||||
seriesDataIsGetBeddingArticle.Add(new WfSchemeReportModelOfPie() | |||||
{ | |||||
value = item.count, | |||||
name = item.status | |||||
}); | |||||
} | |||||
var jsonData = new | |||||
{ | |||||
legendDataIsReport = legendDataIsReport, | |||||
seriesDataIsReport = seriesDataIsReport, | |||||
legendDataIsCheckIn = legendDataIsCheckIn, | |||||
seriesDataIsCheckIn = seriesDataIsCheckIn, | |||||
legendDataIsSubsidize1 = legendDataIsSubsidize1, | |||||
seriesDataIsSubsidize1 = seriesDataIsSubsidize1, | |||||
legendDataIsMilitary = legendDataIsMilitary, | |||||
seriesDataIsMilitary = seriesDataIsMilitary, | |||||
legendDataIsPay = legendDataIsPay, | |||||
seriesDataIsPay = seriesDataIsPay, | |||||
legendDataIsMug = legendDataIsMug, | |||||
seriesDataIsMug = seriesDataIsMug, | |||||
legendDataIsTakeCloths = legendDataIsTakeCloths, | |||||
seriesDataIsTakeCloths = seriesDataIsTakeCloths, | |||||
legendDataIsQuantity = legendDataIsQuantity, | |||||
seriesDataIsQuantity = seriesDataIsQuantity, | |||||
legendDataIsGetBeddingArticle = legendDataIsGetBeddingArticle, | |||||
seriesDataIsGetBeddingArticle = seriesDataIsGetBeddingArticle | |||||
}; | |||||
return Success(jsonData); | |||||
} | |||||
#endregion | #endregion | ||||
@@ -0,0 +1,40 @@ | |||||
<!DOCTYPE html> | |||||
<html> | |||||
<head> | |||||
<meta charset="utf-8" /> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||||
<title>@ViewBag.Title - My ASP.NET Application</title> | |||||
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" /> | |||||
<link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" /> | |||||
<script src="~/Scripts/modernizr-2.6.2.js"></script> | |||||
</head> | |||||
<body> | |||||
<div class="navbar navbar-inverse navbar-fixed-top"> | |||||
<div class="container"> | |||||
<div class="navbar-header"> | |||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> | |||||
<span class="icon-bar"></span> | |||||
<span class="icon-bar"></span> | |||||
<span class="icon-bar"></span> | |||||
</button> | |||||
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) | |||||
</div> | |||||
<div class="navbar-collapse collapse"> | |||||
<ul class="nav navbar-nav"> | |||||
</ul> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="container body-content"> | |||||
@RenderBody() | |||||
<hr /> | |||||
<footer> | |||||
<p>© @DateTime.Now.Year - My ASP.NET Application</p> | |||||
</footer> | |||||
</div> | |||||
<script src="~/Scripts/jquery-1.10.2.min.js"></script> | |||||
<script src="~/Scripts/bootstrap.min.js"></script> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,42 @@ | |||||
| |||||
@{ | |||||
ViewBag.Title = "资产新增报表"; | |||||
Layout = "~/Views/Shared/_Index.cshtml"; | |||||
} | |||||
<!DOCTYPE html> | |||||
<html> | |||||
<head> | |||||
<meta name="viewport" content="width=device-width" /> | |||||
<title>Peichart</title> | |||||
</head> | |||||
<body> | |||||
<div class="lr-layout ui-report"> | |||||
<div class="lr-layout-center"> | |||||
<div class="lr-layout-wrap lr-layout-wrap-notitle"> | |||||
@*<div class="lr-layout-tool"> | |||||
<div class="lr-layout-tool-left"> | |||||
</div> | |||||
<div class="lr-layout-tool-right"> | |||||
<div class="btn-group btn-group-sm" learun-authorize="yes"> | |||||
<a id="lr-replace" class="btn btn-default"><i class="fa fa-refresh"></i> <span class="lrlt">刷新</span></a> | |||||
</div> | |||||
</div> | |||||
</div>*@ | |||||
<div class="lr-layout-grid" style="overflow:auto;"> | |||||
<div class="grid-title"> | |||||
<div style="overflow: hidden; padding-bottom: 20px; text-align: center; margin-left: auto; margin-right: auto;"> | |||||
<div id="main" style="float: left; margin-right: 20px; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<script src="~/Content/echarts/echarts.js"></script> | |||||
</body> | |||||
</html> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuEnroll/Peichart.js") |
@@ -0,0 +1,73 @@ | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var year = ""; | |||||
var page = { | |||||
init: function () { | |||||
page.bind(); | |||||
page.initGrid(); | |||||
page.initChart(); | |||||
}, | |||||
bind: function () { | |||||
//当前年 | |||||
var now = learun.formatDate(new Date(), 'yyyy'); | |||||
$('#year').val(now); | |||||
year = now; | |||||
// 刷新 | |||||
$('#lr-replace').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
//查询 | |||||
$('#btn_Search').on('click', function () { | |||||
year = $('#year').val(); | |||||
page.search(); | |||||
}); | |||||
}, | |||||
initGrid: function () { | |||||
//$(".lr-layout-grid").height($(window).height() - 110); | |||||
//$('#gridtable').lrAuthorizeJfGridLei({ | |||||
// url: top.$.rootUrl + '/AssetManagementSystem/AssReport/AssAddReportList', | |||||
// headData: [ | |||||
// { name: "name", label: "年份", width: 100, align: "center" }, | |||||
// { name: "value", label: "金额", width: 150, align: "center" } | |||||
// ] | |||||
//}); | |||||
//page.search(); | |||||
}, | |||||
initChart: function () { | |||||
var myChart1 = echarts.init(document.getElementById('main')); | |||||
//var myChart2 = echarts.init(document.getElementById('main1')); | |||||
var queryJson = { year: year }; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/EducationalAdministration/StuEnroll/Peichart", { queryJson: JSON.stringify(queryJson) }, function (res) { | |||||
if (res.code == 200) { | |||||
var option = { | |||||
xAxis: { | |||||
type: 'category', | |||||
data: res.data.name | |||||
}, | |||||
yAxis: { | |||||
type: 'value' | |||||
}, | |||||
series: [{ | |||||
data: res.data.value, | |||||
type: 'bar' | |||||
}] | |||||
}; | |||||
myChart1.setOption(option); | |||||
} | |||||
}); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
param.year = year; | |||||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||||
page.initChart(); | |||||
} | |||||
}; | |||||
page.init(); | |||||
} | |||||
@@ -0,0 +1,76 @@ | |||||
| |||||
@{ | |||||
ViewBag.Title = "招生统计"; | |||||
Layout = "~/Views/Shared/_ReportTemplate.cshtml"; | |||||
} | |||||
<style> | |||||
body{ | |||||
overflow-y:auto; | |||||
} | |||||
</style> | |||||
@Html.AppendJsFile("/Views/LR_Content/script/lr-form.js") | |||||
<div class="lr-layout ui-report"> | |||||
<div class="lr-layout-center"> | |||||
<div class="lr-layout-wrap lr-layout-wrap-notitle"> | |||||
<div class="lr-layout-tool"> | |||||
<div class="lr-layout-tool-left"> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="multiple_condition_query"> | |||||
<div class="lr-query-formcontent"> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">系</div> | |||||
<div id="DeptNo"></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">专业</div> | |||||
<div id="MajorNo"></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">班级</div> | |||||
<div id="ClassNo"></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">学年</div> | |||||
<div id="Grade"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-tool-right"> | |||||
<div class="btn-group btn-group-sm" learun-authorize="yes"> | |||||
<a id="lr-replace" class="btn btn-default"><i class="fa fa-refresh"></i> <span class="lrlt">刷新</span></a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-grid" style="overflow:auto;"> | |||||
<div class="grid-title"> | |||||
<div style="overflow: auto; padding-bottom: 20px; text-align: center; margin-left: auto; margin-right: auto;"> | |||||
<div id="mainIsReport" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsCheckIn" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsSubsidize1" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsMilitary" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsPay" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsMug" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsTakeCloths" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsQuantity" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
<div id="mainIsGetBeddingArticle" style="float: left; margin:0 20px 20px 0; width: 650px; height: 350px;border: 1px solid #ccc;"> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<script src="~/Content/echarts/echarts.js"></script> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuEnroll/StatisticIndex.js") |
@@ -0,0 +1,397 @@ | |||||
| |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var page = { | |||||
init: function () { | |||||
page.bind(); | |||||
page.initChart(); | |||||
}, | |||||
bind: function () { | |||||
// 刷新 | |||||
$('#lr-replace').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||||
page.search(queryJson); | |||||
}, 250, 400); | |||||
$('#DeptNo').lrselect({ | |||||
allowSearch: true, | |||||
value: "deptno", | |||||
text: "deptname", | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdDeptInfo', | |||||
select: function (item) { | |||||
if (item) { | |||||
$('#MajorNo').lrselectRefresh({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdMajorInfo', | |||||
param: { strWhere: "DeptNo='" + item.deptno + "' AND CheckMark=1" } | |||||
}); | |||||
} else { | |||||
$('#MajorNo').lrselectRefresh({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdMajorInfo', | |||||
param: { strWhere: "1=1 AND CheckMark=1" } | |||||
}); | |||||
} | |||||
} | |||||
}); | |||||
$('#MajorNo').lrselect({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdMajorInfo', | |||||
value: "majorno", | |||||
text: "majorname", | |||||
param: { strWhere: "1=1 AND CheckMark=1" }, | |||||
select: function (item) { | |||||
if (item) { | |||||
$('#ClassNo').lrselectRefresh({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj', | |||||
param: { strWhere: "majorno='" + item.majorno + "' AND CheckMark=1" } | |||||
}); | |||||
} else { | |||||
$('#ClassNo').lrselectRefresh({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj', | |||||
param: { strWhere: "1=1 AND CheckMark=1" } | |||||
}); | |||||
} | |||||
} | |||||
}); | |||||
$('#ClassNo').lrselect({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj', | |||||
param: { strWhere: "1=1 AND CheckMark=1" }, | |||||
value: "classno", | |||||
text: "classname" | |||||
}); | |||||
$('#Grade').lrselect({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuEnroll/GetYearListByClass', | |||||
value: "year", | |||||
text: "year", | |||||
}) | |||||
}, | |||||
initChart: function (param) { | |||||
var myChartIsReport = echarts.init(document.getElementById('mainIsReport')); | |||||
var myChartIsCheckIn = echarts.init(document.getElementById('mainIsCheckIn')); | |||||
var myChartIsSubsidize1 = echarts.init(document.getElementById('mainIsSubsidize1')); | |||||
var myChartIsMilitary = echarts.init(document.getElementById('mainIsMilitary')); | |||||
var myChartIsPay = echarts.init(document.getElementById('mainIsPay')); | |||||
var myChartIsMug = echarts.init(document.getElementById('mainIsMug')); | |||||
var myChartIsTakeCloths = echarts.init(document.getElementById('mainIsTakeCloths')); | |||||
var myChartIsQuantity = echarts.init(document.getElementById('mainIsQuantity')); | |||||
var myChartIsGetBeddingArticle = echarts.init(document.getElementById('mainIsGetBeddingArticle')); | |||||
var queryJson = param || {}; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/EducationalAdministration/StuEnroll/GetStatisticData", { queryJson: JSON.stringify(queryJson) }, function (res) { | |||||
if (res.code == 200) { | |||||
var optionIsReport = { | |||||
title: { | |||||
text: '新生报到分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsReport | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否报到', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsReport, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsReport.setOption(optionIsReport); | |||||
var optionIsCheckIn = { | |||||
title: { | |||||
text: '新生住宿分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsCheckIn | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否住宿', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsCheckIn, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsCheckIn.setOption(optionIsCheckIn); | |||||
var optionIsSubsidize1 = { | |||||
title: { | |||||
text: '新生资助分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsSubsidize1 | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否资助', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsSubsidize1, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsSubsidize1.setOption(optionIsSubsidize1); | |||||
var optionIsMilitary = { | |||||
title: { | |||||
text: '新生军训分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsMilitary | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否军训', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsMilitary, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsMilitary.setOption(optionIsMilitary); | |||||
var optionIsPay = { | |||||
title: { | |||||
text: '新生缴费分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsPay | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否缴费', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsPay, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsPay.setOption(optionIsPay); | |||||
var optionIsMug = { | |||||
title: { | |||||
text: '新生拍照分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsMug | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否拍照', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsMug, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsMug.setOption(optionIsMug); | |||||
var optionIsTakeCloths = { | |||||
title: { | |||||
text: '新生领取军训服分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsTakeCloths | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否领取军训服', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsTakeCloths, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsTakeCloths.setOption(optionIsTakeCloths); | |||||
var optionIsQuantity = { | |||||
title: { | |||||
text: '新生量取校服尺寸分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsQuantity | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否量取校服尺寸', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsQuantity, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsQuantity.setOption(optionIsQuantity); | |||||
var optionIsGetBeddingArticle = { | |||||
title: { | |||||
text: '新生领取床上用品分析图', | |||||
x: 'center' | |||||
}, | |||||
tooltip: { | |||||
trigger: 'item', | |||||
formatter: "{a} <br/>{b} : {c}人 ({d}%)" | |||||
}, | |||||
legend: { | |||||
orient: 'vertical', | |||||
left: 'left', | |||||
data: res.data.legendDataIsGetBeddingArticle | |||||
}, | |||||
series: [ | |||||
{ | |||||
name: '是否领取床上用品', | |||||
type: 'pie', | |||||
radius: '55%', | |||||
center: ['50%', '60%'], | |||||
data: res.data.seriesDataIsGetBeddingArticle, | |||||
itemStyle: { | |||||
emphasis: { | |||||
shadowBlur: 10, | |||||
shadowOffsetX: 0, | |||||
shadowColor: 'rgba(0, 0, 0, 0.5)' | |||||
} | |||||
} | |||||
} | |||||
] | |||||
}; | |||||
myChartIsGetBeddingArticle.setOption(optionIsGetBeddingArticle); | |||||
} | |||||
}); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
page.initChart(param); | |||||
} | |||||
}; | |||||
page.init(); | |||||
} | |||||
@@ -0,0 +1,3 @@ | |||||
@{ | |||||
Layout = "~/Areas/EducationalAdministration/Views/Shared/_Layout.cshtml"; | |||||
} |
@@ -20,11 +20,71 @@ | |||||
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> 编辑</a> | <a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> 编辑</a> | ||||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> 删除</a>*@ | <a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> 删除</a>*@ | ||||
<a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i> 打印</a> | <a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i> 打印</a> | ||||
</div> | |||||
<div class="layui-btn-container"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="lr-layout-body" id="gridtable"></div> | <div class="lr-layout-body" id="gridtable"></div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div id="winpop"> | |||||
<div class="title">您有新的未读消息<span class="close" onclick="tips_pop()">x</span></div> | |||||
<div id="notifications"> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
@Html.AppendJsFile("/Areas/LR_Desktop/Views/MessageRind/Index.js") | |||||
@Html.AppendJsFile("/Areas/LR_Desktop/Views/MessageRind/Index.js"); | |||||
<script> | |||||
function tips_pop() { | |||||
var MsgPop = document.getElementById("winpop"); | |||||
var popH = parseInt(MsgPop.style.height); | |||||
if (popH == 0) { | |||||
MsgPop.style.Height = "block"; | |||||
show = setInterval("changeH('up')", 2); | |||||
} else { | |||||
hide = setInterval("changeH('down')", 2); | |||||
} | |||||
} | |||||
function changeH(str) { | |||||
var magPop = document.getElementById("winpop"); | |||||
var popH = parseInt(MsgPop.style.Height); | |||||
if (str == "up") { | |||||
if (popH <= 100) { | |||||
msgPop.style.height = (popH + 4).toString() + "px"; | |||||
} else { | |||||
clearInterval(show); | |||||
} | |||||
} | |||||
if (str == "down") { | |||||
if (popH >= 4) { | |||||
MsgPop.style.Height = (popH - 4).toString() + "px"; | |||||
} else { | |||||
clearInterval(hide); | |||||
MsgPop.style.display = "none"; | |||||
} | |||||
} | |||||
window.onload = function() { | |||||
document.getElementById('winpop').style.height = '0px'; | |||||
setTimeout("tips_pop()", 800); | |||||
} | |||||
} | |||||
function Winpop() { | |||||
var state = '0'; | |||||
$.get(${ ctx } / sys / msGetUserMedia / getMsgList ? state + "&t=" + new Date().getTime(),function(data) { | |||||
$("#notifications").html(data); | |||||
}), | |||||
} | |||||
winpop(); | |||||
setInterval(function() { | |||||
$("#winpop").load(Winpop(), ""); | |||||
}, | |||||
1000); | |||||
</script> |
@@ -94,6 +94,8 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
}, | }, | ||||
// 初始化列表 | // 初始化列表 | ||||
initGird: function () { | initGird: function () { | ||||
$('#gridtable').lrAuthorizeJfGrid({ | $('#gridtable').lrAuthorizeJfGrid({ | ||||
@@ -0,0 +1,18 @@ | |||||
body { | |||||
padding-top: 50px; | |||||
padding-bottom: 20px; | |||||
} | |||||
/* Set padding to keep content from hitting the edges */ | |||||
.body-content { | |||||
padding-left: 15px; | |||||
padding-right: 15px; | |||||
} | |||||
/* Set width on the form input elements since they're 100% wide by default */ | |||||
input, | |||||
select, | |||||
textarea { | |||||
max-width: 280px; | |||||
} | |||||
@@ -970,6 +970,8 @@ | |||||
<Content Include="Areas\EducationalAdministration\Views\StuConsumption\IndexForStudent.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuConsumption\IndexForStudent.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuConsumption\IndexForTeacher.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuConsumption\IndexForTeacher.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuEnroll\AmountForm.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuEnroll\AmountForm.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuEnroll\Peichart.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\StuEnroll\StatisticIndex.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\StuGrant\Form.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuGrant\Form.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuGrant\Index.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuGrant\Index.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasicChange\Form.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoBasicChange\Form.js" /> | ||||
@@ -3220,6 +3222,7 @@ | |||||
<Content Include="Content\signet\jquery.zsign.css" /> | <Content Include="Content\signet\jquery.zsign.css" /> | ||||
<Content Include="Content\signet\jquery.zsign.js" /> | <Content Include="Content\signet\jquery.zsign.js" /> | ||||
<Content Include="Content\signet\signet.gif" /> | <Content Include="Content\signet\signet.gif" /> | ||||
<Content Include="Content\Site.css" /> | |||||
<Content Include="Content\sso\css\bootstrap.css" /> | <Content Include="Content\sso\css\bootstrap.css" /> | ||||
<Content Include="Content\sso\css\common.css" /> | <Content Include="Content\sso\css\common.css" /> | ||||
<Content Include="Content\sso\css\index.css" /> | <Content Include="Content\sso\css\index.css" /> | ||||
@@ -7141,6 +7144,8 @@ | |||||
<Content Include="Areas\LR_NewWorkFlow\Views\NWFProcess\ContractFilingMonitor.cshtml" /> | <Content Include="Areas\LR_NewWorkFlow\Views\NWFProcess\ContractFilingMonitor.cshtml" /> | ||||
<Content Include="Areas\Permission\Views\Perm_FunctionVisit\IndexForCount.cshtml" /> | <Content Include="Areas\Permission\Views\Perm_FunctionVisit\IndexForCount.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\SchoolCalendar\ScheduleIndex.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\SchoolCalendar\ScheduleIndex.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuEnroll\Peichart.cshtml" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\StuEnroll\StatisticIndex.cshtml" /> | |||||
<Content Include="Areas\LR_Desktop\Views\MessageRind\UnreadIndex.cshtml" /> | <Content Include="Areas\LR_Desktop\Views\MessageRind\UnreadIndex.cshtml" /> | ||||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | <None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | ||||
<Content Include="Views\Login\Default-beifen.cshtml" /> | <Content Include="Views\Login\Default-beifen.cshtml" /> | ||||
@@ -42,6 +42,35 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
} | } | ||||
} | } | ||||
} | } | ||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// <summary> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<StuEnrollEntity> GetList(string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
return stuEnrollService.GetList(queryJson); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
public DataTable Execute(string sql) | |||||
{ | |||||
return stuEnrollService.Execute(sql); | |||||
} | |||||
public IEnumerable<StuEnrollEntity> AllStudent() | public IEnumerable<StuEnrollEntity> AllStudent() | ||||
{ | { | ||||
try | try | ||||
@@ -22,6 +22,14 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
/// <param name="queryJson">查询参数</param> | /// <param name="queryJson">查询参数</param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
IEnumerable<StuEnrollEntity> GetPageList(Pagination pagination, string queryJson); | IEnumerable<StuEnrollEntity> GetPageList(Pagination pagination, string queryJson); | ||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// <summary> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
IEnumerable<StuEnrollEntity> GetList(string queryJson); | |||||
DataTable Execute(string sql); | |||||
IEnumerable<StuEnrollEntity> AllStudent(); | IEnumerable<StuEnrollEntity> AllStudent(); | ||||
IEnumerable<Acc_DormitoryBuildEntity> GetDormitorys(Pagination pagination, string queryJson); | IEnumerable<Acc_DormitoryBuildEntity> GetDormitorys(Pagination pagination, string queryJson); | ||||
@@ -342,7 +342,263 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
} | } | ||||
} | } | ||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// <summary> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<StuEnrollEntity> GetList( string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
var strSql = new StringBuilder(); | |||||
strSql.Append("SELECT t.* "); | |||||
strSql.Append(" FROM StuEnroll t "); | |||||
strSql.Append(" WHERE 1=1 "); | |||||
var queryParam = queryJson.ToJObject(); | |||||
// 虚拟参数 | |||||
var dp = new DynamicParameters(new { }); | |||||
if (!queryParam["IDCard"].IsEmpty()) | |||||
{ | |||||
dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String); | |||||
strSql.Append(" AND t.IDCard Like @IDCard "); | |||||
} | |||||
if (!queryParam["Year"].IsEmpty()) | |||||
{ | |||||
dp.Add("Year", "%" + queryParam["Year"].ToString() + "%", DbType.String); | |||||
strSql.Append(" AND t.ClassNo Like @Year "); | |||||
} | |||||
//sql条件 | |||||
if (!queryParam["SqlParameter"].IsEmpty()) | |||||
{ | |||||
strSql.Append(queryParam["SqlParameter"].ToString()); | |||||
} | |||||
if (!queryParam["RegistrationNo"].IsEmpty()) | |||||
{ | |||||
dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String); | |||||
strSql.Append(" AND t.RegistrationNo Like @RegistrationNo "); | |||||
} | |||||
if (!queryParam["Admissions"].IsEmpty()) | |||||
{ | |||||
dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.Admissions = @Admissions "); | |||||
} | |||||
if (!queryParam["DeptNo"].IsEmpty()) | |||||
{ | |||||
dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.DeptNo = @DeptNo "); | |||||
} | |||||
if (!queryParam["MajorNo"].IsEmpty()) | |||||
{ | |||||
dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.MajorNo = @MajorNo "); | |||||
} | |||||
if (!queryParam["Grade"].IsEmpty()) | |||||
{ | |||||
dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.Grade = @Grade "); | |||||
} | |||||
if (!queryParam["ClassNo"].IsEmpty()) | |||||
{ | |||||
dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.ClassNo = @ClassNo "); | |||||
} | |||||
if (!queryParam["IsAllocation"].IsEmpty()) | |||||
{ | |||||
var IsAllocation = Convert.ToBoolean(queryParam["IsAllocation"].ToString()); | |||||
if (IsAllocation) | |||||
{ | |||||
strSql.Append(" AND (t.ClassNo IS NOT NULL AND t.ClassNo<>'')"); | |||||
} | |||||
else | |||||
{ | |||||
strSql.Append(" AND (t.ClassNo IS NULL OR t.ClassNo='')"); | |||||
} | |||||
} | |||||
if (!queryParam["IsAllocationDormitory"].IsEmpty()) | |||||
{ | |||||
var IsAllocation = Convert.ToBoolean(queryParam["IsAllocationDormitory"].ToString()); | |||||
if (IsAllocation) | |||||
{ | |||||
strSql.Append(" AND (t.DormitoryNo IS NOT NULL AND t.DormitoryNo<>'')"); | |||||
} | |||||
else | |||||
{ | |||||
strSql.Append(" AND (t.DormitoryNo IS NULL OR t.DormitoryNo='')"); | |||||
} | |||||
} | |||||
if (!queryParam["StuName"].IsEmpty()) | |||||
{ | |||||
dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); | |||||
strSql.Append(" AND t.StuName Like @StuName "); | |||||
} | |||||
if (!queryParam["Status"].IsEmpty()) | |||||
{ | |||||
dp.Add("Status", queryParam["Status"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.Status = @Status "); | |||||
} | |||||
if (!queryParam["Gender"].IsEmpty()) | |||||
{ | |||||
dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean); | |||||
strSql.Append(" AND t.Gender = @Gender "); | |||||
} | |||||
if (!queryParam["PayList"].IsEmpty()) | |||||
{ | |||||
strSql.Append(" AND t.Status>=3 AND t.Status<6 "); | |||||
} | |||||
if (!queryParam["IsCheckIn"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsCheckIn"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsCheckIn is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsCheckIn", queryParam["IsCheckIn"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsCheckIn = @IsCheckIn "); | |||||
} | |||||
} | |||||
if (!queryParam["IsSubsidize1"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsSubsidize1"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsSubsidize1 is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsSubsidize1", queryParam["IsSubsidize1"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsSubsidize1 = @IsSubsidize1 "); | |||||
} | |||||
} | |||||
if (!queryParam["IsMilitary"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsMilitary"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsMilitary is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsMilitary", queryParam["IsMilitary"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsMilitary = @IsMilitary "); | |||||
} | |||||
} | |||||
if (!queryParam["IsPay"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsPay"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsPay is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsPay", queryParam["IsPay"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsPay = @IsPay "); | |||||
} | |||||
} | |||||
if (!queryParam["IsMug"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsMug"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsMug is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsMug", queryParam["IsMug"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsMug = @IsMug "); | |||||
} | |||||
} | |||||
if (!queryParam["IsTakeCloths"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsTakeCloths"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsTakeCloths is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsTakeCloths", queryParam["IsTakeCloths"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsTakeCloths = @IsTakeCloths "); | |||||
} | |||||
} | |||||
if (!queryParam["IsQuantity"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsQuantity"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsQuantity is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsQuantity", queryParam["IsQuantity"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsQuantity = @IsQuantity "); | |||||
} | |||||
} | |||||
if (!queryParam["IsGetBeddingArticle"].IsEmpty()) | |||||
{ | |||||
if (queryParam["IsGetBeddingArticle"].ToString() == "null") | |||||
{ | |||||
strSql.Append(" AND t.IsGetBeddingArticle is null "); | |||||
} | |||||
else | |||||
{ | |||||
dp.Add("IsGetBeddingArticle", queryParam["IsGetBeddingArticle"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IsGetBeddingArticle = @IsGetBeddingArticle "); | |||||
} | |||||
} | |||||
//获取班主任所带的班级 | |||||
var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "班主任")?.F_RoleId; | |||||
var userInfo = LoginUserInfo.Get(); | |||||
var sqlClasses = ""; | |||||
if (!string.IsNullOrEmpty(roleid)) | |||||
{ | |||||
if (userInfo.roleIds.Contains(roleid)) | |||||
{ | |||||
var classes = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList(); | |||||
if (classes != null) | |||||
{ | |||||
foreach (var item in classes) | |||||
{ | |||||
sqlClasses += $"'{item}',"; | |||||
} | |||||
sqlClasses = sqlClasses.TrimEnd(','); | |||||
} | |||||
} | |||||
if (!string.IsNullOrEmpty(sqlClasses)) | |||||
{ | |||||
strSql.Append($" AND t.ClassNo IN({sqlClasses})"); | |||||
} | |||||
} | |||||
return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(strSql.ToString(), dp); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
public DataTable Execute(string sql) | |||||
{ | |||||
return this.BaseRepository("CollegeMIS").FindTable(sql); | |||||
} | |||||
public IEnumerable<StuEnrollEntity> AllStudent() | public IEnumerable<StuEnrollEntity> AllStudent() | ||||
{ | { | ||||