Commit 752e5c15 authored by 吴春's avatar 吴春

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents f99ccbc4 36223abf
......@@ -461,6 +461,21 @@ namespace Edu.Common
}
}
/// <summary>
/// 连续缺课多少课时
/// </summary>
public static int AbsentHours
{
get
{
int.TryParse(ReadConfigKey("AbsentHours"), out int AbsentHours);
if (AbsentHours == 0)
{
AbsentHours = 12;
}
return AbsentHours;
}
}
/// <summary>
/// 消息推送AppId
......
......@@ -5,7 +5,7 @@ using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 教室管理实体类
/// 班级学员签到实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
......@@ -78,6 +78,16 @@ namespace Edu.Model.Entity.Course
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 当前抵扣课时
/// </summary>
public decimal CurrentDeductionHours { get; set; }
/// <summary>
/// 是否连续缺课12课时
/// </summary>
public int IsAbsentHours { get; set; }
/// <summary>
/// 补课状态(1-正常,2-已处理,3-未处理)
/// </summary>
......
......@@ -5,7 +5,10 @@ using Edu.Model.Entity.Course;
namespace Edu.Model.ViewModel.Course
{
public class RB_Class_Check_ViewModel: RB_Class_Check
/// <summary>
/// 班级学员签到视图实体类
/// </summary>
public class RB_Class_Check_ViewModel : RB_Class_Check
{
/// <summary>
/// 【查询使用】
......@@ -35,5 +38,69 @@ namespace Edu.Model.ViewModel.Course
/// 学员名称
/// </summary>
public string GuestName { get; set; }
/// <summary>
/// 学员状态
/// </summary>
public int GuestState { get; set; }
/// <summary>
/// 学员状态
/// </summary>
public string GuestStateStr
{
get
{
string str = "";
switch (this.GuestState)
{
case 1: str = "正常"; break;
case 2: str = "退学"; break;
case 3: str = "申请退学中"; break;
case 4: str = "驳回申请"; break;
case 5: str = "停课"; break;
}
return str;
}
}
/// <summary>
/// 班级名称
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 课程名称
/// </summary>
public string CourseName { get; set; }
/// <summary>
/// 教室名称
/// </summary>
public string RoomName { get; set; }
/// <summary>
/// 老师名称
/// </summary>
public string TeacherName { get; set; }
/// <summary>
/// 处理状态字符串
/// </summary>
public string MakeUpStatusStr
{
get
{
string str = "";
switch (this.MakeUpStatus)
{
case 1:str = "正常";break;
case 2: str = "已处理"; break;
case 3: str = "未处理"; break;
}
return str;
}
}
}
}
This diff is collapsed.
......@@ -729,6 +729,70 @@ namespace Edu.WebApi.Controllers.Course
}
/// <summary>
/// 获取缺课分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAbsentPage()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new RB_Class_Check_ViewModel()
{
CheckStatus = 1,
IsAbsentHours = 1,
MakeUpStatus = base.ParmJObj.GetInt("MakeUpStatus"),
GuestName=base.ParmJObj.GetStringValue("GuestName"),
ClassName= base.ParmJObj.GetStringValue("ClassName"),
CourseName = base.ParmJObj.GetStringValue("CourseName"),
TeacherName = base.ParmJObj.GetStringValue("TeacherName"),
RoomName = base.ParmJObj.GetStringValue("RoomName"),
StartDate=base.ParmJObj.GetStringValue("StartDate"),
EndDate = base.ParmJObj.GetStringValue("EndDate"),
};
query.Group_Id = base.UserInfo.Group_Id;
List<object> result = new List<object>();
var list = classModule.GetClassCheckPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
result.Add(new
{
item.ClassCheckId,
item.OrderGuestId,
item.GuestName,
item.GuestState,
item.GuestStateStr,
item.ClassId,
item.ClassName,
item.CourseName,
item.School_Id,
item.TeacherId,
item.TeacherName,
item.ClassRoomId,
item.RoomName,
ClassDate=Common.ConvertHelper.FormatDate(item.ClassDate),
item.MakeUpStatus,
item.MakeUpStatusStr
});
}
pageModel.Count = rowsCount;
pageModel.PageData = result;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 修改补课状态
/// </summary>
/// <returns></returns>
public ApiResult SetMakeUpStatus()
{
int MakeUpStatus = base.ParmJObj.GetInt("MakeUpStatus");
int ClassCheckId = base.ParmJObj.GetInt("ClassCheckId");
int GuestId = base.ParmJObj.GetInt("GuestId");
bool flag= classModule.SetMakeUpStatusModule(MakeUpStatus, ClassCheckId, GuestId);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取班级日志
/// </summary>
......
......@@ -34,7 +34,7 @@ namespace Edu.WebApi.Timers
}
/// <summary>
/// 防止重
/// 防止重复提交
/// </summary>
private static int inTimer = 0;
private static int inTimer2 = 0;
......@@ -91,6 +91,7 @@ namespace Edu.WebApi.Timers
/// <param name="e"></param>
public static void DealDuty(object sender, System.Timers.ElapsedEventArgs e)
{
double addhours = 1.5;
if (Interlocked.Exchange(ref inTimer2, 1) == 0)
{
var list = dutyPlanModule.GetDutyPlanPageModule(1, 20, out _, new Model.ViewModel.Duty.RB_Duty_Plan_ViewModel()
......@@ -104,8 +105,8 @@ namespace Edu.WebApi.Timers
{
foreach (var subItem in item.PlanDetails)
{
var endTime = Convert.ToDateTime((Common.ConvertHelper.FormatDate(item.Date) + " " + subItem.EndTime)).AddHours(2);
if (subItem.Status== Common.Enum.Duty.DutyStatusEnum.NoStart && endTime < DateTime.Now)
var endTime = Convert.ToDateTime((Common.ConvertHelper.FormatDate(item.Date) + " " + subItem.EndTime)).AddHours(addhours);
if (subItem.Status == Common.Enum.Duty.DutyStatusEnum.NoStart && endTime < DateTime.Now)
{
dutyPlanModule.UpdateNoDutyModule(subItem.Id);
}
......@@ -113,7 +114,7 @@ namespace Edu.WebApi.Timers
}
}
var list2= dutyPlanModule.GetDutyPlanPageModule(1, 20, out _, new Model.ViewModel.Duty.RB_Duty_Plan_ViewModel()
var list2 = dutyPlanModule.GetDutyPlanPageModule(1, 20, out _, new Model.ViewModel.Duty.RB_Duty_Plan_ViewModel()
{
QDutyStatus = 1,
QEndDate = Common.ConvertHelper.FormatDate(DateTime.Now)
......@@ -122,7 +123,7 @@ namespace Edu.WebApi.Timers
{
foreach (var subItem in item.PlanDetails)
{
var endTime = Convert.ToDateTime((Common.ConvertHelper.FormatDate(item.Date) + " " + subItem.EndTime)).AddHours(2);
var endTime = Convert.ToDateTime((Common.ConvertHelper.FormatDate(item.Date) + " " + subItem.EndTime)).AddHours(addhours);
if (subItem.Status == Common.Enum.Duty.DutyStatusEnum.DutyIng && endTime < DateTime.Now)
{
dutyPlanModule.UpdateDutyFinishedModule(subItem.Id);
......@@ -132,6 +133,5 @@ namespace Edu.WebApi.Timers
Interlocked.Exchange(ref inTimer2, 0);
}
}
}
}
}
\ No newline at end of file
{
"ConnectionStrings": {
"DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient",
"FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnectionPName": "MySql.Data.MySqlClient",
"DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DataStatisticsConnectionPName": "MySql.Data.MySqlClient",
"LogConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_sys;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"LogConnectionPName": "MySql.Data.MySqlClient"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"SettlementRate": "0.60",
"JwtSecretKey": "@VIITTOREBORN*2018",
"JwtExpirTime": 86400,
"IsSendMsg": 2,
"AllowedHosts": "*",
"OpenValidation": "False",
"UploadSiteUrl": "http://192.168.1.36:8120",
"ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com",
"ErpViewFileSiteUrl": "http://imgfile.oytour.com",
"Mongo": "mongodb://47.96.25.130:27017",
"MongoDBName": "Edu",
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.1.13:8083/api/Mall/InsertFinanceBatchForMallIn",
"IncomeFinanceApi": "http://192.168.20.9:8083/api/Mall/InsertFinanceBatchForMallOut",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址
"FinanceDateBase": "test_reborn_finance",
"RabbitMqConfig": {
"HostName": "47.96.25.130",
"VirtualHost": "/",
"Port": 5672,
"UserName": "guest",
"Password": "viitto2019",
"QueenName": "vt_sys_message_test"
},
"RedisSetting": {
"RedisServer": "47.96.23.199",
"RedisPort": "6379",
"RedisPwd": "Viitto2018"
},
"VirtualDirectory": "WebFile",
//未填写 未打分 下降比例
"OKRMatterValue": "30,100,100",
//是否是线上环境
"IsOnline": false,
//退课流程编号
"BackClassFlowId": 1,
//分区校长岗位编号
"SchoolPostId": 3,
//教务长
"JiaoWuZhang": 8,
//留学就业部门主管审核编号[王涛]
"StudyAbroadDirectorId": 64,
//留学就业部门负责人审核编号[姚顺先]
"StudyAbroadManagerId": 52,
//合同默认抬头
"ContractDefaultTitle": "JH-DZ-CD-",
//消息推送AppId
"PushAppId": "JiaHeJiaoYu",
//是否推送消息
"IsPushMessage": "1",
//超过下班时间60分钟不能打卡
"MoreThanMinutes": 60
"ConnectionStrings": {
"DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient",
"FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnectionPName": "MySql.Data.MySqlClient",
"DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DataStatisticsConnectionPName": "MySql.Data.MySqlClient",
"LogConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_sys;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"LogConnectionPName": "MySql.Data.MySqlClient"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"SettlementRate": "0.60",
"JwtSecretKey": "@VIITTOREBORN*2018",
"JwtExpirTime": 86400,
"IsSendMsg": 2,
"AllowedHosts": "*",
"OpenValidation": "False",
"UploadSiteUrl": "http://192.168.1.36:8120",
"ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com",
"ErpViewFileSiteUrl": "http://imgfile.oytour.com",
"Mongo": "mongodb://47.96.25.130:27017",
"MongoDBName": "Edu",
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.1.13:8083/api/Mall/InsertFinanceBatchForMallIn",
"IncomeFinanceApi": "http://192.168.20.9:8083/api/Mall/InsertFinanceBatchForMallOut",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址
"FinanceDateBase": "test_reborn_finance",
"RabbitMqConfig": {
"HostName": "47.96.25.130",
"VirtualHost": "/",
"Port": 5672,
"UserName": "guest",
"Password": "viitto2019",
"QueenName": "vt_sys_message_test"
},
"RedisSetting": {
"RedisServer": "47.96.23.199",
"RedisPort": "6379",
"RedisPwd": "Viitto2018"
},
"VirtualDirectory": "WebFile",
//未填写 未打分 下降比例
"OKRMatterValue": "30,100,100",
//是否是线上环境
"IsOnline": false,
//退课流程编号
"BackClassFlowId": 1,
//分区校长岗位编号
"SchoolPostId": 3,
//教务长
"JiaoWuZhang": 8,
//留学就业部门主管审核编号[王涛]
"StudyAbroadDirectorId": 64,
//留学就业部门负责人审核编号[姚顺先]
"StudyAbroadManagerId": 52,
//合同默认抬头
"ContractDefaultTitle": "JH-DZ-CD-",
//消息推送AppId
"PushAppId": "JiaHeJiaoYu",
//是否推送消息
"IsPushMessage": "1",
//超过下班时间60分钟不能打卡
"MoreThanMinutes": 60,
//连续缺课课时
"AbsentHours": 12
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment