Commit 4610f6d4 authored by 黄奎's avatar 黄奎

页面修改

parent 20287ec3
...@@ -461,6 +461,21 @@ namespace Edu.Common ...@@ -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> /// <summary>
/// 消息推送AppId /// 消息推送AppId
......
...@@ -5,7 +5,7 @@ using VT.FW.DB; ...@@ -5,7 +5,7 @@ using VT.FW.DB;
namespace Edu.Model.Entity.Course namespace Edu.Model.Entity.Course
{ {
/// <summary> /// <summary>
/// 教室管理实体类 /// 班级学员签到实体类
/// </summary> /// </summary>
[Serializable] [Serializable]
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
...@@ -78,6 +78,16 @@ namespace Edu.Model.Entity.Course ...@@ -78,6 +78,16 @@ namespace Edu.Model.Entity.Course
/// </summary> /// </summary>
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary>
/// 当前抵扣课时
/// </summary>
public decimal CurrentDeductionHours { get; set; }
/// <summary>
/// 是否连续缺课12课时
/// </summary>
public int IsAbsentHours { get; set; }
/// <summary> /// <summary>
/// 补课状态(1-正常,2-已处理,3-未处理) /// 补课状态(1-正常,2-已处理,3-未处理)
/// </summary> /// </summary>
......
...@@ -5,7 +5,10 @@ using Edu.Model.Entity.Course; ...@@ -5,7 +5,10 @@ using Edu.Model.Entity.Course;
namespace Edu.Model.ViewModel.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> /// <summary>
/// 【查询使用】 /// 【查询使用】
...@@ -35,5 +38,44 @@ namespace Edu.Model.ViewModel.Course ...@@ -35,5 +38,44 @@ namespace Edu.Model.ViewModel.Course
/// 学员名称 /// 学员名称
/// </summary> /// </summary>
public string GuestName { get; set; } public string GuestName { get; set; }
/// <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.
...@@ -3,11 +3,15 @@ using System.Collections.Generic; ...@@ -3,11 +3,15 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Edu.Model.Entity.Course; using Edu.Model.Entity.Course;
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using VT.FW.DB.Dapper; using VT.FW.DB.Dapper;
namespace Edu.Repository.Course namespace Edu.Repository.Course
{ {
/// <summary>
/// 学员签到仓储层
/// </summary>
public class RB_Class_CheckRepository : BaseRepository<RB_Class_Check> public class RB_Class_CheckRepository : BaseRepository<RB_Class_Check>
{ {
/// <summary> /// <summary>
...@@ -19,9 +23,13 @@ namespace Edu.Repository.Course ...@@ -19,9 +23,13 @@ namespace Edu.Repository.Course
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,IFNULL(C.ClassName,'') AS ClassName,IFNULL(D.CourseName,'') AS CourseName,IFNULL(E.RoomName,'') AS RoomName,IFNULL(F.TeacherName,'') AS TeacherName
FROM RB_Class_Check AS A LEFT JOIN rb_order_guest AS B ON A.OrderGuestId=B.Id FROM RB_Class_Check AS A LEFT JOIN rb_order_guest AS B ON A.OrderGuestId=B.Id
WHERE 1=1 "); LEFT JOIN rb_class AS C ON A.ClassId=C.ClassId
LEFT JOIN rb_course AS D ON C.CouseId=D.CourseId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
LEFT JOIN rb_teacher AS F ON A.TeacherId=F.TId
WHERE 1=1 AND A.Status=0 ");
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0) if (query.Group_Id > 0)
...@@ -40,6 +48,10 @@ WHERE 1=1 "); ...@@ -40,6 +48,10 @@ WHERE 1=1 ");
{ {
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassId), query.Q_ClassIds); builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassId), query.Q_ClassIds);
} }
if (query.OrderGuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.OrderGuestId), query.OrderGuestId);
}
if (!string.IsNullOrWhiteSpace(query.StartDate)) if (!string.IsNullOrWhiteSpace(query.StartDate))
{ {
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.StartDate); builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.StartDate);
...@@ -49,13 +61,103 @@ WHERE 1=1 "); ...@@ -49,13 +61,103 @@ WHERE 1=1 ");
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')<=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.EndDate); builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')<=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.EndDate);
} }
} }
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList(); return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
} }
/// <summary>
/// 获取签到记录分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassCheckPageRepository(int pageIndex,int pageSize,out long rowsCount, RB_Class_Check_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,IFNULL(C.ClassName,'') AS ClassName,IFNULL(D.CourseName,'') AS CourseName,IFNULL(E.RoomName,'') AS RoomName,IFNULL(F.TeacherName,'') AS TeacherName
FROM RB_Class_Check AS A LEFT JOIN rb_order_guest AS B ON A.OrderGuestId=B.Id
LEFT JOIN rb_class AS C ON A.ClassId=C.ClassId
LEFT JOIN rb_course AS D ON C.CouseId=D.CourseId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
LEFT JOIN rb_teacher AS F ON A.TeacherId=F.TId
WHERE 1=1 AND A.Status=0 ");
builder.AppendFormat(" AND A.{0} IN(2,3) ", nameof(RB_Class_Check_ViewModel.MakeUpStatus));
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
//builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.ClassId), query.ClassId);
}
if (!string.IsNullOrEmpty(query.Q_ClassIds))
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassId), query.Q_ClassIds);
}
if (query.OrderGuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.OrderGuestId), query.OrderGuestId);
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.StartDate);
}
if (!string.IsNullOrWhiteSpace(query.EndDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')<=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.EndDate);
}
if (query.CheckStatus > -1)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.CheckStatus), query.CheckStatus);
}
if (query.IsAbsentHours > -1)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.IsAbsentHours), query.IsAbsentHours);
}
if (query.MakeUpStatus > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.MakeUpStatus), query.MakeUpStatus);
}
if (!string.IsNullOrEmpty(query.GuestName))
{
builder.AppendFormat(" AND B.{0} LIKE @GuestName ", nameof(RB_Order_Guest.GuestName));
parameters.Add("GuestName", "%" + query.GuestName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.ClassName))
{
builder.AppendFormat(" AND C.{0} LIKE @ClassName ", nameof(RB_Class.ClassName));
parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.CourseName))
{
builder.AppendFormat(" AND D.{0} LIKE @CourseName ", nameof(RB_Course.CourseName));
parameters.Add("CourseName", "%" + query.CourseName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.TeacherName))
{
builder.AppendFormat(" AND F.{0} LIKE @TeacherName ", nameof(RB_Teacher.TeacherName));
parameters.Add("TeacherName", "%" + query.TeacherName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.RoomName))
{
builder.AppendFormat(" AND E.{0} LIKE @RoomName ", nameof(RB_Class_Room.RoomName));
parameters.Add("RoomName", "%" + query.RoomName.Trim() + "%");
}
}
return GetPage<RB_Class_Check_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(),parameters).ToList();
}
/// <summary> /// <summary>
/// 获取教室列表 /// 获取签到列表
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
...@@ -155,28 +257,41 @@ GROUP BY B.OrderGuestId ...@@ -155,28 +257,41 @@ GROUP BY B.OrderGuestId
} }
/// <summary> /// <summary>
/// 学员缺勤分钟数 /// 计算上课计划分钟数
/// </summary> /// </summary>
/// <param name="guestIds">学员编号</param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public List<GuestFinishMinute_ViewModel> GetGuestNoFinishMinutesRepository(string guestIds) public int CalcPlanMinutesRepository(RB_Class_Plan_ViewModel query )
{ {
int result = 0;
string where = "";
if (query.ClassId > 0)
{
where+=string.Format(" AND B.ClassId={0} ", query.ClassId);
}
if (query.ClassDate != null)
{
where += string.Format(" AND B.ClassDate='{0}' ", query.ClassDate);
}
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT B.OrderGuestId AS GuestId,SUM(IFNULL(B.FinishMinutes,0)) AS FinishMinutes SELECT SUM(FinishMinutes)
FROM FROM
( (
SELECT B.ClassDate,A.OrderGuestId SELECT TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',C.StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',C.EndTime,':00'), '%Y-%m-%d %H:%i'))) AS FinishMinutes
,TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',C.StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',C.EndTime,':00'), '%Y-%m-%d %H:%i'))) AS FinishMinutes FROM rb_class_plan AS B INNER JOIN rb_class_time AS C ON B.ClassPlanId=C.ClassPlanId
FROM rb_class_check AS A INNER JOIN rb_class_plan AS B ON A.ClassDate=B.ClassDate AND A.ClassId=B.ClassId AND B.`Status`=0 WHERE 1=1 AND B.`Status`=0 {0}
INNER JOIN rb_class_time AS C ON B.ClassPlanId=C.ClassPlanId ) AS A
WHERE A.CheckStatus=1 AND A.OrderGuestId IN({0}) ", where);
) AS B var obj = base.ExecuteScalar(builder.ToString());
GROUP BY B.OrderGuestId if (obj != null)
", guestIds); {
return Get<GuestFinishMinute_ViewModel>(builder.ToString()).ToList(); Int32.TryParse(obj.ToString(), out result);
}
return result;
} }
/// <summary> /// <summary>
/// 班级签到完成学习分钟数 /// 班级签到完成学习分钟数
/// </summary> /// </summary>
...@@ -207,9 +322,8 @@ GROUP BY A.ClassId ...@@ -207,9 +322,8 @@ GROUP BY A.ClassId
} }
/// <summary> /// <summary>
/// 获取教室列表 /// 获取班级签到列表
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
......
...@@ -729,6 +729,68 @@ namespace Edu.WebApi.Controllers.Course ...@@ -729,6 +729,68 @@ 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.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>
/// 获取班级日志 /// 获取班级日志
/// </summary> /// </summary>
......
{ {
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ", "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", "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; ", "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", "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; ", "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", "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; ", "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" "LogConnectionPName": "MySql.Data.MySqlClient"
}, },
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
"Default": "Information", "Default": "Information",
"Microsoft": "Warning", "Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information" "Microsoft.Hosting.Lifetime": "Information"
} }
}, },
"SettlementRate": "0.60", "SettlementRate": "0.60",
"JwtSecretKey": "@VIITTOREBORN*2018", "JwtSecretKey": "@VIITTOREBORN*2018",
"JwtExpirTime": 86400, "JwtExpirTime": 86400,
"IsSendMsg": 2, "IsSendMsg": 2,
"AllowedHosts": "*", "AllowedHosts": "*",
"OpenValidation": "False", "OpenValidation": "False",
"UploadSiteUrl": "http://192.168.1.36:8120", "UploadSiteUrl": "http://192.168.1.36:8120",
"ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com", "ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com",
"ErpViewFileSiteUrl": "http://imgfile.oytour.com", "ErpViewFileSiteUrl": "http://imgfile.oytour.com",
"Mongo": "mongodb://47.96.25.130:27017", "Mongo": "mongodb://47.96.25.130:27017",
"MongoDBName": "Edu", "MongoDBName": "Edu",
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/", "WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020", "FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.1.13:8083/api/Mall/InsertFinanceBatchForMallIn", "PaymentFinanceApi": "http://192.168.1.13:8083/api/Mall/InsertFinanceBatchForMallIn",
"IncomeFinanceApi": "http://192.168.20.9:8083/api/Mall/InsertFinanceBatchForMallOut", "IncomeFinanceApi": "http://192.168.20.9:8083/api/Mall/InsertFinanceBatchForMallOut",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址 "sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址 "sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址
"FinanceDateBase": "test_reborn_finance", "FinanceDateBase": "test_reborn_finance",
"RabbitMqConfig": { "RabbitMqConfig": {
"HostName": "47.96.25.130", "HostName": "47.96.25.130",
"VirtualHost": "/", "VirtualHost": "/",
"Port": 5672, "Port": 5672,
"UserName": "guest", "UserName": "guest",
"Password": "viitto2019", "Password": "viitto2019",
"QueenName": "vt_sys_message_test" "QueenName": "vt_sys_message_test"
}, },
"RedisSetting": { "RedisSetting": {
"RedisServer": "47.96.23.199", "RedisServer": "47.96.23.199",
"RedisPort": "6379", "RedisPort": "6379",
"RedisPwd": "Viitto2018" "RedisPwd": "Viitto2018"
}, },
"VirtualDirectory": "WebFile", "VirtualDirectory": "WebFile",
//未填写 未打分 下降比例 //未填写 未打分 下降比例
"OKRMatterValue": "30,100,100", "OKRMatterValue": "30,100,100",
//是否是线上环境 //是否是线上环境
"IsOnline": false, "IsOnline": false,
//退课流程编号 //退课流程编号
"BackClassFlowId": 1, "BackClassFlowId": 1,
//分区校长岗位编号 //分区校长岗位编号
"SchoolPostId": 3, "SchoolPostId": 3,
//教务长 //教务长
"JiaoWuZhang": 8, "JiaoWuZhang": 8,
//留学就业部门主管审核编号[王涛] //留学就业部门主管审核编号[王涛]
"StudyAbroadDirectorId": 64, "StudyAbroadDirectorId": 64,
//留学就业部门负责人审核编号[姚顺先] //留学就业部门负责人审核编号[姚顺先]
"StudyAbroadManagerId": 52, "StudyAbroadManagerId": 52,
//合同默认抬头 //合同默认抬头
"ContractDefaultTitle": "JH-DZ-CD-", "ContractDefaultTitle": "JH-DZ-CD-",
//消息推送AppId //消息推送AppId
"PushAppId": "JiaHeJiaoYu", "PushAppId": "JiaHeJiaoYu",
//是否推送消息 //是否推送消息
"IsPushMessage": "1", "IsPushMessage": "1",
//超过下班时间60分钟不能打卡 //超过下班时间60分钟不能打卡
"MoreThanMinutes": 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