diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/HealthPunchStuController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/HealthPunchStuController.cs index 28bfe2bd0..bf05441db 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/HealthPunchStuController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/HealthPunchStuController.cs @@ -3,6 +3,7 @@ using System.Data; using Learun.Application.TwoDevelopment.EducationalAdministration; using System.Web.Mvc; using System.Collections.Generic; +using System.Linq; namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers { @@ -16,6 +17,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers public class HealthPunchStuController : MvcControllerBase { private HealthPunchStuIBLL healthPunchStuIBLL = new HealthPunchStuBLL(); + private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL(); #region 视图功能 @@ -46,6 +48,16 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers { return View(); } + /// + /// 表单页 + /// + /// + /// + [HttpGet] + public ActionResult StatisticsTeach() + { + return View(); + } #endregion #region 获取数据 @@ -109,6 +121,27 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers }; return Success(jsonData); } + /// + /// 获取页面显示列表数据 + /// + /// 分页参数 + /// 查询参数 + /// + [HttpGet] + [AjaxOnly] + public ActionResult GetStatisticsTeach(string pagination, string queryJson) + { + Pagination paginationobj = pagination.ToObject(); + var data = healthPunchStuIBLL.GetStatisticsTeach(paginationobj, queryJson); + var jsonData = new + { + rows = data, + total = paginationobj.total, + page = paginationobj.page, + records = paginationobj.records + }; + return Success(jsonData); + } #endregion #region 提交数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.cshtml index fbfdbe72f..3039de16f 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.cshtml +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.cshtml @@ -7,9 +7,9 @@
学生姓名
-
+
体温上报*
- +
打卡所在地址*
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.js index e7dc45a73..39be0e87c 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.js +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Form.js @@ -42,8 +42,19 @@ var bootstrap = function ($, learun) { strEntity: JSON.stringify($('body').lrGetFormData()) }; var Num = $('#Temperature').val(); - if (Num < 23 || Num > 44) { + var NumOne = Num.split('.'); + if (NumOne.length != 2) { + learun.alert.warning("请填写正确的体温!例如 : 36.0或37.5"); + return false; + } + if (Num < 33 || Num > 44) { learun.alert.warning("请填写正确的体温!"); + return false; + } + Num = Num.substring(2); + if (Num.length != 2) { + learun.alert.warning("请填写正确的体温!例如 : 36.0或37.5"); + return false; } $.lrSaveForm(top.$.rootUrl + '/EducationalAdministration/HealthPunchStu/PunchCard?keyValue=' + keyValue, postData, function (res) { // 保存成功后才回调 diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Statistics.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Statistics.js index 234984ac6..603abd0f3 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Statistics.js +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/Statistics.js @@ -19,9 +19,8 @@ var bootstrap = function ($, learun) { $('#datesearch').lrdate({ dfdata: [ { name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, - { name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, - { name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, - { name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } } + { name: '昨天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59', 'd', -1) } }, + { name: '前天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -2) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59', 'd', -2) } } ], // 月 mShow: false, @@ -35,7 +34,7 @@ var bootstrap = function ($, learun) { preyShow: false, yShow: false, // 默认 - dfvalue: '1', + dfvalue: '0', selectfn: function (begin, end) { startTime = begin; endTime = end; @@ -47,7 +46,7 @@ var bootstrap = function ($, learun) { }, 220, 400); $('#F_School').lrDataSourceSelect({ code: 'company', value: 'f_companyid', text: 'f_fullname' }); $('#IsStatus').lrselect({ - data: [{ text: "已打卡", value: "0" }, { text: "缺卡", value: "1" }, { text: "未打卡", value: "2" }], + data: [{ text: "未打卡", value: "0" }, { text: "缺卡", value: "1" }, { text: "已打卡", value: "2" }], text: "text", value: "value" }) @@ -148,9 +147,9 @@ var bootstrap = function ($, learun) { label: "打卡状态", name: "Num", width: 100, align: "left", formatter: function (cellvalue) { if (cellvalue == 0) { - return '缺卡'; + return '未打卡'; } else if (cellvalue < "3") { - return '未打卡'; + return '缺卡'; } else if (cellvalue == "3") { return "已打卡"; } @@ -159,7 +158,7 @@ var bootstrap = function ($, learun) { ], mainId: 'ID', isPage: true, - sidx: 'MajorNo asc,ClassNo asc', + sidx: 'DKDate desc,MajorNo asc,ClassNo asc', }); page.search(); diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.cshtml new file mode 100644 index 000000000..07768b4c1 --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.cshtml @@ -0,0 +1,42 @@ +@{ + ViewBag.Title = "健康打卡时段"; + Layout = "~/Views/Shared/_Index.cshtml"; +} +
+
+
+
+
+
+
+
+
+
+
+
+
学工号
+ +
+
+
姓名
+ +
+
+
打卡状态
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.js") diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.js new file mode 100644 index 000000000..3038e1d0b --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchStu/StatisticsTeach.js @@ -0,0 +1,147 @@ +/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) + * Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + * 创建人:超级管理员 + * 日 期:2022-06-17 09:17 + * 描 述:健康打卡时段 + */ +var refreshGirdData; +var bootstrap = function ($, learun) { + "use strict"; + var startTime; + var endTime; + var page = { + init: function () { + page.initGird(); + page.bind(); + }, + bind: function () { + // 时间搜索框 + $('#datesearch').lrdate({ + dfdata: [ + { name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, + { name: '昨天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59', 'd', -1) } }, + { name: '前天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -2) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59', 'd', -2) } } + ], + // 月 + mShow: false, + premShow: false, + // 季度 + jShow: false, + prejShow: false, + // 年 + ysShow: false, + yxShow: false, + preyShow: false, + yShow: false, + // 默认 + dfvalue: '0', + selectfn: function (begin, end) { + startTime = begin; + endTime = end; + page.search(); + } + }); + $('#multiple_condition_query').lrMultipleQuery(function (queryJson) { + page.search(queryJson); + }, 220, 400); + $('#IsStatus').lrselect({ + data: [{ text: "未打卡", value: "0" }, { text: "缺卡", value: "1" }, { text: "已打卡", value: "2" }], + text: "text", + value: "value" + }) + // 刷新 + $('#lr_refresh').on('click', function () { + location.reload(); + }); + }, + // 初始化列表 + initGird: function () { + $('#gridtable').jfGrid({ + url: top.$.rootUrl + '/EducationalAdministration/HealthPunchStu/GetStatisticsTeach', + headData: [ + { + label: "院校", name: "F_School", width: 130, 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: "MajorNo", width: 130, align: "left", + formatterAsync: function (callback, value, row, op, $cell) { + learun.clientdata.getAsync('custmerData', { + url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo', + key: value, + keyId: 'majorno', + callback: function (_data) { + callback(_data['majorname']); + } + }); + } + }, + { + label: "班级", name: "ClassNo", width: 90, align: "left", + formatterAsync: function (callback, value, row, op, $cell) { + learun.clientdata.getAsync('custmerData', { + url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj', + key: value, + keyId: 'classno', + callback: function (_data) { + callback(_data['classname']); + } + }); + } + }, + { label: "学工号", name: "StuNo", width: 90, align: "left" }, + { label: "学生姓名", name: "StuName", width: 150, align: "left" }, + { label: "联系方式", name: "Phone", width: 100, align: "left" }, + { + label: "日期", name: "DKDate", width: 90, align: "left", + formatter: function (cellvalue) { + return learun.formatDate(cellvalue, 'yyyy-MM-dd'); + } + }, + { label: "早打卡地址", name: "Address1", width: 200, align: "left" }, + { label: "午打卡地址", name: "Address2", width: 200, align: "left" }, + { label: "晚打卡地址", name: "Address3", width: 200, align: "left" }, + { label: "早体温", name: "Temperature1", width: 80, align: "left" }, + { label: "午体温", name: "Temperature2", width: 80, align: "left" }, + { label: "晚体温", name: "Temperature3", width: 80, align: "left" }, + { + label: "打卡状态", name: "Num", width: 100, align: "left", + formatter: function (cellvalue) { + if (cellvalue == 0) { + return '未打卡'; + } else if (cellvalue < "3") { + return '缺卡'; + } else if (cellvalue == "3") { + return "已打卡"; + } + } + }, + ], + mainId: 'ID', + isPage: true, + sidx: 'DKDate desc,MajorNo asc,ClassNo asc', + + }); + page.search(); + }, + search: function (param) { + param = param || {}; + param.StartTime = startTime; + param.EndTime = endTime; + $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); + } + }; + refreshGirdData = function () { + $('#gridtable').jfGridSet('reload'); + }; + page.init(); +} diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.cshtml index e2d6315e3..ffa2263f2 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.cshtml +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.cshtml @@ -15,7 +15,7 @@
描述*
-
+ diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.js index 8050ebec4..89bdab911 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.js +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/HealthPunchTime/Form.js @@ -17,7 +17,7 @@ var bootstrap = function ($, learun) { bind: function () { $('#Description').lrDataItemSelect({ code: 'HealthPunchType' }); $('#CheckMark').lrDataItemSelect({ code: 'YesOrNoInt' }); - $('#CheckMark').lrselectSet("1"); + $('#CheckMark').lrselectSet("0"); $('#CreateUser')[0].lrvalue = learun.clientdata.get(['userinfo']).userId; $('#CreateUser').val(learun.clientdata.get(['userinfo']).realName); $('#CreateTime').val(learun.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')); diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj index c0ffaf7b2..dce78cdaf 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj @@ -1028,6 +1028,7 @@ + @@ -7864,6 +7865,7 @@ + diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomService.cs index 9832e5dc9..7dec2cc0d 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomService.cs @@ -439,7 +439,7 @@ where l.EPLId='{EPLId}'"; from Exam_ExamPlanRoom a join Exam_ExamPlanLesson b on a.EPLId = b.EPLId where b.EPId = '{EPId}'"); - + db.BeginTrans(); //老师时间管理 var examTeacherTime = db.FindList(); @@ -454,9 +454,15 @@ where l.EPLId='{EPLId}'"; foreach (var epLesson in examLessonList) { List empnos = new List(); + var LessonNo = epLesson.LessonNo; + if (LessonNo.Contains("(")) + { + LessonNo = LessonNo.Split('(')[0]; + } + //查询课程信息 var lessoninfo = db.FindList($@"select top 1 t.LessonTypeName,l.* from lessoninfo l - join [dbo].[CdLessonType] t on l.LessonTypeId = t.LTId where l.LessonNo='{epLesson.LessonNo}' ").FirstOrDefault(); + join [dbo].[CdLessonType] t on l.LessonTypeId = t.LTId where l.LessonNo='{LessonNo}' ").FirstOrDefault(); if (lessoninfo != null && !lessoninfo.LessonTypeName.Contains("公共") && !lessoninfo.LessonTypeName.Contains("公开")) { //如果是专业课,监考老师不能添加这门课的代课老师 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_InvigilateTeacher/Exam_InvigilateTeacherService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_InvigilateTeacher/Exam_InvigilateTeacherService.cs index a1b2a8942..d379edd94 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_InvigilateTeacher/Exam_InvigilateTeacherService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_InvigilateTeacher/Exam_InvigilateTeacherService.cs @@ -62,28 +62,87 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } if (!queryParam["EPLId"].IsEmpty()) { - //排考安排课程表Id - var ELEntity = this.BaseRepository("CollegeMIS").FindList($@"select * from Exam_ExamPlan where EPId=( -select EPId from Exam_ExamPlanLesson where EPLId='{queryParam["EPLId"].ToString()}')").FirstOrDefault(); + //考试课程数据 + var EPLEntity = this.BaseRepository("CollegeMIS").FindEntity(queryParam["EPLId"].ToString()); + //排考安排课程表 获取学年学期 + var ELEntity = this.BaseRepository("CollegeMIS").FindEntity(EPLEntity.EPId); if (ELEntity != null) { strSql.Append($" AND t.AcademicYearNo = '{ELEntity.AcademicYearNo}' "); strSql.Append($" AND t.Semester = '{ELEntity.Semester}' "); } - - var empSql = $@"SELECT DISTINCT EPLId, STUFF( (SELECT ',' + empno FROM Exam_ExamPlanRoom WHERE EPLId = T.EPLId FOR XML PATH('') ), 1, 1, '') AS empno FROM Exam_ExamPlanRoom AS T - where EPLId ='{queryParam["EPLId"].ToString()}'"; + //同一考试课程下考场的监考老师不重复 + var empSql = "SELECT DISTINCT EPLId, STUFF( (SELECT ',' + empno FROM Exam_ExamPlanRoom WHERE 1=1 "; if (!queryParam["EPRId"].IsEmpty()) { - empSql += $" and EPRId<>'{queryParam["EPRId"].ToString()}'"; + empSql += $" and EPRId<>'{queryParam["EPRId"].ToString()}'"; } + empSql += $@" and EPLId = T.EPLId FOR XML PATH('') ), 1, 1, '') AS empno FROM Exam_ExamPlanRoom AS T + where EPLId ='{queryParam["EPLId"].ToString()}'"; var obj = this.BaseRepository("CollegeMIS").FindList(empSql).Select(x => x.EmpNo).Distinct().ToList(); if (obj != null && obj.Count > 0) { var empNo = string.Join("','", obj[0].ToString().Split(',').Distinct()); strSql.Append($" AND t.EmpNo not in ('{empNo}')"); } + + //筛选掉考试时间冲突的老师和专业课的代课老师 + List empnos = new List(); + var LessonNo = EPLEntity.LessonNo; + if (LessonNo.Contains("(")) + { + LessonNo = LessonNo.Split('(')[0]; + } + //查询课程信息 + var lessoninfo = this.BaseRepository("CollegeMIS").FindList($@"select top 1 t.LessonTypeName,l.* from lessoninfo l + join [dbo].[CdLessonType] t on l.LessonTypeId = t.LTId where l.LessonNo='{LessonNo}' ").FirstOrDefault(); + if (lessoninfo != null && !lessoninfo.LessonTypeName.Contains("公共") && !lessoninfo.LessonTypeName.Contains("公开")) + { + //如果是专业课,监考老师不能添加这门课的代课老师 + var teachClass = this.BaseRepository("CollegeMIS").FindList( + $"select distinct EmpNo from TeachClass where AcademicYearNo='{ELEntity.AcademicYearNo}' and Semester='{ELEntity.Semester}' and lessonno='{LessonNo}'"); + var empno = teachClass.Select(x => x.EmpNo).ToList(); + empnos = empnos.Union(empno).ToList(); + } + + if (EPLEntity.ExamDate != null && EPLEntity.ExamTime.Contains("-")) + { + //当前考试课程考试时间 + var examtimeStart = Convert.ToDateTime(EPLEntity.ExamDate.Value.ToString("yyyy-MM-dd") + " " + (EPLEntity.ExamTime).Split('-')[0]); + var examtimeEnd = Convert.ToDateTime(EPLEntity.ExamDate.Value.ToString("yyyy-MM-dd") + " " + EPLEntity.ExamTime.Split('-')[1]); + + //查询这个时间段不能监考的老师 + var empnoTime = this.BaseRepository("CollegeMIS").FindList(x => + (examtimeStart >= x.ExamTimeStart && examtimeStart <= x.ExamTimeEnd) || (examtimeEnd >= x.ExamTimeStart && examtimeEnd <= x.ExamTimeEnd)).Select(x => x.EmpNo).ToList(); + foreach (var empno in empnoTime) + { + empnos = empnos.Union(empno.Split(',').ToList()).ToList(); + } + + //查询已安排的监考老师数据 + var examRoomByDateSql = $@"select a.EmpNo,b.ExamDate,b.ExamTime from [dbo].[Exam_ExamPlanRoom] a + join Exam_ExamPlanLesson b on a.EPLId = b.EPLId + where a.EmpNo is not null and b.ExamDate='{EPLEntity.ExamDate}' and a.EPLId<>'{queryParam["EPLId"].ToString()}'"; + var examRoomsByDateList = this.BaseRepository("CollegeMIS").FindList(examRoomByDateSql).ToList(); + foreach (var examRoom in examRoomsByDateList) + { + var examRoomTime1 = Convert.ToDateTime(examRoom.ExamDate.Value.ToString("yyyy-MM-dd") + " " + examRoom.ExamTime.Split('-')[0]); + var examRoomTime2 = Convert.ToDateTime(examRoom.ExamDate.Value.ToString("yyyy-MM-dd") + " " + examRoom.ExamTime.Split('-')[1]); + + //此处判断当前考场时间是否在考试课程排考时间的开始前30分钟到结束后30分钟 + if ((examRoomTime1 >= examtimeStart.AddMinutes(-30) && examRoomTime1 <= examtimeEnd.AddMinutes(30)) || (examRoomTime2 >= examtimeStart.AddMinutes(-30) && examRoomTime2 <= examtimeEnd.AddMinutes(30))) + { + empnos.Add(examRoom.EmpNo); + } + } + if (empnos.Count() > 0) + { + string nos = string.Join("','", empnos); + strSql.Append($" AND t.EmpNo not in ('{nos}')"); + } + } + } if (!queryParam["SqlParameter"].IsEmpty()) { @@ -111,7 +170,7 @@ select EPId from Exam_ExamPlanLesson where EPLId='{queryParam["EPLId"].ToString( /// /// public IEnumerable GetList(string AcademicYearNo, int? Semester) - { + { try { return this.BaseRepository("CollegeMIS").FindList(x => x.AcademicYearNo == AcademicYearNo && x.Semester == Semester); diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuBLL.cs index 5735857ab..4322a295a 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuBLL.cs @@ -91,6 +91,30 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } + /// + /// 统计数据 + /// + /// 分页参数 + /// 查询参数 + /// + public IEnumerable GetStatisticsTeach(Pagination pagination, string queryJson) + { + try + { + return healthPunchStuService.GetStatisticsTeach(pagination, queryJson); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } #endregion #region 提交数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuEntity.cs index 430bf6b2a..d1c82f227 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuEntity.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuEntity.cs @@ -156,6 +156,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration [NotMapped] public string Num { get; set; } #endregion + + public class StuList + { + public string StuName { get; set; } + public string StuNo { get; set; } + } } } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuIBLL.cs index e8eeb7614..c4c326796 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuIBLL.cs @@ -34,6 +34,13 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// /// IEnumerable GetStatistics(Pagination pagination, string queryJson); + /// + /// 教师统计数据 + /// + /// + /// + /// + IEnumerable GetStatisticsTeach(Pagination pagination, string queryJson); #endregion #region 提交数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuService.cs index f68f987ea..22b6a674e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/HealthPunchStu/HealthPunchStuService.cs @@ -4,6 +4,7 @@ using Learun.Util; using System; using System.Collections.Generic; using System.Data; +using System.Linq; using System.Text; namespace Learun.Application.TwoDevelopment.EducationalAdministration @@ -90,7 +91,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration var queryParam = queryJson.ToJObject(); // 虚拟参数 string sql1 = " "; - + string sql2 = " "; if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) { sql1 = " and DkDate >= '" + queryParam["StartTime"].ToDate() @@ -98,41 +99,171 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } if (!queryParam["F_School"].IsEmpty()) { - sql1 = " and F_School ='" + queryParam["F_School"].ToString() + "' "; + sql2 = " and F_School ='" + queryParam["F_School"].ToString() + "' "; } if (!queryParam["MajorNo"].IsEmpty()) { - sql1 += " and MajorNo ='" + queryParam["MajorNo"].ToString() + "'"; + sql2 += " and MajorNo ='" + queryParam["MajorNo"].ToString() + "'"; } if (!queryParam["ClassNo"].IsEmpty()) { - sql1 += " and ClassNo ='" + queryParam["ClassNo"].ToString() + "'"; + sql2 += " and ClassNo ='" + queryParam["ClassNo"].ToString() + "'"; } if (!queryParam["StuNo"].IsEmpty()) { - sql1 += " and StuNo like '%" + queryParam["StuNo"].ToString() + "%'"; + sql2 += " and StuNo like '%" + queryParam["StuNo"].ToString() + "%'"; } if (!queryParam["StuName"].IsEmpty()) { - sql1 += " and StuName like '%" + queryParam["StuName"].ToString() + "%'"; + sql2 += " and StuName like '%" + queryParam["StuName"].ToString() + "%'"; } if (!queryParam["IsStatus"].IsEmpty()) { - sql1 = " and t.num = '" + queryParam["IsStatus"].ToString() + "' "; + string Num = queryParam["IsStatus"].ToString(); + if (Num == "0") + { + sql2 += " and t.num = '" + Num + "' "; + } + else if (Num == "1") + { + sql2 += " and t.num < '3' and t.num <> '0' "; + } + else if (Num == "2") + { + sql2 += " and t.num = '3' "; + } + } + + strSql.Append(@" select * from ( + select zb.F_SchoolId as F_School,zb.MajorNo,zb.ClassNo,zb.StuNo,zb.StuName,zb.mobile,isnull(fb.DkDate,Getdate()) as DkDate, + fb.Address1,fb.Address2,fb.Address3,fb.Temperature1,fb.Temperature2,fb.Temperature3,isnull(fb.Num,0) as Num from StuInfoBasic zb + left join ( + select hps.*,aa.address as Address1,aa.Temperature as Temperature1 ,bb.address as Address2,bb.Temperature as Temperature2,cc.address as Address3 ,cc.Temperature + as Temperature3,dd.Num from ( + select StuNo,StuName,DkDate from HealthPunchStu hps where 1=1 " + sql1 + ""); + strSql.Append(@" group by StuNo,StuName,DkDate) hps + left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); + strSql.Append(@" ) AA on AA.StuNo=hps.StuNo and AA.StuName=hps.StuName and AA.dkType=1 + left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); + strSql.Append(@" ) BB on BB.StuNo=hps.Stuno and BB.StuName=hps.StuName and BB.dkType=2 + left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); + strSql.Append(@" ) CC on CC.StuNo=hps.Stuno and CC.StuName=hps.StuName and CC.dkType=3 + left join (select Stuno,Count(*) as num from HealthPunchStu hps where 1=1 " + sql1 + " "); + strSql.Append(@" group by Stuno ) dd on dd.StuNo=hps.Stuno + ) fb on fb.Stuno = zb.stuno and fb.StuName = zb.StuName + )t where 1= 1 " + sql1 + sql2 + " "); + return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); } - strSql.Append(@" select t.* from ( select zb.F_SchoolId as F_School,zb.MajorNo,zb.ClassNo,zb.StuNo,zb.StuName,zb.mobile,isnull(fb.DkDate,Getdate()) as DkDate, - fb.Address1,fb.Address2,fb.Address3,fb.Temperature1,fb.Temperature2,fb.Temperature3,isnull(fb.Num,0) as Num from StuInfoBasic zb - left join ( - select hps.*,aa.address as Address1,aa.Temperature as Temperature1 ,bb.address as Address2,bb.Temperature as Temperature2,cc.address as Address3 ,cc.Temperature - as Temperature3,dd.Num from ( - select StuNo,StuName,DkDate from HealthPunchStu hps group by StuNo,StuName,DkDate) hps - left join (select * from HealthPunchStu ) AA on AA.StuNo=hps.StuNo and AA.StuName=hps.StuName and AA.dkType=1 - left join (select * from HealthPunchStu ) BB on BB.StuNo=hps.Stuno and BB.StuName=hps.StuName and BB.dkType=2 - left join (select * from HealthPunchStu ) CC on CC.StuNo=hps.Stuno and CC.StuName=hps.StuName and CC.dkType=3 - left join (select Stuno,Count(*) as num from HealthPunchStu hps group by Stuno ) dd on dd.StuNo=hps.Stuno - ) fb on fb.Stuno = zb.stuno and fb.StuName = zb.StuName --where fb.num >= '1' - )t where 1=1 " + sql1 + " "); + } + } + /// + /// 获取页面显示列表数据 + /// + /// 查询参数 + /// 查询参数 + /// + public IEnumerable GetStatisticsTeach(Pagination pagination, string queryJson) + { + try + { + var account = LoginUserInfo.Get().account; + var classinfo = this.BaseRepository("CollegeMIS").FindList(x => x.ClassDiredctorNo == account).ToList(); + var strSql = new StringBuilder(); + var queryParam = queryJson.ToJObject(); + // 虚拟参数 + string sql1 = " "; + string sql2 = " "; + if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) + { + sql1 = " and DkDate >= '" + queryParam["StartTime"].ToDate() + + "' and DkDate <= '" + queryParam["EndTime"].ToDate() + "' "; + } + if (classinfo.Count > 0) + { + var classno = classinfo.FirstOrDefault(); + if (classinfo.Count == 1) + { + sql2 += " and ClassNo ='" + classno.ClassNo + "'"; + } + else + { + sql2 += " and ("; + for (int i = 0; i < classinfo.Count; i++) + { + if (i == 0) + { + sql2 += " classno ='" + classinfo[i].ClassNo + "' "; + } + else + { + sql2 += " or classno ='" + classinfo[i].ClassNo + "' "; + } + } + sql2 += ")"; + } + } + else + { + sql2 += " and t.num = '-1' "; + } + if (!queryParam["ClassNo"].IsEmpty()) + { + sql2 += " and ClassNo ='" + queryParam["ClassNo"].ToString() + "'"; + } + if (!queryParam["StuNo"].IsEmpty()) + { + sql2 += " and StuNo like '%" + queryParam["StuNo"].ToString() + "%'"; + } + if (!queryParam["StuName"].IsEmpty()) + { + sql2 += " and StuName like '%" + queryParam["StuName"].ToString() + "%'"; + } + if (!queryParam["IsStatus"].IsEmpty()) + { + string Num = queryParam["IsStatus"].ToString(); + if (Num == "0") + { + sql2 += " and t.num = '" + Num + "' "; + } + else if (Num == "1") + { + sql2 += " and t.num < '3' and t.num <> '0' "; + } + else if (Num == "2") + { + sql2 += " and t.num = '3' "; + } + } + + strSql.Append(@" select * from ( + select zb.F_SchoolId as F_School,zb.MajorNo,zb.ClassNo,zb.StuNo,zb.StuName,zb.mobile,isnull(fb.DkDate,Getdate()) as DkDate, + fb.Address1,fb.Address2,fb.Address3,fb.Temperature1,fb.Temperature2,fb.Temperature3,isnull(fb.Num,0) as Num from StuInfoBasic zb + left join ( + select hps.*,aa.address as Address1,aa.Temperature as Temperature1 ,bb.address as Address2,bb.Temperature as Temperature2,cc.address as Address3 ,cc.Temperature + as Temperature3,dd.Num from ( + select StuNo,StuName,DkDate from HealthPunchStu hps where 1=1 " + sql1 + ""); + strSql.Append(@" group by StuNo,StuName,DkDate) hps + left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); + strSql.Append(@" ) AA on AA.StuNo=hps.StuNo and AA.StuName=hps.StuName and AA.dkType=1 + left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); + strSql.Append(@" ) BB on BB.StuNo=hps.Stuno and BB.StuName=hps.StuName and BB.dkType=2 + left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); + strSql.Append(@" ) CC on CC.StuNo=hps.Stuno and CC.StuName=hps.StuName and CC.dkType=3 + left join (select Stuno,Count(*) as num from HealthPunchStu hps where 1=1 " + sql1 + " "); + strSql.Append(@" group by Stuno ) dd on dd.StuNo=hps.Stuno + ) fb on fb.Stuno = zb.stuno and fb.StuName = zb.StuName + )t where 1= 1 " + sql1 + sql2 + " "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); } catch (Exception ex)